MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ixgbe_xmit_pkts

Function ixgbe_xmit_pkts

dpdk/drivers/net/ixgbe/ixgbe_rxtx.c:622–953  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

620}
621
622uint16_t
623ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
624 uint16_t nb_pkts)
625{
626 struct ixgbe_tx_queue *txq;
627 struct ixgbe_tx_entry *sw_ring;
628 struct ixgbe_tx_entry *txe, *txn;
629 volatile union ixgbe_adv_tx_desc *txr;
630 volatile union ixgbe_adv_tx_desc *txd, *txp;
631 struct rte_mbuf *tx_pkt;
632 struct rte_mbuf *m_seg;
633 uint64_t buf_dma_addr;
634 uint32_t olinfo_status;
635 uint32_t cmd_type_len;
636 uint32_t pkt_len;
637 uint16_t slen;
638 uint64_t ol_flags;
639 uint16_t tx_id;
640 uint16_t tx_last;
641 uint16_t nb_tx;
642 uint16_t nb_used;
643 uint64_t tx_ol_req;
644 uint32_t ctx = 0;
645 uint32_t new_ctx;
646 union ixgbe_tx_offload tx_offload;
647#ifdef RTE_LIB_SECURITY
648 uint8_t use_ipsec;
649#endif
650
651 tx_offload.data[0] = 0;
652 tx_offload.data[1] = 0;
653 txq = tx_queue;
654 sw_ring = txq->sw_ring;
655 txr = txq->tx_ring;
656 tx_id = txq->tx_tail;
657 txe = &sw_ring[tx_id];
658 txp = NULL;
659
660 /* Determine if the descriptor ring needs to be cleaned. */
661 if (txq->nb_tx_free < txq->tx_free_thresh)
662 ixgbe_xmit_cleanup(txq);
663
664 rte_prefetch0(&txe->mbuf->pool);
665
666 /* TX loop */
667 for (nb_tx = 0; nb_tx < nb_pkts; nb_tx++) {
668 new_ctx = 0;
669 tx_pkt = *tx_pkts++;
670 pkt_len = tx_pkt->pkt_len;
671
672 /*
673 * Determine how many (if any) context descriptors
674 * are needed for offload functionality.
675 */
676 ol_flags = tx_pkt->ol_flags;
677#ifdef RTE_LIB_SECURITY
678 use_ipsec = txq->using_ipsec && (ol_flags & RTE_MBUF_F_TX_SEC_OFFLOAD);
679#endif

Callers

nothing calls this directly

Calls 9

ixgbe_xmit_cleanupFunction · 0.85
rte_security_dynfieldFunction · 0.85
rte_pktmbuf_free_segFunction · 0.85
ixgbe_set_xmit_ctxFunction · 0.85
rte_mbuf_data_iovaFunction · 0.85
what_advctx_updateFunction · 0.70
rte_prefetch0Function · 0.50

Tested by

no test coverage detected