diff mbox

[iproute2] route: label externally offloaded routes

Message ID 1425795335-6416-1-git-send-email-sfeldma@gmail.com
State Accepted, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Scott Feldman March 8, 2015, 6:15 a.m. UTC
From: Scott Feldman <sfeldma@gmail.com>

On ip route print dump, label externally offloaded routes with "external".
Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
net-next.  For example:

$ ip route
default via 192.168.0.2 dev eth0
11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
12.0.0.2  proto zebra  metric 30 external
        nexthop via 11.0.0.1  dev swp1 weight 1
        nexthop via 11.0.0.9  dev swp2 weight 1
12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
---
 include/linux/rtnetlink.h |    1 +
 ip/iproute.c              |    2 ++
 2 files changed, 3 insertions(+)

Comments

Jiri Pirko March 8, 2015, 6:57 a.m. UTC | #1
Sun, Mar 08, 2015 at 07:15:35AM CET, sfeldma@gmail.com wrote:
>From: Scott Feldman <sfeldma@gmail.com>
>
>On ip route print dump, label externally offloaded routes with "external".
>Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>net-next.  For example:
>
>$ ip route
>default via 192.168.0.2 dev eth0
>11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>12.0.0.2  proto zebra  metric 30 external
>        nexthop via 11.0.0.1  dev swp1 weight 1
>        nexthop via 11.0.0.9  dev swp2 weight 1
>12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>
>Signed-off-by: Scott Feldman <sfeldma@gmail.com>

Reviewed-by: Jiri Pirko <jiri@resnulli.us>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roopa Prabhu March 8, 2015, 2:14 p.m. UTC | #2
On 3/7/15, 10:15 PM, sfeldma@gmail.com wrote:
> From: Scott Feldman <sfeldma@gmail.com>
>
> On ip route print dump, label externally offloaded routes with "external".
> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
> net-next.  For example:
>
> $ ip route
> default via 192.168.0.2 dev eth0
> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 12.0.0.2  proto zebra  metric 30 external
>          nexthop via 11.0.0.1  dev swp1 weight 1
>          nexthop via 11.0.0.9  dev swp2 weight 1
> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>

No objections to the patch.

since this is now getting exposed to userspace and there were 
suggestions in the past to use words like 'hw' or 'offload' in place of 
'external' here, checking to see if you are taking suggestions. If yes, 
would 'hw' or 'offloaded' be a better name for the flag ?.
Given that this will come up again for acls and such.

Thanks,
Roopa


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Scott Feldman March 8, 2015, 10:10 p.m. UTC | #3
On Sun, Mar 8, 2015 at 6:35 AM, Roopa Prabhu <roopa@cumulusnetworks.com> wrote:
>
>
> On Sat, Mar 7, 2015 at 10:57 PM, Jiri Pirko <jiri@resnulli.us> wrote:
>>
>> Sun, Mar 08, 2015 at 07:15:35AM CET, sfeldma@gmail.com wrote:
>> >From: Scott Feldman <sfeldma@gmail.com>
>> >
>> >On ip route print dump, label externally offloaded routes with
>> > "external".
>> >Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>> >net-next.  For example:
>> >
>> >$ ip route
>> >default via 192.168.0.2 dev eth0
>> >11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>> >11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> >11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>> >11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> >12.0.0.2  proto zebra  metric 30 external
>> >        nexthop via 11.0.0.1  dev swp1 weight 1
>> >        nexthop via 11.0.0.9  dev swp2 weight 1
>> >12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> >12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> >192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>> >
>> >Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>>
> No objections to the patch.
>
> since this is now getting exposed to userspace and there were suggestions in
> the past to use words like 'hw' or 'offload' in place of 'external' here,
> checking to see if you are taking suggestions. If yes, would 'hw' or
> 'offloaded' be a better name for the flag ?.

We used "external" because that's what was used for marking FDB
entries.  I personally have no preference other than we be consistent
for each object offloaded externally.  There will be other objects
we'll need to tag, such as bonds, so if there is enough objection to
"external", we should make the change now for FIB abd FDB objects, and
be consistent with future objects.

