diff mbox

[iproute2] iproute2: unify naming for entries offloaded to hardware

Message ID 1427243585-1530-1-git-send-email-gospo@cumulusnetworks.com
State Changes Requested, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Andy Gospodarek March 25, 2015, 12:33 a.m. UTC
The kernel now has the capability to offload FDB and FIB entries to hardware.
It is important to let users know if table entries are also offloaded to
hardware.  Currently offloaded FDB entries are indicated by the existence of
the flag 'external' on the entry as of the following commit:

commit 28467b7f3facd6114b2fbe0c9fecf57adbd52e12
Author: Scott Feldman <sfeldma@gmail.com>
Date:   Thu Dec 4 09:57:15 2014 +0100

    bridge/fdb: add flag/indication for FDB entry synced from offload device

When the patch to add support for indicating that FIB entries were also
offloaded as posted to netdev by Scott Feldman it became clear that 'external'
would not be an ideal name for routes.  There could definitely be confusion
about what this might mean since many routes are to external networks -- a
collision/confusion that did not happen with FDB.

Scott Feldman asked me to check with others and build concensus around a name.
After speaking with several people about this I am proposing we refer to both
FDB and FIB entries that are currently backed by hardware (based on the work
done in rocker) with the flag 'offload' appended to the end ofthe entry.

Some people liked the string 'external,' others liked 'hardware,' but the point
is to communicate that these routes are available to something that will will
offload the forwarding normally done by the kernel.  Since the term 'offload'
is used so frequently it seems appropriate to use the same language in
ip/bridge output.

The term 'offload' also seems to resonate with many of the people who have
responded on Scott's original thread or to those who I reached out to directly
and did respond to my query, so it seems we have reached consensus that it
should be the term used going forward.

Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
CC: Jamal Hadi Salim <jhs@mojatatu.com>
CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
CC: Jiri Pirko <jiri@resnulli.us>
CC: John W. Linville <linville@tuxdriver.com>
CC: Roopa Prabhu <roopa@cumulusnetworks.com>
CC: Scott Feldman <sfeldma@gmail.com>
CC: Stephen Hemminger <stephen@networkplumber.org>
---
 bridge/fdb.c | 2 +-
 ip/iproute.c | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Scott Feldman March 25, 2015, 1:48 a.m. UTC | #1
On Tue, Mar 24, 2015 at 5:33 PM, Andy Gospodarek
<gospo@cumulusnetworks.com> wrote:
> The kernel now has the capability to offload FDB and FIB entries to hardware.
> It is important to let users know if table entries are also offloaded to
> hardware.  Currently offloaded FDB entries are indicated by the existence of
> the flag 'external' on the entry as of the following commit:
>
> commit 28467b7f3facd6114b2fbe0c9fecf57adbd52e12
> Author: Scott Feldman <sfeldma@gmail.com>
> Date:   Thu Dec 4 09:57:15 2014 +0100
>
>     bridge/fdb: add flag/indication for FDB entry synced from offload device
>
> When the patch to add support for indicating that FIB entries were also
> offloaded as posted to netdev by Scott Feldman it became clear that 'external'
> would not be an ideal name for routes.  There could definitely be confusion
> about what this might mean since many routes are to external networks -- a
> collision/confusion that did not happen with FDB.
>
> Scott Feldman asked me to check with others and build concensus around a name.
> After speaking with several people about this I am proposing we refer to both
> FDB and FIB entries that are currently backed by hardware (based on the work
> done in rocker) with the flag 'offload' appended to the end ofthe entry.
>
> Some people liked the string 'external,' others liked 'hardware,' but the point
> is to communicate that these routes are available to something that will will
> offload the forwarding normally done by the kernel.  Since the term 'offload'
> is used so frequently it seems appropriate to use the same language in
> ip/bridge output.
>
> The term 'offload' also seems to resonate with many of the people who have
> responded on Scott's original thread or to those who I reached out to directly
> and did respond to my query, so it seems we have reached consensus that it
> should be the term used going forward.
>
> Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
> CC: Jamal Hadi Salim <jhs@mojatatu.com>
> CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> CC: Jiri Pirko <jiri@resnulli.us>
> CC: John W. Linville <linville@tuxdriver.com>
> CC: Roopa Prabhu <roopa@cumulusnetworks.com>
> CC: Scott Feldman <sfeldma@gmail.com>
> CC: Stephen Hemminger <stephen@networkplumber.org>

