i40e: expose RSS functions and relevant macros
authorHelin Zhang <helin.zhang@intel.com>
Mon, 20 Oct 2014 02:58:17 +0000 (10:58 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 20 Oct 2014 21:51:05 +0000 (23:51 +0200)
To reuse code, 'i40e_config_hena()' and 'i40e_parse_hena()' and
their relevant macros need to be extern, and then can be used for
both PF and VF parts.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
lib/librte_pmd_i40e/i40e_ethdev.c
lib/librte_pmd_i40e/i40e_ethdev.h

index dbf231f..28bde90 100644 (file)
 
 #define I40E_PRE_TX_Q_CFG_WAIT_US       10 /* 10 us */
 
-#define I40E_RSS_OFFLOAD_ALL ( \
-       ETH_RSS_NONF_IPV4_UDP | \
-       ETH_RSS_NONF_IPV4_TCP | \
-       ETH_RSS_NONF_IPV4_SCTP | \
-       ETH_RSS_NONF_IPV4_OTHER | \
-       ETH_RSS_FRAG_IPV4 | \
-       ETH_RSS_NONF_IPV6_UDP | \
-       ETH_RSS_NONF_IPV6_TCP | \
-       ETH_RSS_NONF_IPV6_SCTP | \
-       ETH_RSS_NONF_IPV6_OTHER | \
-       ETH_RSS_FRAG_IPV6 | \
-       ETH_RSS_L2_PAYLOAD)
-
-/* All bits of RSS hash enable */
-#define I40E_RSS_HENA_ALL ( \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_TCP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_SCTP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_OTHER) | \
-       (1ULL << I40E_FILTER_PCTYPE_FRAG_IPV4) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_UDP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_TCP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_SCTP) | \
-       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_OTHER) | \
-       (1ULL << I40E_FILTER_PCTYPE_FRAG_IPV6) | \
-       (1ULL << I40E_FILTER_PCTYPE_FCOE_OX) | \
-       (1ULL << I40E_FILTER_PCTYPE_FCOE_RX) | \
-       (1ULL << I40E_FILTER_PCTYPE_FCOE_OTHER) | \
-       (1ULL << I40E_FILTER_PCTYPE_L2_PAYLOAD))
-
 static int eth_i40e_dev_init(\
                        __attribute__((unused)) struct eth_driver *eth_drv,
                        struct rte_eth_dev *eth_dev);
@@ -3960,7 +3930,7 @@ DONE:
 }
 
 /* Configure hash enable flags for RSS */
-static uint64_t
+uint64_t
 i40e_config_hena(uint64_t flags)
 {
        uint64_t hena = 0;
@@ -3995,7 +3965,7 @@ i40e_config_hena(uint64_t flags)
 }
 
 /* Parse the hash enable flags */
-static uint64_t
+uint64_t
 i40e_parse_hena(uint64_t flags)
 {
        uint64_t rss_hf = 0;
index 64deef2..c801345 100644 (file)
                       I40E_FLAG_HEADER_SPLIT_ENABLED | \
                       I40E_FLAG_FDIR)
 
+#define I40E_RSS_OFFLOAD_ALL ( \
+       ETH_RSS_NONF_IPV4_UDP | \
+       ETH_RSS_NONF_IPV4_TCP | \
+       ETH_RSS_NONF_IPV4_SCTP | \
+       ETH_RSS_NONF_IPV4_OTHER | \
+       ETH_RSS_FRAG_IPV4 | \
+       ETH_RSS_NONF_IPV6_UDP | \
+       ETH_RSS_NONF_IPV6_TCP | \
+       ETH_RSS_NONF_IPV6_SCTP | \
+       ETH_RSS_NONF_IPV6_OTHER | \
+       ETH_RSS_FRAG_IPV6 | \
+       ETH_RSS_L2_PAYLOAD)
+
+/* All bits of RSS hash enable */
+#define I40E_RSS_HENA_ALL ( \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_TCP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_SCTP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV4_OTHER) | \
+       (1ULL << I40E_FILTER_PCTYPE_FRAG_IPV4) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_UDP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_TCP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_SCTP) | \
+       (1ULL << I40E_FILTER_PCTYPE_NONF_IPV6_OTHER) | \
+       (1ULL << I40E_FILTER_PCTYPE_FRAG_IPV6) | \
+       (1ULL << I40E_FILTER_PCTYPE_FCOE_OX) | \
+       (1ULL << I40E_FILTER_PCTYPE_FCOE_RX) | \
+       (1ULL << I40E_FILTER_PCTYPE_FCOE_OTHER) | \
+       (1ULL << I40E_FILTER_PCTYPE_L2_PAYLOAD))
+
 struct i40e_adapter;
 
 TAILQ_HEAD(i40e_mac_filter_list, i40e_mac_filter);
@@ -310,8 +340,10 @@ int i40e_dev_link_update(struct rte_eth_dev *dev,
 void i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi);
 void i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi);
 int i40e_vsi_vlan_pvid_set(struct i40e_vsi *vsi,
-                               struct i40e_vsi_vlan_pvid_info *info);
+                          struct i40e_vsi_vlan_pvid_info *info);
 int i40e_vsi_config_vlan_stripping(struct i40e_vsi *vsi, bool on);
+uint64_t i40e_config_hena(uint64_t flags);
+uint64_t i40e_parse_hena(uint64_t flags);
 
 /* I40E_DEV_PRIVATE_TO */
 #define I40E_DEV_PRIVATE_TO_PF(adapter) \