-scott
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roopa Prabhu March 9, 2015, 12:27 a.m. UTC | #4
On 3/8/15, 3:10 PM, Scott Feldman wrote:
> On Sun, Mar 8, 2015 at 6:35 AM, Roopa Prabhu <roopa@cumulusnetworks.com> wrote:
>>
>> On Sat, Mar 7, 2015 at 10:57 PM, Jiri Pirko <jiri@resnulli.us> wrote:
>>> Sun, Mar 08, 2015 at 07:15:35AM CET, sfeldma@gmail.com wrote:
>>>> From: Scott Feldman <sfeldma@gmail.com>
>>>>
>>>> On ip route print dump, label externally offloaded routes with
>>>> "external".
>>>> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>>>> net-next.  For example:
>>>>
>>>> $ ip route
>>>> default via 192.168.0.2 dev eth0
>>>> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>>>> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>>>> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>>>> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>>>> 12.0.0.2  proto zebra  metric 30 external
>>>>         nexthop via 11.0.0.1  dev swp1 weight 1
>>>>         nexthop via 11.0.0.9  dev swp2 weight 1
>>>> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>>>> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>>>> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>>>>
>>>> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>> No objections to the patch.
>>
>> since this is now getting exposed to userspace and there were suggestions in
>> the past to use words like 'hw' or 'offload' in place of 'external' here,
>> checking to see if you are taking suggestions. If yes, would 'hw' or
>> 'offloaded' be a better name for the flag ?.
> We used "external" because that's what was used for marking FDB
> entries.  I personally have no preference other than we be consistent
> for each object offloaded externally.  There will be other objects
> we'll need to tag, such as bonds, so if there is enough objection to
> "external", we should make the change now for FIB abd FDB objects, and
> be consistent with future objects.
agree, we should make the change now if needed to suite all types of 
object offloads.
I would vote for 'hw' or 'offload' or 'hwoffload'.

Thanks,
Roopa


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiri Pirko March 9, 2015, 6:25 a.m. UTC | #5
Mon, Mar 09, 2015 at 01:27:09AM CET, roopa@cumulusnetworks.com wrote:
>On 3/8/15, 3:10 PM, Scott Feldman wrote:
>>On Sun, Mar 8, 2015 at 6:35 AM, Roopa Prabhu <roopa@cumulusnetworks.com> wrote:
>>>
>>>On Sat, Mar 7, 2015 at 10:57 PM, Jiri Pirko <jiri@resnulli.us> wrote:
>>>>Sun, Mar 08, 2015 at 07:15:35AM CET, sfeldma@gmail.com wrote:
>>>>>From: Scott Feldman <sfeldma@gmail.com>
>>>>>
>>>>>On ip route print dump, label externally offloaded routes with
>>>>>"external".
>>>>>Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>>>>>net-next.  For example:
>>>>>
>>>>>$ ip route
>>>>>default via 192.168.0.2 dev eth0
>>>>>11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>>>>>11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>>>>>11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>>>>>11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>>>>>12.0.0.2  proto zebra  metric 30 external
>>>>>        nexthop via 11.0.0.1  dev swp1 weight 1
>>>>>        nexthop via 11.0.0.9  dev swp2 weight 1
>>>>>12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>>>>>12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>>>>>192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>>>>>
>>>>>Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>>>No objections to the patch.
>>>
>>>since this is now getting exposed to userspace and there were suggestions in
>>>the past to use words like 'hw' or 'offload' in place of 'external' here,
>>>checking to see if you are taking suggestions. If yes, would 'hw' or
>>>'offloaded' be a better name for the flag ?.
>>We used "external" because that's what was used for marking FDB
>>entries.  I personally have no preference other than we be consistent
>>for each object offloaded externally.  There will be other objects
>>we'll need to tag, such as bonds, so if there is enough objection to
>>"external", we should make the change now for FIB abd FDB objects, and
>>be consistent with future objects.
>agree, we should make the change now if needed to suite all types of object
>offloads.
>I would vote for 'hw' or 'offload' or 'hwoffload'.

