Please note that modified code isn't currently being compiled with
kernels 4.19+ due to the dropped CONFIG_NF_CONNTRACK_IPV6 in upstream
Linux. That requires a separated fix.
This fixes:
net/netfilter/nf_conntrack_rtcache.c: In function 'nf_rtcache_get_cookie':
net/netfilter/nf_conntrack_rtcache.c:82:11: error: 'const struct rt6_info' has no member named 'rt6i_node'; did you mean 'rt6i_idev'?
if (rt->rt6i_node)
^~~~~~~~~
rt6i_idev
IPv6 structs were reworked in upstream kernel by:
commit
a64efe142f5e ("net/ipv6: introduce fib6_info struct and helpers")
commit
77634cc67dc1 ("net/ipv6: Remove unused code and variables for rt6_info")
commit
93c2fb253d17 ("net/ipv6: Rename fib6_info struct elements")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+ if (pf == NFPROTO_IPV6) {
+ const struct rt6_info *rt = (const struct rt6_info *)dst;
+
-+ if (rt->rt6i_node)
-+ return (u32)rt->rt6i_node->fn_sernum;
++ if (rt->from && rt->from->fib6_node)
++ return (u32)rt->from->fib6_node->fn_sernum;
+ }
+#endif
+ return 0;