From: Jay Vosburgh <fubar@us.ibm.com>
To: Jiri Pirko <jpirko@redhat.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net,
shemminger@linux-foundation.org, kaber@trash.net
Subject: Re: [patch net-next-2.6 3/4] bond: implement slave management operations
Date: Fri, 11 Feb 2011 09:19:50 -0800 [thread overview]
Message-ID: <22104.1297444790@death> (raw)
In-Reply-To: <20110211152257.GC2763@psychotron.brq.redhat.com>
Jiri Pirko <jpirko@redhat.com> wrote:
>Signed-off-by: Jiri Pirko <jpirko@redhat.com>
>---
> drivers/net/bonding/bond_main.c | 38 ++++++++++++++++++++++++++++++++++++++
> 1 files changed, 38 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index 1df9f0e..f8e59f9 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
I think this would be better served by a new bond_netlink.c
file instead of cramming this into (the already huge) bond_main.c. In
the long run, there will be a lot more netlink related code in bonding,
so I think it makes sense to give it a file of its own from the
beginning.
>@@ -4285,6 +4285,40 @@ unwind:
> return res;
> }
>
>+static int bond_add_slave(struct net_device *bond_dev,
>+ struct net_device *slave_dev)
>+{
>+ return bond_enslave(bond_dev, slave_dev);
>+}
>+
>+static int bond_del_slave(struct net_device *bond_dev,
>+ struct net_device *slave_dev)
>+{
>+ return bond_release(bond_dev, slave_dev);
>+}
>+
>+static int bond_get_slave_count(const struct net_device *bond_dev)
>+{
>+ struct bonding *bond = netdev_priv(bond_dev);
>+
>+ return bond->slave_cnt;
>+}
>+
>+static struct net_device *bond_get_slave(const struct net_device *bond_dev,
>+ int slave_index)
>+{
>+ struct bonding *bond = netdev_priv(bond_dev);
>+ struct slave *slave;
>+ int i;
>+
>+ /* no need to hold bond->lock here, protected against writers by rtnl */
>+ bond_for_each_slave(bond, slave, i) {
>+ if (slave_index == i)
>+ return slave->dev;
>+ }
>+ return NULL;
I think using the name "slave_index" for this variable is
confusing, since it isn't the ifindex of the slave. This "index" is
used to iterate through the list of slaves, so perhaps "slave_num" or
"slave_position" is clearer. The same comment applies to the equivalent
code for bridge.
-J
>+}
>+
> static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev)
> {
> struct bonding *bond = netdev_priv(bond_dev);
>@@ -4657,6 +4691,10 @@ static const struct net_device_ops bond_netdev_ops = {
> .ndo_netpoll_cleanup = bond_netpoll_cleanup,
> .ndo_poll_controller = bond_poll_controller,
> #endif
>+ .ndo_add_slave = bond_add_slave,
>+ .ndo_del_slave = bond_del_slave,
>+ .ndo_get_slave_count = bond_get_slave_count,
>+ .ndo_get_slave = bond_get_slave,
> };
>
> static void bond_destructor(struct net_device *bond_dev)
>--
>1.7.3.4
>
---
-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
next prev parent reply other threads:[~2011-02-11 17:19 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-11 15:21 [patch net-next-2.6 1/4] net: extend netlink interface to handle generic slave management Jiri Pirko
2011-02-11 15:22 ` [patch iproute2 2/4] implement slave management operations Jiri Pirko
2011-02-11 15:27 ` Jiri Pirko
2011-02-11 15:22 ` [patch net-next-2.6 3/4] bond: " Jiri Pirko
2011-02-11 17:19 ` Jay Vosburgh [this message]
2011-02-11 17:51 ` Jiri Pirko
2011-02-12 13:16 ` Nicolas de Pesloüan
2011-02-12 13:20 ` Jiri Pirko
2011-02-11 15:23 ` [patch net-next-2.6 4/4] bridge: " Jiri Pirko
2011-02-28 22:17 ` Stephen Hemminger
2011-02-28 22:45 ` Stephen Hemminger
2011-03-01 6:19 ` Jiri Pirko
2011-02-11 15:48 ` [patch net-next-2.6 1/4] net: extend netlink interface to handle generic slave management Patrick McHardy
2011-02-11 17:40 ` 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=22104.1297444790@death \
--to=fubar@us.ibm.com \
--cc=davem@davemloft.net \
--cc=jpirko@redhat.com \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.org \
/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.