Re: Current with RSS and EPAIR and without INET6.
Date: Mon, 28 Feb 2022 07:12:58 UTC
> On Feb 27, 2022, at 8:59 PM, Santiago Martinez <sm@codenetworks.net> wrote: > > 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 > The newly added ifdef should be wrapped around by RSS. And also is "opt_inet6.h" header required? And maybe ifdef INET is also required as someone need IPv4 only. #ifdef RSS #include <net/rss_config.h> #include <netinet/in_rss.h> +#ifdef INET6 #include <netinet6/in6_rss.h> +#endif #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; > > > > > > > > >