common/sfc_efx/base: separate target EvQ and IRQ config
[dpdk.git] / drivers / common / sfc_efx / base / efx_impl.h
index f27d9fa..4fff9e1 100644 (file)
@@ -316,6 +316,12 @@ typedef struct efx_virtio_ops_s {
                                efx_virtio_vq_dyncfg_t *);
        efx_rc_t        (*evo_virtio_qstop)(efx_virtio_vq_t *,
                                efx_virtio_vq_dyncfg_t *);
+       efx_rc_t        (*evo_get_doorbell_offset)(efx_virtio_vq_t *,
+                               uint32_t *);
+       efx_rc_t        (*evo_get_features)(efx_nic_t *,
+                               efx_virtio_device_type_t, uint64_t *);
+       efx_rc_t        (*evo_verify_features)(efx_nic_t *,
+                               efx_virtio_device_type_t, uint64_t);
 } efx_virtio_ops_t;
 #endif /* EFSYS_OPT_VIRTIO */
 
@@ -1529,6 +1535,7 @@ efx_mcdi_init_evq(
        __in            efsys_mem_t *esmp,
        __in            size_t nevs,
        __in            uint32_t irq,
+       __in            uint32_t target_evq,
        __in            uint32_t us,
        __in            uint32_t flags,
        __in            boolean_t low_latency);
@@ -1714,15 +1721,18 @@ struct efx_mae_match_spec_s {
        efx_mae_rule_type_t             emms_type;
        uint32_t                        emms_prio;
        union emms_mask_value_pairs {
-               uint8_t                 action[MAE_FIELD_MASK_VALUE_PAIRS_LEN];
+               uint8_t                 action[
+                                           MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN];
                uint8_t                 outer[MAE_ENC_FIELD_PAIRS_LEN];
        } emms_mask_value_pairs;
 };
 
 typedef enum efx_mae_action_e {
        /* These actions are strictly ordered. */
+       EFX_MAE_ACTION_DECAP,
        EFX_MAE_ACTION_VLAN_POP,
        EFX_MAE_ACTION_VLAN_PUSH,
+       EFX_MAE_ACTION_ENCAP,
 
        /*
         * These actions are not strictly ordered and can
@@ -1750,6 +1760,10 @@ typedef struct efx_mae_action_vlan_push_s {
        uint16_t                        emavp_tci_be;
 } efx_mae_action_vlan_push_t;
 
+typedef struct efx_mae_actions_rsrc_s {
+       efx_mae_eh_id_t                 emar_eh_id;
+} efx_mae_actions_rsrc_t;
+
 struct efx_mae_actions_s {
        /* Bitmap of actions in spec, indexed by action type */
        uint32_t                        ema_actions;
@@ -1760,6 +1774,13 @@ struct efx_mae_actions_s {
            EFX_MAE_VLAN_PUSH_MAX_NTAGS];
        uint32_t                        ema_mark_value;
        efx_mport_sel_t                 ema_deliver_mport;
+
+       /*
+        * Always keep this at the end of the struct since
+        * efx_mae_action_set_specs_equal() relies on that
+        * to make sure that resource IDs are not compared.
+        */
+       efx_mae_actions_rsrc_t          ema_rsrc;
 };
 
 #endif /* EFSYS_OPT_MAE */