A question about acquring the memory on board RRS feed

  • General discussion

  • Hi,
       In SoraSDK1.1\src\driver\SDRMiniport\sys5x\sendrcv.c,the handler Mpsendpackets hands the packets to the link layer directly without checking whether the memory(or other resources) on board is enough to use or not. Since the data flow is driven by high layer applications, So when I stop the transmission and do some other things ,like channel sensing, the memory may overflow. How can I acquire the memory on board so that when the memory isn't enough to use, the miniport will give up transmiting the packet to the link layer and return the status of NDIS_STATUS_PENDING?

    Friday, August 19, 2011 6:33 AM

All replies

  • The NDIS handler does not check on board memory. It is checked in the send_thread.

    In sendrcv, it just check if there were free descriptor in the free list, if yes, it just get a descriptor from the free list and put the packets in another sending list and returns NDIS_STATUS_PENDING; if not, just drops the packet. 

    In send_thread, it will get a packet from the sending list and check if there were free memory on board.

    Friday, August 19, 2011 2:20 PM
  • Function SdrMacSendThread in sdr_mac_send.c modulates data to signal and calls SORA_HW_TX_TRANSFER.

    In SORA_HW_TX_TRANSFER, we acquire the memory from RCB board and transfer the modulated signal to the memory.

    Function SdrMacTx in sdr_mac_tx.c, calls SORA_HW_BEGIN_TX to TX the signal out and SoraPacketFreeTxResource to free the RCB memory.


    Friday, August 26, 2011 8:59 AM