I think that exnernal sounds much better then offload. You can see
rightaway that the entry has been handled externaly. What "offload" or
"hw" would mean is not clear to me. I think it's too generic. And since we
use "external" already for fdbs, I would stick with it.

>
>Thanks,
>Roopa
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andy Gospodarek March 9, 2015, 2:02 p.m. UTC | #6
On Sat, Mar 07, 2015 at 10:15:35PM -0800, sfeldma@gmail.com wrote:
> From: Scott Feldman <sfeldma@gmail.com>
> 
> On ip route print dump, label externally offloaded routes with "external".
> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
> net-next.  For example:
> 
> $ ip route
> default via 192.168.0.2 dev eth0
> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 12.0.0.2  proto zebra  metric 30 external
>         nexthop via 11.0.0.1  dev swp1 weight 1
>         nexthop via 11.0.0.9  dev swp2 weight 1
> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
> 
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>

You know we cannot have a thread about nomenclature without a comment
from me.  ;)

My only concern about 'external' is whether or not people will gloss
over it since many of the routes listed will be to networks that
actually are external to the system.  That namespace collision could
seem awkward if you are not a traditional follower of this list.
Listing an FDB entry as 'external' does not have the same issue since
all FDB entries are local to the system, so I didn't even
think about the potential when that set was posted.

I would like to just call this 'hardware' since that is what we appear
to be using for offload and would make it clear to the user that this
route was in hardware as well as in the kernel.  I'd say the same for
FDB entries, too.

Scott, you have lots of experience in both traditional and Linux worlds,
do you think my concern about confusion is unnecessary?

