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;
>
>
>
>
>
>
>
>
>