From: Chris Wright <chrisw@redhat.com>
To: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Cc: Chris Wright <chrisw@redhat.com>,
Scott Feldman <scofeldm@cisco.com>,
David Miller <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Ameen Rahman <ameen.rahman@qlogic.com>,
Amit Salecha <amit.salecha@qlogic.com>,
Rajesh Borundia <rajesh.borundia@qlogic.com>,
"shemminger@vyatta.com" <shemminger@vyatta.com>
Subject: Re: eSwitch management
Date: Fri, 23 Apr 2010 16:04:38 -0700 [thread overview]
Message-ID: <20100423230438.GC3843@x200.localdomain> (raw)
In-Reply-To: <193C9C72-488F-4543-9BC1-F9938F189E91@qlogic.com>
* Anirban Chakraborty (anirban.chakraborty@qlogic.com) wrote:
>
> On Apr 23, 2010, at 12:44 PM, Chris Wright wrote:
>
> > * Anirban Chakraborty (anirban.chakraborty@qlogic.com) wrote:
> >> On Apr 23, 2010, at 9:23 AM, Chris Wright wrote:
> >>> * Anirban Chakraborty (anirban.chakraborty@qlogic.com) wrote:
> >>>> It looks like ifla_vf_info does contain most of the data set. But if I use it, what NETLINK protocol family should I use in my driver to receive netlink messages? Do I need to create a private protocol family?
> >>>
> >>> No, you don't need to use netlink in your driver. You just need to fill
> >>> in the relevant net_device_ops in your driver init. Specifically:
> >>>
> >>> * SR-IOV management functions.
> >>> * int (*ndo_set_vf_mac)(struct net_device *dev, int vf, u8* mac);
> >>> * int (*ndo_set_vf_vlan)(struct net_device *dev, int vf, u16 vlan, u8 qos);
> >>> * int (*ndo_set_vf_tx_rate)(struct net_device *dev, int vf, int rate);
> >>> * int (*ndo_get_vf_config)(struct net_device *dev,
> >>> * int vf, struct ifla_vf_info *ivf);
> >>>
> >>> These are all operating on a VF indexed internally w/in the driver, so it's
> >>> a little cumbersome to use from userspace.
> >>
> >> These are all intended for VFs and are configureable from PF.
> >
> > Yes, and while the set of callbacks can change, they are always tied to
> > some net_device (typically the PF) that knows how to make hardware
> > settings on behalf of a VF.
> >
> >> However, in our case, there are multiple physical NIC function on a
> >> port which are configureable by the eswitch.
> >
> > Is there a PCI function that represents the switch? Or a special PCI
> > NIC function that has VEB mgmt plane access? And do you have examples
> > of configuration that you'll do here?
>
> There is no PCI function that represents the switch. However, one
> of the NIC functions can act as a privileged function to configure the
> eswitch. Typically the first NIC function that is enumerated in the bus
> manages the eswitch. Typical configurations would be to set tx bandwidth,
> VLAN ID, MAC address, promiscuous mode setting for each of these ports
> at the start of the day. This is useful in virtualization scenario where
> we can do PCI passthru of the functions to the guest and these settings
> for the guest are configured via the driver in the host.
(btw, this is not uncommon, there other adapters that have multiple
functions for a single physical port that is not SR-IOV based)
How does the privileged function identify the other functions? IOW, the
existing SR-IOV ndo callbacks have most of the above (tx bw control, mac,
vlan id), and have an 'int vf' which is basically just a driver specific
identifier to a non-privileged function or set of hw resources. It looks
like you can use the existing bits (just need to expand a little).
So far we have only:
- tx bw control
- set mac addr
- set vlan id
You've additionally identified:
- set promiscuous mode
I'm also aware of:
- setting port aggregation
- issuing a function reset
- setting port mirroring or bcast/mcast replication
- setting anti-spoofing (mac/vlan..)
- setting security/filtering
- getting port statistics
- ...whatever else I'm forgetting
> <snip>
> >
> > One idea that has been discussed in the past is to create essentially
> > a pluggable set of bridge_ops. The first step would be purely internal
> > shuffling, to make the existing sw bridge code go through the bridge_ops.
> > The second step would be making your driver for whichever PCI function
> > you have that supports managing the bridge create a net_device which is
> > a bridge during driver init. And now normal brctl can call into your
> > VEB via the bridge_ops callbacks. </handwave>
> >
> I liked the idea of iovnl as it works by utilizing port profile. That way the eswitch can be configured with the same port profile that a vswitch in a hypervisor has.
I don't quite follow you here.
thanks,
-chris
next prev parent reply other threads:[~2010-04-23 23:04 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-19 19:18 [net-next PATCH 0/2] iovnl netlink ops + enic dynamic vnics Scott Feldman
2010-04-19 19:18 ` [net-next PATCH 1/2] add iovnl netlink support Scott Feldman
2010-04-20 13:48 ` [net-next,1/2] " Arnd Bergmann
2010-04-20 14:34 ` Chris Wright
2010-04-20 14:57 ` Arnd Bergmann
2010-04-20 15:22 ` Chris Wright
2010-04-20 16:19 ` Arnd Bergmann
2010-04-20 20:26 ` Scott Feldman
2010-04-21 13:17 ` Arnd Bergmann
2010-04-21 16:28 ` Scott Feldman
2010-04-21 18:04 ` Arnd Bergmann
2010-04-20 19:56 ` Scott Feldman
2010-04-21 11:26 ` Arnd Bergmann
2010-04-21 11:42 ` Selective MD5 Checksum Failuers Bijay Singh
2010-04-21 16:18 ` [net-next,1/2] add iovnl netlink support Chris Wright
2010-04-21 17:52 ` Arnd Bergmann
2010-04-21 18:10 ` Chris Wright
2010-04-21 19:39 ` Arnd Bergmann
2010-04-21 20:25 ` Scott Feldman
2010-04-21 21:13 ` Arnd Bergmann
2010-04-21 22:48 ` Chris Wright
2010-04-22 6:51 ` Arnd Bergmann
2010-04-22 17:47 ` Chris Wright
2010-04-22 18:48 ` Arnd Bergmann
2010-04-22 19:02 ` Chris Wright
2010-04-22 19:36 ` Arnd Bergmann
2010-04-22 21:03 ` Chris Wright
2010-04-21 23:54 ` Scott Feldman
2010-04-22 12:49 ` Arnd Bergmann
2010-04-22 7:09 ` David Miller
2010-04-21 22:18 ` Chris Wright
2010-04-22 0:01 ` Scott Feldman
2010-04-21 21:22 ` Arnd Bergmann
2010-04-22 6:48 ` [net-next PATCH 1/2] " David Miller
2010-04-22 21:23 ` Scott Feldman
2010-04-22 23:04 ` David Miller
2010-04-22 23:16 ` eSwitch management Anirban Chakraborty
2010-04-23 0:47 ` Scott Feldman
2010-04-23 1:29 ` Scott Feldman
2010-04-23 5:57 ` Anirban Chakraborty
2010-04-23 12:42 ` Arnd Bergmann
2010-04-23 16:23 ` Chris Wright
2010-04-23 19:00 ` Anirban Chakraborty
2010-04-23 19:44 ` Chris Wright
2010-04-23 21:08 ` Anirban Chakraborty
2010-04-23 23:04 ` Chris Wright [this message]
2010-04-24 6:21 ` Anirban Chakraborty
2010-04-22 6:52 ` [net-next PATCH 1/2] add iovnl netlink support David Miller
2010-04-22 10:53 ` Arnd Bergmann
2010-04-22 10:56 ` David Miller
2010-04-22 11:12 ` Arnd Bergmann
2010-04-19 19:18 ` [net-next PATCH 2/2] add enic iovnl ops for dynamic vnics Scott Feldman
2010-04-19 21:35 ` [net-next PATCH 0/2] iovnl netlink ops + enic " Chris Wright
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=20100423230438.GC3843@x200.localdomain \
--to=chrisw@redhat.com \
--cc=ameen.rahman@qlogic.com \
--cc=amit.salecha@qlogic.com \
--cc=anirban.chakraborty@qlogic.com \
--cc=arnd@arndb.de \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=rajesh.borundia@qlogic.com \
--cc=scofeldm@cisco.com \
--cc=shemminger@vyatta.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox