mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
1fd9b1fc31
commit
86a9bad3ab
56 changed files with 107 additions and 84 deletions
|
|
@ -535,7 +535,7 @@ static struct net_device *brnf_get_logical_dev(struct sk_buff *skb, const struct
|
|||
if (brnf_pass_vlan_indev == 0 || !vlan_tx_tag_present(skb))
|
||||
return br;
|
||||
|
||||
vlan = __vlan_find_dev_deep(br, htons(ETH_P_8021Q),
|
||||
vlan = __vlan_find_dev_deep(br, skb->vlan_proto,
|
||||
vlan_tx_tag_get(skb) & VLAN_VID_MASK);
|
||||
|
||||
return vlan ? vlan : br;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue