mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 02:17:58 +00:00 
			
		
		
		
	patches: remove netifd VLAN awareness fix
Remove netifd VLAN awareness fix as this change is already upstreamed in OpenWrt 24.10. Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		| @@ -1,103 +0,0 @@ | ||||
| From 85c07855f533db2972144ea2b7ebd086388dd2ce Mon Sep 17 00:00:00 2001 | ||||
| From: John Crispin <john@phrozen.org> | ||||
| Date: Tue, 5 Dec 2023 15:57:08 +0100 | ||||
| Subject: [PATCH 32/68] netifd: fix vlan-awareness bug | ||||
|  | ||||
| Signed-off-by: John Crispin <john@phrozen.org> | ||||
| --- | ||||
|  .../netifd/patches/004-vlan-awareness.patch   | 83 +++++++++++++++++++ | ||||
|  1 file changed, 83 insertions(+) | ||||
|  create mode 100644 package/network/config/netifd/patches/004-vlan-awareness.patch | ||||
|  | ||||
| diff --git a/package/network/config/netifd/patches/004-vlan-awareness.patch b/package/network/config/netifd/patches/004-vlan-awareness.patch | ||||
| new file mode 100644 | ||||
| index 0000000000..00d43957e1 | ||||
| --- /dev/null | ||||
| +++ b/package/network/config/netifd/patches/004-vlan-awareness.patch | ||||
| @@ -0,0 +1,83 @@ | ||||
| +diff --git a/bridge.c b/bridge.c | ||||
| +index c931923e3299..2128ec75a0fb 100644 | ||||
| +--- a/bridge.c | ||||
| ++++ b/bridge.c | ||||
| +@@ -223,7 +223,9 @@ bridge_set_member_vlan(struct bridge_member *bm, struct bridge_vlan *vlan, bool | ||||
| + 	if (!port) | ||||
| + 		return; | ||||
| +  | ||||
| +-	if (bridge_member_vlan_is_pvid(bm, port)) | ||||
| ++	if (!add && bm->pvid == vlan->vid) | ||||
| ++		bm->pvid = 0; | ||||
| ++	else if (add && bridge_member_vlan_is_pvid(bm, port)) | ||||
| + 		bm->pvid = vlan->vid; | ||||
| +  | ||||
| + 	__bridge_set_member_vlan(bm, vlan, port, add); | ||||
| +@@ -275,12 +277,12 @@ bridge_set_vlan_state(struct bridge_state *bst, struct bridge_vlan *vlan, bool a | ||||
| + { | ||||
| + 	struct bridge_member *bm; | ||||
| + 	struct bridge_vlan *vlan2; | ||||
| ++	bool clear_pvid = false; | ||||
| +  | ||||
| + 	bridge_set_local_vlan(bst, vlan, add); | ||||
| +  | ||||
| + 	vlist_for_each_element(&bst->members, bm, node) { | ||||
| + 		struct bridge_vlan_port *port; | ||||
| +-		int new_pvid = -1; | ||||
| +  | ||||
| + 		port = bridge_find_vlan_member_port(bm, vlan); | ||||
| + 		if (!port) | ||||
| +@@ -293,17 +295,18 @@ bridge_set_vlan_state(struct bridge_state *bst, struct bridge_vlan *vlan, bool a | ||||
| + 			vlan2 = bridge_recalc_member_pvid(bm); | ||||
| + 			if (vlan2 && vlan2->vid != vlan->vid) { | ||||
| + 				bridge_set_member_vlan(bm, vlan2, false); | ||||
| ++				bm->pvid = vlan2->vid; | ||||
| + 				bridge_set_member_vlan(bm, vlan2, true); | ||||
| ++			} else if (!vlan2) { | ||||
| ++				clear_pvid = true; | ||||
| + 			} | ||||
| +-			new_pvid = vlan2 ? vlan2->vid : 0; | ||||
| + 		} | ||||
| +  | ||||
| +-		if (!bm->present) | ||||
| +-			continue; | ||||
| ++		if (bm->present) | ||||
| ++			__bridge_set_member_vlan(bm, vlan, port, add); | ||||
| +  | ||||
| +-		__bridge_set_member_vlan(bm, vlan, port, add); | ||||
| +-		if (new_pvid >= 0) | ||||
| +-			bm->pvid = new_pvid; | ||||
| ++		if (clear_pvid) | ||||
| ++			bm->pvid = 0; | ||||
| + 	} | ||||
| + } | ||||
| +  | ||||
| +@@ -1369,14 +1372,14 @@ bridge_vlan_update(struct vlist_tree *tree, struct vlist_node *node_new, | ||||
| + 	struct bridge_state *bst = container_of(tree, struct bridge_state, dev.vlans); | ||||
| + 	struct bridge_vlan *vlan_new = NULL, *vlan_old = NULL; | ||||
| +  | ||||
| +-	if (!bst->has_vlans || !bst->active) | ||||
| +-		goto out; | ||||
| +- | ||||
| + 	if (node_old) | ||||
| + 		vlan_old = container_of(node_old, struct bridge_vlan, node); | ||||
| + 	if (node_new) | ||||
| + 		vlan_new = container_of(node_new, struct bridge_vlan, node); | ||||
| +  | ||||
| ++	if (!bst->has_vlans || !bst->active) | ||||
| ++		goto out; | ||||
| ++ | ||||
| + 	if (node_new && node_old && bridge_vlan_equal(vlan_old, vlan_new)) { | ||||
| + 		list_splice_init(&vlan_old->hotplug_ports, &vlan_new->hotplug_ports); | ||||
| + 		goto out; | ||||
| +@@ -1391,9 +1394,8 @@ bridge_vlan_update(struct vlist_tree *tree, struct vlist_node *node_new, | ||||
| + 	if (node_new) | ||||
| + 		vlan_new->pending = true; | ||||
| +  | ||||
| +-	bst->dev.config_pending = true; | ||||
| +- | ||||
| + out: | ||||
| ++	bst->dev.config_pending = true; | ||||
| + 	bridge_vlan_free(vlan_old); | ||||
| + } | ||||
| +  | ||||
| --  | ||||
| 2.34.1 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 John Crispin
					John Crispin