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.
Santi
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>
+#endif
+#ifdef INET6
#include <netinet6/in6_rss.h>
#endif
#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);
break;
+#ifdef INET6
case ETHERTYPE_IPV6:
rss_soft_m2cpuid_v6(m, 0, &bucket);
break;
+#endif
default:
bucket = 0;
break;