Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2021-11-12 13:44:03 +08:00
commit bd3c36f75e
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
6 changed files with 78 additions and 14 deletions

View File

@ -1,6 +1,8 @@
BPF_DEPENDS := @HAS_BPF_TOOLCHAIN
LLVM_VER:=
CLANG_MIN_VER:=12
ifneq ($(CONFIG_USE_LLVM_HOST),)
BPF_TOOLCHAIN_HOST_PATH:=$(call qstrip,$(CONFIG_BPF_TOOLCHAIN_HOST_PATH))
ifneq ($(BPF_TOOLCHAIN_HOST_PATH),)
@ -61,6 +63,14 @@ BPF_CFLAGS := \
-Wno-unused-label \
-O2 -emit-llvm -Xclang -disable-llvm-passes
ifeq ($(DUMP),)
CLANG_VER:=$(shell clang -dM -E - < /dev/null | grep __clang_major__ | cut -d' ' -f3)
CLANG_VER_VALID:=$(shell [ "$(CLANG_VER)" -ge "$(CLANG_MIN_VER)" ] && echo 1 )
ifeq ($(CLANG_VER_VALID),)
$(error ERROR: LLVM/clang version too old. Minimum required: $(CLANG_MIN_VER), found: $(CLANG_VER))
endif
endif
define CompileBPF
$(CLANG) -g -target $(BPF_ARCH)-linux-gnu $(BPF_CFLAGS) $(2) \
-c $(1) -o $(patsubst %.c,%.bc,$(1))

View File

@ -0,0 +1,37 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 10 Nov 2021 22:17:13 +0100
Subject: [PATCH] mac80211: drop check for DONT_REORDER in
__ieee80211_select_queue
When __ieee80211_select_queue is called, skb->cb has not been cleared yet,
which means that info->control.flags can contain garbage.
In some cases this leads to IEEE80211_TX_CTRL_DONT_REORDER being set, causing
packets marked for other queues to randomly end up in BE instead.
This flag only needs to be checked in ieee80211_select_queue_80211, since
the radiotap parser is the only piece of code that sets it
Fixes: 66d06c84730c ("mac80211: adhere to Tx control flag that prevents frame reordering")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -143,7 +143,6 @@ u16 ieee80211_select_queue_80211(struct
u16 __ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
struct sta_info *sta, struct sk_buff *skb)
{
- struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct mac80211_qos_map *qos_map;
bool qos;
@@ -156,7 +155,7 @@ u16 __ieee80211_select_queue(struct ieee
else
qos = false;
- if (!qos || (info->control.flags & IEEE80211_TX_CTRL_DONT_REORDER)) {
+ if (!qos) {
skb->priority = 0; /* required for correct WPA/11i MIC */
return IEEE80211_AC_BE;
}

View File

@ -3,11 +3,11 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=nat46
PKG_MIRROR_HASH:=a74a9a84605bac6186adf37025b3880eb9cf5931791bb61d47e69b8898cac411
PKG_MIRROR_HASH:=5e7ebe31311a7b79f9eda222e94170611b3e041e3a472f55b6a283d9b0093bd4
PKG_SOURCE_URL:=https://github.com/ayourtch/nat46.git
PKG_SOURCE_DATE:=2021-06-24
PKG_SOURCE_DATE:=2021-11-08
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=9b3a8197421d987d77e1b9df4159cfe0b9820ee9
PKG_SOURCE_VERSION:=1fdf2a3cf90843ef65b8e84ff25d5e0507eaa3fe
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
PKG_LICENSE:=GPL-2.0

11
package/network/services/dnsmasq/files/dnsmasq.init Normal file → Executable file
View File

@ -332,7 +332,7 @@ dhcp_match_add() {
dhcp_host_add() {
local cfg="$1"
local hosttag nametime addrs duids macs tags
local hosttag nametime addrs duids macs tags mtags
config_get_bool force "$cfg" force 0
@ -357,6 +357,11 @@ dhcp_host_add() {
config_get duid "$cfg" duid
config_get tag "$cfg" tag
add_tag() {
mtags="${mtags}tag:$1,"
}
config_list_foreach "$cfg" match_tag add_tag
if [ -n "$mac" ]; then
# --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap
# many MAC are possible to track a laptop ON/OFF dock
@ -394,9 +399,9 @@ dhcp_host_add() {
if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime"
xappend "--dhcp-host=$mtags$macs${duids:+,$duids}$hosttag$addrs$nametime"
else
xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime"
xappend "--dhcp-host=$mtags$macs$hosttag${ip:+,$ip}$nametime"
fi
}

View File

@ -162,7 +162,7 @@
ttl = find_soa(header, qlen, doctored);
--- a/src/ubus.c
+++ b/src/ubus.c
@@ -72,6 +72,14 @@ static struct ubus_object ubus_object =
@@ -72,6 +72,13 @@ static struct ubus_object ubus_object =
.subscribe_cb = ubus_subscribe_cb,
};
@ -170,23 +170,35 @@
+ { .name = "dnsmasq.dns" };
+
+static struct ubus_object ubus_dns_object = {
+ .name = "dnsmasq.dns",
+ .type = &ubus_dns_object_type,
+};
+
static void ubus_subscribe_cb(struct ubus_context *ctx, struct ubus_object *obj)
{
(void)ctx;
@@ -112,6 +120,8 @@ char *ubus_init()
@@ -105,13 +112,21 @@ static void ubus_disconnect_cb(struct ub
char *ubus_init()
{
struct ubus_context *ubus = NULL;
+ char *dns_name;
int ret = 0;
if (!(ubus = ubus_connect(NULL)))
return NULL;
+ dns_name = whine_malloc(strlen(daemon->ubus_name) + 5);
+ sprintf(dns_name, "%s.dns", daemon->ubus_name);
+
ubus_object.name = daemon->ubus_name;
+ ubus_dns_object.name = dns_name;
+
ret = ubus_add_object(ubus, &ubus_object);
+ if (!ret)
+ ret = ubus_add_object(ubus, &ubus_dns_object);
if (ret)
{
ubus_destroy(ubus);
@@ -181,6 +191,17 @@ void check_ubus_listeners()
@@ -181,6 +196,17 @@ void check_ubus_listeners()
} \
} while (0)
@ -204,7 +216,7 @@
static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
@@ -328,6 +349,50 @@ fail:
@@ -328,6 +354,50 @@ fail:
} \
} while (0)

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
PKG_MIRROR_HASH:=0d51642d82d7bb4150355a6986e54504dce171c6fcb7eeff312d20a5d106bad8
PKG_SOURCE_DATE:=2021-11-04
PKG_SOURCE_VERSION:=0ee8e734a7f67220cf4a3412b60ff674b5fb20dd
PKG_MIRROR_HASH:=0ff42d965b6c07fe9d1731395623b78967b83bbeb85deda900dd430a2883643f
PKG_SOURCE_DATE:=2021-11-11
PKG_SOURCE_VERSION:=9d1431e1309e1acee06c016acc08cb7650b1d0af
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0