Hi,

I am reading ovs code, while in function ovs_flow_to_nlattrs, we have

...
    if (swkey->eth.tci || swkey->eth.type == htons(ETH_P_8021Q)) {
        if (nla_put_be16(skb, OVS_KEY_ATTR_ETHERTYPE, htons(ETH_P_8021Q)) ||
            nla_put_be16(skb, OVS_KEY_ATTR_VLAN, swkey->eth.tci))
            goto nla_put_failure;
        encap = nla_nest_start(skb, OVS_KEY_ATTR_ENCAP);
        if (!swkey->eth.tci)
            goto unencap;
    } else {
        encap = NULL;
    }
...

here's the line:  if swkey->eth.tci || swkey->eth.type ==
htons(ETH_P_8021Q),   well, is it POSSIBLE swkey->eth.tci being zero
while swkey->eth.type == htons(ETH_P_8021Q)? Why we need the latter
condition judgement?
On my stand, from ovs_flow_extract, swkey->eth.type, in most
situations, is ETH_P_IP, ETH_P_IPV6, or ETH_P_ARP. It can be
ETH_P_8021Q when in nested VLAN scenarios, but swkey->eth.tci also
non-zero. So, maybe swkey->eth.type == htons(ETH_P_8021Q) is
unnecesary, isn't it?
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to