net-misc/jool-modules: fix kernel 6.18

Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
This commit is contained in:
Nicolas PARLANT
2025-12-05 07:11:38 +01:00
parent 9ab7695da4
commit 090fe72bce
2 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
PR merged https://github.com/NICMx/Jool/pull/441.patch
fix compilation in kernel v6.18
struct flowi4.tos renamed to 'dscp' and type dscp_t in commit
--- a/src/mod/common/rfc7915/6to4.c
+++ b/src/mod/common/rfc7915/6to4.c
@@ -203,7 +203,11 @@ static verdict compute_flowix64(struct xlation *state)
hdr6 = pkt_ip6_hdr(&state->in);
flow4->flowi4_mark = state->in.skb->mark;
+#if LINUX_VERSION_AT_LEAST(6, 18, 0, 0, 0)
+ flow4->flowi4_dscp = xlat_tos(&state->jool.globals, hdr6);
+#else
flow4->flowi4_tos = xlat_tos(&state->jool.globals, hdr6);
+#endif
flow4->flowi4_scope = RT_SCOPE_UNIVERSE;
flow4->flowi4_proto = xlat_proto(hdr6);
/*
@@ -645,7 +649,11 @@ static verdict ttp64_ipv4_external(struct xlation *state)
hdr4->version = 4;
hdr4->ihl = 5;
+#if LINUX_VERSION_AT_LEAST(6, 18, 0, 0, 0)
+ hdr4->tos = flow4->flowi4_dscp;
+#else
hdr4->tos = flow4->flowi4_tos;
+#endif
hdr4->tot_len = cpu_to_be16(state->out.skb->len);
generate_ipv4_id(state, hdr4, hdr_frag);
hdr4->frag_off = xlat_frag_off(hdr_frag, state);

View File

@@ -15,6 +15,10 @@ SLOT="0"
KEYWORDS="~amd64"
IUSE="iptables"
PATCHES=(
"${FILESDIR}"/${PN}-fix_618.patch
)
src_configure() {
true
}