diff options
author | Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com> | 2012-07-11 23:57:47 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-12 11:16:47 -0400 |
commit | d3bd3a5eeb087bf6a06e9bdfc589096608f933a0 (patch) | |
tree | c21c093ac32dfd54140e3e700844a9c1338da99c /drivers/net/ethernet/emulex | |
parent | b4e32a71692aa2b183d9df8d6558c169b47a263c (diff) |
be2net: Enable RSS UDP hashing for Lancer and Skyhawk
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be.h | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h index e2dfe3114eb1..330d59af0576 100644 --- a/drivers/net/ethernet/emulex/benet/be.h +++ b/drivers/net/ethernet/emulex/benet/be.h | |||
@@ -457,6 +457,9 @@ struct be_adapter { | |||
457 | #define lancer_chip(adapter) ((adapter->pdev->device == OC_DEVICE_ID3) || \ | 457 | #define lancer_chip(adapter) ((adapter->pdev->device == OC_DEVICE_ID3) || \ |
458 | (adapter->pdev->device == OC_DEVICE_ID4)) | 458 | (adapter->pdev->device == OC_DEVICE_ID4)) |
459 | 459 | ||
460 | #define skyhawk_chip(adapter) (adapter->pdev->device == OC_DEVICE_ID5) | ||
461 | |||
462 | |||
460 | #define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \ | 463 | #define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \ |
461 | adapter->sli_family == SKYHAWK_SLI_FAMILY) && \ | 464 | adapter->sli_family == SKYHAWK_SLI_FAMILY) && \ |
462 | (adapter->function_mode & RDMA_ENABLED)) | 465 | (adapter->function_mode & RDMA_ENABLED)) |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index 8730f0e6af30..ddfca658559d 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -1792,6 +1792,13 @@ int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable, u16 table_size) | |||
1792 | req->if_id = cpu_to_le32(adapter->if_handle); | 1792 | req->if_id = cpu_to_le32(adapter->if_handle); |
1793 | req->enable_rss = cpu_to_le16(RSS_ENABLE_TCP_IPV4 | RSS_ENABLE_IPV4 | | 1793 | req->enable_rss = cpu_to_le16(RSS_ENABLE_TCP_IPV4 | RSS_ENABLE_IPV4 | |
1794 | RSS_ENABLE_TCP_IPV6 | RSS_ENABLE_IPV6); | 1794 | RSS_ENABLE_TCP_IPV6 | RSS_ENABLE_IPV6); |
1795 | |||
1796 | if (lancer_chip(adapter) || skyhawk_chip(adapter)) { | ||
1797 | req->hdr.version = 1; | ||
1798 | req->enable_rss |= cpu_to_le16(RSS_ENABLE_UDP_IPV4 | | ||
1799 | RSS_ENABLE_UDP_IPV6); | ||
1800 | } | ||
1801 | |||
1795 | req->cpu_table_size_log2 = cpu_to_le16(fls(table_size) - 1); | 1802 | req->cpu_table_size_log2 = cpu_to_le16(fls(table_size) - 1); |
1796 | memcpy(req->cpu_table, rsstable, table_size); | 1803 | memcpy(req->cpu_table, rsstable, table_size); |
1797 | memcpy(req->hash, myhash, sizeof(myhash)); | 1804 | memcpy(req->hash, myhash, sizeof(myhash)); |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index 88f72374599c..45d70def92d6 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h | |||
@@ -1089,6 +1089,8 @@ struct be_cmd_resp_query_fw_cfg { | |||
1089 | #define RSS_ENABLE_TCP_IPV4 0x2 | 1089 | #define RSS_ENABLE_TCP_IPV4 0x2 |
1090 | #define RSS_ENABLE_IPV6 0x4 | 1090 | #define RSS_ENABLE_IPV6 0x4 |
1091 | #define RSS_ENABLE_TCP_IPV6 0x8 | 1091 | #define RSS_ENABLE_TCP_IPV6 0x8 |
1092 | #define RSS_ENABLE_UDP_IPV4 0x10 | ||
1093 | #define RSS_ENABLE_UDP_IPV6 0x20 | ||
1092 | 1094 | ||
1093 | struct be_cmd_req_rss_config { | 1095 | struct be_cmd_req_rss_config { |
1094 | struct be_cmd_req_hdr hdr; | 1096 | struct be_cmd_req_hdr hdr; |