public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: David Ahern <dsa@cumulusnetworks•com>
To: Jiri Pirko <jiri@resnulli•us>, netdev@vger•kernel.org
Cc: davem@davemloft•net, idosch@mellanox•com, eladr@mellanox•com,
	yotamg@mellanox•com, ogerlitz@mellanox•com,
	roopa@cumulusnetworks•com, nikolay@cumulusnetworks•com,
	jhs@mojatatu•com, john.fastabend@gmail•com, rami.rosen@intel•com,
	gospo@cumulusnetworks•com, stephen@networkplumber•org,
	sfeldma@gmail•com, f.fainelli@gmail•com, andrew@lunn•ch,
	vivien.didelot@savoirfairelinux•com, tgraf@suug•ch,
	aduyck@mirantis•com
Subject: Re: switchdev fib offload issues
Date: Mon, 18 Apr 2016 10:59:37 -0600	[thread overview]
Message-ID: <57151279.4020806@cumulusnetworks.com> (raw)
In-Reply-To: <20160418154757.GA2059@nanopsycho.amit.cz>

On 4/18/16 9:47 AM, Jiri Pirko wrote:
> Proposed solutions (ideas):
> 1) per-netns. Add a procfs file:
> 	/proc/sys/net/ipv4/route/fib_offload_error_policy
> 	  with values: "evict" - default, current behaviour
>                         "fail" - propagate offload error to user
> 	The policy value would be stored in struct net.
>
> 2) per-VRF/table
> 	When user creates a VRF master, he specifies a table ID
> 	this VRF is going to use. I propose to extend this so
> 	he can pass a policy ("evict"/"fail").
> 	The policy value would be stored in struct fib_table or
> 	struct fib6_table. The problem is that vfr only saves
> 	table ID, allocates dst but does not actually create
> 	table. That might be created later. But I think this
> 	could be resolved.

Yes, we have a local patch where I do create the table for IPv6. Can do 
that for IPv4 as well. Some other clean ups are needed in this area - 
like the ability to delete a table

>
> 3) per-VFR/master_netdev
> 	In this case, the policy would be also set during
> 	the creation of VFR master. From user perspective,
> 	this looks same as 2)
> 	The policy value would be stored in struct net_vrf (vrf private).

The VRF device is really only used for guiding lookups, not inserting 
routes.

A per table/VRF policy (option 2) seems more appropriate.

  parent reply	other threads:[~2016-04-18 16:59 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-18 15:47 switchdev fib offload issues Jiri Pirko
2016-04-18 16:38 ` Ilan Tayari
2016-04-18 17:11   ` David Ahern
2016-04-18 16:59 ` David Ahern [this message]
2016-04-19  7:02   ` Jiri Pirko
2016-04-18 17:17 ` Hannes Frederic Sowa
2016-04-21 13:00   ` Roopa Prabhu
2016-04-18 17:52 ` David Miller
2016-04-19  7:21   ` Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57151279.4020806@cumulusnetworks.com \
    --to=dsa@cumulusnetworks$(echo .)com \
    --cc=aduyck@mirantis$(echo .)com \
    --cc=andrew@lunn$(echo .)ch \
    --cc=davem@davemloft$(echo .)net \
    --cc=eladr@mellanox$(echo .)com \
    --cc=f.fainelli@gmail$(echo .)com \
    --cc=gospo@cumulusnetworks$(echo .)com \
    --cc=idosch@mellanox$(echo .)com \
    --cc=jhs@mojatatu$(echo .)com \
    --cc=jiri@resnulli$(echo .)us \
    --cc=john.fastabend@gmail$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=nikolay@cumulusnetworks$(echo .)com \
    --cc=ogerlitz@mellanox$(echo .)com \
    --cc=rami.rosen@intel$(echo .)com \
    --cc=roopa@cumulusnetworks$(echo .)com \
    --cc=sfeldma@gmail$(echo .)com \
    --cc=stephen@networkplumber$(echo .)org \
    --cc=tgraf@suug$(echo .)ch \
    --cc=vivien.didelot@savoirfairelinux$(echo .)com \
    --cc=yotamg@mellanox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox