#define VIRTCHNL_VERSION_MAJOR 1
#define VIRTCHNL_VERSION_MINOR 1
+#define foreach_avf_promisc_flags \
+ _(0, UNICAST_PROMISC, "unicast") \
+ _(1, MULTICAST_PROMISC, "multicast")
+
+enum
+{
+#define _(a, b, c) FLAG_VF_ ##b = (1 << a),
+ foreach_avf_promisc_flags
+#undef _
+};
#define AVFINT_DYN_CTLN(x) (0x00003800 + (0x4 * x))
#define AVFINT_ICR0 0x00004800
#define AVF_AQ_F_EI (1 << 14)
#define AVF_AQ_F_FE (1 << 15)
-
-#define foreach_virtchnl_op \
- _(0, UNKNOWN) \
- _(1, VERSION) \
- _(2, RESET_VF) \
- _(3, GET_VF_RESOURCES) \
- _(4, CONFIG_TX_QUEUE) \
- _(5, CONFIG_RX_QUEUE) \
- _(6, CONFIG_VSI_QUEUES) \
- _(7, CONFIG_IRQ_MAP) \
- _(8, ENABLE_QUEUES) \
- _(9, DISABLE_QUEUES) \
- _(10, ADD_ETH_ADDR) \
- _(11, DEL_ETH_ADDR) \
- _(12, ADD_VLAN) \
- _(13, DEL_VLAN) \
- _(14, CONFIG_PROMISCUOUS_MODE) \
- _(15, GET_STATS) \
- _(16, RSVD) \
- _(17, EVENT) \
- _(18, UNDEF_18) \
- _(19, UNDEF_19) \
- _(20, IWARP) \
- _(21, CONFIG_IWARP_IRQ_MAP) \
- _(22, RELEASE_IWARP_IRQ_MAP) \
- _(23, CONFIG_RSS_KEY) \
- _(24, CONFIG_RSS_LUT) \
- _(25, GET_RSS_HENA_CAPS) \
- _(26, SET_RSS_HENA) \
- _(27, ENABLE_VLAN_STRIPPING) \
- _(28, DISABLE_VLAN_STRIPPING) \
- _(29, REQUEST_QUEUES) \
- _(30, ENABLE_CHANNELS) \
- _(31, DISABLE_CHANNELS) \
- _(32, ADD_CLOUD_FILTER) \
- _(33, DEL_CLOUD_FILTER)
-
+#define foreach_virtchnl_op \
+ _ (0, UNKNOWN) \
+ _ (1, VERSION) \
+ _ (2, RESET_VF) \
+ _ (3, GET_VF_RESOURCES) \
+ _ (4, CONFIG_TX_QUEUE) \
+ _ (5, CONFIG_RX_QUEUE) \
+ _ (6, CONFIG_VSI_QUEUES) \
+ _ (7, CONFIG_IRQ_MAP) \
+ _ (8, ENABLE_QUEUES) \
+ _ (9, DISABLE_QUEUES) \
+ _ (10, ADD_ETH_ADDR) \
+ _ (11, DEL_ETH_ADDR) \
+ _ (12, ADD_VLAN) \
+ _ (13, DEL_VLAN) \
+ _ (14, CONFIG_PROMISCUOUS_MODE) \
+ _ (15, GET_STATS) \
+ _ (16, RSVD) \
+ _ (17, EVENT) \
+ _ (18, UNDEF_18) \
+ _ (19, UNDEF_19) \
+ _ (20, IWARP) \
+ _ (21, CONFIG_IWARP_IRQ_MAP) \
+ _ (22, RELEASE_IWARP_IRQ_MAP) \
+ _ (23, CONFIG_RSS_KEY) \
+ _ (24, CONFIG_RSS_LUT) \
+ _ (25, GET_RSS_HENA_CAPS) \
+ _ (26, SET_RSS_HENA) \
+ _ (27, ENABLE_VLAN_STRIPPING) \
+ _ (28, DISABLE_VLAN_STRIPPING) \
+ _ (29, REQUEST_QUEUES) \
+ _ (30, ENABLE_CHANNELS) \
+ _ (31, DISABLE_CHANNELS) \
+ _ (32, ADD_CLOUD_FILTER) \
+ _ (33, DEL_CLOUD_FILTER) \
+ _ (47, ADD_FDIR_FILTER) \
+ _ (48, DEL_FDIR_FILTER) \
+ _ (49, QUERY_FDIR_FILTER)
typedef enum
{
virtchnl_vsi_resource_t vsi_res[1];
} virtchnl_vf_resource_t;
+#define foreach_virtchnl_event_code \
+ _(0, UNKNOWN) \
+ _(1, LINK_CHANGE) \
+ _(2, RESET_IMPENDING) \
+ _(3, PF_DRIVER_CLOSE)
+
typedef enum
{
- VIRTCHNL_EVENT_UNKNOWN = 0,
- VIRTCHNL_EVENT_LINK_CHANGE,
- VIRTCHNL_EVENT_RESET_IMPENDING,
- VIRTCHNL_EVENT_PF_DRIVER_CLOSE,
+#define _(a,b) VIRTCHNL_EVENT_##b = (a),
+ foreach_virtchnl_event_code
+#undef _
} virtchnl_event_codes_t;
#define foreach_virtchnl_link_speed \
+ _(0, 2_5GB, "2.5 Gbps") \
_(1, 100MB, "100 Mbps") \
_(2, 1GB, "1 Gbps") \
_(3, 10GB, "10 Gbps") \
_(4, 40GB, "40 Gbps") \
_(5, 20GB, "20 Gbps") \
- _(6, 25GB, "25 Gbps")
+ _(6, 25GB, "25 Gbps") \
+ _(7, 5GB, "5 Gbps")
typedef enum
{