On 11/21/2014 02:20 AM, Jesse Gross wrote: > On Thu, Nov 20, 2014 at 4:06 PM, Jarno Rajahalme <[email protected]> > wrote: >> On Nov 20, 2014, at 12:18 PM, Jesse Gross <[email protected]> wrote: >> >> On Thu, Nov 20, 2014 at 10:35 AM, Jarno Rajahalme <[email protected]> >> wrote: >> >> The netlink key for flow put is serialized from struct flow, so even in the >> case of L3 the ethertype would be serialized. >> >> Even the kernel datapath is encoding the ethertype in key_extract(), even >> when it is not in the packet: >> >> + /* Link layer. */ >> + if (key->phy.is_layer3) { >> + key->eth.tci = 0; >> + key->eth.type = skb->protocol; >> + } else { >> >> So I guess you are not saying that the ethertype should not be serialized, >> due to it not being in the L3 packet? >> >> >> The EtherType is stored in the flow key for efficiency but it is >> actually not part of the serialized netlink representation currently. >> >> >> OK, I see patch 2/5 skipping past the line where dl_type is serialized in >> odp-util.c. >> >> This revision of the series introduces a patch to change the >> serialization from userspace for the purposes of packet execution but >> it is not done from the kernel or at all in previous revisions. I >> think it is important that userspace, kernel, and the data contained >> in the packet line up as closely as possible. >> >> >> So by encoding the whole key the datapath can detect the presence of >> OVS_KEY_ATTR_IPV4 or OVS_KEY_ATTR_IPV6 and use those to set the >> skb->protocol? > > Yes, that's right.
Has there been any progress on this? _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
