i40e/base: add AQ switch configuration
Add the support code for calling the AdminQ API call aq_set_switch_config. Signed-off-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Remy Horton <remy.horton@intel.com>
This commit is contained in:
parent
7ed64b5a90
commit
3db9af65de
@ -164,6 +164,7 @@ enum i40e_admin_queue_opc {
|
||||
i40e_aqc_opc_remove_statistics = 0x0202,
|
||||
i40e_aqc_opc_set_port_parameters = 0x0203,
|
||||
i40e_aqc_opc_get_switch_resource_alloc = 0x0204,
|
||||
i40e_aqc_opc_set_switch_config = 0x0205,
|
||||
|
||||
i40e_aqc_opc_add_vsi = 0x0210,
|
||||
i40e_aqc_opc_update_vsi_parameters = 0x0211,
|
||||
@ -740,6 +741,17 @@ struct i40e_aqc_switch_resource_alloc_element_resp {
|
||||
|
||||
I40E_CHECK_STRUCT_LEN(0x10, i40e_aqc_switch_resource_alloc_element_resp);
|
||||
|
||||
/* Set Switch Configuration (direct 0x0205) */
|
||||
struct i40e_aqc_set_switch_config {
|
||||
__le16 flags;
|
||||
#define I40E_AQ_SET_SWITCH_CFG_PROMISC 0x0001
|
||||
#define I40E_AQ_SET_SWITCH_CFG_L2_FILTER 0x0002
|
||||
__le16 valid_flags;
|
||||
u8 reserved[12];
|
||||
};
|
||||
|
||||
I40E_CHECK_CMD_LENGTH(i40e_aqc_set_switch_config);
|
||||
|
||||
/* Add VSI (indirect 0x0210)
|
||||
* this indirect command uses struct i40e_aqc_vsi_properties_data
|
||||
* as the indirect buffer (128 bytes)
|
||||
|
@ -2507,6 +2507,34 @@ enum i40e_status_code i40e_aq_get_switch_config(struct i40e_hw *hw,
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* i40e_aq_set_switch_config
|
||||
* @hw: pointer to the hardware structure
|
||||
* @flags: bit flag values to set
|
||||
* @valid_flags: which bit flags to set
|
||||
* @cmd_details: pointer to command details structure or NULL
|
||||
*
|
||||
* Set switch configuration bits
|
||||
**/
|
||||
enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,
|
||||
u16 flags, u16 valid_flags,
|
||||
struct i40e_asq_cmd_details *cmd_details)
|
||||
{
|
||||
struct i40e_aq_desc desc;
|
||||
struct i40e_aqc_set_switch_config *scfg =
|
||||
(struct i40e_aqc_set_switch_config *)&desc.params.raw;
|
||||
enum i40e_status_code status;
|
||||
|
||||
i40e_fill_default_direct_cmd_desc(&desc,
|
||||
i40e_aqc_opc_set_switch_config);
|
||||
scfg->flags = CPU_TO_LE16(flags);
|
||||
scfg->valid_flags = CPU_TO_LE16(valid_flags);
|
||||
|
||||
status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* i40e_aq_get_firmware_version
|
||||
* @hw: pointer to the hw struct
|
||||
|
@ -215,6 +215,9 @@ enum i40e_status_code i40e_aq_get_switch_config(struct i40e_hw *hw,
|
||||
struct i40e_aqc_get_switch_config_resp *buf,
|
||||
u16 buf_size, u16 *start_seid,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,
|
||||
u16 flags, u16 valid_flags,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
enum i40e_status_code i40e_aq_request_resource(struct i40e_hw *hw,
|
||||
enum i40e_aq_resources_ids resource,
|
||||
enum i40e_aq_resource_access_type access,
|
||||
|
Loading…
Reference in New Issue
Block a user