[ovs-dev] [PATCH v8 3/5] datapath: add layer 3 flow/port support

Lori Jakab lojakab at cisco.com
Mon Nov 17 18:53:57 UTC 2014


On 11/17/14 8:48 PM, Jesse Gross wrote:
> On Mon, Nov 17, 2014 at 10:46 AM, Lori Jakab <lojakab at cisco.com> wrote:
>> On 11/17/14 8:28 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.c b/datapath/flow.c
>>>> index 69b13b3..b01f7bd 100644
>>>> --- a/datapath/flow.c
>>>> +++ b/datapath/flow.c
>>>> @@ -459,28 +459,31 @@ static int key_extract(struct sk_buff *skb, struct
>>>> sw_flow_key *key)
>>>>
>>>>           skb_reset_mac_header(skb);
>>>>
>>>> -       /* Link layer.  We are guaranteed to have at least the 14 byte
>>>> Ethernet
>>>> -        * header in the linear data area.
>>>> -        */
>>>> -       eth = eth_hdr(skb);
>>>> -       ether_addr_copy(key->eth.src, eth->h_source);
>>>> -       ether_addr_copy(key->eth.dst, eth->h_dest);
>>>> +       /* Link layer. */
>>>> +       if (key->phy.is_layer3) {
>>>> +               key->eth.tci = 0;
>>>> +               key->eth.type = skb->protocol;
>>> Were you going to drop setting the TCI here?
>>
>> Yes, but then I figured it out why I needed to set it: validation code is
>> relying on it in a few functions.
> That's fine if it is being used. But out of curiosity, where?
I have to look it up, I know that without TCI being set to 0, L3 packets 
are not matching against the rule installed in the datapath and have to 
take the slow path again.



More information about the dev mailing list