> -----Original Message-----
> From: Zhang, Roy Fan <roy.fan.zh...@intel.com>
> Sent: Thursday, June 23, 2022 2:17 PM
> To: Rahul Bhansali <rbhans...@marvell.com>; dev@dpdk.org; Nicolau, Radu
> <radu.nico...@intel.com>; Akhil Goyal <gak...@marvell.com>; Ruifeng Wang
> <ruifeng.w...@arm.com>
> Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>
> Subject: [EXT] RE: [PATCH v2 2/2] examples/ipsec-secgw: add support of NEON
> with poll mode
> 
> External Email
> 
> ----------------------------------------------------------------------
> Hi Rahul
> 
> > -----Original Message-----
> > From: Rahul Bhansali <rbhans...@marvell.com>
> > Sent: Friday, June 17, 2022 8:43 AM
> > To: dev@dpdk.org; Nicolau, Radu <radu.nico...@intel.com>; Akhil Goyal
> > <gak...@marvell.com>; Ruifeng Wang <ruifeng.w...@arm.com>
> > Cc: jer...@marvell.com; Rahul Bhansali <rbhans...@marvell.com>
> > Subject: [PATCH v2 2/2] examples/ipsec-secgw: add support of NEON with
> > poll mode
> >
> > This adds the support of NEON based lpm lookup along with multi packet
> > processing for burst send in packets routing.
> >
> > Performance impact:
> > On cn10k, with poll mode inline protocol, outbound performance
> > increased by upto ~8% and inbound performance increased by upto ~6%.
> >
> > Signed-off-by: Rahul Bhansali <rbhans...@marvell.com>
> > ---
> --snip--
> >
> >  static inline void
> > @@ -1403,6 +1420,8 @@ add_dst_ethaddr(uint16_t port, const struct
> > rte_ether_addr *addr)
> >             return -EINVAL;
> >
> 
> Fan: I failed to understand why do we need to overwrite address to do an
> address copy here. Was it a bug?

It is not overwriting the ethaddr_tbl[port].dst address, instead it is copying 
from dst to  xmm_t val_eth data in a format as required by Neon based packet 
processing path on routing.

> 
> >     ethaddr_tbl[port].dst = ETHADDR_TO_UINT64(addr);
> > +   rte_ether_addr_copy((struct rte_ether_addr *)&ethaddr_tbl[port].dst,
> > +                       (struct rte_ether_addr *)(val_eth + port));
> >     return 0;
> >  }
> >
> > @@ -1865,6 +1884,12 @@ port_init(uint16_t portid, uint64_t
> > req_rx_offloads, uint64_t req_tx_offloads)
> >                     portid, rte_strerror(-ret));
> >
> >     ethaddr_tbl[portid].src = ETHADDR_TO_UINT64(&ethaddr);
> 
> Fan: Same here
> 
> > +
> > +   rte_ether_addr_copy((struct rte_ether_addr *)&ethaddr_tbl[portid].dst,
> > +                       (struct rte_ether_addr *)(val_eth + portid));
> > +   rte_ether_addr_copy((struct rte_ether_addr *)&ethaddr_tbl[portid].src,
> > +                       (struct rte_ether_addr *)(val_eth + portid) + 1);
> > +
> >     print_ethaddr("Address: ", &ethaddr);
> >     printf("\n");

Reply via email to