summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspuligil <spuligil@codeaurora.org>2019-10-25 18:02:53 -0700
committerspuligil <spuligil@codeaurora.org>2019-10-25 18:02:54 -0700
commit6d7b1ac5cb8a6d07a24399876b6537a19f7e378d (patch)
treea20637c7a5c9e30c33044120661854df65e84d98
parent953c29bdac72da8ef0976f77a0058376d9260c2b (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-xfw/wmi_tlv_defs.h7
-rwxr-xr-xfw/wmi_unified.h128
-rwxr-xr-xfw/wmi_version.h2
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