diff options
| author | spuligil <spuligil@codeaurora.org> | 2019-10-25 18:02:53 -0700 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2019-10-25 18:02:54 -0700 |
| commit | 6d7b1ac5cb8a6d07a24399876b6537a19f7e378d (patch) | |
| tree | a20637c7a5c9e30c33044120661854df65e84d98 | |
| parent | 953c29bdac72da8ef0976f77a0058376d9260c2b (diff) | |
fw-api: CL 8499894 - update fw common interface files
Change-Id: I6de03dd19521546206c0b43791d06c36722a3c12
WMI: add PEER_CONFIG_VLAN_CMD msg def
CRs-Fixed: 2262693
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 7 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 128 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
3 files changed, 136 insertions, 1 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 207f177517cb..6ec1fc20de34 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1022,6 +1022,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_channel_ani_info_tlv_param, WMITLV_TAG_STRUC_wmi_get_channel_ani_event_fixed_param, WMITLV_TAG_STRUC_wmi_oem_data_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_config_vlan_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1441,6 +1442,7 @@ typedef enum { OP(WMI_ATF_GROUP_WMM_AC_CONFIG_REQUEST_CMDID) \ OP(WMI_PEER_ATF_EXT_REQUEST_CMDID) \ OP(WMI_GET_CHANNEL_ANI_CMDID) \ + OP(WMI_PEER_CONFIG_VLAN_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4187,6 +4189,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SET_GROUP_RETRY_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_filter_group_config, filter_group_config, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_CFR_CAPTURE_FILTER_CMDID); +/* VLAN config */ +#define WMITLV_TABLE_WMI_PEER_CONFIG_VLAN_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_config_vlan_cmd_fixed_param, wmi_peer_config_vlan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CONFIG_VLAN_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 0c756a61cf93..058ba3591d10 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -587,6 +587,11 @@ typedef enum { /** unmap response with peer ids */ WMI_PEER_UNMAP_RESPONSE_CMDID, + /** WMI command for per-peer configuration of VLAN header operations + * during TX and RX + */ + WMI_PEER_CONFIG_VLAN_CMDID, + /* beacon/management specific commands */ @@ -28394,6 +28399,129 @@ typedef struct { */ } wmi_oem_data_event_fixed_param; +#define WMI_VLAN_TX_BIT_POS 0 +#define WMI_VLAN_RX_BIT_POS 1 +#define WMI_TX_INSERT_OR_STRIP_BIT_POS 2 +#define WMI_TX_STRIP_INSERT_VLAN_INNER_BIT_POS 3 +#define WMI_TX_STRIP_INSERT_VLAN_OUTER_BIT_POS 4 +#define WMI_RX_STRIP_VLAN_C_TAG_BIT_POS 5 +#define WMI_RX_STRIP_VLAN_S_TAG_BIT_POS 6 +#define WMI_RX_INSERT_VLAN_C_TAG_BIT_POS 7 +#define WMI_RX_INSERT_VLAN_S_TAG_BIT_POS 8 + +#define WMI_TX_INSERT_VLAN_INNER_TCI_NUM_BITS 16 +#define WMI_TX_INSERT_VLAN_INNER_TCI_BIT_POS 0 + +#define WMI_TX_INSERT_VLAN_OUTER_TCI_NUM_BITS 16 +#define WMI_TX_INSERT_VLAN_OUTER_TCI_BIT_POS 16 + + +#define WMI_VLAN_TX_SET(param, value) \ + WMI_SET_BITS(param, WMI_VLAN_TX_BIT_POS, 1, value) + +#define WMI_VLAN_TX_GET(param) \ + WMI_GET_BITS(param, WMI_VLAN_TX_BIT_POS, 1) + +#define WMI_VLAN_RX_SET(param, value) \ + WMI_SET_BITS(param, WMI_VLAN_RX_BIT_POS, 1, value) + +#define WMI_VLAN_RX_GET(param) \ + WMI_GET_BITS(param, WMI_VLAN_RX_BIT_POS, 1) + +#define WMI_TX_INSERT_OR_STRIP_SET(param, value) \ + WMI_SET_BITS(param, WMI_TX_INSERT_OR_STRIP_BIT_POS, 1, value) + +#define WMI_TX_INSERT_OR_STRIP_GET(param) \ + WMI_GET_BITS(param, WMI_TX_INSERT_OR_STRIP_BIT_POS, 1) + +#define WMI_TX_STRIP_INSERT_VLAN_INNER_SET(param, value) \ + WMI_SET_BITS(param, WMI_TX_STRIP_INSERT_VLAN_INNER_BIT_POS, 1, value) + +#define WMI_TX_STRIP_INSERT_VLAN_INNER_GET(param) \ + WMI_GET_BITS(param, WMI_TX_STRIP_INSERT_VLAN_INNER_BIT_POS, 1) + +#define WMI_TX_STRIP_INSERT_VLAN_OUTER_SET(param, value) \ + WMI_SET_BITS(param, WMI_TX_STRIP_INSERT_VLAN_OUTER_BIT_POS, 1, value) + +#define WWMI_TX_STRIP_INSERT_VLAN_OUTER_GET(param) \ + WMI_GET_BITS(param, WMI_TX_STRIP_INSERT_VLAN_OUTER_BIT_POS, 1) + +#define WMI_RX_STRIP_VLAN_C_TAG_SET(param, value) \ + WMI_SET_BITS(param, WMI_RX_STRIP_VLAN_C_TAG_BIT_POS, 1, value) + +#define WMI_RX_STRIP_VLAN_C_TAG_GET(param) \ + WMI_GET_BITS(param, WMI_RX_STRIP_VLAN_C_TAG_BIT_POS, 1) + +#define WWMI_RX_STRIP_VLAN_S_TAG_SET(param, value) \ + WMI_SET_BITS(param, WMI_RX_STRIP_VLAN_S_TAG_BIT_POS, 1, value) + +#define WMI_RX_STRIP_VLAN_S_TAG_GET(param) \ + WMI_GET_BITS(param, WMI_RX_STRIP_VLAN_S_TAG_BIT_POS, 1) + +#define WWMI_RX_INSERT_VLAN_C_TAG_SET(param, value) \ + WMI_SET_BITS(param, WMI_RX_INSERT_VLAN_C_TAG_BIT_POS, 1, value) + +#define WMI_RX_INSERT_VLAN_C_TAG_GET(param) \ + WMI_GET_BITS(param, WMI_RX_INSERT_VLAN_C_TAG_BIT_POS, 1) + +#define WWMI_RX_INSERT_VLAN_S_TAG_SET(param, value) \ + WMI_SET_BITS(param, WMI_RX_INSERT_VLAN_S_TAG_BIT_POS, 1, value) + +#define WMI_RX_INSERT_VLAN_S_TAG_GET(param) \ + WMI_GET_BITS(param, WMI_RX_INSERT_VLAN_S_TAG_BIT_POS, 1) + +#define WWMI_TX_INSERT_VLAN_INNER_TCI_SET(param, value) \ + WMI_SET_BITS(param, WMI_TX_INSERT_VLAN_INNER_TCI_BIT_POS, WMI_TX_INSERT_VLAN_INNER_TCI_NUM_BITS, value) + +#define WMI_TX_INSERT_VLAN_INNER_TCI_GET(param) \ + WMI_GET_BITS(param, WMI_TX_INSERT_VLAN_INNER_TCI_BIT_POS, WMI_TX_INSERT_VLAN_INNER_TCI_NUM_BITS) + +#define WWMI_TX_INSERT_VLAN_OUTER_TCI_SET(param, value) \ + WMI_SET_BITS(param, WMI_TX_INSERT_VLAN_OUTER_TCI_BIT_POS, WMI_TX_INSERT_VLAN_OUTER_TCI_NUM_BITS, value) + +#define WMI_TX_INSERT_VLAN_OUTER_TCI_GET(param) \ + WMI_GET_BITS(param, WMI_TX_INSERT_VLAN_OUTER_TCI_BIT_POS, WMI_TX_INSERT_VLAN_OUTER_TCI_NUM_BITS) + + + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_config_vlan_cmd_fixed_param */ + A_UINT32 tlv_header; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /* peer_vlan_config_mask: + * Field indicates VLAN settings that need to set in RX and TX peer + * Bit 0: Indicates if the settings are present for TX peer + * [1 - present for TX peer] + * Bit 1: Indicates if the settings are present for RX peer + * [1 - present for RX peer] + * Bit 2: Setting the insert_or_strip bit in TX peer + * [0 - Strip, 1 - Insert] + * Bit 3: Setting the strip_insert_vlan_inner bit in TX peer + * [0 - Strip, 1 - Insert] + * Bit 4: Setting the strip_insert_vlan_outer bit in TX peer + * [0 - Strip, 1 - Insert] + * Bit 5: Setting the strip_vlan_c_tag_decap bit in RX peer [1 - Strip] + * Bit 6: Setting the strip_vlan_s_tag_decap bit in RX peer [1 - Strip] + * Bit 7: Setting the rx_insert_vlan_c_tag_padding bit in RX peer + * [1 - Insert] + * Bit 8: Setting the rx_insert_vlan_s_tag_padding bit in RX peer + * [1 - Insert] + */ + A_UINT32 peer_vlan_config_mask; + + /* insert_vlan_tci: + * Field indicates the word that needs to be inserted in the + * inner or outer tag, if insertion is enabled by the + * TX peer strip_insert_vlan_{inner,outer} fields along with + * insert_or_strip field + * Bits 0:15 insert_vlan_inner_tci + * Bits 16:31 insert_vlan_outer_tci + */ + A_UINT32 insert_vlan_tci; +} wmi_peer_config_vlan_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 32c157c95d2d..75f09bffa77e 100755 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 732 +#define __WMI_REVISION_ 733 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
