[dpdk-dev] [PATCH 2/8] net/vmxnet3: return unknown IPv4 extension len ptype

Yong Wang yongwang at vmware.com
Mon Apr 16 21:46:42 CEST 2018


> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Didier Pallard
> Sent: Wednesday, March 28, 2018 8:44 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH 2/8] net/vmxnet3: return unknown IPv4
> extension len ptype
> 
> Rather than parsing IP header to get proper ptype to return, just return
> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN, that tells application that we have an
> IP
> packet with unknown header length.

Any specific reason of doing this? I can image there are applications that depend on this and the cost of parsing is simply shifted to the app or via rte_eth_add_rx_callback().

> 
> Signed-off-by: Didier Pallard <didier.pallard at 6wind.com>
> ---
>  drivers/net/vmxnet3/vmxnet3_rxtx.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c
> b/drivers/net/vmxnet3/vmxnet3_rxtx.c
> index 3a8c62fc1..156dc8e52 100644
> --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
> +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
> @@ -659,13 +659,7 @@ vmxnet3_rx_offload(const Vmxnet3_RxCompDesc
> *rcd, struct rte_mbuf *rxm)
> 
>  	/* Check packet type, checksum errors, etc. Only support IPv4 for
> now. */
>  	if (rcd->v4) {
> -		struct ether_hdr *eth = rte_pktmbuf_mtod(rxm, struct
> ether_hdr *);
> -		struct ipv4_hdr *ip = (struct ipv4_hdr *)(eth + 1);
> -
> -		if (((ip->version_ihl & 0xf) << 2) > (int)sizeof(struct ipv4_hdr))
> -			rxm->packet_type = RTE_PTYPE_L3_IPV4_EXT;
> -		else
> -			rxm->packet_type = RTE_PTYPE_L3_IPV4;
> +		rxm->packet_type = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;
> 
>  		if (!rcd->cnc) {
>  			if (!rcd->ipc)
> --
> 2.11.0



More information about the dev mailing list