aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ixl/ixlv.h
diff options
context:
space:
mode:
authorSean Bruno <sbruno@FreeBSD.org>2016-08-07 18:12:36 +0000
committerSean Bruno <sbruno@FreeBSD.org>2016-08-07 18:12:36 +0000
commit4294f337b02257f24cc0177c5031abea7fdc3d75 (patch)
treef622eff21bd17ccf945f066c6011335e027b4f1e /sys/dev/ixl/ixlv.h
parentb57417e56f51761cc2ad5e47cc62976dee8c569b (diff)
downloadsrc-4294f337b02257f24cc0177c5031abea7fdc3d75.tar.gz
src-4294f337b02257f24cc0177c5031abea7fdc3d75.zip
ixl(4): Update to ixl-1.6.6-k.
Submitted by: erj Reviewed by: jeffrey.e.pieper@intel.com MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D7391
Notes
Notes: svn path=/head/; revision=303816
Diffstat (limited to 'sys/dev/ixl/ixlv.h')
-rw-r--r--sys/dev/ixl/ixlv.h33
1 files changed, 28 insertions, 5 deletions
diff --git a/sys/dev/ixl/ixlv.h b/sys/dev/ixl/ixlv.h
index a131ca0a4b22..be4daeefbc83 100644
--- a/sys/dev/ixl/ixlv.h
+++ b/sys/dev/ixl/ixlv.h
@@ -44,7 +44,7 @@
#define IXLV_AQ_TIMEOUT (1 * hz)
#define IXLV_CALLOUT_TIMO (hz / 50) /* 20 msec */
-#define IXLV_FLAG_AQ_ENABLE_QUEUES (u32)(1)
+#define IXLV_FLAG_AQ_ENABLE_QUEUES (u32)(1 << 0)
#define IXLV_FLAG_AQ_DISABLE_QUEUES (u32)(1 << 1)
#define IXLV_FLAG_AQ_ADD_MAC_FILTER (u32)(1 << 2)
#define IXLV_FLAG_AQ_ADD_VLAN_FILTER (u32)(1 << 3)
@@ -55,6 +55,10 @@
#define IXLV_FLAG_AQ_HANDLE_RESET (u32)(1 << 8)
#define IXLV_FLAG_AQ_CONFIGURE_PROMISC (u32)(1 << 9)
#define IXLV_FLAG_AQ_GET_STATS (u32)(1 << 10)
+#define IXLV_FLAG_AQ_CONFIG_RSS_KEY (u32)(1 << 11)
+#define IXLV_FLAG_AQ_SET_RSS_HENA (u32)(1 << 12)
+#define IXLV_FLAG_AQ_GET_RSS_HENA_CAPS (u32)(1 << 13)
+#define IXLV_FLAG_AQ_CONFIG_RSS_LUT (u32)(1 << 14)
/* printf %b arg */
#define IXLV_FLAGS \
@@ -62,9 +66,17 @@
"\4ADD_VLAN_FILTER\5DEL_MAC_FILTER\6DEL_VLAN_FILTER" \
"\7CONFIGURE_QUEUES\10MAP_VECTORS\11HANDLE_RESET" \
"\12CONFIGURE_PROMISC\13GET_STATS"
-
-/* Hack for compatibility with 1.0.x linux pf driver */
-#define I40E_VIRTCHNL_OP_EVENT 17
+#define IXLV_PRINTF_VF_OFFLOAD_FLAGS \
+ "\20\1I40E_VIRTCHNL_VF_OFFLOAD_L2" \
+ "\2I40E_VIRTCHNL_VF_OFFLOAD_IWARP" \
+ "\3I40E_VIRTCHNL_VF_OFFLOAD_FCOE" \
+ "\4I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ" \
+ "\5I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG" \
+ "\6I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR" \
+ "\21I40E_VIRTCHNL_VF_OFFLOAD_VLAN" \
+ "\22I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING" \
+ "\23I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2" \
+ "\24I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF"
/* Driver state */
enum ixlv_state_t {
@@ -80,9 +92,11 @@ enum ixlv_state_t {
IXLV_INIT_MAPPING,
IXLV_INIT_ENABLE,
IXLV_INIT_COMPLETE,
- IXLV_RUNNING,
+ IXLV_RUNNING,
};
+/* Structs */
+
struct ixlv_mac_filter {
SLIST_ENTRY(ixlv_mac_filter) next;
u8 macaddr[ETHER_ADDR_LEN];
@@ -107,6 +121,7 @@ struct ixlv_sc {
struct resource *msix_mem;
enum ixlv_state_t init_state;
+ int init_in_progress;
/*
* Interrupt resources
@@ -154,6 +169,10 @@ struct ixlv_sc {
struct ixl_vc_cmd del_vlan_cmd;
struct ixl_vc_cmd add_multi_cmd;
struct ixl_vc_cmd del_multi_cmd;
+ struct ixl_vc_cmd config_rss_key_cmd;
+ struct ixl_vc_cmd get_rss_hena_caps_cmd;
+ struct ixl_vc_cmd set_rss_hena_cmd;
+ struct ixl_vc_cmd config_rss_lut_cmd;
/* Virtual comm channel */
struct i40e_virtchnl_vf_resource *vf_res;
@@ -209,5 +228,9 @@ void ixlv_del_vlans(struct ixlv_sc *);
void ixlv_update_stats_counters(struct ixlv_sc *,
struct i40e_eth_stats *);
void ixlv_update_link_status(struct ixlv_sc *);
+void ixlv_get_default_rss_key(u32 *, bool);
+void ixlv_config_rss_key(struct ixlv_sc *);
+void ixlv_set_rss_hena(struct ixlv_sc *);
+void ixlv_config_rss_lut(struct ixlv_sc *);
#endif /* _IXLV_H_ */