> ---
>  include/linux/rtnetlink.h |    1 +
>  ip/iproute.c              |    2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
> index 3eb7810..c74773c 100644
> --- a/include/linux/rtnetlink.h
> +++ b/include/linux/rtnetlink.h
> @@ -332,6 +332,7 @@ struct rtnexthop {
>  #define RTNH_F_DEAD		1	/* Nexthop is dead (used by multipath)	*/
>  #define RTNH_F_PERVASIVE	2	/* Do recursive gateway lookup	*/
>  #define RTNH_F_ONLINK		4	/* Gateway is forced on link	*/
> +#define RTNH_F_EXTERNAL		8	/* Route installed externally   */
>  
>  /* Macros to handle hexthops */
>  
> diff --git a/ip/iproute.c b/ip/iproute.c
> index 76d8e36..fdb0a98 100644
> --- a/ip/iproute.c
> +++ b/ip/iproute.c
> @@ -426,6 +426,8 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
>  		fprintf(fp, "onlink ");
>  	if (r->rtm_flags & RTNH_F_PERVASIVE)
>  		fprintf(fp, "pervasive ");
> +	if (r->rtm_flags & RTNH_F_EXTERNAL)
> +		fprintf(fp, "external ");
>  	if (r->rtm_flags & RTM_F_NOTIFY)
>  		fprintf(fp, "notify ");
>  	if (tb[RTA_MARK]) {
> -- 
> 1.7.10.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Scott Feldman March 9, 2015, 4:16 p.m. UTC | #7
On Mon, Mar 9, 2015 at 7:02 AM, Andy Gospodarek
<gospo@cumulusnetworks.com> wrote:
> On Sat, Mar 07, 2015 at 10:15:35PM -0800, sfeldma@gmail.com wrote:
>> From: Scott Feldman <sfeldma@gmail.com>
>>
>> On ip route print dump, label externally offloaded routes with "external".
>> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>> net-next.  For example:
>>
>> $ ip route
>> default via 192.168.0.2 dev eth0
>> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> 12.0.0.2  proto zebra  metric 30 external
>>         nexthop via 11.0.0.1  dev swp1 weight 1
>>         nexthop via 11.0.0.9  dev swp2 weight 1
>> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>>
>> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>
> You know we cannot have a thread about nomenclature without a comment
> from me.  ;)
>
> My only concern about 'external' is whether or not people will gloss
> over it since many of the routes listed will be to networks that
> actually are external to the system.  That namespace collision could
> seem awkward if you are not a traditional follower of this list.
> Listing an FDB entry as 'external' does not have the same issue since
> all FDB entries are local to the system, so I didn't even
> think about the potential when that set was posted.
>
> I would like to just call this 'hardware' since that is what we appear
> to be using for offload and would make it clear to the user that this
> route was in hardware as well as in the kernel.  I'd say the same for
> FDB entries, too.
>
> Scott, you have lots of experience in both traditional and Linux worlds,
> do you think my concern about confusion is unnecessary?

Votes so far: 1 for "external", 1 for "hardware", 1 for "offload" or "hw".

Good point about confusion wrt routes to non-local networks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jeff Kirsher March 9, 2015, 4:51 p.m. UTC | #8
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 03/09/2015 09:16 AM, Scott Feldman wrote:
> On Mon, Mar 9, 2015 at 7:02 AM, Andy Gospodarek 
> <gospo@cumulusnetworks.com> wrote:
>> On Sat, Mar 07, 2015 at 10:15:35PM -0800, sfeldma@gmail.com
>> wrote:
>>> From: Scott Feldman <sfeldma@gmail.com>
>>> 
>>> On ip route print dump, label externally offloaded routes with
>>> "external". Offloaded routes are flagged with RTNH_F_EXTERNAL,
>>> a recent additon to net-next.  For example:
>>> 
>>> $ ip route default via 192.168.0.2 dev eth0 11.0.0.0/30 dev
>>> swp1  proto kernel  scope link  src 11.0.0.2 external 
>>> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20
>>> external 11.0.0.8/30 dev swp2  proto kernel  scope link  src
>>> 11.0.0.10 external 11.0.0.12/30 via 11.0.0.9 dev swp2  proto
>>> zebra  metric 20 external 12.0.0.2  proto zebra  metric 30
>>> external nexthop via 11.0.0.1  dev swp1 weight 1 nexthop via
>>> 11.0.0.9  dev swp2 weight 1 12.0.0.3 via 11.0.0.1 dev swp1
>>> proto zebra  metric 20 external 12.0.0.4 via 11.0.0.9 dev swp2
>>> proto zebra  metric 20 external 192.168.0.0/24 dev eth0  proto
>>> kernel  scope link  src 192.168.0.15
>>> 
>>> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>> 
>> You know we cannot have a thread about nomenclature without a
>> comment from me.  ;)
>> 
>> My only concern about 'external' is whether or not people will
>> gloss over it since many of the routes listed will be to networks
>> that actually are external to the system.  That namespace
>> collision could seem awkward if you are not a traditional
>> follower of this list. Listing an FDB entry as 'external' does
>> not have the same issue since all FDB entries are local to the
>> system, so I didn't even think about the potential when that set
>> was posted.
>> 
>> I would like to just call this 'hardware' since that is what we
>> appear to be using for offload and would make it clear to the
>> user that this route was in hardware as well as in the kernel.
>> I'd say the same for FDB entries, too.
>> 
>> Scott, you have lots of experience in both traditional and Linux
>> worlds, do you think my concern about confusion is unnecessary?
> 
> Votes so far: 1 for "external", 1 for "hardware", 1 for "offload"
> or "hw".
> 
> Good point about confusion wrt routes to non-local networks.

