Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4013bee5 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'ovs-8021AD-fixes'



Jiri Benc says:

====================
openvswitch: vlan fixes

Fix three issues introduced by the 802.1AD patchset.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 88a2428b 3145c037
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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.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.tpid = skb->vlan_proto;
	} else {
+1 −1
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ static void do_setup(struct net_device *netdev)

	netdev->vlan_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;

	eth_hw_addr_random(netdev);
+2 −1
Original line number Diff line number Diff line
@@ -485,7 +485,8 @@ static unsigned int packet_length(const struct sk_buff *skb)
{
	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;

	/* Don't subtract for multiple VLAN tags. Most (all?) drivers allow