1
1
Files
zyxel-vmg8825_b50b-cfw/package/libs/libnl/patches-2.0/170-zextmark.patch
T
2026-04-17 18:33:03 +02:00

235 lines
7.8 KiB
Diff
Executable File

Index: libnl-2.0/include/linux/netfilter/nfnetlink_queue.h
===================================================================
--- libnl-2.0.orig/include/linux/netfilter/nfnetlink_queue.h 2018-07-12 19:28:24.923750700 +0800
+++ libnl-2.0/include/linux/netfilter/nfnetlink_queue.h 2018-07-13 16:30:57.578801500 +0800
@@ -45,6 +45,7 @@
NFQA_IFINDEX_PHYSOUTDEV, /* u_int32_t ifindex */
NFQA_HWADDR, /* nfqnl_msg_packet_hw */
NFQA_PAYLOAD, /* opaque data payload */
+ NFQA_ZEXTMARK, /* u_int32_t nfmark */
__NFQA_MAX
};
Index: libnl-2.0/include/netlink-types.h
===================================================================
--- libnl-2.0.orig/include/netlink-types.h 2010-10-13 22:43:44.000000000 +0800
+++ libnl-2.0/include/netlink-types.h 2018-07-17 15:11:15.883139200 +0800
@@ -753,6 +753,7 @@
uint32_t ct_status_mask;
uint32_t ct_timeout;
uint32_t ct_mark;
+ uint32_t ct_zextmark;
uint32_t ct_use;
uint32_t ct_id;
@@ -814,6 +815,7 @@
uint16_t queue_msg_hwproto;
uint32_t queue_msg_packetid;
uint32_t queue_msg_mark;
+ uint32_t queue_msg_zextmark; //Zyxel, Rune
struct timeval queue_msg_timestamp;
uint32_t queue_msg_indev;
uint32_t queue_msg_outdev;
Index: libnl-2.0/lib/netfilter/queue_msg.c
===================================================================
--- libnl-2.0.orig/lib/netfilter/queue_msg.c 2010-10-13 22:43:45.000000000 +0800
+++ libnl-2.0/lib/netfilter/queue_msg.c 2018-07-12 19:32:15.828250700 +0800
@@ -47,6 +47,9 @@
.minlen = sizeof(struct nfqnl_msg_verdict_hdr),
},
[NFQA_MARK] = { .type = NLA_U32 },
+#ifdef ZYXEL_EXT_MARK
+ [NFQA_ZEXTMARK] = { .type = NLA_U32 },
+#endif
[NFQA_TIMESTAMP] = {
.minlen = sizeof(struct nfqnl_msg_packet_timestamp),
},
@@ -95,6 +98,11 @@
if (attr)
nfnl_queue_msg_set_mark(msg, ntohl(nla_get_u32(attr)));
+#ifdef ZYXEL_EXT_MARK
+ attr = tb[NFQA_ZEXTMARK];
+ if (attr)
+ nfnl_queue_msg_set_zextmark(msg, ntohl(nla_get_u32(attr)));
+#endif
attr = tb[NFQA_TIMESTAMP];
if (attr) {
struct nfqnl_msg_packet_timestamp *timestamp = nla_data(attr);
@@ -183,6 +191,12 @@
ntohl(nfnl_queue_msg_get_mark(msg))) < 0)
goto nla_put_failure;
+#ifdef ZYXEL_EXT_MARK
+ if (nfnl_queue_msg_test_zextmark(msg) &&
+ nla_put_u32(nlmsg, NFQA_ZEXTMARK,
+ ntohl(nfnl_queue_msg_get_zextmark(msg))) < 0)
+ goto nla_put_failure;
+#endif
return nlmsg;
nla_put_failure:
Index: libnl-2.0/lib/netfilter/queue_msg_obj.c
===================================================================
--- libnl-2.0.orig/lib/netfilter/queue_msg_obj.c 2010-10-13 22:43:45.000000000 +0800
+++ libnl-2.0/lib/netfilter/queue_msg_obj.c 2018-07-12 19:32:56.695250700 +0800
@@ -30,6 +30,7 @@
#define QUEUE_MSG_ATTR_HWADDR (1UL << 11)
#define QUEUE_MSG_ATTR_PAYLOAD (1UL << 12)
#define QUEUE_MSG_ATTR_VERDICT (1UL << 13)
+#define QUEUE_MSG_ATTR_ZEXTMARK (1UL << 14) //Zyxel, Rune
/** @endcond */
static void nfnl_queue_msg_free_data(struct nl_object *c)
@@ -285,6 +286,23 @@
return msg->queue_msg_mark;
}
+#ifdef ZYXEL_EXT_MARK
+void nfnl_queue_msg_set_zextmark(struct nfnl_queue_msg *msg, uint32_t zextmark)
+{
+ msg->queue_msg_zextmark = zextmark;
+ msg->ce_mask |= QUEUE_MSG_ATTR_ZEXTMARK;
+}
+
+int nfnl_queue_msg_test_zextmark(const struct nfnl_queue_msg *msg)
+{
+ return !!(msg->ce_mask & QUEUE_MSG_ATTR_ZEXTMARK);
+}
+
+uint32_t nfnl_queue_msg_get_zextmark(const struct nfnl_queue_msg *msg)
+{
+ return msg->queue_msg_zextmark;
+}
+#endif
void nfnl_queue_msg_set_timestamp(struct nfnl_queue_msg *msg,
struct timeval *tv)
{
@@ -466,6 +484,9 @@
__ADD(QUEUE_MSG_ATTR_HWADDR, hwaddr)
__ADD(QUEUE_MSG_ATTR_PAYLOAD, payload)
__ADD(QUEUE_MSG_ATTR_VERDICT, verdict)
+#ifdef ZYXEL_EXT_MARK
+ __ADD(QUEUE_MSG_ATTR_ZEXTMARK, zextmark)
+#endif
};
static char *nfnl_queue_msg_attrs2str(int attrs, char *buf, size_t len)
Index: libnl-2.0/lib/route/rule.c
===================================================================
--- libnl-2.0.orig/lib/route/rule.c 2010-10-13 22:43:46.000000000 +0800
+++ libnl-2.0/lib/route/rule.c 2018-07-12 19:35:36.423250700 +0800
@@ -37,6 +37,7 @@
#define RULE_ATTR_SRC_LEN 0x0400
#define RULE_ATTR_DST_LEN 0x0800
#define RULE_ATTR_SRCMAP 0x1000
+#define RULE_ATTR_ZEXTMARK 0x2000
static struct nl_cache_ops rtnl_rule_ops;
static struct nl_object_ops rule_obj_ops;
@@ -305,6 +306,9 @@
__ADD(RULE_ATTR_FAMILY, family)
__ADD(RULE_ATTR_PRIO, prio)
__ADD(RULE_ATTR_MARK, mark)
+#ifdef ZYXEL_EXT_MARK
+ __ADD(RULE_ATTR_ZEXTMARK, zextmark)
+#endif
__ADD(RULE_ATTR_IIF, iif)
__ADD(RULE_ATTR_REALMS, realms)
__ADD(RULE_ATTR_SRC, src)
Index: libnl-2.0/lib/netfilter/ct.c
===================================================================
--- libnl-2.0.orig/lib/netfilter/ct.c 2010-10-13 22:43:45.000000000 +0800
+++ libnl-2.0/lib/netfilter/ct.c 2018-07-17 15:09:20.830633300 +0800
@@ -329,6 +329,10 @@
nfnl_ct_set_timeout(ct, ntohl(nla_get_u32(tb[CTA_TIMEOUT])));
if (tb[CTA_MARK])
nfnl_ct_set_mark(ct, ntohl(nla_get_u32(tb[CTA_MARK])));
+#ifdef ZYXEL_EXT_MARK
+ if (tb[CTA_ZEXTMARK])
+ nfnl_ct_set_mark(ct, ntohl(nla_get_u32(tb[CTA_ZEXTMARK])));
+#endif
if (tb[CTA_USE])
nfnl_ct_set_use(ct, ntohl(nla_get_u32(tb[CTA_USE])));
if (tb[CTA_ID])
Index: libnl-2.0/lib/netfilter/ct_obj.c
===================================================================
--- libnl-2.0.orig/lib/netfilter/ct_obj.c 2010-10-13 22:43:45.000000000 +0800
+++ libnl-2.0/lib/netfilter/ct_obj.c 2018-07-17 15:10:08.223109900 +0800
@@ -51,6 +51,7 @@
#define CT_ATTR_REPL_ICMP_CODE (1UL << 23)
#define CT_ATTR_REPL_PACKETS (1UL << 24)
#define CT_ATTR_REPL_BYTES (1UL << 25)
+#define CT_ATTR_ZEXTMARK (1UL << 26)
/** @endcond */
static void ct_free_data(struct nl_object *c)
@@ -289,6 +290,9 @@
diff |= CT_DIFF_VAL(TCP_STATE, ct_protoinfo.tcp.state);
diff |= CT_DIFF_VAL(TIMEOUT, ct_timeout);
diff |= CT_DIFF_VAL(MARK, ct_mark);
+#ifdef ZYXEL_EXT_MARK
+ diff |= CT_DIFF_VAL(ZEXTMARK, ct_zextmark);
+#endif
diff |= CT_DIFF_VAL(USE, ct_use);
diff |= CT_DIFF_VAL(ID, ct_id);
diff |= CT_DIFF_ADDR(ORIG_SRC, ct_orig.src);
@@ -330,6 +334,9 @@
__ADD(CT_ATTR_STATUS, status)
__ADD(CT_ATTR_TIMEOUT, timeout)
__ADD(CT_ATTR_MARK, mark)
+#ifdef ZYXEL_EXT_MARK
+ __ADD(CT_ATTR_ZEXTMARK, zextmark)
+#endif
__ADD(CT_ATTR_USE, use)
__ADD(CT_ATTR_ID, id)
__ADD(CT_ATTR_ORIG_SRC, origsrc)
@@ -529,6 +536,23 @@
return ct->ct_mark;
}
+#ifdef ZYXEL_EXT_MARK //Rune
+void nfnl_ct_set_zextmark(struct nfnl_ct *ct, uint32_t mark)
+{
+ ct->ct_zextmark = mark;
+ ct->ce_mask |= CT_ATTR_ZEXTMARK;
+}
+
+int nfnl_ct_test_zextmark(const struct nfnl_ct *ct)
+{
+ return !!(ct->ce_mask & CT_ATTR_ZEXTMARK);
+}
+
+uint32_t nfnl_ct_get_zextmark(const struct nfnl_ct *ct)
+{
+ return ct->ct_zextmark;
+}
+#endif
void nfnl_ct_set_use(struct nfnl_ct *ct, uint32_t use)
{
ct->ct_use = use;
Index: libnl-2.0/include/linux/netfilter/nfnetlink_conntrack.h
===================================================================
--- libnl-2.0.orig/include/linux/netfilter/nfnetlink_conntrack.h 2010-10-13 22:43:44.000000000 +0800
+++ libnl-2.0/include/linux/netfilter/nfnetlink_conntrack.h 2018-07-17 15:13:16.869331600 +0800
@@ -31,6 +31,7 @@
#define CTA_NAT CTA_NAT_SRC /* backwards compatibility */
CTA_TIMEOUT,
CTA_MARK,
+ CTA_ZEXTMARK,
CTA_COUNTERS_ORIG,
CTA_COUNTERS_REPLY,
CTA_USE,
Index: libnl-2.0/include/linux/netfilter/nfnetlink_log.h
===================================================================
--- libnl-2.0.orig/include/linux/netfilter/nfnetlink_log.h 2010-10-13 22:43:44.000000000 +0800
+++ libnl-2.0/include/linux/netfilter/nfnetlink_log.h 2018-07-17 15:13:52.339924300 +0800
@@ -40,6 +40,7 @@
NFULA_UNSPEC,
NFULA_PACKET_HDR,
NFULA_MARK, /* u_int32_t nfmark */
+ NFULA_ZEXTMARK, /* u_int32_t nfzextmark */
NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */
NFULA_IFINDEX_INDEV, /* u_int32_t ifindex */
NFULA_IFINDEX_OUTDEV, /* u_int32_t ifindex */