All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jamal Hadi Salim <jhs@mojatatu.com>
To: Scott Feldman <sfeldma@gmail.com>
Cc: John Fastabend <john.r.fastabend@intel.com>,
	Jiri Pirko <jiri@resnulli.us>, Netdev <netdev@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	"nhorman@tuxdriver.com" <nhorman@tuxdriver.com>,
	Andy Gospodarek <andy@greyhouse.net>, Thomas Graf <tgraf@suug.ch>,
	"dborkman@redhat.com" <dborkman@redhat.com>,
	"ogerlitz@mellanox.com" <ogerlitz@mellanox.com>,
	"jesse@nicira.com" <jesse@nicira.com>,
	"pshelar@nicira.com" <pshelar@nicira.com>,
	"azhou@nicira.com" <azhou@nicira.com>,
	"ben@decadent.org.uk" <ben@decadent.org.uk>,
	"stephen@networkplumber.org" <stephen@networkplumber.org>,
	"Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>,
	"vyasevic@redhat.com" <vyasevic@redhat.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Eric Dumazet <edumazet@google.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Roopa Prabhu <roopa@cumulusnetworks.com>,
	John Linville <linville@tuxdriver.com>
Subject: Re: [patch net-next v3 02/17] net: make vid as a parameter for ndo_fdb_add/ndo_fdb_del
Date: Wed, 26 Nov 2014 06:28:18 -0500	[thread overview]
Message-ID: <5475B952.2080500@mojatatu.com> (raw)
In-Reply-To: <CAE4R7bA2VPZ3tm2MrsXAm4XfNX0TguT=vUma-3HrZSu98hBGyA@mail.gmail.com>

On 11/25/14 22:59, Scott Feldman wrote:
> On Tue, Nov 25, 2014 at 5:19 PM, Jamal Hadi Salim <jhs@mojatatu.com> wrote:
>> On 11/25/14 21:36, Scott Feldman wrote:

>>
>>>> Ok, guess i am gonna have to go stare at the code some more.
>>>> I thought we returned one of the error codes?
>>>> A bitmask would work for a single entry - because you have two
>>>> options add to h/ware and/or s/ware. So response is easy to encode.
>>>> But if i have 1000 and they are sparsely populated (think an indexed
>>>> table and i have indices 1, 23, 45, etc), then a bitmask would be
>>>> hard to use.
>>>
>>>
>>> I'm confused by this discussion.
>>
>>
>> This is about the policy which states "install as many as you can, dont
>> worry about failures". In such a case, how do you tell user space back
>> "oh, btw you know your request #1, #23, and 45 went ok, but nothing else
>> worked". A simple return code wont work. You could return a code to
>> say "some worked". At which case user space could dump and find out only
>> #1, #23 and #45 worked.
>
> You request for what?  That's my confusion.

