locked
How to read the codes of the 802.11 sample RRS feed

  • Question

  • Recently,I'm reading the codes of the 802.11b sample you provide.But there are so many lines of codes,i just don't know how to read them efficiently.Maybe you can tell me where the Entryfunction is ,and how the codes worked.

    Wednesday, August 11, 2010 1:37 AM

Answers

  • 802.11b sample driver entry point : sorasdk\src\driver\sdrminiport\sys\miniport.c DriverEntry.

    sending entry point is sorasdk\src\driver\sdrminiport\sys\sendrcv.c MPSendPackets.

    receiving is asynchronous, so it is opposite to sending. its entry point is RX state handler of mac state machine, sorasdk\src\driver\mac\sdr_mac_rx.c SdrMacRx.

    • Marked as answer by zhaojunzhi Wednesday, August 11, 2010 7:17 AM
    Wednesday, August 11, 2010 3:05 AM
  • I find it most helpful to keep in mind the OSI model as I look at the 802.11b code. (http://en.wikipedia.org/wiki/OSI_model)

    Specifically, start with the Link Layer (split into LL and MAC directories), which has the packet passed down from NDIS. At the Link Layer (again, LL sub-directory) it is converted from Eth format (packet headers etc etc designed for transmission along Ethernet cable) into Wan format (something a bit more IQ friendly).

    At the MAC layer, the Finite State Machine (the core of SORA's SoftWifi standard, as described by the SORA Whitepaper (http://research.microsoft.com/pubs/79927/Sora-camera-ready.pdf) does most of the real communication work - Carrier Sense detects if there's anything in the channel, and if there is, Rx receives it (based on physical layer stuff, I'll get into that in a moment), and sends it back to the LL if needed, or discards if the received packet was not meant for that particular node. Tx receives packets from the aforementioned LL and sends them out with PHY layer functions, then goes back into CS, hence the need for an FSM.

    The /PHY/ and /BB/ layers handle the actual IQ modulation of the packet and sending to the SORA board using SORA_HW_TX_TRANSFER, from what point it is sent out the antenna with SORA_HW_BASIC_TX.


    Packets are acknowledged using a physical ACK cache, again found in the /PHY/ layer, but designed as part of the MAC FSM.

    The /INC/ directory is the basis for those functions, specifically PHY/MAC/LL structures.

    Any other questions, feel free to ask me!

    • Marked as answer by zhaojunzhi Thursday, August 12, 2010 1:06 AM
    Wednesday, August 11, 2010 5:07 PM

All replies

  • 802.11b sample driver entry point : sorasdk\src\driver\sdrminiport\sys\miniport.c DriverEntry.

    sending entry point is sorasdk\src\driver\sdrminiport\sys\sendrcv.c MPSendPackets.

    receiving is asynchronous, so it is opposite to sending. its entry point is RX state handler of mac state machine, sorasdk\src\driver\mac\sdr_mac_rx.c SdrMacRx.

    • Marked as answer by zhaojunzhi Wednesday, August 11, 2010 7:17 AM
    Wednesday, August 11, 2010 3:05 AM
  • I find it most helpful to keep in mind the OSI model as I look at the 802.11b code. (http://en.wikipedia.org/wiki/OSI_model)

    Specifically, start with the Link Layer (split into LL and MAC directories), which has the packet passed down from NDIS. At the Link Layer (again, LL sub-directory) it is converted from Eth format (packet headers etc etc designed for transmission along Ethernet cable) into Wan format (something a bit more IQ friendly).

    At the MAC layer, the Finite State Machine (the core of SORA's SoftWifi standard, as described by the SORA Whitepaper (http://research.microsoft.com/pubs/79927/Sora-camera-ready.pdf) does most of the real communication work - Carrier Sense detects if there's anything in the channel, and if there is, Rx receives it (based on physical layer stuff, I'll get into that in a moment), and sends it back to the LL if needed, or discards if the received packet was not meant for that particular node. Tx receives packets from the aforementioned LL and sends them out with PHY layer functions, then goes back into CS, hence the need for an FSM.

    The /PHY/ and /BB/ layers handle the actual IQ modulation of the packet and sending to the SORA board using SORA_HW_TX_TRANSFER, from what point it is sent out the antenna with SORA_HW_BASIC_TX.


    Packets are acknowledged using a physical ACK cache, again found in the /PHY/ layer, but designed as part of the MAC FSM.

    The /INC/ directory is the basis for those functions, specifically PHY/MAC/LL structures.

    Any other questions, feel free to ask me!

    • Marked as answer by zhaojunzhi Thursday, August 12, 2010 1:06 AM
    Wednesday, August 11, 2010 5:07 PM
  • Thank you very much.Would you teel me your email?I want to have a private chat with you.
    Thursday, August 12, 2010 1:11 AM
  • If you meant me, it's cgordini@umich.edu, ask away. :)
    Thursday, August 12, 2010 8:52 PM