#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)
+#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
{
typedef enum
{
VIRTCHNL_STATUS_SUCCESS = 0,
- VIRTCHNL_ERR_PARAM = -5,
+ VIRTCHNL_STATUS_ERR_PARAM = -5,
+ VIRTCHNL_STATUS_ERR_NO_MEMORY = -18,
VIRTCHNL_STATUS_ERR_OPCODE_MISMATCH = -38,
VIRTCHNL_STATUS_ERR_CQP_COMPL_ERROR = -39,
VIRTCHNL_STATUS_ERR_INVALID_VF_ID = -40,
+ VIRTCHNL_STATUS_ERR_ADMIN_QUEUE_ERROR = -53,
VIRTCHNL_STATUS_NOT_SUPPORTED = -64,
} virtchnl_status_code_t;
-#define foreach_avf_vf_cap_flag \
- _( 0, L2, "l2") \
- _( 1, IWARP, "iwarp") \
- _( 2, RSVD, "rsvd") \
- _( 3, RSS_AQ, "rss-aq") \
- _( 4, RSS_REG, "rss-reg") \
- _( 5, WB_ON_ITR, "wb-on-itr") \
- _( 6, REQ_QUEUES, "req-queues") \
- _(16, VLAN, "vlan") \
- _(17, RX_POLLING, "rx-polling") \
- _(18, RSS_PCTYPE_V2, "rss-pctype-v2") \
- _(19, RSS_PF, "rss-pf") \
- _(20, ENCAP, "encap") \
- _(21, ENCAP_CSUM, "encap-csum") \
- _(22, RX_ENCAP_CSUM, "rx-encap-csum")
+#define foreach_avf_vf_cap_flag \
+ _ (0, OFFLOAD_L2, "l2") \
+ _ (1, OFFLOAD_IWARP, "iwarp") \
+ _ (2, OFFLOAD_RSVD, "rsvd") \
+ _ (3, OFFLOAD_RSS_AQ, "rss-aq") \
+ _ (4, OFFLOAD_RSS_REG, "rss-reg") \
+ _ (5, OFFLOAD_WB_ON_ITR, "wb-on-itr") \
+ _ (6, OFFLOAD_REQ_QUEUES, "req-queues") \
+ _ (7, CAP_ADV_LINK_SPEED, "adv-link-speed") \
+ _ (16, OFFLOAD_VLAN, "vlan") \
+ _ (17, OFFLOAD_RX_POLLING, "rx-polling") \
+ _ (18, OFFLOAD_RSS_PCTYPE_V2, "rss-pctype-v2") \
+ _ (19, OFFLOAD_RSS_PF, "rss-pf") \
+ _ (20, OFFLOAD_ENCAP, "encap") \
+ _ (21, OFFLOAD_ENCAP_CSUM, "encap-csum") \
+ _ (22, OFFLOAD_RX_ENCAP_CSUM, "rx-encap-csum") \
+ _ (23, OFFLOAD_ADQ, "offload-adq") \
+ _ (27, OFFLOAD_ADV_RSS_PF, "offload-adv-rss-pf") \
+ _ (28, OFFLOAD_FDIR_PF, "offload-fdir-pf")
typedef enum
{
-#define _(a, b, c) VIRTCHNL_VF_OFFLOAD_##b = (1 << a),
+#define _(a, b, c) VIRTCHNL_VF_##b = (1 << a),
foreach_avf_vf_cap_flag
#undef _
} avf_vf_cap_flag_t;
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
{
struct
{
virtchnl_link_speed_t link_speed;
- _Bool link_status;
+ u8 link_status;
} link_event;
+ struct
+ {
+ u32 link_speed;
+ u8 link_status;
+ } link_event_adv;
} event_data;
int severity;
} virtchnl_pf_event_t;