Scott, you are gonna make do this all over again?;->
The summary is there are three possible policies that could be
identified by the user asking for a kernel operation.
One use case example was to send a bunch of (for example)
create/updates and request that the kernel should not abort on a
failure of a single one but to keep going and create/update as many
as possible. Is that part clear? I know it is not what you do,
but there are use cases for that (Read John's response).
Now assuming someone wants this and some entries failed;
how do you tell user space back what was actually updated vs not?
You could return a code which says "partial success".
Forget whether the table is keyed or indexed but if you wanted
to return more detailed info you would return an array/vector of some
sort with status code per entry. Something netlink cant do.
Is that a better description?

> Are you trying to install
> FDB entry into both SW and HW at same time?


What is wrong with installing on both hardware and software? The
point was to identify what kind of policies could be requested by
the user; but even for the bridge why is it bad that i ask for
both master&self?
It is something I can do today with none of these patches.

> And then do a bunch in a
> batch?  I'm saying use MASTER for SW and SELF for HW in two steps,

But that would be enforcing your policy on me.

> if
> you want FDB entry installed in both Sw and HW.  Check your return
> code each step.  Batch all to HW first, then batch all that PASSED to
> SW.  I don't even know really why you're trying to install to both HW
> and SW.  Install it to HW and be done. fdb_dump will set HW entries
> via SELF.
>

First off: bad performance, but your call to do it that way
(just please please dont enforce it on me;->)

Lets take the hardware batching you mentioned above and see if
i can help to clarify in the third policy choice (continue-on-failure).
Lets say you have a keyed table such as the fdb table is.
You send 10 entries to be created/added in hardware. #3 and #5 failed
because you made a mistake and sent them with the same key. #9 and #10
failed because the hardware doesnt have any more space.
we didnt stop and go back for #3 and #5 because the user told
us to continue and do the rest when we fail. And s/he did that because
she wanted to put as many entries in hardware as possible without
necessarily needing to know how much space exists.


> Ah, Jamal, look again at patches 13-17/17 in last v3 set.  That was a
> big steaming snickerdoodle just for you!  Now you can push policy
> knobs down to port driver and or bridge to fine tune what ever you
> want.  You'll find knobs for learning, flooding, learning sync to hw,
> etc.  I thought you even ACKed some of these.

I think it almost there.
What you are missing is the policy decision to only sync when i
say so. Having an ndo_ops is a necessity but i dont want the driver
to decide for me just because it can ;->
Telling hardware to learn is instructing it to self update its entries
based on source lookup failure. That is distinctly different from
telling to sync to the kernel. So if you add that knob we are in good
shape.

cheers,
jamal

> a) above knob is 14/17
> patch, b) above is using existing learning knob on bridge, c) above I
> don't get...no point in syncing that direction.
>

  reply	other threads:[~2014-11-26 11:28 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-25 10:28 [patch net-next v3 00/17] introduce rocker switch driver with hardware accelerated datapath api - phase 1: bridge fdb offload Jiri Pirko
2014-11-25 10:28 ` [patch net-next v3 01/17] bridge: rename fdb_*_hw to fdb_*_hw_addr to avoid confusion Jiri Pirko
2014-11-25 15:03   ` Andy Gospodarek
2014-11-25 15:26   ` Jamal Hadi Salim
2014-11-25 22:11   ` Thomas Graf
2014-11-25 22:33   ` Florian Fainelli
2014-11-25 10:28 ` [patch net-next v3 02/17] net: make vid as a parameter for ndo_fdb_add/ndo_fdb_del Jiri Pirko
2014-11-25 15:13   ` Andy Gospodarek
2014-11-25 15:18     ` Jiri Pirko
2014-11-25 15:43       ` John Fastabend
2014-11-25 16:38         ` Jiri Pirko
2014-12-09 11:57         ` Or Gerlitz
2014-11-25 15:38   ` Jamal Hadi Salim
2014-11-25 16:01     ` John Fastabend
2014-11-25 16:18       ` Jamal Hadi Salim
2014-11-25 16:30         ` John Fastabend
2014-11-25 16:50           ` Jamal Hadi Salim
2014-11-26  1:44             ` Simon Horman
2014-11-26  2:36             ` Scott Feldman
2014-11-26  3:19               ` Jamal Hadi Salim
2014-11-26  3:59                 ` Scott Feldman
2014-11-26 11:28                   ` Jamal Hadi Salim [this message]
2014-11-26 11:40                     ` Jiri Pirko
2014-11-26 11:54                       ` Jamal Hadi Salim
2014-11-26 12:06                         ` Jamal Hadi Salim
2014-11-27  6:50                     ` Scott Feldman
2014-11-27 12:14                       ` Jamal Hadi Salim
2014-11-27 20:59                         ` Scott Feldman
2014-11-27 21:55                           ` Jiri Pirko
2014-11-28 12:57                             ` Jamal Hadi Salim
2014-11-28 10:14               ` Roopa Prabhu
2014-11-28 10:33                 ` Scott Feldman
2014-11-25 16:19     ` Roopa Prabhu
2014-11-25 16:33       ` John Fastabend
2014-11-25 16:57         ` Jamal Hadi Salim
2014-11-25 16:43       ` Jiri Pirko
2014-11-25 18:53   ` Samudrala, Sridhar
2014-11-25 20:40     ` Jiri Pirko
2014-11-25 22:14   ` Thomas Graf
2014-11-25 22:39     ` Florian Fainelli
2014-11-25 23:11       ` Thomas Graf
2014-11-26  7:54     ` Jiri Pirko
2014-11-25 10:28 ` [patch net-next v3 03/17] net: rename netdev_phys_port_id to more generic name Jiri Pirko
2014-11-25 15:15   ` Andy Gospodarek
2014-11-25 15:44   ` Jamal Hadi Salim
2014-11-25 10:28 ` [patch net-next v3 04/17] net: introduce generic switch devices support Jiri Pirko
2014-11-25 15:02   ` Andy Gospodarek
2014-11-25 15:51   ` Jamal Hadi Salim
2014-11-25 16:49     ` Jiri Pirko
2014-11-25 17:08       ` Jamal Hadi Salim
2014-11-25 21:54         ` Thomas Graf
2014-11-26  3:33           ` Jamal Hadi Salim
2014-11-26  4:18             ` Scott Feldman
2014-11-26 11:36               ` Jamal Hadi Salim
2014-11-26 16:08                 ` Thomas Graf
2014-11-26 17:09                   ` Jamal Hadi Salim
2014-11-26 17:59                     ` Jiri Pirko
2014-11-26 21:50                       ` Thomas Graf
2014-11-26 23:32                         ` Jamal Hadi Salim
2014-11-27 13:03                           ` Thomas Graf
2014-11-27 13:32                             ` Jamal Hadi Salim
2014-11-27 13:50                               ` Jiri Pirko
2014-11-28 13:13                                 ` Jamal Hadi Salim
2014-11-27  5:58                 ` Scott Feldman
2014-11-27 12:46                   ` Jamal Hadi Salim
2014-11-27  3:13             ` Simon Horman
2014-11-27 12:35               ` Jamal Hadi Salim
2014-11-25 16:07   ` Roopa Prabhu
2014-11-25 16:50     ` Jiri Pirko
2014-11-25 10:28 ` [patch net-next v3 05/17] rtnl: expose physical switch id for particular device Jiri Pirko
2014-11-25 15:16   ` Andy Gospodarek
2014-11-25 10:28 ` [patch net-next v3 06/17] net-sysfs: " Jiri Pirko
2014-11-25 15:28   ` Andy Gospodarek
2014-11-25 15:53   ` Jamal Hadi Salim
2014-11-25 22:27   ` Florian Fainelli
2014-11-25 10:28 ` [patch net-next v3 07/17] rocker: introduce rocker switch driver Jiri Pirko
2014-11-25 15:57   ` Jamal Hadi Salim
2014-11-25 16:57     ` Jiri Pirko
2014-11-25 17:10     ` David Miller
2014-11-25 17:15       ` Jiri Pirko
2014-11-25 17:15         ` Jamal Hadi Salim
2014-11-25 17:51         ` Andy Gospodarek
2014-11-25 16:13   ` David Laight
2014-11-25 19:19     ` Scott Feldman
2014-11-25 21:57       ` tgraf
2014-11-25 10:28 ` [patch net-next v3 08/17] bridge: call netdev_sw_port_stp_update when bridge port STP status changes Jiri Pirko
2014-11-25 15:58   ` Andy Gospodarek
2014-11-25 16:53     ` Jiri Pirko
2014-11-25 22:18       ` Thomas Graf
2014-11-25 22:20     ` Florian Fainelli
2014-11-25 22:48   ` Roopa Prabhu
2014-11-26  1:35     ` Scott Feldman
2014-11-28 10:05       ` Roopa Prabhu
2014-11-28 10:51         ` Scott Feldman
2014-11-28 13:17           ` Jamal Hadi Salim
2014-11-28 13:27             ` Jiri Pirko
2014-11-28 16:23             ` Roopa Prabhu
2014-11-25 10:28 ` [patch net-next v3 09/17] bridge: add API to notify bridge driver of learned FBD on offloaded device Jiri Pirko
2014-11-25 16:01   ` Jamal Hadi Salim
2014-11-25 16:38   ` Andy Gospodarek
2014-11-25 22:36     ` Thomas Graf
2014-11-26  1:48       ` Scott Feldman
2014-11-26 10:26         ` Jiri Pirko
2014-11-25 22:44   ` Florian Fainelli
2014-11-26  2:03     ` Scott Feldman
2014-11-26  2:34       ` Florian Fainelli
2014-11-26  2:40         ` Scott Feldman
2014-11-26  8:16           ` Jiri Pirko
2014-11-26  3:22     ` Jamal Hadi Salim
2014-11-25 10:28 ` [patch net-next v3 10/17] rocker: implement rocker ofdpa flow table manipulation Jiri Pirko
2014-11-25 16:03   ` Jamal Hadi Salim
2014-11-25 10:28 ` [patch net-next v3 11/17] rocker: implement L2 bridge offloading Jiri Pirko
2014-11-25 16:04   ` Jamal Hadi Salim
2014-11-25 17:11     ` David Miller
2014-11-25 10:28 ` [patch net-next v3 12/17] rocker: implement ndo_fdb_dump Jiri Pirko
2014-11-25 16:04   ` Jamal Hadi Salim
2014-11-25 10:28 ` [patch net-next v3 13/17] bridge: move private brport flags to if_bridge.h so port drivers can use flags Jiri Pirko
2014-11-25 16:01   ` Andy Gospodarek
2014-11-25 16:05   ` Jamal Hadi Salim
2014-11-25 22:20   ` Florian Fainelli
2014-11-25 22:48   ` Thomas Graf
2014-11-26 12:12     ` Jiri Pirko
2014-11-25 10:28 ` [patch net-next v3 14/17] bridge: add new brport flag LEARNING_SYNC Jiri Pirko
2014-11-25 16:05   ` Roopa Prabhu
2014-11-25 16:06   ` Jamal Hadi Salim
2014-11-25 16:40   ` Andy Gospodarek
2014-11-25 10:28 ` [patch net-next v3 15/17] bridge: add new hwmode swdev Jiri Pirko
2014-11-25 16:03   ` Roopa Prabhu
2014-11-25 16:17     ` Andy Gospodarek
2014-11-25 22:56       ` Thomas Graf
2014-11-25 16:07   ` Jamal Hadi Salim
2014-11-25 23:00     ` Thomas Graf
2014-11-25 10:28 ` [patch net-next v3 16/17] bridge: add brport flags to dflt bridge_getlink Jiri Pirko
2014-11-25 16:08   ` Jamal Hadi Salim
2014-11-25 17:02     ` Scott Feldman
2014-11-25 17:48   ` Andy Gospodarek
2014-11-25 22:07   ` Thomas Graf
2014-11-26  9:25     ` Jiri Pirko
2014-11-26 10:48       ` Thomas Graf
2014-11-25 10:28 ` [patch net-next v3 17/17] rocker: add ndo_bridge_setlnk/getlink support for learning policy Jiri Pirko
2014-11-25 16:09   ` Jamal Hadi Salim
2014-11-25 18:55     ` Scott Feldman
2014-11-25 19:00       ` Jamal Hadi Salim
2014-11-25 20:42         ` Jiri Pirko
2014-11-26 11:07   ` Thomas Graf
2014-11-26 11:27     ` Jiri Pirko
2014-11-26 11:30       ` Thomas Graf
2014-11-26 11:42         ` Jiri Pirko
  -- strict thread matches above, loose matches on Subject: below --
2014-11-26  7:35 [patch net-next v3 02/17] net: make vid as a parameter for ndo_fdb_add/ndo_fdb_del Arad, Ronen

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=5475B952.2080500@mojatatu.com \
    --to=jhs@mojatatu.com \
    --cc=andy@greyhouse.net \
    --cc=azhou@nicira.com \
    --cc=ben@decadent.org.uk \
    --cc=davem@davemloft.net \
    --cc=dborkman@redhat.com \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=jesse@nicira.com \
    --cc=jiri@resnulli.us \
    --cc=john.r.fastabend@intel.com \
    --cc=linville@tuxdriver.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=ogerlitz@mellanox.com \
    --cc=pshelar@nicira.com \
    --cc=roopa@cumulusnetworks.com \
    --cc=sfeldma@gmail.com \
    --cc=stephen@networkplumber.org \
    --cc=tgraf@suug.ch \
    --cc=vyasevic@redhat.com \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.