Enet UDMA channel/flow auto-reclaim config struct.
Data Fields | |
bool | enableFlag |
EnetUdma_DmaDescQHandle | hDmaDescPool |
Udma_RingHandle | hReclaimRing |
bool EnetUdma_AutoReclaimPrms::enableFlag |
Auto-reclaim enable flag Auto-reclaim or auto-recycling of buffer descriptors enables usage of same buffer descriptor between RX flow and TX channel. For example - by using auto-reclaim of RX FQ as TX CQ, we don't need to call EnetDma_retrieveTxPktQ and EnetUdma_submitRxReadyPackets in packet forwarding use-cases like SW interVLAN routing Note that current design offers/provides way to use TX FQ as RX CQ but not vice versa (RX CQ as TX FQ), similarly for RX FQ as TX CQ case. This is done due to UDMA HW design where FQ ring number is same as channel number. Basically any ring can't be attached as FQ ring to TX channel. Though this limitation doesn't exist for RX flow, we keep design consistent and enable auto-reclaim of RX FQ as TX CQ
EnetUdma_DmaDescQHandle EnetUdma_AutoReclaimPrms::hDmaDescPool |
Handle to free DMA descriptor pool where a free descriptors retrieved in EnetDma_retrieveRxPktQ() function. This is as we bypass EnetDma_retrieveTxPktQ() in auto-reclaim
Udma_RingHandle EnetUdma_AutoReclaimPrms::hReclaimRing |
handle to ring used in auto-reclaim. For example when using TX CQ --> RX FQ, the RX FQ ring handle is passed by an app to be used as TX CQ so default ring should not be allocated/used