forked from Minki/linux
Merge branch 'ovs-8021AD-fixes'
Jiri Benc says: ==================== openvswitch: vlan fixes Fix three issues introduced by the 802.1AD patchset. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
4013bee5f0
@ -343,7 +343,7 @@ static int parse_vlan(struct sk_buff *skb, struct sw_flow_key *key)
|
|||||||
key->eth.cvlan.tci = 0;
|
key->eth.cvlan.tci = 0;
|
||||||
key->eth.cvlan.tpid = 0;
|
key->eth.cvlan.tpid = 0;
|
||||||
|
|
||||||
if (likely(skb_vlan_tag_present(skb))) {
|
if (skb_vlan_tag_present(skb)) {
|
||||||
key->eth.vlan.tci = htons(skb->vlan_tci);
|
key->eth.vlan.tci = htons(skb->vlan_tci);
|
||||||
key->eth.vlan.tpid = skb->vlan_proto;
|
key->eth.vlan.tpid = skb->vlan_proto;
|
||||||
} else {
|
} else {
|
||||||
|
@ -176,7 +176,7 @@ static void do_setup(struct net_device *netdev)
|
|||||||
|
|
||||||
netdev->vlan_features = netdev->features;
|
netdev->vlan_features = netdev->features;
|
||||||
netdev->hw_enc_features = netdev->features;
|
netdev->hw_enc_features = netdev->features;
|
||||||
netdev->features |= NETIF_F_HW_VLAN_CTAG_TX;
|
netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
|
||||||
netdev->hw_features = netdev->features & ~NETIF_F_LLTX;
|
netdev->hw_features = netdev->features & ~NETIF_F_LLTX;
|
||||||
|
|
||||||
eth_hw_addr_random(netdev);
|
eth_hw_addr_random(netdev);
|
||||||
|
@ -485,7 +485,8 @@ static unsigned int packet_length(const struct sk_buff *skb)
|
|||||||
{
|
{
|
||||||
unsigned int length = skb->len - ETH_HLEN;
|
unsigned int length = skb->len - ETH_HLEN;
|
||||||
|
|
||||||
if (skb_vlan_tagged(skb))
|
if (!skb_vlan_tag_present(skb) &&
|
||||||
|
eth_type_vlan(skb->protocol))
|
||||||
length -= VLAN_HLEN;
|
length -= VLAN_HLEN;
|
||||||
|
|
||||||
/* Don't subtract for multiple VLAN tags. Most (all?) drivers allow
|
/* Don't subtract for multiple VLAN tags. Most (all?) drivers allow
|
||||||
|
Loading…
Reference in New Issue
Block a user