Darren Reed writes: > Andrew Gallatin wrote: > > Darren Reed writes: > > > Can any of the existing NICs receive a packet into more > > > than one buffer simultaneously? > > > > Myri10GE uses firmware on the NIC, so it can do nearly anything in > > theory. > > > > > To explain this, if I have a NIC with rx rings A and B, > > > what I'd like it to do is deliver every packet into both > > > rx rings. Is that possible? > > > > Yes, with firmware modifications, Myri10GE could do this. However, by > > DMA'ing things twice, you'd double PCIe bus utilization and increase > > the work done by the firmware, limiting performance. > > Hmmm. > Is it possible to have two descriptors point to the > same buffer? Or rather to receive one packet, put > it in a single buffer but have two (or more descriptor > rings) have a reference to it? > > And flag the packet as "I am only receiving this because > of promiscuous mode"? > > Besides this being useful for packet capture (where as Seb > guessed right, the benefit is to better isolate the workload > from the packets being captured), this can also be useful > for exclusive stack instances where there are multiple vnics > created atop a physical nic that has multiple descriptor > rings. How does this latter point come into play? > > If I have 3 vnics, each belonging to individual zones and > part of the same subnet, it stands to reason that each one > of them wants to receive the same broadcast packets and possibly > the same set of multicast packets. Thus if the NIC can > receive one packet but put it on 3 descriptor rings, one for > each of 3 zones, there should be a small benefit here in > handling broadcast and multicast traffic for all concerned.
I don't know enough about vnics in Solaris to answer super intelligently. If I think about this in terms of our current GLDv3 driver, modified slightly to hash packets to different rings based on destination MAC (rather than IP addrs/ports) like we do in other virtualized OSes, then I could imagine a shared ring for broadcast / multicast / promisc traffic. However, it seems like the coordination required between the different rings would be sufficently complicated that something simpler (like copying at a higher level, or your original proposal of multiple DMAs) would actually be better. Drew _______________________________________________ networking-discuss mailing list [email protected]
