> -----Original Message----- > From: Olivier MATZ [mailto:olivier.matz at 6wind.com] > Sent: Wednesday, November 5, 2014 6:28 PM > To: Liu, Jijiang > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH v8 10/10] app/testpmd:test VxLAN Tx checksum > offload > > Hi Jijiang, > > Thank you for your answer. Please find some comments below. > > On 11/05/2014 07:02 AM, Liu, Jijiang wrote: > >> First, the code checks if the mbuf has the flag PKT_RX_TUNNEL_IPV4_HDR. > >> What is the meaning of this flag? It was added by [3], but there is > >> no description in comments or in the commit log explaining in which > >> case this flag is set by the driver. The name supposes that this flag > >> is set when the received packet is an IPv4 tunnel, but the commit log talks > about vxlan. > > > > The flag PKT_RX_TUNNEL_IPV4_HDR can be used for all tunneling packet types > with outer IPV4 header. > > For example: > > IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4: > > MAC, IPV4, GRENAT, MAC, IPV4, SCTP, PAY4 MAC, IPV4, GRENAT, MAC, IPV6, > > UDP, PAY4 MAC, IPV4, GRENAT, MAC, IPV6, UDP, PAY4 These tunneling > > packet formats have a common point that is outer IPv4 header here. > > > > Only VXLAN tunneling packet is supported in DPDK for i40e now, so the > > commit > log talks about VXLAN . > > Is it possible to have a more formal definition? For instance, is the > following > definition below correct? > > "the PKT_RX_TUNNEL_IPV4_HDR flag CAN be set by a driver if the packet > contains a tunneling protocol inside an IPv4 header".
Yes, correct. > If the definition above is correct, I don't see how this flag can help an > application > to run faster. There is already a flag telling if there is a valid IPv4 header > (PKT_RX_IPV4_HDR). As the PKT_RX_TUNNEL_IPV4_HDR flag does not tell what > is ip->proto, the work done by an application to dissect a packet would be > exactly > the same with or without this flag. If the PKT_RX_TUNNEL_IPV4_HDR flag is set, which means driver tell application that incoming packet is encapsulated packet, and application will process / analyse the packet according to tunneling format indicated by packet_type. In terms of VXLAN packet format (MAC,IPv4,UDP,VXLAN,MAC,IP,TCP,PAY4), if only the PKT_RX_IPV4_HDR flag is set, and application regard its payload as "from VXLAN to PAY4", but actually, the real payload is PAY4. > Please, can you give an example showing in which conditions this flag can > help an > application? http://dpdk.org/ml/archives/dev/2014-October/007151.html http://dpdk.org/ml/archives/dev/2014-October/007156.html We used the PKT_RX_TUNNEL_IPV4_HDR in the two patches to help application identify incoming packet is tunneling packet.