1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

fix netift

This commit is contained in:
suyuan168 2022-04-06 20:55:49 +08:00
parent b76bbb581c
commit 5930a09dfc
38 changed files with 1918 additions and 68 deletions

View file

@ -0,0 +1,59 @@
Author: Ken Zhu <guigenz@codeaurora.org>
Date: Mon Mar 12 11:23:11 2018 -0700
netifd: add rfc7597 draft03 version support for tunipip6
draft03 version of rfc7597 has a little different from
the standard version.
Change-Id: Ide3692ffd763c1741c96134b5df42446045f85bf
Signed-off-by: Ken Zhu <guigenz@codeaurora.org>
diff -Nur a/system.c netifd-2019-08-05-5e02f944/system.c
--- a/system.c 2020-11-11 17:40:14.360936791 -0800
+++ netifd-2019-08-05-5e02f944/system.c 2020-11-11 17:40:28.996873250 -0800
@@ -89,9 +89,10 @@
.params = sixrd_data_attrs,
};
-static const struct blobmsg_policy ipip6_data_attrs[__SIXRD_DATA_ATTR_MAX] = {
+static const struct blobmsg_policy ipip6_data_attrs[__IPIP6_DATA_ATTR_MAX] = {
[IPIP6_DATA_ENCAPLIMIT] = { .name = "encaplimit", .type = BLOBMSG_TYPE_STRING },
[IPIP6_DATA_FMRS] = { .name = "fmrs", .type = BLOBMSG_TYPE_ARRAY },
+ [IPIP6_DATA_DRAFT03] = { .name = "draft03", .type = BLOBMSG_TYPE_INT32 },
};
const struct uci_blob_param_list ipip6_data_attr_list = {
diff -Nur a/system.h netifd-2019-08-05-5e02f944/system.h
--- a/system.h 2020-11-11 17:40:14.364936773 -0800
+++ netifd-2019-08-05-5e02f944/system.h 2020-11-11 17:40:28.996873250 -0800
@@ -77,6 +77,7 @@
enum ipip6_data {
IPIP6_DATA_ENCAPLIMIT,
IPIP6_DATA_FMRS,
+ IPIP6_DATA_DRAFT03,
__IPIP6_DATA_ATTR_MAX
};
diff -Nur a/system-linux.c netifd-2019-08-05-5e02f944/system-linux.c
--- a/system-linux.c 2020-11-11 17:40:14.360936791 -0800
+++ netifd-2019-08-05-5e02f944/system-linux.c 2020-11-11 17:45:05.427539372 -0800
@@ -2673,6 +2673,18 @@
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+ unsigned int draft03 = 0;
+ if ((cur = tb[IPIP6_DATA_DRAFT03])) {
+ draft03 = blobmsg_get_u32(cur);
+ if (ttl > 255)
+ return -EINVAL;
+ if (draft03)
+ nla_put_u8(nlm, IFLA_IPTUN_DRAFT03, 1);
+ }
+
+#endif
+
#ifdef IFLA_IPTUN_FMR_MAX
if ((cur = tb_data[IPIP6_DATA_FMRS])) {
struct blob_attr *rcur;