]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/net/ethernet/emulex/benet/be_cmds.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-beck.git] / drivers / net / ethernet / emulex / benet / be_cmds.h
index ba41f8360f9fc4f862b4b785a2835d2f218bbde1..a855668e0cc5dc2d9468c2c83907877e5795a5b6 100644 (file)
@@ -84,6 +84,9 @@ struct be_mcc_compl {
 #define ASYNC_EVENT_QOS_SPEED          0x1
 #define ASYNC_EVENT_COS_PRIORITY       0x2
 #define ASYNC_EVENT_PVID_STATE         0x3
+#define ASYNC_EVENT_CODE_QNQ           0x6
+#define ASYNC_DEBUG_EVENT_TYPE_QNQ     1
+
 struct be_async_event_trailer {
        u32 code;
 };
@@ -144,6 +147,16 @@ struct be_async_event_grp5_pvid_state {
        struct be_async_event_trailer trailer;
 } __packed;
 
+/* async event indicating outer VLAN tag in QnQ */
+struct be_async_event_qnq {
+       u8 valid;       /* Indicates if outer VLAN is valid */
+       u8 rsvd0;
+       u16 vlan_tag;
+       u32 event_tag;
+       u8 rsvd1[4];
+       struct be_async_event_trailer trailer;
+} __packed;
+
 struct be_mcc_mailbox {
        struct be_mcc_wrb wrb;
        struct be_mcc_compl compl;
@@ -590,8 +603,8 @@ struct be_port_rxf_stats_v0 {
        u32 rx_in_range_errors; /* dword 10*/
        u32 rx_out_range_errors;        /* dword 11*/
        u32 rx_frame_too_long;  /* dword 12*/
-       u32 rx_address_mismatch_drops;  /* dword 13*/
-       u32 rx_vlan_mismatch_drops;     /* dword 14*/
+       u32 rx_address_filtered;        /* dword 13*/
+       u32 rx_vlan_filtered;   /* dword 14*/
        u32 rx_dropped_too_small;       /* dword 15*/
        u32 rx_dropped_too_short;       /* dword 16*/
        u32 rx_dropped_header_too_small;        /* dword 17*/
@@ -797,8 +810,8 @@ struct lancer_pport_stats {
        u32 rx_control_frames_unknown_opcode_hi;
        u32 rx_in_range_errors;
        u32 rx_out_of_range_errors;
-       u32 rx_address_mismatch_drops;
-       u32 rx_vlan_mismatch_drops;
+       u32 rx_address_filtered;
+       u32 rx_vlan_filtered;
        u32 rx_dropped_too_small;
        u32 rx_dropped_too_short;
        u32 rx_dropped_header_too_small;
@@ -1090,6 +1103,9 @@ struct be_cmd_resp_query_fw_cfg {
 #define RSS_ENABLE_UDP_IPV4                    0x10
 #define RSS_ENABLE_UDP_IPV6                    0x20
 
+#define L3_RSS_FLAGS                           (RXH_IP_DST | RXH_IP_SRC)
+#define L4_RSS_FLAGS                           (RXH_L4_B_0_1 | RXH_L4_B_2_3)
+
 struct be_cmd_req_rss_config {
        struct be_cmd_req_hdr hdr;
        u32 if_id;
@@ -1573,7 +1589,7 @@ struct be_port_rxf_stats_v1 {
        u32 rx_in_range_errors;
        u32 rx_out_range_errors;
        u32 rx_frame_too_long;
-       u32 rx_address_mismatch_drops;
+       u32 rx_address_filtered;
        u32 rx_dropped_too_small;
        u32 rx_dropped_too_short;
        u32 rx_dropped_header_too_small;
@@ -1687,9 +1703,11 @@ struct be_cmd_req_set_ext_fat_caps {
        struct be_fat_conf_params set_params;
 };
 
-#define RESOURCE_DESC_SIZE                     72
-#define NIC_RESOURCE_DESC_TYPE_ID              0x41
+#define RESOURCE_DESC_SIZE                     88
+#define NIC_RESOURCE_DESC_TYPE_V0              0x41
+#define NIC_RESOURCE_DESC_TYPE_V1              0x51
 #define MAX_RESOURCE_DESC                      4
+#define MAX_RESOURCE_DESC_V1                   32
 
 /* QOS unit number */
 #define QUN                                    4
@@ -1736,7 +1754,7 @@ struct be_cmd_req_get_func_config {
 };
 
 struct be_cmd_resp_get_func_config {
-       struct be_cmd_req_hdr hdr;
+       struct be_cmd_resp_hdr hdr;
        u32 desc_count;
        u8 func_param[MAX_RESOURCE_DESC * RESOURCE_DESC_SIZE];
 };
@@ -1755,6 +1773,12 @@ struct be_cmd_resp_get_profile_config {
        u8 func_param[MAX_RESOURCE_DESC * RESOURCE_DESC_SIZE];
 };
 
+struct be_cmd_resp_get_profile_config_v1 {
+       struct be_cmd_req_hdr hdr;
+       u32 desc_count;
+       u8 func_param[MAX_RESOURCE_DESC_V1 * RESOURCE_DESC_SIZE];
+};
+
 struct be_cmd_req_set_profile_config {
        struct be_cmd_req_hdr hdr;
        u32 rsvd;
@@ -1848,11 +1872,11 @@ extern int be_cmd_set_flow_control(struct be_adapter *adapter,
                        u32 tx_fc, u32 rx_fc);
 extern int be_cmd_get_flow_control(struct be_adapter *adapter,
                        u32 *tx_fc, u32 *rx_fc);
-extern int be_cmd_query_fw_cfg(struct be_adapter *adapter,
-                       u32 *port_num, u32 *function_mode, u32 *function_caps);
+extern int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num,
+                       u32 *function_mode, u32 *function_caps, u16 *asic_rev);
 extern int be_cmd_reset_function(struct be_adapter *adapter);
 extern int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable,
-                       u16 table_size);
+                            u32 rss_hash_opts, u16 table_size);
 extern int be_process_mcc(struct be_adapter *adapter);
 extern int be_cmd_set_beacon_state(struct be_adapter *adapter,
                        u8 port_num, u8 beacon, u8 status, u8 state);
@@ -1917,7 +1941,7 @@ extern int lancer_test_and_set_rdy_state(struct be_adapter *adapter);
 extern int be_cmd_query_port_name(struct be_adapter *adapter, u8 *port_name);
 extern int be_cmd_get_func_config(struct be_adapter *adapter);
 extern int be_cmd_get_profile_config(struct be_adapter *adapter, u32 *cap_flags,
-                                    u8 domain);
+                                    u16 *txq_count, u8 domain);
 
 extern int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps,
                                     u8 domain);