Subject: Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output

From: roopa <[email-masked]>
Date: Tue, 28 Jul 2015 08:41:48 -0700

On 7/28/15, 6:04 AM, Hannes Frederic Sowa wrote:
> On Mon, 2015-07-27 at 23:40 -0700, Roopa Prabhu wrote:
>> From: Roopa Prabhu <[email-masked]>
>>
>> Undefined reference to ip6_route_output and ip_route_output
>> was reported with CONFIG_INET=n and CONFIG_IPV6=n.
>>
>> This patch adds new CONFIG_MPLS_NEXTHOP_DEVLOOKUP
>> to lookup nexthop device if user has not specified it
>> in RTA_OIF attribute. Make CONFIG_MPLS_NEXTHOP_DEVLOOKUP
>> depend on INET and (IPV6 || IPV6=n) because it
>> uses ip6_route_output and ip_route_output.
>>
>> Reported-by: kbuild test robot <[email-masked]>
>> Reported-by: Thomas Graf <[email-masked]>
>> Signed-off-by: Roopa Prabhu <[email-masked]>
>> ---
>>
>> v1 - v2: use IS_BUILTIN
>>
>> v2 - v3: Use new Kconfig option that depends on (IPV6 || IPV6=n) as
>> 	 suggested by Dave. Also uses IS_ERR as suggested by Thomas.
>>
>> v3 - v4: Include missed case of (MPLS_ROUTING=y && IPV6=m) reported by
>>           Dave.
>>
>>   net/mpls/Kconfig   |    8 ++++++++
>>   net/mpls/af_mpls.c |   19 ++++++++++++++++++-
>>   2 files changed, 26 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/mpls/Kconfig b/net/mpls/Kconfig
>> index 5c467ef..134764e 100644
>> --- a/net/mpls/Kconfig
>> +++ b/net/mpls/Kconfig
>> @@ -33,4 +33,12 @@ config MPLS_IPTUNNEL
>>   	---help---
>>   	 mpls ip tunnel support.
>>   
>> +config MPLS_NEXTHOP_DEVLOOKUP
>> +	bool "MPLS: nexthop oif dev lookup"
>> +	depends on MPLS_ROUTING && INET && \
>> +		((IPV6 && !(MPLS_ROUTING=y && IPV6=m)) || IPV6=n)
>> +	---help---
>> +	 This enables mpls route nexthop dev lookup when oif is not
>> +	 specified by user
>> +
> Urks.
>
> Can't you simply use ipv6_stub_impl.ipv6_dst_lookup with sk=NULL to do
> that and don't have a run-time dependency on IPv6 at all (for the cost
> of a function pointer).
I did not realize that this could be an option. I now see vxlan using it.
I will try it out.

> Maybe same for IPv4?
I would prefer leaving IPV4 alone with CONFIG_INET. IPV6 was my problem 
case.
Let me see if i can fix that first without introducing a config option.

Thanks,
Roopa