net: vlan: add protocol argument to packet tagging functions
Add a protocol argument to the VLAN packet tagging functions. In case of HW tagging, we need that protocol available in the ndo_start_xmit functions, so it is stored in a new field in the skb. The new field fits into a hole (on 64 bit) and doesn't increase the sks's size. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
1fd9b1fc31
commit
86a9bad3ab
@@ -175,7 +175,7 @@ struct sk_buff *br_handle_vlan(struct net_bridge *br,
|
||||
* mac header.
|
||||
*/
|
||||
skb_push(skb, ETH_HLEN);
|
||||
skb = __vlan_put_tag(skb, skb->vlan_tci);
|
||||
skb = __vlan_put_tag(skb, skb->vlan_proto, skb->vlan_tci);
|
||||
if (!skb)
|
||||
goto out;
|
||||
/* put skb->data back to where it was */
|
||||
@@ -217,7 +217,7 @@ bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v,
|
||||
/* PVID is set on this port. Any untagged ingress
|
||||
* frame is considered to belong to this vlan.
|
||||
*/
|
||||
__vlan_hwaccel_put_tag(skb, pvid);
|
||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), pvid);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user