Hi, Kais and Roamer, This is neat doc. I have few questions/comments.
1) This documents describes polling single ring. Can you poll group of rings, if they all share common interrupt number? mrg_intr is described to be "nice to have" per group based common interrupt number, Is it driver dependent? or the mac framework can have virtual interrupt that masks individual interrupts of each individual ring of given group? 2) If any hardware/network driver does not have ring support, can crossbow for such drivers emulate channel/Fifo/ring behavior in software? Does SRS would serve that purpose? 3) I see there is mac_rx_ring_info_t and mac_rx_ring_group_info_t. how about if you have common structures for rx and tx side for info? Instead of having mac_rx_ring_info_t and mac_rx_ring_group_info_t would it make sense to have mac_ring_info_t and mac_ring_group_info_t to be usable for rx and tx side rings or ring-groups.? e.g. To implement above you can have mac_cb function pointer in mac_ring_info_t , and say - 1) for rx side "mac_cb" can be initialized as "mr_poll" and 2) on Tx side "mac_cb" can be initialized as "mr_send" since mr_driver, mr_intr, mr_start, mr_stop are members of mac_rx_ring_info_t as well as mac_tx_ring_info_t and it's just that mr_poll and mr_send routines are different for rx and tx side ring_info respectively. 4) AFAI understand these hardware resource capabilities can help do load balancing/packet classification , how it can help virtualization? cause, As I see, virtual machines are identified using MAC+IP addresses, Is there any userland utilities that can help steer, classify and administer VM's traffic and steer across multiple rings by programming policy/rule on ring/s? Is so, what is it and how user can enforce a policy dynamically on given set of rings or ring groups? I know flowadm can program ring but can it program ring-group? 5) Can you group rings of different physical NICs, If yes, what is the interface for the same? -Deepti Yunsong (Roamer) Lu wrote: >Hi, >We've posted a new design document, Crossbow Hardware Resources >Management and Virtualization, here: >http://dlc.sun.com/osol/netvirt/downloads/docs/virtual_resources.pdf >you're welcome to review and comment. > >In this document, we introduce the new driver interfaces of virtualizing >NIC resources, like multiple rings and multiple MAC addresses, and we >talk about the ideas about organizing various hardware implementations >into the new framework. We're glad to know any comments from IHVs who >are designing new NICs. > >What's not included in the document? The new design evolves GLDv3 >interfaces, but before finalizing those changed interfaces, like >(*mc_tx)(), (*mc_unicast)(), (*mc_resoureces)(), mac_rx(), etc., we >would like to listen to your opinions first. Also, support for PCI-SIG >IOV will be added afterwards. > >Please feel free to comment and share your opinions! > >Thanks, > >Kais & Roamer > > >