ethtool: Add Ethernet MAC-level filtering/steering
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 20 Sep 2010 08:42:08 +0000 (08:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Sep 2010 21:57:58 +0000 (14:57 -0700)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ethtool.h

index 3350870001feea47ff388139a02946213e57e787..8a3338ceb4380c397249198076ad61a57a578f3b 100644 (file)
@@ -14,6 +14,7 @@
 #define _LINUX_ETHTOOL_H
 
 #include <linux/types.h>
+#include <linux/if_ether.h>
 
 /* This should work for both 32 and 64 bit userland. */
 struct ethtool_cmd {
@@ -391,6 +392,7 @@ struct ethtool_rx_flow_spec {
                struct ethtool_ah_espip4_spec           ah_ip4_spec;
                struct ethtool_ah_espip4_spec           esp_ip4_spec;
                struct ethtool_usrip4_spec              usr_ip4_spec;
+               struct ethhdr                           ether_spec;
                __u8                                    hdata[72];
        } h_u, m_u;
        __u64           ring_cookie;
@@ -483,6 +485,7 @@ struct ethtool_rx_ntuple_flow_spec {
                struct ethtool_ah_espip4_spec           ah_ip4_spec;
                struct ethtool_ah_espip4_spec           esp_ip4_spec;
                struct ethtool_usrip4_spec              usr_ip4_spec;
+               struct ethhdr                           ether_spec;
                __u8                                    hdata[72];
        } h_u, m_u;
 
@@ -841,7 +844,7 @@ struct ethtool_ops {
 #define WAKE_MAGIC             (1 << 5)
 #define WAKE_MAGICSECURE       (1 << 6) /* only meaningful if WAKE_MAGIC */
 
-/* L3-L4 network traffic flow types */
+/* L2-L4 network traffic flow types */
 #define        TCP_V4_FLOW     0x01    /* hash or spec (tcp_ip4_spec) */
 #define        UDP_V4_FLOW     0x02    /* hash or spec (udp_ip4_spec) */
 #define        SCTP_V4_FLOW    0x03    /* hash or spec (sctp_ip4_spec) */
@@ -857,6 +860,7 @@ struct ethtool_ops {
 #define        IP_USER_FLOW    0x0d    /* spec only (usr_ip4_spec) */
 #define        IPV4_FLOW       0x10    /* hash only */
 #define        IPV6_FLOW       0x11    /* hash only */
+#define        ETHER_FLOW      0x12    /* spec only (ether_spec) */
 
 /* L3-L4 network traffic flow hash options */
 #define        RXH_L2DA        (1 << 1)