mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-30 18:07:52 +00:00 
			
		
		
		
	ip807x: backport bridge port forwarding patch
Fixes: WIFI-13234 Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		| @@ -0,0 +1,14 @@ | ||||
| Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| =================================================================== | ||||
| --- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c | ||||
| +++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| @@ -24,8 +24,7 @@ static inline int should_deliver(const s | ||||
|  	struct net_bridge_vlan_group *vg; | ||||
|   | ||||
|  	vg = nbp_vlan_group_rcu(p); | ||||
| -	return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest)) | ||||
| -		|| (skb->dev != p->dev)) && | ||||
| +	return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) && | ||||
|  		br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) && | ||||
|  		nbp_switchdev_allowed_egress(p, skb) && | ||||
|  		!br_skb_isolated(p, skb); | ||||
| @@ -0,0 +1,14 @@ | ||||
| Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| =================================================================== | ||||
| --- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c | ||||
| +++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| @@ -24,8 +24,7 @@ static inline int should_deliver(const s | ||||
|  	struct net_bridge_vlan_group *vg; | ||||
|   | ||||
|  	vg = nbp_vlan_group_rcu(p); | ||||
| -	return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest)) | ||||
| -		|| (skb->dev != p->dev)) && | ||||
| +	return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) && | ||||
|  		br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) && | ||||
|  		nbp_switchdev_allowed_egress(p, skb) && | ||||
|  		!br_skb_isolated(p, skb); | ||||
| @@ -0,0 +1,14 @@ | ||||
| Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| =================================================================== | ||||
| --- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/net/bridge/br_forward.c | ||||
| +++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/net/bridge/br_forward.c | ||||
| @@ -24,8 +24,7 @@ static inline int should_deliver(const s | ||||
|  	struct net_bridge_vlan_group *vg; | ||||
|   | ||||
|  	vg = nbp_vlan_group_rcu(p); | ||||
| -	return (((p->flags & BR_HAIRPIN_MODE) && !is_multicast_ether_addr(eth_hdr(skb)->h_dest)) | ||||
| -		|| (skb->dev != p->dev)) && | ||||
| +	return (((p->flags & BR_HAIRPIN_MODE)) || (skb->dev != p->dev)) && | ||||
|  		br_allowed_egress(vg, skb) && (p->state == BR_STATE_FORWARDING) && | ||||
|  		nbp_switchdev_allowed_egress(p, skb) && | ||||
|  		!br_skb_isolated(p, skb); | ||||
		Reference in New Issue
	
	Block a user
	 John Crispin
					John Crispin