On Mon, Nov 17, 2014 at 10:53 AM, Lori Jakab <loja...@cisco.com> wrote:
> On 11/17/14 8:48 PM, Jesse Gross wrote:
>>
>> On Mon, Nov 17, 2014 at 10:46 AM, Lori Jakab <loja...@cisco.com> wrote:
>>>
>>> On 11/17/14 8:28 PM, Jesse Gross wrote:
>>>>
>>>> On Mon, Nov 17, 2014 at 9:24 AM, Lorand Jakab <loja...@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.

OK, my guess is that it is this line in ovs_nla_get_match():

                /* Always match on tci. */
                SW_FLOW_KEY_PUT(match, eth.tci, htons(0xffff), true);
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to