[dpdk-dev] [PATCH v2 1/3] app/testpmd: code refactory for macswap
Zhang, Qi Z
qi.z.zhang at intel.com
Tue Dec 11 05:02:52 CET 2018
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Tuesday, December 11, 2018 1:44 AM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>; Richardson, Bruce
> <bruce.richardson at intel.com>; Wiles, Keith <keith.wiles at intel.com>; Ananyev,
> Konstantin <konstantin.ananyev at intel.com>
> Cc: dev at dpdk.org; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Iremonger, Bernard
> <bernard.iremonger at intel.com>; Yongseok Koh <yskoh at mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH v2 1/3] app/testpmd: code refactory for
> macswap
>
> On 11/22/2018 5:38 PM, Qi Zhang wrote:
> > Move macswap workload to dedicate function, so we can further enable
> > platform specific optimized version.
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
>
> <...>
>
> > @@ -0,0 +1,40 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright(c) 2018 Intel Corporation */
> > +
> > +#ifndef _L2FWD_H_
> > +#define _L2FWD_H_
>
> Looks like copy-paste artifact, there are a few more in patchset.
>
> <...>
>
> > @@ -0,0 +1,36 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright(c) 2018 Intel Corporation */
> > +
> > +#ifndef _L2FWD_COMMON_H_
> > +#define _L2FWD_COMMON_H_
> > +
> > +static inline uint64_t
> > +ol_flags_init(uint64_t tx_offload)
> > +{
> > + uint64_t ol_flags = 0;
> > +
> > + ol_flags |= (tx_offload & DEV_TX_OFFLOAD_VLAN_INSERT) ?
> > + PKT_TX_VLAN_PKT : 0;
>
> 'PKT_TX_VLAN_PKT' is depreciated and replaced with 'PKT_TX_VLAN'. I think it
> is better to keep as it is in this patch, since mainly it copies from one place to
> another, but can you update this in new patch in this patchset?
Ok, I will replace.
>
> > + ol_flags |= (tx_offload & DEV_TX_OFFLOAD_QINQ_INSERT) ?
> > + PKT_TX_QINQ_PKT : 0;
>
> Same here, 'PKT_TX_QINQ_PKT' replaced with 'PKT_TX_QINQ'.
>
> > + ol_flags |= (tx_offload & DEV_TX_OFFLOAD_MACSEC_INSERT) ?
> > + PKT_TX_MACSEC : 0;
> > +
> > + return ol_flags;
> > +}
> > +
> > +static inline void
> > +mbuf_field_set(struct rte_mbuf *mb, uint64_t ol_flags,
> > + uint16_t vlan, uint16_t vlan_outer) {
> > + mb->ol_flags &= IND_ATTACHED_MBUF | EXT_ATTACHED_MBUF;
>
> I guess above line is to prevent those bits overwritten, but with '|='
> assignment below I think they will be preserved already, do we need above line?
> cc'ed Yongseok.
I think above line also clean up other bits besides IND_ATTACHED_MBUF | EXT_ATTACHED_MBUF
But I don't know if it is necessary, so I just keep it the same way as before.
>
> > + mb->ol_flags |= ol_flags;
> > + mb->l2_len = sizeof(struct ether_hdr);
> > + mb->l3_len = sizeof(struct ipv4_hdr);
> > + mb->vlan_tci = vlan;
> > + mb->vlan_tci_outer = vlan_outer;
>
> Setting 'vlan_tci' or 'vlan_tci_outer' makes sense only if 'PKT_TX_VLAN' and
> 'PKT_TX_QINQ' set, since there is already an check for them above, does it
> make sense to do these assignment in them, for better performance.
Good point, we can skip these memory write if PKT_TX_VLAN and PKT_TX_QINQ is not set.
Thanks
Qi
More information about the dev
mailing list