[PATCH v2 2/2] examples/ipsec-secgw: add support of NEON with poll mode

Zhang, Roy Fan roy.fan.zhang at intel.com
Thu Jun 23 10:46:32 CEST 2022


Hi Rahul

> -----Original Message-----
> From: Rahul Bhansali <rbhansali at marvell.com>
> Sent: Friday, June 17, 2022 8:43 AM
> To: dev at dpdk.org; Nicolau, Radu <radu.nicolau at intel.com>; Akhil Goyal
> <gakhil at marvell.com>; Ruifeng Wang <ruifeng.wang at arm.com>
> Cc: jerinj at marvell.com; Rahul Bhansali <rbhansali at 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 <rbhansali at 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?

>  	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");


More information about the dev mailing list