[ovs-dev] [PATCH v8 5/5] datapath: add layer 3 support to ovs_packet_cmd_execute()

Jesse Gross jesse at nicira.com
Wed Nov 19 19:38:00 UTC 2014


On Wed, Nov 19, 2014 at 8:47 AM, Lori Jakab <lojakab at cisco.com> wrote:
> Jesse, Jarno,
>
>
> On 11/18/14 1:36 AM, Jesse Gross wrote:
>>
>> On Mon, Nov 17, 2014 at 2:37 PM, Lori Jakab <lojakab at cisco.com> wrote:
>>>
>>> On 11/18/14 12:33 AM, Jesse Gross wrote:
>>>>
>>>> On Mon, Nov 17, 2014 at 1:50 PM, Lori Jakab <lojakab at cisco.com> wrote:
>>>>>
>>>>> On 11/17/14 8:03 PM, Jesse Gross wrote:
>>>>>>
>>>>>> On Mon, Nov 17, 2014 at 9:24 AM, Lorand Jakab <lojakab at cisco.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c
>>>>>>> index 54510c8..8ca3469 100644
>>>>>>> --- a/datapath/flow_netlink.c
>>>>>>> +++ b/datapath/flow_netlink.c
>>>>>>> @@ -692,6 +692,18 @@ static int metadata_from_nlattrs(struct
>>>>>>> sw_flow_match *match,  u64 *attrs,
>>>>>>>                    else
>>>>>>>                            SW_FLOW_KEY_PUT(match, phy.is_layer3,
>>>>>>> true,
>>>>>>> is_mask);
>>>>>>>            }
>>>>>>> +       /* Layer 3 packets from user space have the EtherType as
>>>>>>> metadata
>>>>>>> */
>>>>>>> +       if (*attrs & (1ULL << OVS_KEY_ATTR_ETHERTYPE)) {
>>>>>>
>>>>>> Is this correct? I thought that EtherType wasn't serialized in this
>>>>>> case - in other places we extract this from the IP/IPv6 attribute
>>>>>> directly.
>>>>>
>>>>>
>>>>> For "ovs_flow" Netlink messages we can do that, but not for
>>>>> "ovs_packet"
>>>>> messages, which only have packet metadata, not the full flow key.
>>>>> Packet
>>>>> metadata didn't include EtherType until now, but I unless we use the
>>>>> nibble
>>>>> from the IP version, we need to add it for layer 3 packets only.
>>>>
>>>> Hmm, I see. I think that diverging the Netlink encoding for flow
>>>> installation vs. metadata is probably not a good idea over the long
>>>> term. If I remember correctly, I believe the reason for only encoding
>>>> part of the flow key for metadata was to reduce serialization cost.
>>>> Jarno is thinking about combining the packet execution with flow
>>>> installation, which would might make this a moot point. If that's the
>>>> case, then we can probably solve this issue by just using the full
>>>> flow key.
>>>
>>> OK, how should I proceed then?  Should I wait until that work lands in
>>> master?
>>
>> I don't know the current status of that work, maybe Jarno can let you
>> know. I think he also might have made the original change to only send
>> the metadata so might have some of the history there. Perhaps we can
>> just undo that change if we expect that it will be addressed soon.
>
>
> Should I repost the series without patches 4 and 5 then?  Layer 3 support
> still works, except that the first packet (from the miss upcall) will be
> dropped in layer 3 flows.  The issue will probably fix itself when metadata
> will be encoded again as flow key.

I hope that we can get this resolved before applying this series.
Perhaps you can work together with Andy if it will help.



More information about the dev mailing list