On Thu, Jan 13, 2011 at 3:04 PM, Brandon Gooch <jamesbrandongo...@gmail.com> wrote: > It would be nice to split up the hardware for use with vnet jails. The > virtualization technique you are describing -- it sounds similar to > how network device virtualization is done in the Solaris "Project > Crossbow" implementation. Can you comment on this?
It looks like what I've done is implement what they call "L2 virtualization" in Project Crossbow. > In other words, would we have the ability to have a vnet jail tied to > specific hardware resources (Rx/Tx rings with their own DMA channels > and interrupts, etc...). Exactly right. And the rx ring has a unique MAC, so that's how incoming packets are multiplexed across multiple rings(and ultimately vnets). Also, you can use RSS on top of VMDq. To use the terminology used in the 82599's datasheet, each MAC(and vnet) would be associated with a pool of 1 or more rx and tx rings. Packets are multiplexed across the pools by MAC, and then packets are multiplexed across the rx rings in that pool by a hash over the IP addresses and the TCP/UDP ports. All of this, of course, is subject to the limits of the hardware. The 82598 is quite restrictive: something like 16 pools and up to 4 rings per pool. The 82599 has a lot more pools and queues to work with. On Thu, Jan 13, 2011 at 10:46 AM, Nikos Vassiliadis <nvass9...@gmx.com> wrote: > Yet, I don't know if the number of changes in the infrastructure worth the > labor, for just one specific hardware. Is ixgbe the only hardware that > support such things? > Or maybe it is some trend of the future? Basically all of the changes are within the ixgbe driver. No infrastructure should have to change to support the feature. Also, Project Crossbow was implemented for a number of different drivers, including ixgbe and igb, so it should be possible to implement similar features for other drivers. However, this will always end up being quite hardware-specific so while it'd probably be possible to use the same concepts across the different drivers, it would have to re-implemented for each driver. The if_cloner used to create the virtual ifnets could be shared but that's probably <1% of the work. _______________________________________________ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"