mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-11-04 04:18:07 +00:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			v2.3.0-rc1
			...
			release/v2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e3e3c9ea72 | ||
| 
						 | 
					a3125e6ab2 | ||
| 
						 | 
					63e8b90656 | ||
| 
						 | 
					70f231d948 | ||
| 
						 | 
					2983d9ca2b | 
@@ -1,4 +1,4 @@
 | 
				
			|||||||
From b912dcd063381438ad70f4a3326ff0ac1be7c3ea Mon Sep 17 00:00:00 2001
 | 
					From 705ea724f1dc4083665746a1cf4c9b0f317667ec Mon Sep 17 00:00:00 2001
 | 
				
			||||||
From: Felix Fietkau <nbd@nbd.name>
 | 
					From: Felix Fietkau <nbd@nbd.name>
 | 
				
			||||||
Date: Tue, 26 Oct 2021 20:41:22 +0200
 | 
					Date: Tue, 26 Oct 2021 20:41:22 +0200
 | 
				
			||||||
Subject: [PATCH] bpf-headers: add a package with kernel headers for ebpf
 | 
					Subject: [PATCH] bpf-headers: add a package with kernel headers for ebpf
 | 
				
			||||||
@@ -87,7 +87,7 @@ index 0000000000..4e227a11d0
 | 
				
			|||||||
+
 | 
					+
 | 
				
			||||||
diff --git a/package/kernel/bpf-headers/Makefile b/package/kernel/bpf-headers/Makefile
 | 
					diff --git a/package/kernel/bpf-headers/Makefile b/package/kernel/bpf-headers/Makefile
 | 
				
			||||||
new file mode 100644
 | 
					new file mode 100644
 | 
				
			||||||
index 0000000000..e316feea55
 | 
					index 0000000000..5f5b89370d
 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/package/kernel/bpf-headers/Makefile
 | 
					+++ b/package/kernel/bpf-headers/Makefile
 | 
				
			||||||
@@ -0,0 +1,99 @@
 | 
					@@ -0,0 +1,99 @@
 | 
				
			||||||
@@ -152,7 +152,7 @@ index 0000000000..e316feea55
 | 
				
			|||||||
+	$(Kernel/Patch/Default)
 | 
					+	$(Kernel/Patch/Default)
 | 
				
			||||||
+endef
 | 
					+endef
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+BPF_DOC = $(wildcard $(patsubst %,$(LINUX_DIR)/scripts/%.py,bpf_doc bpf_helpers_doc))
 | 
					+BPF_DOC = $(PKG_BUILD_DIR)/scripts/bpf_helpers_doc.py
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+define Build/Configure
 | 
					+define Build/Configure
 | 
				
			||||||
+	grep -vE 'CONFIG_(CPU_.*ENDIAN|HZ)' $(PKG_BUILD_DIR)/arch/mips/configs/generic_defconfig > $(PKG_BUILD_DIR)/.config
 | 
					+	grep -vE 'CONFIG_(CPU_.*ENDIAN|HZ)' $(PKG_BUILD_DIR)/arch/mips/configs/generic_defconfig > $(PKG_BUILD_DIR)/.config
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ PKG_BUILD_DEPENDS:=bpf-headers
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
include $(INCLUDE_DIR)/package.mk
 | 
					include $(INCLUDE_DIR)/package.mk
 | 
				
			||||||
include $(INCLUDE_DIR)/cmake.mk
 | 
					include $(INCLUDE_DIR)/cmake.mk
 | 
				
			||||||
#include $(INCLUDE_DIR)/bpf.mk
 | 
					include $(INCLUDE_DIR)/bpf.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Package/qosify
 | 
					define Package/qosify
 | 
				
			||||||
  SECTION:=kernel
 | 
					  SECTION:=kernel
 | 
				
			||||||
@@ -27,12 +27,10 @@ define Package/qosify
 | 
				
			|||||||
  PKGFLAGS+=nonshared
 | 
					  PKGFLAGS+=nonshared
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#BPF_DOC = $(wildcard $(patsubst %,$(BPF_HEADERS_DIR)/scripts/%.py,bpf_doc bpf_helpers_doc))
 | 
					BPF_DOC = $(wildcard $(patsubst %,$(BPF_HEADERS_DIR)/scripts/%.py,bpf_doc bpf_helpers_doc))
 | 
				
			||||||
 | 
					 | 
				
			||||||
