Hi! I'm not sure if this is the right venue for this question, so feel free to
redirect me.

I'm trying to put some "additional information" on client-generated packets to
direct them to specific queues of a X540-AT2 nic (server running on Linux);
i.e., some type of client-directed queue balancing.

So far, I've tried the following with no luck (any ideas?):

* VLAN tag:
  Assigning separate VLAN tags for each target queue has as a result that my
  server receives no packets, since it's listening on the main NIC interface
  which has no VLAN tags assigned. Is there a way to drop them once received, so
  that they'll only be used for "queue balancing"?

* TOS field (bits 8-15 of IPv4 header):
  When I use ethtool to direct packets to each queue based on the TOS field, the
  nic seems to ignore it (TOS is always 0 on the rules):

    $ sudo ethtool -U em2 flow-type tcp4 tos 1 action 10
    Added rule with ID 2045
    $ ethtool --show-ntuple em2
    16 RX rings available
    Total 1 rules
    Filter: 2045
            Rule Type: TCP over IPv4
            Src IP addr: 0.0.0.0 mask: 255.255.255.255
            Dest IP addr: 0.0.0.0 mask: 255.255.255.255
            TOS: 0x0 mask: 0xff
            Src port: 0 mask: 0xffff
            Dest port: 0 mask: 0xffff
            VLAN EtherType: 0x0 mask: 0xffff
            VLAN: 0x0 mask: 0xffff
            User-defined: 0x0 mask: 0xffffffffffffffff
            Action: Direct to queue 10

* user-def:
  I've also tried with user-def to overcome the TOS field "problem", but it
  seems I can only use that on the last two bytes:

    $ sudo ethtool -U em2 flow-type tcp4 user-def 2  action 10
    Added rule with ID 2045
    $ ethtool --show-ntuple em2
    16 RX rings available
    Total 1 rules

    Filter: 2045
            Rule Type: TCP over IPv4
            Src IP addr: 0.0.0.0 mask: 255.255.255.255
            Dest IP addr: 0.0.0.0 mask: 255.255.255.255
            TOS: 0x0 mask: 0xff
            Src port: 0 mask: 0xffff
            Dest port: 0 mask: 0xffff
            VLAN EtherType: 0x0 mask: 0xffff
            VLAN: 0x0 mask: 0xffff
            User-defined: 0x2 mask: 0xffffffffffffff00
            Action: Direct to queue 10

  And when I try to match some other bytes, it's simply ignored (user-defined is
  always zero and the mask is full):

    $ sudo ethtool -U em2 flow-type tcp4 user-def 2 m 0xf0ffffffffffffff  
action 10
    Added rule with ID 2045
    $ ethtool --show-ntuple em2
    16 RX rings available
    Total 1 rules

    Filter: 2045
            Rule Type: TCP over IPv4
            Src IP addr: 0.0.0.0 mask: 255.255.255.255
            Dest IP addr: 0.0.0.0 mask: 255.255.255.255
            TOS: 0x0 mask: 0xff
            Src port: 0 mask: 0xffff
            Dest port: 0 mask: 0xffff
            VLAN EtherType: 0x0 mask: 0xffff
            VLAN: 0x0 mask: 0xffff
            User-defined: 0x0 mask: 0xffffffffffffffff
            Action: Direct to queue 10


Thanks!
  Lluis

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to