gianfar: multiqueue, vlan pbits -> qos?
Subsystems (2)
Hey Netdevers...
I'm looking into extending the gianfar driver to
make use of multiple rx (and maybe tx) queues.
I've started to read the gianfar source, the Freescale docs and netdev.
Has anyone done this already?
My interest is in LAN network QOS,
primarily selective discard under overload.
I'm thinking that I'll create several vlans in my network and do a strict vlan priority bit based servicing.
I'm also poking at the multi-queue work that has been done and wondering how that might fit into a solution. I haven't read the e1000 multiqueue driver yet...
Any tips, flames or code?
Thanks,
// Randy
Quoted 1 line
Has anyone done this already?
Take a look at the ixgbe driver (multiple Tx queues, multiple Rx with RSS queues) in the net-2.6.26 tree.
Quoted 1 line
I'm also poking at the multi-queue work that has been done and
wondering how that might fit into a solution.
Quoted 1 line
I haven't read the e1000 multiqueue driver yet...
E1000 was my original target for multiqueue, but ixgbe made more sense while the e1000/e1000e driver split was happening. Basically the way the multiqueue kernel side works is to use a multiqueue-aware qdisc (prio or round-robin). When you filter (via tc, iptables and tc), the packet's skb->queue_mapping field is populated. Then use that field in your driver to select which Tx queue to use.
As for Rx, you'll need some sort of hardware support to truly filter off the wire without heavy driver lifting. Look at e1000, e1000e, igb, or ixgbe, for the RSS setup for Rx. I'm not sure what your hardware supports, but this might be there already.
Hope this helps. Feel free to ping me about the Tx multiqueue stuff if you have additional questions,
Cheers,
-PJ Waskiewicz
Quoted 13 lines · Randy Macleod
Hey Netdevers...
I'm looking into extending the gianfar driver to
make use of multiple rx (and maybe tx) queues.
I've started to read the gianfar source, the Freescale docs and netdev.Has anyone done this already?
My interest is in LAN network QOS,
primarily selective discard under overload.
I'm thinking that I'll create several vlans in my network and do a strict vlan priority bit based servicing.
Quoted 5 lines
I'm also poking at the multi-queue work that has been done and wondering how that might fit into a solution. I haven't read the e1000 multiqueue driver yet...
Any tips, flames or code?
Excellent! I've been wanting to do this for some time, but haven't managed to get it to the front of my queue (pun retroactively intended). Feel free to contact me if you have any questions.
Andy