* [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
@ 2015-07-28 6:40 Roopa Prabhu
2015-07-28 13:04 ` Hannes Frederic Sowa
2015-07-28 14:17 ` Robert Shearman
0 siblings, 2 replies; 11+ messages in thread
From: Roopa Prabhu @ 2015-07-28 6:40 UTC (permalink / raw)
To: davem, tgraf; +Cc: netdev
From: Roopa Prabhu <roopa@cumulusnetworks.com>
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 <fengguang.wu@intel.com>
Reported-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
---
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
+
endif # MPLS
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index 49f1b0e..3e0c0212d 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
@@ -331,6 +331,7 @@ static unsigned find_free_label(struct net *net)
return LABEL_NOT_SPECIFIED;
}
+#if IS_ENABLED(CONFIG_MPLS_NEXTHOP_DEVLOOKUP)
static struct net_device *inet_fib_lookup_dev(struct net *net, void *addr)
{
struct net_device *dev = NULL;
@@ -350,7 +351,14 @@ static struct net_device *inet_fib_lookup_dev(struct net *net, void *addr)
errout:
return dev;
}
+#else
+static struct net_device *inet_fib_lookup_dev(struct net *net, void *addr)
+{
+ return ERR_PTR(-EAFNOSUPPORT);
+}
+#endif
+#if IS_ENABLED(CONFIG_MPLS_NEXTHOP_DEVLOOKUP) && IS_ENABLED(CONFIG_IPV6)
static struct net_device *inet6_fib_lookup_dev(struct net *net, void *addr)
{
struct net_device *dev = NULL;
@@ -371,6 +379,12 @@ errout:
return dev;
}
+#else
+static struct net_device *inet6_fib_lookup_dev(struct net *net, void *addr)
+{
+ return ERR_PTR(-EAFNOSUPPORT);
+}
+#endif
static struct net_device *find_outdev(struct net *net,
struct mpls_route_config *cfg)
@@ -427,8 +441,11 @@ static int mpls_route_add(struct mpls_route_config *cfg)
err = -ENODEV;
dev = find_outdev(net, cfg);
- if (!dev)
+ if (IS_ERR(dev)) {
+ err = PTR_ERR(dev);
+ dev = NULL;
goto errout;
+ }
/* Ensure this is a supported device */
err = -EINVAL;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 6:40 [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output Roopa Prabhu
@ 2015-07-28 13:04 ` Hannes Frederic Sowa
2015-07-28 15:41 ` roopa
2015-07-28 19:28 ` roopa
2015-07-28 14:17 ` Robert Shearman
1 sibling, 2 replies; 11+ messages in thread
From: Hannes Frederic Sowa @ 2015-07-28 13:04 UTC (permalink / raw)
To: Roopa Prabhu, davem, tgraf; +Cc: netdev
On Mon, 2015-07-27 at 23:40 -0700, Roopa Prabhu wrote:
> From: Roopa Prabhu <roopa@cumulusnetworks.com>
>
> 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 <fengguang.wu@intel.com>
> Reported-by: Thomas Graf <tgraf@suug.ch>
> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
> ---
>
> 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). Maybe same for IPv4?
If builtin you can inline those calls anyway.
Bye,
Hannes
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 13:04 ` Hannes Frederic Sowa
@ 2015-07-28 15:41 ` roopa
2015-07-28 19:28 ` roopa
1 sibling, 0 replies; 11+ messages in thread
From: roopa @ 2015-07-28 15:41 UTC (permalink / raw)
To: Hannes Frederic Sowa; +Cc: davem, tgraf, netdev
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 <roopa@cumulusnetworks.com>
>>
>> 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 <fengguang.wu@intel.com>
>> Reported-by: Thomas Graf <tgraf@suug.ch>
>> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
>> ---
>>
>> 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
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 13:04 ` Hannes Frederic Sowa
2015-07-28 15:41 ` roopa
@ 2015-07-28 19:28 ` roopa
2015-07-28 22:22 ` Hannes Frederic Sowa
1 sibling, 1 reply; 11+ messages in thread
From: roopa @ 2015-07-28 19:28 UTC (permalink / raw)
To: Hannes Frederic Sowa; +Cc: davem, tgraf, netdev
On 7/28/15, 6:04 AM, Hannes Frederic Sowa wrote:
> 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).
ipv6_stub_impl.ipv6_dst_lookup seems to require sk today.
But it only needs it to get 'net' in the beginning and sk is optional
afterwards.
I will submit a patch to add 'net' as an arg to ipv6_dst_lookup.
Users of ipv6_dst_lookup are few and that seems like an easy change and
helps my patch.
If you or others think otherwise, pls let me know.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 19:28 ` roopa
@ 2015-07-28 22:22 ` Hannes Frederic Sowa
2015-07-28 22:37 ` roopa
0 siblings, 1 reply; 11+ messages in thread
From: Hannes Frederic Sowa @ 2015-07-28 22:22 UTC (permalink / raw)
To: roopa; +Cc: davem, tgraf, netdev
Hi roopa,
On Tue, Jul 28, 2015, at 21:28, roopa wrote:
> On 7/28/15, 6:04 AM, Hannes Frederic Sowa wrote:
> > 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).
> ipv6_stub_impl.ipv6_dst_lookup seems to require sk today.
> But it only needs it to get 'net' in the beginning and sk is optional
> afterwards.
> I will submit a patch to add 'net' as an arg to ipv6_dst_lookup.
> Users of ipv6_dst_lookup are few and that seems like an easy change and
> helps my patch.
> If you or others think otherwise, pls let me know.
No need to extend this function at any cost. Simply add your own
function pointer to the struct if needed.
Probably you have to move the ipv6_stub = &ipv6_stub_impl;
initialization in inet6_init down so you don't expose the function
pointer too early and thus it races with initialization (and error
handling seems to be incorrect in this function, too).
Thanks,
Hannes
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 22:22 ` Hannes Frederic Sowa
@ 2015-07-28 22:37 ` roopa
0 siblings, 0 replies; 11+ messages in thread
From: roopa @ 2015-07-28 22:37 UTC (permalink / raw)
To: Hannes Frederic Sowa; +Cc: davem, tgraf, netdev
On 7/28/15, 3:22 PM, Hannes Frederic Sowa wrote:
> Hi roopa,
>
> On Tue, Jul 28, 2015, at 21:28, roopa wrote:
>> ipv6_stub_impl.ipv6_dst_lookup seems to require sk today.
>> But it only needs it to get 'net' in the beginning and sk is optional
>> afterwards.
>> I will submit a patch to add 'net' as an arg to ipv6_dst_lookup.
>> Users of ipv6_dst_lookup are few and that seems like an easy change and
>> helps my patch.
>> If you or others think otherwise, pls let me know.
> No need to extend this function at any cost. Simply add your own
> function pointer to the struct if needed.
saw your this email after I hit send on the series. Since the new
function pointer will be exactly similar to ipv6_dst_lookup
with just an additional argument, a new function pointer does not seem
necessary. But i can certainly change it
to a new function pointer and resend if that is more acceptable.
>
> Probably you have to move the ipv6_stub = &ipv6_stub_impl;
> initialization in inet6_init down so you don't expose the function
> pointer too early and thus it races with initialization (and error
> handling seems to be incorrect in this function, too).
>
ok, will look.
thanks,
Roopa
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 6:40 [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output Roopa Prabhu
2015-07-28 13:04 ` Hannes Frederic Sowa
@ 2015-07-28 14:17 ` Robert Shearman
2015-07-28 16:16 ` roopa
1 sibling, 1 reply; 11+ messages in thread
From: Robert Shearman @ 2015-07-28 14:17 UTC (permalink / raw)
To: Roopa Prabhu, davem, tgraf; +Cc: netdev
On 28/07/15 07:40, Roopa Prabhu wrote:
> From: Roopa Prabhu <roopa@cumulusnetworks.com>
>
> 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 <fengguang.wu@intel.com>
> Reported-by: Thomas Graf <tgraf@suug.ch>
> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Is there a compelling reason to allow the user/applications to not
specify the output interface and to derive it from the nexthop? If the
user/application intends to treat this as a recursive route then it has
to make sure to trigger route updates to the kernel anyway, and an
application should have the output interface and real nexthop close to
hand in that case.
If there isn't a compelling reason, then perhaps the best course of
action is to revert the commit, instead of introducing a level of config
complexity that means that users/applications may not be able to rely on
this capability anyway?
Thanks,
Rob
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 14:17 ` Robert Shearman
@ 2015-07-28 16:16 ` roopa
2015-07-29 10:38 ` Robert Shearman
0 siblings, 1 reply; 11+ messages in thread
From: roopa @ 2015-07-28 16:16 UTC (permalink / raw)
To: Robert Shearman; +Cc: davem, tgraf, netdev
On 7/28/15, 7:17 AM, Robert Shearman wrote:
> On 28/07/15 07:40, Roopa Prabhu wrote:
>> From: Roopa Prabhu <roopa@cumulusnetworks.com>
>>
>> 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 <fengguang.wu@intel.com>
>> Reported-by: Thomas Graf <tgraf@suug.ch>
>> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
>
> Is there a compelling reason to allow the user/applications to not
> specify the output interface and to derive it from the nexthop? If the
> user/application intends to treat this as a recursive route then it
> has to make sure to trigger route updates to the kernel anyway, and an
> application should have the output interface and real nexthop close to
> hand in that case.
RTA_OIF is optional for ipv4 and ipv6 routes and we wanted to keep it
that way for mpls routes as well (Quagga is the application in our use
case).
It was a simple patch...until i realized the IPV6 dependency issues (I
will sure remember this next time).
>
> If there isn't a compelling reason, then perhaps the best course of
> action is to revert the commit, instead of introducing a level of
> config complexity that means that users/applications may not be able
> to rely on this capability anyway?
The config option though looks complex should not introduce any
complexity for the user. It is on by default and always on for the
default case.
Only for the cases where the IPV6 is a loaded as a module and
MPLS_ROUTING is not, the app may get family not supported errors.
I did suggest a revert the first time. Mainly for me to fix the mistake
i made and resubmit after proper IPV6 dependency testing.
I am in the process of trying the option that hannes suggested.
Thanks,
Roopa
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-28 16:16 ` roopa
@ 2015-07-29 10:38 ` Robert Shearman
2015-07-29 10:51 ` Thomas Graf
0 siblings, 1 reply; 11+ messages in thread
From: Robert Shearman @ 2015-07-29 10:38 UTC (permalink / raw)
To: roopa; +Cc: davem, tgraf, netdev
On 28/07/15 17:16, roopa wrote:
> On 7/28/15, 7:17 AM, Robert Shearman wrote:
>> On 28/07/15 07:40, Roopa Prabhu wrote:
>>> From: Roopa Prabhu <roopa@cumulusnetworks.com>
>>>
>>> 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 <fengguang.wu@intel.com>
>>> Reported-by: Thomas Graf <tgraf@suug.ch>
>>> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
>>
>> Is there a compelling reason to allow the user/applications to not
>> specify the output interface and to derive it from the nexthop? If the
>> user/application intends to treat this as a recursive route then it
>> has to make sure to trigger route updates to the kernel anyway, and an
>> application should have the output interface and real nexthop close to
>> hand in that case.
>
> RTA_OIF is optional for ipv4 and ipv6 routes and we wanted to keep it
> that way for mpls routes as well (Quagga is the application in our use
> case).
> It was a simple patch...until i realized the IPV6 dependency issues (I
> will sure remember this next time).
Having read the code, I realise the nexthop isn't derived from the
lookup. Given that this can only work for the case where a path is
recursive via a connected nexthop, it seems to be of limited use.
I'm not familiar with the Quagga code, but is it worth adding this
additional complexity to the kernel rather than making a change to
Quagga instead, where presumably it already has code to derive the
output interface in the case of having a recursive route via a
non-connected nexthop?
>
>>
>> If there isn't a compelling reason, then perhaps the best course of
>> action is to revert the commit, instead of introducing a level of
>> config complexity that means that users/applications may not be able
>> to rely on this capability anyway?
> The config option though looks complex should not introduce any
> complexity for the user. It is on by default and always on for the
> default case.
> Only for the cases where the IPV6 is a loaded as a module and
> MPLS_ROUTING is not, the app may get family not supported errors.
> I did suggest a revert the first time. Mainly for me to fix the mistake
> i made and resubmit after proper IPV6 dependency testing.
>
> I am in the process of trying the option that hannes suggested.
If we must keep this functionality then that approach looks good to me.
Thanks,
Rob
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-29 10:38 ` Robert Shearman
@ 2015-07-29 10:51 ` Thomas Graf
2015-07-29 11:52 ` Robert Shearman
0 siblings, 1 reply; 11+ messages in thread
From: Thomas Graf @ 2015-07-29 10:51 UTC (permalink / raw)
To: Robert Shearman; +Cc: roopa, davem, netdev
On 07/29/15 at 11:38am, Robert Shearman wrote:
> On 28/07/15 17:16, roopa wrote:
> >RTA_OIF is optional for ipv4 and ipv6 routes and we wanted to keep it
> >that way for mpls routes as well (Quagga is the application in our use
> >case).
> >It was a simple patch...until i realized the IPV6 dependency issues (I
> >will sure remember this next time).
>
> Having read the code, I realise the nexthop isn't derived from the lookup.
> Given that this can only work for the case where a path is recursive via a
> connected nexthop, it seems to be of limited use.
>
> I'm not familiar with the Quagga code, but is it worth adding this
> additional complexity to the kernel rather than making a change to Quagga
> instead, where presumably it already has code to derive the output interface
> in the case of having a recursive route via a non-connected nexthop?
I think it's wrong to assume that it's always a single management
application that manages both parts of the route. At least for
underlays and overlays it is fairly common to run something like
Quagga to manage the underlay and use multiple other orchestration
tools on top to create virtual networks which should not be aware of
any underlay specifics.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output
2015-07-29 10:51 ` Thomas Graf
@ 2015-07-29 11:52 ` Robert Shearman
0 siblings, 0 replies; 11+ messages in thread
From: Robert Shearman @ 2015-07-29 11:52 UTC (permalink / raw)
To: Thomas Graf; +Cc: roopa, davem, netdev
On 29/07/15 11:51, Thomas Graf wrote:
> On 07/29/15 at 11:38am, Robert Shearman wrote:
>> On 28/07/15 17:16, roopa wrote:
>>> RTA_OIF is optional for ipv4 and ipv6 routes and we wanted to keep it
>>> that way for mpls routes as well (Quagga is the application in our use
>>> case).
>>> It was a simple patch...until i realized the IPV6 dependency issues (I
>>> will sure remember this next time).
>>
>> Having read the code, I realise the nexthop isn't derived from the lookup.
>> Given that this can only work for the case where a path is recursive via a
>> connected nexthop, it seems to be of limited use.
>>
>> I'm not familiar with the Quagga code, but is it worth adding this
>> additional complexity to the kernel rather than making a change to Quagga
>> instead, where presumably it already has code to derive the output interface
>> in the case of having a recursive route via a non-connected nexthop?
>
> I think it's wrong to assume that it's always a single management
> application that manages both parts of the route. At least for
> underlays and overlays it is fairly common to run something like
> Quagga to manage the underlay and use multiple other orchestration
> tools on top to create virtual networks which should not be aware of
> any underlay specifics.
I agree, but this kernel mechanism doesn't serve that purpose in the
general case - it only works for a connected nexthop. In other cases,
the application creating the overlay network (assuming it's not using
tunnels) will need to the recursive route resolution itself.
I'd like to see recursive route resolution including responding to
changes in the via route being done in the kernel for other reasons too,
but IMHO just the derivation of the output interface for a connected
nexthop on the initial route add doesn't offer much benefit.
Thanks,
Rob
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-07-29 11:53 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-28 6:40 [PATCH net-next v4] af_mpls: fix undefined reference to ip6_route_output Roopa Prabhu
2015-07-28 13:04 ` Hannes Frederic Sowa
2015-07-28 15:41 ` roopa
2015-07-28 19:28 ` roopa
2015-07-28 22:22 ` Hannes Frederic Sowa
2015-07-28 22:37 ` roopa
2015-07-28 14:17 ` Robert Shearman
2015-07-28 16:16 ` roopa
2015-07-29 10:38 ` Robert Shearman
2015-07-29 10:51 ` Thomas Graf
2015-07-29 11:52 ` Robert Shearman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).