From: Stephen Hemminger <shemminger@vyatta•com>
To: Jiri Pirko <jiri@resnulli•us>
Cc: netdev@vger•kernel.org, davem@davemloft•net, edumazet@google•com,
bhutchings@solarflare•com, faisal.latif@intel•com,
fbl@redhat•com, roland@kernel•org, sean.hefty@intel•com,
hal.rosenstock@gmail•com, fubar@us•ibm.com, andy@greyhouse•net,
divy@chelsio•com, jitendra.kalsaria@qlogic•com,
sony.chacko@qlogic•com, linux-driver@qlogic•com, kaber@trash•net,
ursula.braun@de•ibm.com, blaschka@linux•vnet.ibm.com,
schwidefsky@de•ibm.com, heiko.carstens@de•ibm.com,
ebiederm@xmission•com, joe@perches•com, amwang@redhat•com,
nhorman@tuxdriver•com, john.r.fastabend@intel•com,
pablo@netfilter•org
Subject: Re: [patch net-next 01/15] net: introduce upper device lists
Date: Mon, 31 Dec 2012 11:22:12 -0800 [thread overview]
Message-ID: <20121231112212.03319226@nehalam.linuxnetplumber.net> (raw)
In-Reply-To: <1356868702-8144-2-git-send-email-jiri@resnulli.us>
On Sun, 30 Dec 2012 12:58:08 +0100
Jiri Pirko <jiri@resnulli•us> wrote:
> This lists are supposed to serve for storing pointers to all upper devices.
> Eventually it will replace dev->master pointer which is used for
> bonding, bridge, team but it cannot be used for vlan, macvlan where
> there might be multiple upper present. In case the upper link is
> replacement for dev->master, it is marked with "master" flag.
>
> New upper device list resolves this limitation. Also, the information
> stored in lists is used for preventing looping setups like
> "bond->somethingelse->samebond"
>
> Signed-off-by: Jiri Pirko <jiri@resnulli•us>
I like the concept of knowing the topology of layered network devices.
The name "upper device lists" is a little confusing to me.
Also, the amount of additional data structures and book keeping
seems more than needed; but not sure how to reduce it down to the
least code.
For simple case of detecting loops, just using existing master
pointer is sufficient.
ethernet --> bonding --> bridge --+
^ |
| |
+-----------------+
This is the simple case of detecting if singularly linked list
is a loop.
The only device where multiple upper devices is possible seems
to be macvlan. Could the special case code be limited to there?
next prev parent reply other threads:[~2012-12-31 19:23 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-30 11:58 [patch net-next V4 00/15] net: introduce upper device lists and remove dev->master Jiri Pirko
2012-12-30 11:58 ` [patch net-next 01/15] net: introduce upper device lists Jiri Pirko
2012-12-30 18:00 ` Ben Greear
2012-12-30 22:08 ` Jiri Pirko
2012-12-31 4:56 ` Stephen Hemminger
2012-12-31 9:55 ` Jiri Pirko
2012-12-31 19:22 ` Stephen Hemminger [this message]
2013-01-01 1:04 ` Jiri Pirko
2012-12-30 11:58 ` [patch net-next 02/15] macvlan: add link to upper device Jiri Pirko
2012-12-30 11:58 ` [patch net-next 03/15] vlan: " Jiri Pirko
2012-12-30 11:58 ` [patch net-next 04/15] rtnetlink: remove usage of dev->master Jiri Pirko
2012-12-30 18:00 ` Ben Greear
2012-12-30 11:58 ` [patch net-next 05/15] team: remove usage of netdev_set_master() Jiri Pirko
2012-12-30 11:58 ` [patch net-next 06/15] bridge: " Jiri Pirko
2012-12-30 11:58 ` [patch net-next 07/15] netpoll: remove usage of dev->master Jiri Pirko
2012-12-30 11:58 ` [patch net-next 08/15] cxgb3: " Jiri Pirko
2012-12-30 11:58 ` [patch net-next 09/15] qlcnic: guard __vlan_find_dev_deep() by rcu_read_lock Jiri Pirko
2012-12-30 11:58 ` [patch net-next 10/15] qeth: ensure that __vlan_find_dev_deep() is called with rcu_read_lock Jiri Pirko
2012-12-30 11:58 ` [patch net-next 11/15] vlan: remove usage of dev->master in __vlan_find_dev_deep() Jiri Pirko
2012-12-30 11:58 ` [patch net-next 12/15] nes: remove usage of dev->master Jiri Pirko
2012-12-30 11:58 ` [patch net-next 13/15] bonding: " Jiri Pirko
2012-12-30 11:58 ` [patch net-next 14/15] net: remove no longer used netdev_set_bond_master() and netdev_set_master() Jiri Pirko
2012-12-30 11:58 ` [patch net-next 15/15] net: kill dev->master Jiri Pirko
2013-01-02 10:54 ` [patch net-next V4 00/15] net: introduce upper device lists and remove dev->master David Miller
2013-01-02 12:30 ` Jiri Pirko
-- strict thread matches above, loose matches on Subject: below --
2012-12-29 10:38 [patch net-next V3 " Jiri Pirko
2012-12-29 10:38 ` [patch net-next 01/15] net: introduce upper device lists Jiri Pirko
2012-12-29 23:31 ` David Miller
2012-12-30 9:53 ` 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=20121231112212.03319226@nehalam.linuxnetplumber.net \
--to=shemminger@vyatta$(echo .)com \
--cc=amwang@redhat$(echo .)com \
--cc=andy@greyhouse$(echo .)net \
--cc=bhutchings@solarflare$(echo .)com \
--cc=blaschka@linux$(echo .)vnet.ibm.com \
--cc=davem@davemloft$(echo .)net \
--cc=divy@chelsio$(echo .)com \
--cc=ebiederm@xmission$(echo .)com \
--cc=edumazet@google$(echo .)com \
--cc=faisal.latif@intel$(echo .)com \
--cc=fbl@redhat$(echo .)com \
--cc=fubar@us$(echo .)ibm.com \
--cc=hal.rosenstock@gmail$(echo .)com \
--cc=heiko.carstens@de$(echo .)ibm.com \
--cc=jiri@resnulli$(echo .)us \
--cc=jitendra.kalsaria@qlogic$(echo .)com \
--cc=joe@perches$(echo .)com \
--cc=john.r.fastabend@intel$(echo .)com \
--cc=kaber@trash$(echo .)net \
--cc=linux-driver@qlogic$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=nhorman@tuxdriver$(echo .)com \
--cc=pablo@netfilter$(echo .)org \
--cc=roland@kernel$(echo .)org \
--cc=schwidefsky@de$(echo .)ibm.com \
--cc=sean.hefty@intel$(echo .)com \
--cc=sony.chacko@qlogic$(echo .)com \
--cc=ursula.braun@de$(echo .)ibm.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