Freitag, 19. August 2011 06:33Hi,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?
Freitag, 19. August 2011 14:20
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.
Freitag, 26. August 2011 08:59
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.