Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
soc:2009:oremanj:journal:week2 [2009/06/06 22:38] rwcr |
soc:2009:oremanj:journal:week2 [2009/06/07 23:54] (current) rwcr |
||
---|---|---|---|
Line 44: | Line 44: | ||
==== Friday, 5 June ==== | ==== Friday, 5 June ==== | ||
+ | |||
Line 74: | Line 75: | ||
I did some packet sniffing on my home wireless network today, and found that ordinary 2.4GHz-band consumer-grade networks generally don't even include the IEEE country information element that I had assumed we'd be able to use to set regulatory parameters. It may be possible to get at them with a probe packet, but if not, we're left guessing about maximum TX power - we'd have to use 20 dBm (maximum value for Europe and Japan) even in the US where a higher-range 27 dBm is allowable. For now I'm leaving it fixed at 20 always. | I did some packet sniffing on my home wireless network today, and found that ordinary 2.4GHz-band consumer-grade networks generally don't even include the IEEE country information element that I had assumed we'd be able to use to set regulatory parameters. It may be possible to get at them with a probe packet, but if not, we're left guessing about maximum TX power - we'd have to use 20 dBm (maximum value for Europe and Japan) even in the US where a higher-range 27 dBm is allowable. For now I'm leaving it fixed at 20 always. | ||
+ | |||
+ | ==== Sunday, 7 June ==== | ||
+ | Finished the initial required MAC layer functionality, and started testing on hardware. Commits: | ||
+ | * [[http://git.etherboot.org/?p=people/oremanj/gpxe.git;a=commit;h=37f14d3d7185ce246b80b445e5909fe07ba01453| | ||
+ | [802.11] Fix sequence number fields in ieee80211.h]] | ||
+ | * [[http://git.etherboot.org/?p=people/oremanj/gpxe.git;a=commit;h=008a668a4ab75af0373bc3068ecb7102945851ff| | ||
+ | [802.11] MAC layer: Add probe functionality, other small improvements]] | ||
+ | * [[http://git.etherboot.org/?p=people/oremanj/gpxe.git;a=commit;h=0bf3c5b8d63e89da3ff4d75fb7665373ded7db99| | ||
+ | [drivers rtl8180] Fix a couple bugs, add a bunch of debugging]] | ||
+ | |||
+ | If we want to support site survey ("show me a list of networks"), most of the code in net80211_probe() can be factored out into a separate function that's called from either probe() or scan(). For now I've left scan() unimplemented. | ||
+ | |||
+ | I doubt net80211.c is going to be getting much bigger; most of the remaining code bulk will be in encryption, which I plan on making separable from the main MAC layer (so you can just compile in the encryption methods you use). Currently the code size for 802.11 is 5.8k, which IMO is not so bad. | ||
+ | |||
+ | With a couple obvious bugfixes, the rtl8180 card initializes and starts receiving packets. The first serious problem I ran into involves receiving packets of at least 85 bytes (maybe lower, but more than 64): the card signals a DMA error. Everything is aligned more than required (to 1k where the card needs 256b), all DMA is using physical addresses, the rx buffer size is set to 2356, I dunno what could be going wrong. Tomorrow I'll scrutinize my changes from the Linux driver and make sure I didn't inadvertently introduce something stupid. | ||
+ | |||
+ | It does receive a great many probe request packets from my TiVo just fine, which I think is a small victory. :-) | ||
+ |