Subject: Re: [PATCH iproute2] iproute2: unify naming for entries offloaded to hardware

From: roopa <[email-masked]>
Date: Tue, 24 Mar 2015 21:28:46 -0700

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 <[email-masked]>
> 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 <[email-masked]>
> CC: Jamal Hadi Salim <[email-masked]>
> CC: Jeff Kirsher <[email-masked]>
> CC: Jiri Pirko <[email-masked]>
> CC: John W. Linville <[email-masked]>
> CC: Roopa Prabhu <[email-masked]>
> CC: Scott Feldman <[email-masked]>
> CC: Stephen Hemminger <[email-masked]>
> ---
>   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.