[dpdk-dev] [PATCH 4/4] net/ixgbe: convert to new Tx offloads API

Ananyev, Konstantin konstantin.ananyev at intel.com
Thu Mar 15 00:18:43 CET 2018


> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
> index 30095fa..d7f0535 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.h
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.h
> @@ -223,6 +223,7 @@ struct ixgbe_tx_queue {
>  	uint8_t             hthresh;       /**< Host threshold register. */
>  	uint8_t             wthresh;       /**< Write-back threshold reg. */
>  	uint32_t txq_flags; /**< Holds flags for this TXq */
> +	uint64_t offloads; /**< Tx offload flags of DEV_TX_OFFLOAD_* */
>  	uint32_t            ctx_curr;      /**< Hardware context states. */
>  	/** Hardware context0 history. */
>  	struct ixgbe_advctx_info ctx_cache[IXGBE_CTX_NUM];
> @@ -254,6 +255,12 @@ struct ixgbe_txq_ops {
>  #define IXGBE_SIMPLE_FLAGS ((uint32_t)ETH_TXQ_FLAGS_NOMULTSEGS | \
>  			    ETH_TXQ_FLAGS_NOOFFLOADS)
> 
> +#define IXGBE_SIMPLE_TX_OFFLOAD_FLAGS ((uint64_t)DEV_TX_OFFLOAD_MULTI_SEGS |\
> +					DEV_TX_OFFLOAD_VLAN_INSERT |\
> +					DEV_TX_OFFLOAD_SCTP_CKSUM |\
> +					DEV_TX_OFFLOAD_UDP_CKSUM |\
> +					DEV_TX_OFFLOAD_TCP_CKSUM)


Hmm and why IP_CKSUM, TSO, OUTER_IP_CKSUM, etc. is not included into that macro?
In fact do you really need that?
As I understand right now vector TX doesn't support any offloads, so tx_offload != 0,
should be enough for tx function selection, right?
Konstanitn 

> +
>  /*
>   * Populate descriptors with the following info:
>   * 1.) buffer_addr = phys_addr + headroom
> @@ -307,6 +314,7 @@ uint16_t ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
>  				    uint16_t nb_pkts);
>  int ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq);
> 
> +uint64_t ixgbe_get_tx_port_offlaods(struct rte_eth_dev *dev);
>  uint64_t ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev);
>  uint64_t ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev);
> 
> --
> 2.7.5



More information about the dev mailing list