TARGET_CFLAGS += -I$(BPF_HEADERS_DIR)/user_headers/include
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Build/Compile
 | 
					define Build/Compile
 | 
				
			||||||
#	$(call CompileBPF,$(PKG_BUILD_DIR)/qosify-bpf.c)
 | 
						$(call CompileBPF,$(PKG_BUILD_DIR)/qosify-bpf.c)
 | 
				
			||||||
	$(Build/Compile/Default)
 | 
						$(Build/Compile/Default)
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,7 +41,7 @@ endef
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
define Package/qosify/install
 | 
					define Package/qosify/install
 | 
				
			||||||
	$(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net
 | 
						$(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net
 | 
				
			||||||
	$(INSTALL_DATA) ./files/qosify-bpf.o $(1)/lib/bpf
 | 
						$(INSTALL_DATA) $(PKG_BUILD_DIR)/qosify-bpf.o $(1)/lib/bpf
 | 
				
			||||||
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/qosify $(1)/usr/sbin/
 | 
						$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/qosify $(1)/usr/sbin/
 | 
				
			||||||
	$(INSTALL_BIN) ./files/qosify.init $(1)/etc/init.d/qosify
 | 
						$(INSTALL_BIN) ./files/qosify.init $(1)/etc/init.d/qosify
 | 
				
			||||||
	$(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify-defaults.conf
 | 
						$(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify-defaults.conf
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@@ -4,7 +4,7 @@ config defaults
 | 
				
			|||||||
	option dscp_bulk CS0
 | 
						option dscp_bulk CS0
 | 
				
			||||||
	option dscp_default_udp	CS4
 | 
						option dscp_default_udp	CS4
 | 
				
			||||||
	option bulk_trigger_timeout 5
 | 
						option bulk_trigger_timeout 5
 | 
				
			||||||
	option bulk_trigger_pps	100
 | 
						option bulk_trigger_pps	0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config interface wan
 | 
					config interface wan
 | 
				
			||||||
	option name wan
 | 
						option name wan
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,7 @@ add_defaults() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	json_add_boolean reset 1
 | 
						json_add_boolean reset 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_get files "$cfg" files
 | 
						config_get files "$cfg" defaults
 | 
				
			||||||
	json_add_array files
 | 
						json_add_array files
 | 
				
			||||||
	for i in $files; do
 | 
						for i in $files; do
 | 
				
			||||||
		json_add_string "" "$i"
 | 
							json_add_string "" "$i"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,7 @@ int main(int argc, char **argv)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	uloop_run();
 | 
						uloop_run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qosify_ubus_stop();
 | 
				
			||||||
	qosify_iface_stop();
 | 
						qosify_iface_stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uloop_done();
 | 
						uloop_done();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -238,7 +238,9 @@ parse_l4proto(struct qosify_config *config, struct __sk_buff *skb,
 | 
				
			|||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((*value & DSCP_FALLBACK_FLAG) && *dscp_out)
 | 
						if ((*value & DSCP_FALLBACK_FLAG) && *dscp_out)
 | 
				
			||||||
		*dscp_out = *value;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						*dscp_out = *value;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ struct qosify_map_data {
 | 
				
			|||||||
	uint8_t file_dscp;
 | 
						uint8_t file_dscp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	union {
 | 
						union {
 | 
				
			||||||
		uint16_t port;
 | 
							uint32_t port;
 | 
				
			||||||
		struct in_addr ip;
 | 
							struct in_addr ip;
 | 
				
			||||||
		struct in6_addr ip6;
 | 
							struct in6_addr ip6;
 | 
				
			||||||
	} addr;
 | 
						} addr;
 | 
				
			||||||
@@ -77,6 +77,7 @@ void qosify_iface_status(struct blob_buf *b);
 | 
				
			|||||||
void qosify_iface_stop(void);
 | 
					void qosify_iface_stop(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int qosify_ubus_init(void);
 | 
					int qosify_ubus_init(void);
 | 
				
			||||||
 | 
					void qosify_ubus_stop(void);
 | 
				
			||||||
int qosify_ubus_check_interface(const char *name, char *ifname, int ifname_len);
 | 
					int qosify_ubus_check_interface(const char *name, char *ifname, int ifname_len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,8 +139,8 @@ static const struct blobmsg_policy qosify_config_policy[__CL_CONFIG_MAX] = {
 | 
				
			|||||||
	[CL_CONFIG_RESET] = { "reset", BLOBMSG_TYPE_BOOL },
 | 
						[CL_CONFIG_RESET] = { "reset", BLOBMSG_TYPE_BOOL },
 | 
				
			||||||
	[CL_CONFIG_FILES] = { "files", BLOBMSG_TYPE_ARRAY },
 | 
						[CL_CONFIG_FILES] = { "files", BLOBMSG_TYPE_ARRAY },
 | 
				
			||||||
	[CL_CONFIG_TIMEOUT] = { "timeout", BLOBMSG_TYPE_INT32 },
 | 
						[CL_CONFIG_TIMEOUT] = { "timeout", BLOBMSG_TYPE_INT32 },
 | 
				
			||||||
	[CL_CONFIG_DSCP_UDP] = { "dscp_default_tcp", BLOBMSG_TYPE_STRING },
 | 
						[CL_CONFIG_DSCP_UDP] = { "dscp_default_udp", BLOBMSG_TYPE_STRING },
 | 
				
			||||||
	[CL_CONFIG_DSCP_TCP] = { "dscp_default_udp", BLOBMSG_TYPE_STRING },
 | 
						[CL_CONFIG_DSCP_TCP] = { "dscp_default_tcp", BLOBMSG_TYPE_STRING },
 | 
				
			||||||
	[CL_CONFIG_DSCP_PRIO] = { "dscp_prio", BLOBMSG_TYPE_STRING },
 | 
						[CL_CONFIG_DSCP_PRIO] = { "dscp_prio", BLOBMSG_TYPE_STRING },
 | 
				
			||||||
	[CL_CONFIG_DSCP_BULK] = { "dscp_bulk", BLOBMSG_TYPE_STRING },
 | 
						[CL_CONFIG_DSCP_BULK] = { "dscp_bulk", BLOBMSG_TYPE_STRING },
 | 
				
			||||||
	[CL_CONFIG_DSCP_ICMP] = { "dscp_icmp", BLOBMSG_TYPE_STRING },
 | 
						[CL_CONFIG_DSCP_ICMP] = { "dscp_icmp", BLOBMSG_TYPE_STRING },
 | 
				
			||||||
@@ -308,6 +308,11 @@ int qosify_ubus_init(void)
 | 
				
			|||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void qosify_ubus_stop(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						ubus_auto_shutdown(&conn);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct iface_req {
 | 
					struct iface_req {
 | 
				
			||||||
	char *name;
 | 
						char *name;
 | 
				
			||||||
	int len;
 | 
						int len;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,7 @@ ALLWIFIBOARDS:= \
 | 
				
			|||||||
	edgecore-eap101 \
 | 
						edgecore-eap101 \
 | 
				
			||||||
	sercomm-wallaby \
 | 
						sercomm-wallaby \
 | 
				
			||||||
	edgecore-eap102 \
 | 
						edgecore-eap102 \
 | 
				
			||||||
	wallys-dr6018
 | 
						wallys-dr6018 \
 | 
				
			||||||
	tplink-ex227 \
 | 
						tplink-ex227 \
 | 
				
			||||||
	tplink-ex447
 | 
						tplink-ex447
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
From 164756923b3e89cb2fc825a80d4cc4236fb6dc89 Mon Sep 17 00:00:00 2001
 | 
					From 640973dcc794f43d99df7674209d9532711c49b4 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
From: John Crispin <john@phrozen.org>
 | 
					From: John Crispin <john@phrozen.org>
 | 
				
			||||||
Date: Sat, 18 Jul 2020 08:53:44 +0200
 | 
					Date: Sat, 18 Jul 2020 08:53:44 +0200
 | 
				
			||||||
Subject: [PATCH 01/30] ipq807x: add the Qualcomm AX target support
 | 
					Subject: [PATCH 01/30] ipq807x: add the Qualcomm AX target support
 | 
				
			||||||
@@ -63,9 +63,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
 | 
				
			|||||||
 .../ipq807x/patches/110-add-esmt-nand.patch   |    37 +
 | 
					 .../ipq807x/patches/110-add-esmt-nand.patch   |    37 +
 | 
				
			||||||
 target/linux/ipq807x/patches/111-eap106.patch |   765 +
 | 
					 target/linux/ipq807x/patches/111-eap106.patch |   765 +
 | 
				
			||||||
 target/linux/ipq807x/patches/112-pstore.patch |   147 +
 | 
					 target/linux/ipq807x/patches/112-pstore.patch |   147 +
 | 
				
			||||||
 .../ipq807x/patches/200-bpf_backport.patch    | 44635 ++++++++++++++++
 | 
					 .../ipq807x/patches/200-bpf_backport.patch    | 44763 ++++++++++++++++
 | 
				
			||||||
 toolchain/kernel-headers/Makefile             |     8 +
 | 
					 toolchain/kernel-headers/Makefile             |     8 +
 | 
				
			||||||
 60 files changed, 56539 insertions(+), 2 deletions(-)
 | 
					 60 files changed, 56667 insertions(+), 2 deletions(-)
 | 
				
			||||||
 create mode 100644 package/boot/uboot-envtools/files/ipq807x
 | 
					 create mode 100644 package/boot/uboot-envtools/files/ipq807x
 | 
				
			||||||
 create mode 100644 target/linux/ipq807x/109-logspam.patch
 | 
					 create mode 100644 target/linux/ipq807x/109-logspam.patch
 | 
				
			||||||
 create mode 100644 target/linux/ipq807x/Makefile
 | 
					 create mode 100644 target/linux/ipq807x/Makefile
 | 
				
			||||||
@@ -16570,10 +16570,10 @@ index 0000000000..dc3960306d
 | 
				
			|||||||
+  * The following routines scan a subtree and registers a device for
 | 
					+  * The following routines scan a subtree and registers a device for
 | 
				
			||||||
diff --git a/target/linux/ipq807x/patches/200-bpf_backport.patch b/target/linux/ipq807x/patches/200-bpf_backport.patch
 | 
					diff --git a/target/linux/ipq807x/patches/200-bpf_backport.patch b/target/linux/ipq807x/patches/200-bpf_backport.patch
 | 
				
			||||||
new file mode 100644
 | 
					new file mode 100644
 | 
				
			||||||
index 0000000000..3e730c313e
 | 
					index 0000000000..915f965fa0
 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/target/linux/ipq807x/patches/200-bpf_backport.patch
 | 
					+++ b/target/linux/ipq807x/patches/200-bpf_backport.patch
 | 
				
			||||||
@@ -0,0 +1,44635 @@
 | 
					@@ -0,0 +1,44763 @@
 | 
				
			||||||
+--- a/arch/arm/Kconfig
 | 
					+--- a/arch/arm/Kconfig
 | 
				
			||||||
++++ b/arch/arm/Kconfig
 | 
					++++ b/arch/arm/Kconfig
 | 
				
			||||||
+@@ -38,7 +38,7 @@ config ARM
 | 
					+@@ -38,7 +38,7 @@ config ARM
 | 
				
			||||||
@@ -61209,6 +61209,134 @@ index 0000000000..3e730c313e
 | 
				
			|||||||
+ 	if (IS_ERR(fp))
 | 
					+ 	if (IS_ERR(fp))
 | 
				
			||||||
+ 		return PTR_ERR(fp);
 | 
					+ 		return PTR_ERR(fp);
 | 
				
			||||||
+ 
 | 
					+ 
 | 
				
			||||||
 | 
					+--- a/net/8021q/vlan_core.c
 | 
				
			||||||
 | 
					++++ b/net/8021q/vlan_core.c
 | 
				
			||||||
 | 
					+@@ -50,7 +50,7 @@ bool vlan_do_receive(struct sk_buff **sk
 | 
				
			||||||
 | 
					+ 	}
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	skb->priority = vlan_get_ingress_priority(vlan_dev, skb->vlan_tci);
 | 
				
			||||||
 | 
					+-	skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++	__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	rx_stats = this_cpu_ptr(vlan_dev_priv(vlan_dev)->vlan_pcpu_stats);
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+--- a/net/ipv4/ip_tunnel_core.c
 | 
				
			||||||
 | 
					++++ b/net/ipv4/ip_tunnel_core.c
 | 
				
			||||||
 | 
					+@@ -128,7 +128,7 @@ int iptunnel_pull_header(struct sk_buff
 | 
				
			||||||
 | 
					+ 	secpath_reset(skb);
 | 
				
			||||||
 | 
					+ 	skb_clear_hash_if_not_l4(skb);
 | 
				
			||||||
 | 
					+ 	skb_dst_drop(skb);
 | 
				
			||||||
 | 
					+-	skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++	__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 	skb_set_queue_mapping(skb, 0);
 | 
				
			||||||
 | 
					+ 	skb->pkt_type = PACKET_HOST;
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+--- a/net/bridge/br_netfilter_hooks.c
 | 
				
			||||||
 | 
					++++ b/net/bridge/br_netfilter_hooks.c
 | 
				
			||||||
 | 
					+@@ -673,10 +673,8 @@ static int br_nf_push_frag_xmit(struct n
 | 
				
			||||||
 | 
					+ 		return 0;
 | 
				
			||||||
 | 
					+ 	}
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+-	if (data->vlan_tci) {
 | 
				
			||||||
 | 
					+-		skb->vlan_tci = data->vlan_tci;
 | 
				
			||||||
 | 
					+-		skb->vlan_proto = data->vlan_proto;
 | 
				
			||||||
 | 
					+-	}
 | 
				
			||||||
 | 
					++	if (data->vlan_proto)
 | 
				
			||||||
 | 
					++		__vlan_hwaccel_put_tag(skb, data->vlan_proto, data->vlan_tci);
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	skb_copy_to_linear_data_offset(skb, -data->size, data->mac, data->size);
 | 
				
			||||||
 | 
					+ 	__skb_push(skb, data->encap_size);
 | 
				
			||||||
 | 
					+@@ -740,8 +738,13 @@ static int br_nf_dev_queue_xmit(struct n
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 		data = this_cpu_ptr(&brnf_frag_data_storage);
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+-		data->vlan_tci = skb->vlan_tci;
 | 
				
			||||||
 | 
					+-		data->vlan_proto = skb->vlan_proto;
 | 
				
			||||||
 | 
					++		if (skb_vlan_tag_present(skb)) {
 | 
				
			||||||
 | 
					++			data->vlan_tci = skb->vlan_tci;
 | 
				
			||||||
 | 
					++			data->vlan_proto = skb->vlan_proto;
 | 
				
			||||||
 | 
					++		} else {
 | 
				
			||||||
 | 
					++			data->vlan_proto = 0;
 | 
				
			||||||
 | 
					++		}
 | 
				
			||||||
 | 
					++
 | 
				
			||||||
 | 
					+ 		data->encap_size = nf_bridge_encap_header_len(skb);
 | 
				
			||||||
 | 
					+ 		data->size = ETH_HLEN + data->encap_size;
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+--- a/net/bridge/br_private.h
 | 
				
			||||||
 | 
					++++ b/net/bridge/br_private.h
 | 
				
			||||||
 | 
					+@@ -751,7 +751,7 @@ static inline int br_vlan_get_tag(const
 | 
				
			||||||
 | 
					+ 	int err = 0;
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	if (skb_vlan_tag_present(skb)) {
 | 
				
			||||||
 | 
					+-		*vid = skb_vlan_tag_get(skb) & VLAN_VID_MASK;
 | 
				
			||||||
 | 
					++		*vid = skb_vlan_tag_get_id(skb);
 | 
				
			||||||
 | 
					+ 	} else {
 | 
				
			||||||
 | 
					+ 		*vid = 0;
 | 
				
			||||||
 | 
					+ 		err = -EINVAL;
 | 
				
			||||||
 | 
					+--- a/net/bridge/br_vlan.c
 | 
				
			||||||
 | 
					++++ b/net/bridge/br_vlan.c
 | 
				
			||||||
 | 
					+@@ -354,7 +354,7 @@ struct sk_buff *br_handle_vlan(struct ne
 | 
				
			||||||
 | 
					+ 		}
 | 
				
			||||||
 | 
					+ 	}
 | 
				
			||||||
 | 
					+ 	if (v->flags & BRIDGE_VLAN_INFO_UNTAGGED)
 | 
				
			||||||
 | 
					+-		skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++		__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ out:
 | 
				
			||||||
 | 
					+ 	return skb;
 | 
				
			||||||
 | 
					+@@ -420,8 +420,8 @@ static bool __allowed_ingress(struct net
 | 
				
			||||||
 | 
					+ 			__vlan_hwaccel_put_tag(skb, proto, pvid);
 | 
				
			||||||
 | 
					+ 		else
 | 
				
			||||||
 | 
					+ 			/* Priority-tagged Frame.
 | 
				
			||||||
 | 
					+-			 * At this point, We know that skb->vlan_tci had
 | 
				
			||||||
 | 
					+-			 * VLAN_TAG_PRESENT bit and its VID field was 0x000.
 | 
				
			||||||
 | 
					++			 * At this point, we know that skb->vlan_tci VID
 | 
				
			||||||
 | 
					++			 * field was 0.
 | 
				
			||||||
 | 
					+ 			 * We update only VID field and preserve PCP field.
 | 
				
			||||||
 | 
					+ 			 */
 | 
				
			||||||
 | 
					+ 			skb->vlan_tci |= pvid;
 | 
				
			||||||
 | 
					+--- a/net/core/dev.c
 | 
				
			||||||
 | 
					++++ b/net/core/dev.c
 | 
				
			||||||
 | 
					+@@ -3988,7 +3988,7 @@ ncls:
 | 
				
			||||||
 | 
					+ 		 * and set skb->priority like in vlan_do_receive()
 | 
				
			||||||
 | 
					+ 		 * For the time being, just ignore Priority Code Point
 | 
				
			||||||
 | 
					+ 		 */
 | 
				
			||||||
 | 
					+-		skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++		__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 	}
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	type = skb->protocol;
 | 
				
			||||||
 | 
					+@@ -4211,7 +4211,9 @@ static void gro_list_prepare(struct napi
 | 
				
			||||||
 | 
					+ 		}
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 		diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev;
 | 
				
			||||||
 | 
					+-		diffs |= p->vlan_tci ^ skb->vlan_tci;
 | 
				
			||||||
 | 
					++		diffs |= skb_vlan_tag_present(p) ^ skb_vlan_tag_present(skb);
 | 
				
			||||||
 | 
					++		if (skb_vlan_tag_present(p))
 | 
				
			||||||
 | 
					++			diffs |= p->vlan_tci ^ skb->vlan_tci;
 | 
				
			||||||
 | 
					+ 		diffs |= skb_metadata_dst_cmp(p, skb);
 | 
				
			||||||
 | 
					+ 		if (maclen == ETH_HLEN)
 | 
				
			||||||
 | 
					+ 			diffs |= compare_ether_header(skb_mac_header(p),
 | 
				
			||||||
 | 
					+@@ -4452,7 +4454,7 @@ static void napi_reuse_skb(struct napi_s
 | 
				
			||||||
 | 
					+ 	__skb_pull(skb, skb_headlen(skb));
 | 
				
			||||||
 | 
					+ 	/* restore the reserve we had after netdev_alloc_skb_ip_align() */
 | 
				
			||||||
 | 
					+ 	skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb));
 | 
				
			||||||
 | 
					+-	skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++	__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 	skb->dev = napi->dev;
 | 
				
			||||||
 | 
					+ 	skb->skb_iif = 0;
 | 
				
			||||||
 | 
					+ 	skb->encapsulation = 0;
 | 
				
			||||||
 | 
					+--- a/net/core/skbuff.c
 | 
				
			||||||
 | 
					++++ b/net/core/skbuff.c
 | 
				
			||||||
 | 
					+@@ -4491,7 +4491,7 @@ int skb_vlan_pop(struct sk_buff *skb)
 | 
				
			||||||
 | 
					+ 	int err;
 | 
				
			||||||
 | 
					+ 
 | 
				
			||||||
 | 
					+ 	if (likely(skb_vlan_tag_present(skb))) {
 | 
				
			||||||
 | 
					+-		skb->vlan_tci = 0;
 | 
				
			||||||
 | 
					++		__vlan_hwaccel_clear_tag(skb);
 | 
				
			||||||
 | 
					+ 	} else {
 | 
				
			||||||
 | 
					+ 		if (unlikely((skb->protocol != htons(ETH_P_8021Q) &&
 | 
				
			||||||
 | 
					+ 			      skb->protocol != htons(ETH_P_8021AD)) ||
 | 
				
			||||||
diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile
 | 
					diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile
 | 
				
			||||||
index c33f26d46d..06236b5a47 100644
 | 
					index c33f26d46d..06236b5a47 100644
 | 
				
			||||||
--- a/toolchain/kernel-headers/Makefile
 | 
					--- a/toolchain/kernel-headers/Makefile
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user