Re: [PATCH v4 07/35] net/i40e: refactor context descriptor handling

Bruce Richardson
2026-02-10T14:10:45Z

On Tue, Feb 10, 2026 at 01:48:20PM +0100, Burakov, Anatoly wrote:
> On 2/9/2026 5:45 PM, Bruce Richardson wrote:
> > Move all context descriptor handling to a single function, as with the
> > ice driver, and use the same function signature as that driver.
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
>
> <snip>
>
> > +static __rte_always_inline uint16_t
> > +get_context_desc(uint64_t ol_flags, const struct rte_mbuf *tx_pkt,
> > + const union ci_tx_offload *tx_offload,
> > + const struct ci_tx_queue *txq __rte_unused,
> > + uint64_t *qw0, uint64_t *qw1)
> > +{
> > + uint16_t cd_l2tag2 = 0;
> > + uint64_t cd_type_cmd_tso_mss = I40E_TX_DESC_DTYPE_CONTEXT;
> > + uint32_t cd_tunneling_params = 0;
> > +
> > + if (i40e_calc_context_desc(ol_flags) == 0)
> > + return 0;
> > +
> > + if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
> > + i40e_parse_tunneling_params(ol_flags, *tx_offload, &cd_tunneling_params);
> > +
> > + if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
> > + cd_type_cmd_tso_mss |= i40e_set_tso_ctx(ol_flags, tx_pkt, *tx_offload);
> > + } else {
> > +#ifdef RTE_LIBRTE_IEEE1588
> > + if (ol_flags & RTE_MBUF_F_TX_IEEE1588_TMST)
> > + cd_type_cmd_tso_mss |=
> > + ((uint64_t)I40E_TX_CTX_DESC_TSYN << I40E_TXD_CTX_QW1_CMD_SHIFT);
> > +#endif
>
> I couldn't find any places where we define this, it appears to be some sort
> of legacy define, making this basically dead code?
>

It is legacy, and does need to be fixed, but across all of DPDK I think.
Testpmd, for example, has IEEE1588 ifdefs also.

However, for this patch, it's probably harmless enough to remove the ifdef
here and always allow this code path to execute.

/Bruce