My $0.02, "hardware" seems most appropriate to me.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJU/c+XAAoJEOVv75VaS+3O26oQAJcXXV9zqKMbme8r3Cj0XdfQ
fMBPluam7f4ZLcio4x/AG41CMOp4Wr9tWwV9nz7HgOxJ5YvpWqYqMc75oLMQtC/z
Ze4x0kRIS/zuk/kGD/8Lkh/ZAykjGM9J5gf1CVh5UI0D9h1Z5SCz8dkHbEkqvy8j
Pf/nNH5gaZCyM9QCzirXeSZsxjUtulIHibQiVn0qYbV4NeX0hq7uYvRCJ0OIG+Hb
cYJFhp2s9Lp075QELxLQqlHuZMMtX8xzL3N83AhXyyAZdW+R/Z8tjutHQsHrTdEd
+ErObbVdV4794gQDqB5SnuV+yIVRaeW6crls3r56WIwJS7eM0BhYj0iQLRqX+bEq
HjdUaOp+J3SbssIeLqkItBNsMtuMQWqpdBvJfPVXmFAyHaWv7i6M1S6logrBd+RH
ro16bGKOX/s/i0UoNBmNFoXHItIeBpfgdPxldCekUXhbuBObx2cRPZFaAclg4eO/
LQGZALgShFrI25+fA+MlngybI8MmLk7gdASfKmlI7BNHcuMcLXomQZx009GOGdJM
VQTUugAksOTUa6wMVJaNzNvtw3rszZEHwSWK+qK43om/Jsk4/1/kc3JEwDt0aZvn
O7f4Yh4R3fjyWYOf5ynYXjBfG2UNrEJknkVRJb2Ui6k0nZ3xNqggV89BFi5U3uop
OqrY1HzqmPz+sjSVeSzK
=wyRn
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John W. Linville March 9, 2015, 5:53 p.m. UTC | #9
On Mon, Mar 09, 2015 at 09:51:35AM -0700, Jeff Kirsher wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> On 03/09/2015 09:16 AM, Scott Feldman wrote:
> > On Mon, Mar 9, 2015 at 7:02 AM, Andy Gospodarek 
> > <gospo@cumulusnetworks.com> wrote:
> >> On Sat, Mar 07, 2015 at 10:15:35PM -0800, sfeldma@gmail.com
> >> wrote:
> >>> From: Scott Feldman <sfeldma@gmail.com>
> >>> 
> >>> On ip route print dump, label externally offloaded routes with
> >>> "external". Offloaded routes are flagged with RTNH_F_EXTERNAL,
> >>> a recent additon to net-next.  For example:
> >>> 
> >>> $ ip route default via 192.168.0.2 dev eth0 11.0.0.0/30 dev
> >>> swp1  proto kernel  scope link  src 11.0.0.2 external 
> >>> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20
> >>> external 11.0.0.8/30 dev swp2  proto kernel  scope link  src
> >>> 11.0.0.10 external 11.0.0.12/30 via 11.0.0.9 dev swp2  proto
> >>> zebra  metric 20 external 12.0.0.2  proto zebra  metric 30
> >>> external nexthop via 11.0.0.1  dev swp1 weight 1 nexthop via
> >>> 11.0.0.9  dev swp2 weight 1 12.0.0.3 via 11.0.0.1 dev swp1
> >>> proto zebra  metric 20 external 12.0.0.4 via 11.0.0.9 dev swp2
> >>> proto zebra  metric 20 external 192.168.0.0/24 dev eth0  proto
> >>> kernel  scope link  src 192.168.0.15
> >>> 
> >>> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
> >> 
> >> You know we cannot have a thread about nomenclature without a
> >> comment from me.  ;)
> >> 
> >> My only concern about 'external' is whether or not people will
> >> gloss over it since many of the routes listed will be to networks
> >> that actually are external to the system.  That namespace
> >> collision could seem awkward if you are not a traditional
> >> follower of this list. Listing an FDB entry as 'external' does
> >> not have the same issue since all FDB entries are local to the
> >> system, so I didn't even think about the potential when that set
> >> was posted.
> >> 
> >> I would like to just call this 'hardware' since that is what we
> >> appear to be using for offload and would make it clear to the
> >> user that this route was in hardware as well as in the kernel.
> >> I'd say the same for FDB entries, too.
> >> 
> >> Scott, you have lots of experience in both traditional and Linux
> >> worlds, do you think my concern about confusion is unnecessary?
> > 
> > Votes so far: 1 for "external", 1 for "hardware", 1 for "offload"
> > or "hw".
> > 
> > Good point about confusion wrt routes to non-local networks.
> 
> My $0.02, "hardware" seems most appropriate to me.

