Current with RSS and EPAIR and without INET6.

From: Santiago Martinez <>
Date: Sun, 27 Feb 2022 12:59:47 UTC
Hi Everyone,

While testing RSS and EPAIR I have find out that it is required to have 
kernel compiled with INET6 when enabling RSS+EPAIR.

I usually remove everything that i do not use from the kernel, like SCTP 
and INET6, etc.

After compiling with "option RSS" i noticed that iocage failed to start, 
checking the dmesg buffer clearly showed why.

[321] link_elf_obj: symbol rss_soft_m2cpuid_v6 undefined
[321] linker_load_file: /boot/kernel/if_epair.ko - unsupported file type

I added two ifdef INET6 on the if_epair and solve the issue, still not 
sure if completely correct.

Best regards.


diff --git a/sys/net/if_epair.c b/sys/net/if_epair.c
index 629de981d5b0..235e5098ebd8 100644
--- a/sys/net/if_epair.c
+++ b/sys/net/if_epair.c
@@ -74,6 +74,8 @@__FBSDID("$FreeBSD$");
#ifdef RSS
#include <net/rss_config.h>
#include <netinet/in_rss.h>
+#ifdef INET6
#include <netinet6/in6_rss.h>
#include <net/vnet.h>
@@ -220,9 +222,11 @@epair_menq(struct mbuf *m, struct epair_softc *osc)
                case ETHERTYPE_IP:
                        rss_soft_m2cpuid_v4(m, 0, &bucket);
+#ifdef INET6
                case ETHERTYPE_IPV6:
                        rss_soft_m2cpuid_v6(m, 0, &bucket);
                        bucket = 0;