# Re: \[PATCH\] openvswitch: Make IPv6 packet parsing dependent on IPv6 config

- From: Vlad Yasevich \<hidden\>
- Date: 2012-11-16 17:43:32 
- List: netdev
- Page: https://ratatoskr.run/netdev/2012/11/10908488

```text
On 11/16/2012 12:26 PM, Jesse Gross wrote:
> On Fri, Nov 16, 2012 at 7:40 AM, Vlad Yasevich [ref] wrote:
>
>> Openvswitch attempts to use IPv6 packet parsing functions without
>> any dependency on IPv6 (unlike every other place in kernel).  Pull
>> the IPv6 code in openvswitch togeter and put a conditional that's
>> dependent on CONFIG_IPV6.
>>
>> Resolves:
>> net/built-in.o: In function `ovs_flow_extract':
>> (.text+0xbf5d5): undefined reference to `ipv6_skip_exthdr'
>>
>> Signed-off-by: Vlad Yasevich <redacted>
>
>
> Doesn't this move in the opposite direction of your patches to make IPv6
> GSO/GRO always available?  The packets being processed here
> are generally created by the guest but with Open vSwitch running on the
> host.  Also, ipv6_skip_exthdr() is in exthdrs_core.c, so it actually is
> always available.  I suspect that the real problem is that the dependency
> on the ipv6 directory changed to CONFIG_INET and Open vSwitch should now
> depend on this.
>

Yes and no... :)  IPv6 uses a bunch of IPv4 code all over.  IPv4 is enabled with CONFIG_INET and IPv6 with CONFIG_NET.  So creates a strange imbalance.  By shifting IPv6 to CONFIG_INET (which is where it
lives and what enables its selection during config process), we now have a dependency with openvswitch.

All other users of ipv6_skip_exthdr have it either under the IS_ENABLED conditional or through some other means that don't build it when INET is
completely turned off.  This patch does the same for openvswitch.

I see 2 alternatives to this:
 1) Make openvswitch depend on CONFIG_INET.
 2) Pull a ton of code out of CONFIG_INET (v4 and v6) and into CONFIG_NET.  This could start with IPv6 header parsing and maybe even
include GSO/TSO (but not sure how much sense that would be).

What's your take?

-vlad
```