Acked-by: Scott Feldman <sfeldma@gmail.com>

Thanks Andy.
--
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 25, 2015, 4:28 a.m. UTC | #2
On 3/24/15, 5:33 PM, Andy Gospodarek wrote:
> The kernel now has the capability to offload FDB and FIB entries to hardware.
> It is important to let users know if table entries are also offloaded to
> hardware.  Currently offloaded FDB entries are indicated by the existence of
> the flag 'external' on the entry as of the following commit:
>
> commit 28467b7f3facd6114b2fbe0c9fecf57adbd52e12
> Author: Scott Feldman <sfeldma@gmail.com>
> Date:   Thu Dec 4 09:57:15 2014 +0100
>
>      bridge/fdb: add flag/indication for FDB entry synced from offload device
>
> When the patch to add support for indicating that FIB entries were also
> offloaded as posted to netdev by Scott Feldman it became clear that 'external'
> would not be an ideal name for routes.  There could definitely be confusion
> about what this might mean since many routes are to external networks -- a
> collision/confusion that did not happen with FDB.
>
> Scott Feldman asked me to check with others and build concensus around a name.
> After speaking with several people about this I am proposing we refer to both
> FDB and FIB entries that are currently backed by hardware (based on the work
> done in rocker) with the flag 'offload' appended to the end ofthe entry.
>
> Some people liked the string 'external,' others liked 'hardware,' but the point
> is to communicate that these routes are available to something that will will
> offload the forwarding normally done by the kernel.  Since the term 'offload'
> is used so frequently it seems appropriate to use the same language in
> ip/bridge output.
>
> The term 'offload' also seems to resonate with many of the people who have
> responded on Scott's original thread or to those who I reached out to directly
> and did respond to my query, so it seems we have reached consensus that it
> should be the term used going forward.
>
> Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
> CC: Jamal Hadi Salim <jhs@mojatatu.com>
> CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> CC: Jiri Pirko <jiri@resnulli.us>
> CC: John W. Linville <linville@tuxdriver.com>
> CC: Roopa Prabhu <roopa@cumulusnetworks.com>
> CC: Scott Feldman <sfeldma@gmail.com>
> CC: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   bridge/fdb.c | 2 +-
>   ip/iproute.c | 2 ++
>   2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/bridge/fdb.c b/bridge/fdb.c
> index 3c33e22..e34933b 100644
> --- a/bridge/fdb.c
> +++ b/bridge/fdb.c
> @@ -159,7 +159,7 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
>   	if (r->ndm_flags & NTF_ROUTER)
>   		fprintf(fp, "router ");
>   	if (r->ndm_flags & NTF_EXT_LEARNED)
> -		fprintf(fp, "external ");
> +		fprintf(fp, "offload ");
>   
>   	fprintf(fp, "%s\n", state_n2a(r->ndm_state));
>   	return 0;
> diff --git a/ip/iproute.c b/ip/iproute.c
> index 024d401..34a5216 100644
> --- a/ip/iproute.c
> +++ b/ip/iproute.c
> @@ -412,6 +412,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, "offload ");
>   	if (r->rtm_flags & RTM_F_NOTIFY)
>   		fprintf(fp, "notify ");
>   	if (tb[RTA_MARK]) {
Thanks andy. This looks good.

Since the flag is part of uapi, I would prefer the flag renamed to 
RTNH_F_OFFLOAD too.
What do others feel ?. It can be a subsequent patch if there are votes.


--
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 25, 2015, 6:40 a.m. UTC | #3
Wed, Mar 25, 2015 at 01:33:05AM CET, gospo@cumulusnetworks.com wrote:
>The kernel now has the capability to offload FDB and FIB entries to hardware.
>It is important to let users know if table entries are also offloaded to
>hardware.  Currently offloaded FDB entries are indicated by the existence of
>the flag 'external' on the entry as of the following commit:
>
>commit 28467b7f3facd6114b2fbe0c9fecf57adbd52e12
>Author: Scott Feldman <sfeldma@gmail.com>
>Date:   Thu Dec 4 09:57:15 2014 +0100
>
>    bridge/fdb: add flag/indication for FDB entry synced from offload device
>
>When the patch to add support for indicating that FIB entries were also
>offloaded as posted to netdev by Scott Feldman it became clear that 'external'
>would not be an ideal name for routes.  There could definitely be confusion
>about what this might mean since many routes are to external networks -- a
>collision/confusion that did not happen with FDB.
>
>Scott Feldman asked me to check with others and build concensus around a name.
>After speaking with several people about this I am proposing we refer to both
>FDB and FIB entries that are currently backed by hardware (based on the work
>done in rocker) with the flag 'offload' appended to the end ofthe entry.
>
>Some people liked the string 'external,' others liked 'hardware,' but the point
>is to communicate that these routes are available to something that will will
>offload the forwarding normally done by the kernel.  Since the term 'offload'
>is used so frequently it seems appropriate to use the same language in
>ip/bridge output.
>
>The term 'offload' also seems to resonate with many of the people who have
>responded on Scott's original thread or to those who I reached out to directly
>and did respond to my query, so it seems we have reached consensus that it
>should be the term used going forward.
>
>Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>

hmm...okay...

Acked-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
Simon Horman March 25, 2015, 7:44 a.m. UTC | #4
On Tue, Mar 24, 2015 at 06:48:04PM -0700, Scott Feldman wrote:
> On Tue, Mar 24, 2015 at 5:33 PM, Andy Gospodarek
> <gospo@cumulusnetworks.com> wrote:
> > The kernel now has the capability to offload FDB and FIB entries to hardware.
> > It is important to let users know if table entries are also offloaded to
> > hardware.  Currently offloaded FDB entries are indicated by the existence of
> > the flag 'external' on the entry as of the following commit:
> >
> > commit 28467b7f3facd6114b2fbe0c9fecf57adbd52e12
> > Author: Scott Feldman <sfeldma@gmail.com>
> > Date:   Thu Dec 4 09:57:15 2014 +0100
> >
> >     bridge/fdb: add flag/indication for FDB entry synced from offload device
> >
> > When the patch to add support for indicating that FIB entries were also
> > offloaded as posted to netdev by Scott Feldman it became clear that 'external'
> > would not be an ideal name for routes.  There could definitely be confusion
> > about what this might mean since many routes are to external networks -- a
> > collision/confusion that did not happen with FDB.
> >
> > Scott Feldman asked me to check with others and build concensus around a name.
> > After speaking with several people about this I am proposing we refer to both
> > FDB and FIB entries that are currently backed by hardware (based on the work
> > done in rocker) with the flag 'offload' appended to the end ofthe entry.
> >
> > Some people liked the string 'external,' others liked 'hardware,' but the point
> > is to communicate that these routes are available to something that will will
> > offload the forwarding normally done by the kernel.  Since the term 'offload'
> > is used so frequently it seems appropriate to use the same language in
> > ip/bridge output.
> >
> > The term 'offload' also seems to resonate with many of the people who have
> > responded on Scott's original thread or to those who I reached out to directly
> > and did respond to my query, so it seems we have reached consensus that it
> > should be the term used going forward.
> >
> > Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
> > CC: Jamal Hadi Salim <jhs@mojatatu.com>
> > CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> > CC: Jiri Pirko <jiri@resnulli.us>
> > CC: John W. Linville <linville@tuxdriver.com>
> > CC: Roopa Prabhu <roopa@cumulusnetworks.com>
> > CC: Scott Feldman <sfeldma@gmail.com>
> > CC: Stephen Hemminger <stephen@networkplumber.org>
> 
> Acked-by: Scott Feldman <sfeldma@gmail.com>

FWIW, I have no objections to consistently using "offload".

Acked-by: Simon Horman <simon.horman@netronome.com>

--
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/bridge/fdb.c b/bridge/fdb.c
index 3c33e22..e34933b 100644
--- a/bridge/fdb.c
+++ b/bridge/fdb.c
@@ -159,7 +159,7 @@  int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 	if (r->ndm_flags & NTF_ROUTER)
 		fprintf(fp, "router ");
 	if (r->ndm_flags & NTF_EXT_LEARNED)
-		fprintf(fp, "external ");
+		fprintf(fp, "offload ");
 
 	fprintf(fp, "%s\n", state_n2a(r->ndm_state));
 	return 0;
diff --git a/ip/iproute.c b/ip/iproute.c
index 024d401..34a5216 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -412,6 +412,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, "offload ");
 	if (r->rtm_flags & RTM_F_NOTIFY)
 		fprintf(fp, "notify ");
 	if (tb[RTA_MARK]) {