aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/benet/be_cmds.h
diff options
context:
space:
mode:
authorSathya Perla <sathya.perla@emulex.com>2010-10-04 01:12:27 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-04 01:12:27 -0400
commit3abcdeda59c1d4cf2bf83311ed2d544355ec7c2d (patch)
treec259d095b583f7fd2183e3eec43f1a5668468248 /drivers/net/benet/be_cmds.h
parent72829071269b19381173a13ea1b2ca2f4f9d4cec (diff)
be2net: add multiple RX queue support
This patch adds multiple RX queue support to be2net. There are upto 4 extra rx-queues per port into which TCP/UDP traffic can be hashed into. Some of the ethtool stats are now displayed on a per queue basis. Signed-off-by: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/benet/be_cmds.h')
-rw-r--r--drivers/net/benet/be_cmds.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/drivers/net/benet/be_cmds.h b/drivers/net/benet/be_cmds.h
index ad1e6fac60c5..b7a40b172d1a 100644
--- a/drivers/net/benet/be_cmds.h
+++ b/drivers/net/benet/be_cmds.h
@@ -147,6 +147,7 @@ struct be_mcc_mailbox {
147#define OPCODE_COMMON_READ_TRANSRECV_DATA 73 147#define OPCODE_COMMON_READ_TRANSRECV_DATA 73
148#define OPCODE_COMMON_GET_PHY_DETAILS 102 148#define OPCODE_COMMON_GET_PHY_DETAILS 102
149 149
150#define OPCODE_ETH_RSS_CONFIG 1
150#define OPCODE_ETH_ACPI_CONFIG 2 151#define OPCODE_ETH_ACPI_CONFIG 2
151#define OPCODE_ETH_PROMISCUOUS 3 152#define OPCODE_ETH_PROMISCUOUS 3
152#define OPCODE_ETH_GET_STATISTICS 4 153#define OPCODE_ETH_GET_STATISTICS 4
@@ -409,7 +410,7 @@ struct be_cmd_req_eth_rx_create {
409struct be_cmd_resp_eth_rx_create { 410struct be_cmd_resp_eth_rx_create {
410 struct be_cmd_resp_hdr hdr; 411 struct be_cmd_resp_hdr hdr;
411 u16 id; 412 u16 id;
412 u8 cpu_id; 413 u8 rss_id;
413 u8 rsvd0; 414 u8 rsvd0;
414} __packed; 415} __packed;
415 416
@@ -739,9 +740,10 @@ struct be_cmd_resp_modify_eq_delay {
739} __packed; 740} __packed;
740 741
741/******************** Get FW Config *******************/ 742/******************** Get FW Config *******************/
743#define BE_FUNCTION_CAPS_RSS 0x2
742struct be_cmd_req_query_fw_cfg { 744struct be_cmd_req_query_fw_cfg {
743 struct be_cmd_req_hdr hdr; 745 struct be_cmd_req_hdr hdr;
744 u32 rsvd[30]; 746 u32 rsvd[31];
745}; 747};
746 748
747struct be_cmd_resp_query_fw_cfg { 749struct be_cmd_resp_query_fw_cfg {
@@ -751,6 +753,26 @@ struct be_cmd_resp_query_fw_cfg {
751 u32 phys_port; 753 u32 phys_port;
752 u32 function_mode; 754 u32 function_mode;
753 u32 rsvd[26]; 755 u32 rsvd[26];
756 u32 function_caps;
757};
758
759/******************** RSS Config *******************/
760/* RSS types */
761#define RSS_ENABLE_NONE 0x0
762#define RSS_ENABLE_IPV4 0x1
763#define RSS_ENABLE_TCP_IPV4 0x2
764#define RSS_ENABLE_IPV6 0x4
765#define RSS_ENABLE_TCP_IPV6 0x8
766
767struct be_cmd_req_rss_config {
768 struct be_cmd_req_hdr hdr;
769 u32 if_id;
770 u16 enable_rss;
771 u16 cpu_table_size_log2;
772 u32 hash[10];
773 u8 cpu_table[128];
774 u8 flush;
775 u8 rsvd0[3];
754}; 776};
755 777
756/******************** Port Beacon ***************************/ 778/******************** Port Beacon ***************************/
@@ -937,7 +959,7 @@ extern int be_cmd_txq_create(struct be_adapter *adapter,
937extern int be_cmd_rxq_create(struct be_adapter *adapter, 959extern int be_cmd_rxq_create(struct be_adapter *adapter,
938 struct be_queue_info *rxq, u16 cq_id, 960 struct be_queue_info *rxq, u16 cq_id,
939 u16 frag_size, u16 max_frame_size, u32 if_id, 961 u16 frag_size, u16 max_frame_size, u32 if_id,
940 u32 rss); 962 u32 rss, u8 *rss_id);
941extern int be_cmd_q_destroy(struct be_adapter *adapter, struct be_queue_info *q, 963extern int be_cmd_q_destroy(struct be_adapter *adapter, struct be_queue_info *q,
942 int type); 964 int type);
943extern int be_cmd_link_status_query(struct be_adapter *adapter, 965extern int be_cmd_link_status_query(struct be_adapter *adapter,
@@ -960,8 +982,10 @@ extern int be_cmd_set_flow_control(struct be_adapter *adapter,
960extern int be_cmd_get_flow_control(struct be_adapter *adapter, 982extern int be_cmd_get_flow_control(struct be_adapter *adapter,
961 u32 *tx_fc, u32 *rx_fc); 983 u32 *tx_fc, u32 *rx_fc);
962extern int be_cmd_query_fw_cfg(struct be_adapter *adapter, 984extern int be_cmd_query_fw_cfg(struct be_adapter *adapter,
963 u32 *port_num, u32 *cap); 985 u32 *port_num, u32 *function_mode, u32 *function_caps);
964extern int be_cmd_reset_function(struct be_adapter *adapter); 986extern int be_cmd_reset_function(struct be_adapter *adapter);
987extern int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable,
988 u16 table_size);
965extern int be_process_mcc(struct be_adapter *adapter, int *status); 989extern int be_process_mcc(struct be_adapter *adapter, int *status);
966extern int be_cmd_set_beacon_state(struct be_adapter *adapter, 990extern int be_cmd_set_beacon_state(struct be_adapter *adapter,
967 u8 port_num, u8 beacon, u8 status, u8 state); 991 u8 port_num, u8 beacon, u8 status, u8 state);