batman-adv: set the TAG flag for the vid passed to BLA
When receiving or sending a packet a packet on a VLAN, the vid has to be marked with the TAG flag in order to make any component in batman-adv understand that the packet is coming from a really tagged network. This fix the Bridge Loop Avoidance behaviour which was not able to send announces over VLAN interfaces. Introduced by 0b1da1765fdb00ca5d53bc95c9abc70dfc9aae5b ("batman-adv: change VID semantic in the BLA code") Signed-off-by: Antonio Quartulli <antonio@open-mesh.org> Acked-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
This commit is contained in:
Родитель
1ef68ec462
Коммит
4c18c425b2
|
@ -168,6 +168,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
|
|||
case ETH_P_8021Q:
|
||||
vhdr = (struct vlan_ethhdr *)skb->data;
|
||||
vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
|
||||
vid |= BATADV_VLAN_HAS_TAG;
|
||||
|
||||
if (vhdr->h_vlan_encapsulated_proto != ethertype)
|
||||
break;
|
||||
|
@ -331,6 +332,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
|
|||
case ETH_P_8021Q:
|
||||
vhdr = (struct vlan_ethhdr *)skb->data;
|
||||
vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
|
||||
vid |= BATADV_VLAN_HAS_TAG;
|
||||
|
||||
if (vhdr->h_vlan_encapsulated_proto != ethertype)
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче