Re: [RFC PATCH] net: Add support for virtual machine device queues (VMDQ)
From: John Fastabend <hidden>
Date: 2012-08-26 19:09:24
On 8/26/2012 6:11 AM, Or Gerlitz wrote:
On Thu, Jul 19, 2012 at 1:05 AM, John Fastabend [off-list ref] wrote:quoted
This adds support to allow virtual net devices to be created. These devices can be managed independently of the physical function but use the same physical link. This is analogous to an offloaded macvlan device. The primary advantage to VMDQ net devices over virtual functions is they can be added and removed dynamically as needed.Hi John, When VMDQ devices are opened over a virtual function which is assigned to guest, the design should include a way to apply the following ndo_set_vf_yyy calls to them 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_set_vf_spoofchk)(struct net_device *dev, int vf, bool setting); Someone here suggested using a sub-index notation, that is m.n represents vmdq device index = n on VF index = m where vf.0 is the non vmdq VF device, makes sense? other thoughts? Or.
That seems reasonable to me. Adding a 'sub' argument to the set routines should do it. Also the 'get' routines would need to be extended to report back these virtual net devices. int (*ndo_set_vf_mac)(struct net_device *dev, int vf, int sub, u8* mac); int (*ndo_set_vf_vlan)(struct net_device *dev, int vf, int sub, u16 vlan, u8 qos); int (*ndo_set_vf_tx_rate)(struct net_device *dev, int vf, int sub, int rate); int (*ndo_set_vf_spoofchk)(struct net_device *dev, int vf, int sub, bool setting); int (*ndo_get_vf_config)(struct net_device *dev, int vf, int sub, struct fila_vf_info *ivf) I would need to check if any of the ixgbe/igb supported hardware can support virtual device queues on virtual functions like this but I presume if your looking at this you have some hardware that can. I was hoping to get back to this in September, of course if someone beats me to it that would be great also. .John