[dpdk-dev] [PATCH 1/3] mbuf:add two TX offload flags and change three fields
Olivier MATZ
olivier.matz at 6wind.com
Mon Dec 1 10:52:03 CET 2014
Hi Jijiang,
On 12/01/2014 03:30 AM, Liu, Jijiang wrote:
>> After another thought, I think that the way you proposed is a better one.
>> I gives us more flexibility:
>> let's say for now we'll keep both l2_len and outer_l2_len as 7 bit fields, and upper
>> layer would have to:
>> mb->l2_len = eth_hdr_in + vxlan_hdr;
>
> A question, how to fill the mb->l2_len for IP in IP, IP in GRE tunneling packet that is no inner L2 header?
> What is the rule?
> Or you think it should be mb->l2_len = 0 + l4_tun_len; ??
We could have the following rule:
- the l2_len starts after the end of outer_l2_len + outer_l3_len (if
they are not 0)
- l2_len is the length of all headers up to the first ip or ipv6
header
Examples:
Ether/IP/UDP/xxx
m->outer_l2_len = 0
m->outer_l3_len = 0
m->l2_len = sizeof(ether)
m->l3_len = sizeof(ip)
m->l4_len = sizeof(udp)
Ether/IP/IP/UDP/xxx
m->outer_l2_len = sizeof(ether)
m->outer_l3_len = sizeof(ip)
m->l2_len = 0
m->l3_len = sizeof(ip)
m->l4_len = sizeof(udp)
Ether/IP/GRE/IP/UDP/xxx
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/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)
m->l3_len = sizeof(ip)
m->l4_len = sizeof(udp)
Regards,
Olivier
More information about the dev
mailing list