X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fsfc_efx%2Fbase%2Fefx_impl.h;h=992edbabe37ddad3a621d5a02862321ca4ce5fc4;hb=c4f4a0e60dcb2a3877a4a751d7641fa1d9c46c29;hp=758206d382e6e6b2866c2300201f07652515b01e;hpb=46d2b38ba9cd35dc9c8a67cbe7562e9426b7ce99;p=dpdk.git diff --git a/drivers/common/sfc_efx/base/efx_impl.h b/drivers/common/sfc_efx/base/efx_impl.h index 758206d382..992edbabe3 100644 --- a/drivers/common/sfc_efx/base/efx_impl.h +++ b/drivers/common/sfc_efx/base/efx_impl.h @@ -87,7 +87,8 @@ typedef struct efx_ev_ops_s { void (*eevo_fini)(efx_nic_t *); efx_rc_t (*eevo_qcreate)(efx_nic_t *, unsigned int, efsys_mem_t *, size_t, uint32_t, - uint32_t, uint32_t, efx_evq_t *); + uint32_t, uint32_t, uint32_t, + efx_evq_t *); void (*eevo_qdestroy)(efx_evq_t *); efx_rc_t (*eevo_qprime)(efx_evq_t *, unsigned int); void (*eevo_qpost)(efx_evq_t *, uint16_t); @@ -320,6 +321,8 @@ typedef struct efx_virtio_ops_s { 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 */ @@ -818,6 +821,7 @@ typedef struct efx_mae_s { /** Outer rule match field capabilities. */ efx_mae_field_cap_t *em_outer_rule_field_caps; size_t em_outer_rule_field_caps_size; + uint32_t em_max_ncounters; } efx_mae_t; #endif /* EFSYS_OPT_MAE */ @@ -1533,6 +1537,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); @@ -1718,15 +1723,19 @@ 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_COUNT, + EFX_MAE_ACTION_ENCAP, /* * These actions are not strictly ordered and can @@ -1754,6 +1763,11 @@ 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_counter_t emar_counter_id; +} efx_mae_actions_rsrc_t; + struct efx_mae_actions_s { /* Bitmap of actions in spec, indexed by action type */ uint32_t ema_actions; @@ -1762,8 +1776,16 @@ struct efx_mae_actions_s { unsigned int ema_n_vlan_tags_to_push; efx_mae_action_vlan_push_t ema_vlan_push_descs[ EFX_MAE_VLAN_PUSH_MAX_NTAGS]; + unsigned int ema_n_count_actions; 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 */