| 811 | } |
| 812 | |
| 813 | static uint16_t |
| 814 | sfc_efx_prepare_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, |
| 815 | uint16_t nb_pkts) |
| 816 | { |
| 817 | struct sfc_dp_txq *dp_txq = tx_queue; |
| 818 | struct sfc_efx_txq *txq = sfc_efx_txq_by_dp_txq(dp_txq); |
| 819 | const efx_nic_cfg_t *encp = efx_nic_cfg_get(txq->evq->sa->nic); |
| 820 | uint16_t i; |
| 821 | |
| 822 | for (i = 0; i < nb_pkts; i++) { |
| 823 | int ret; |
| 824 | |
| 825 | /* |
| 826 | * EFX Tx datapath may require extra VLAN descriptor if VLAN |
| 827 | * insertion offload is requested regardless the offload |
| 828 | * requested/supported. |
| 829 | */ |
| 830 | ret = sfc_dp_tx_prepare_pkt(tx_pkts[i], 0, SFC_TSOH_STD_LEN, |
| 831 | encp->enc_tx_tso_tcp_header_offset_limit, |
| 832 | txq->max_fill_level, EFX_TX_FATSOV2_OPT_NDESCS, |
| 833 | 1); |
| 834 | if (unlikely(ret != 0)) { |
| 835 | rte_errno = ret; |
| 836 | break; |
| 837 | } |
| 838 | } |
| 839 | |
| 840 | return i; |
| 841 | } |
| 842 | |
| 843 | static uint16_t |
| 844 | sfc_efx_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) |
nothing calls this directly
no test coverage detected