Ditto...
Stephen Hemminger March 15, 2015, 7:39 p.m. UTC | #10
On Sat,  7 Mar 2015 22:15:35 -0800
sfeldma@gmail.com wrote:

> From: Scott Feldman <sfeldma@gmail.com>
> 
> On ip route print dump, label externally offloaded routes with "external".
> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
> net-next.  For example:
> 
> $ ip route
> default via 192.168.0.2 dev eth0
> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 12.0.0.2  proto zebra  metric 30 external
>         nexthop via 11.0.0.1  dev swp1 weight 1
>         nexthop via 11.0.0.9  dev swp2 weight 1
> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
> 
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>

Applied to net-next branch of iproute2
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Hemminger March 15, 2015, 7:41 p.m. UTC | #11
On Sat,  7 Mar 2015 22:15:35 -0800
sfeldma@gmail.com wrote:

> From: Scott Feldman <sfeldma@gmail.com>
> 
> On ip route print dump, label externally offloaded routes with "external".
> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
> net-next.  For example:
> 
> $ ip route
> default via 192.168.0.2 dev eth0
> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 12.0.0.2  proto zebra  metric 30 external
>         nexthop via 11.0.0.1  dev swp1 weight 1
>         nexthop via 11.0.0.9  dev swp2 weight 1
> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
> 
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>


All iproute2 commands should be invertable.
If you show something you need to accept that as input.
Please fix that.


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Scott Feldman March 15, 2015, 8:08 p.m. UTC | #12
On Sun, Mar 15, 2015 at 12:39 PM, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> On Sat,  7 Mar 2015 22:15:35 -0800
> sfeldma@gmail.com wrote:
>
>> From: Scott Feldman <sfeldma@gmail.com>
>>
>> On ip route print dump, label externally offloaded routes with "external".
>> Offloaded routes are flagged with RTNH_F_EXTERNAL, a recent additon to
>> net-next.  For example:
>>
>> $ ip route
>> default via 192.168.0.2 dev eth0
>> 11.0.0.0/30 dev swp1  proto kernel  scope link  src 11.0.0.2 external
>> 11.0.0.4/30 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> 11.0.0.8/30 dev swp2  proto kernel  scope link  src 11.0.0.10 external
>> 11.0.0.12/30 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> 12.0.0.2  proto zebra  metric 30 external
>>         nexthop via 11.0.0.1  dev swp1 weight 1
>>         nexthop via 11.0.0.9  dev swp2 weight 1
>> 12.0.0.3 via 11.0.0.1 dev swp1  proto zebra  metric 20 external
>> 12.0.0.4 via 11.0.0.9 dev swp2  proto zebra  metric 20 external
>> 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.15
>>
>> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
>
> Applied to net-next branch of iproute2

Oops, sorry Stephan, I just sent a v2 with a change to the label.  Can
you apply that version?

> All iproute2 commands should be invertable.
> If you show something you need to accept that as input.
>  Please fix that.

Working on it.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 3eb7810..c74773c 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -332,6 +332,7 @@  struct rtnexthop {
 #define RTNH_F_DEAD		1	/* Nexthop is dead (used by multipath)	*/
 #define RTNH_F_PERVASIVE	2	/* Do recursive gateway lookup	*/
 #define RTNH_F_ONLINK		4	/* Gateway is forced on link	*/
+#define RTNH_F_EXTERNAL		8	/* Route installed externally   */
 
 /* Macros to handle hexthops */
 
diff --git a/ip/iproute.c b/ip/iproute.c
index 76d8e36..fdb0a98 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -426,6 +426,8 @@  int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 		fprintf(fp, "onlink ");
 	if (r->rtm_flags & RTNH_F_PERVASIVE)
 		fprintf(fp, "pervasive ");
+	if (r->rtm_flags & RTNH_F_EXTERNAL)
+		fprintf(fp, "external ");
 	if (r->rtm_flags & RTM_F_NOTIFY)
 		fprintf(fp, "notify ");
 	if (tb[RTA_MARK]) {