]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/ethtool.h
Merge git://git.infradead.org/mtd-2.6
[karo-tx-linux.git] / include / linux / ethtool.h
index b67af60a8890538f9e1568f035f9fade93855433..6628a507fd3b5dff0184048ec56d3e57257343ad 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 {
@@ -308,6 +309,8 @@ struct ethtool_perm_addr {
  * flag differs from the read-only value.
  */
 enum ethtool_flags {
+       ETH_FLAG_TXVLAN         = (1 << 7),     /* TX VLAN offload enabled */
+       ETH_FLAG_RXVLAN         = (1 << 8),     /* RX VLAN offload enabled */
        ETH_FLAG_LRO            = (1 << 15),    /* LRO is enabled */
        ETH_FLAG_NTUPLE         = (1 << 27),    /* N-tuple filters enabled */
        ETH_FLAG_RXHASH         = (1 << 28),
@@ -391,6 +394,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 +487,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;
 
@@ -492,11 +497,12 @@ struct ethtool_rx_ntuple_flow_spec {
        __u64           data_mask;
 
        __s32           action;
-#define ETHTOOL_RXNTUPLE_ACTION_DROP -1                /* drop packet */
+#define ETHTOOL_RXNTUPLE_ACTION_DROP   (-1)    /* drop packet */
+#define ETHTOOL_RXNTUPLE_ACTION_CLEAR  (-2)    /* clear filter */
 };
 
 /**
- * struct ethtool_rx_ntuple - command to set RX flow filter
+ * struct ethtool_rx_ntuple - command to set or clear RX flow filter
  * @cmd: Command number - %ETHTOOL_SRXNTUPLE
  * @fs: Flow filter specification
  */
@@ -840,7 +846,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) */
@@ -856,6 +862,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)