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

Bruce Richardson
2026-02-10T17:54:16Z

On Tue, Feb 10, 2026 at 03:19:27PM +0100, Burakov, Anatoly wrote:
> On 2/10/2026 3:10 PM, Bruce Richardson wrote:
> > 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
>
> Sure, but I would've preferred this to be a separate patch as it's
> semantically different from what you're doing here. Perhaps it can be
> fixed as one of the early patches in the series as "preparatory work" for
> this one.
>

I don't think it belongs in this series at all, actually. The IEEE1588
define appears in multiple drivers, not just Intel ones, as well as testpmd
(as I previously said). However, if you think it's worth patching it out
just for i40e I can add the patch to do so to this set.

/Bruce