Skip to contentSkip to conversation

gianfar: multiqueue, vlan pbits -> qos?

DISCUSSION Randy Macleod 3 participants 3 messages Mar 29, 2008 – Apr 1, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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

#2 lore raw
In reply to Randy Macleod
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