bridge: fix eapol packet dropping issue

wpa_supplicant would receive EAPOL packet to start 802.1x session even if
its wireless STA interface enslaved in a bridge is disabled.

Change-Id: I4e3f786049a19c5bc7aacdc0528b0099744e8674
Signed-off-by: Zhu Ken <guigenz@codeaurora.org>
Signed-off-by: Pooventhiran G <pooventh@codeaurora.org>
This commit is contained in:
Zhu Ken 2021-09-28 11:51:36 +05:30 • committed by Gerrit - the friendly Code Review server
commit 1c4532011c

View file

@ -344,15 +344,17 @@ rx_handler_result_t br_handle_frame(struct sk_buff **pskb)
forward:
switch (p->state) {
case BR_STATE_DISABLED:
if (ether_addr_equal(p->br->dev->dev_addr, dest))
skb->pkt_type = PACKET_HOST;
if (skb->protocol == htons(ETH_P_PAE)) {
if (ether_addr_equal(p->br->dev->dev_addr, dest))
skb->pkt_type = PACKET_HOST;
if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING,
dev_net(skb->dev), NULL, skb, skb->dev, NULL,
br_handle_local_finish) == 1) {
return RX_HANDLER_PASS;
if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING,
dev_net(skb->dev), NULL, skb, skb->dev, NULL,
br_handle_local_finish) == 1) {
return RX_HANDLER_PASS;
}
}
break;
goto drop;
case BR_STATE_FORWARDING:
case BR_STATE_LEARNING: