> -----Original Message----- > From: Olivier MATZ [mailto:olivier.matz at 6wind.com] > Sent: Monday, December 1, 2014 8:28 PM > To: Ananyev, Konstantin; Liu, Jijiang > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH 1/3] mbuf:add two TX offload flags and change > three fields > > Hi Konstantin, > > On 12/01/2014 12:58 PM, Ananyev, Konstantin wrote: > >> Ether/IP/UDP/vxlan/Ether/IP/UDP/xxx > >> m->outer_l2_len = sizeof(ether) > >> m->outer_l3_len = sizeof(ip) > >> m->l2_len = sizeof(udp) + sizeof(vxlan) + sizeof(ether) > > > > I think it should be: > > m->l2_len = sizeof(vxlan) + sizeof(ether) > > > > We don't need to add sizeof(udp) as we already say to the HW that I t will > > be > UDP TUNNELING vi the ol_flag: PKT_TX_UDP_TUNNEL_PKT. > > > >> m->l3_len = sizeof(ip) > >> m->l4_len = sizeof(udp) > > I would agree if we had a m->outer_l4_len. Maybe we should add it to be > coherent with lX_len fields? > > I think that to process the inner IP checksum, we should be able to use these > 2 > notations: > > Ether/IP/GRE/IP/UDP/xxx > m->flags = OUTER_IP_CKSUM > m->outer_l2_len = sizeof(ether) > m->outer_l3_len = sizeof(ip) > m->l2_len = sizeof(gre) > m->l3_len = sizeof(ip) > m->l4_len = sizeof(udp) > > Ether/IP/GRE/IP/UDP/xxx > m->flags = IP_CKSUM > /* sum of all outer_lX_len and l2_len from above: */ > m->l2_len = sizeof(ether) + sizeof(ip) + sizeof(gre) > m->l3_len = sizeof(ip) > m->l4_len = sizeof(udp) > > So, in case of vxlan, I suggest that either we include the size of UDP in > l2_len, or > we add a outer_l4_len. What do you think? I agree to include the size of UDP in l2_len, for VXLAN, the UDP header is a part of VXLAN tunneling header as the UDP destination port indicate if a packet is VXLAN packet. > Maybe adding outer_l4_len makes more sense.
> > Regards, > Olivier