Merge "qca-wifi: Add new feature to support protocol tags."
Tento commit je obsažen v:

odevzdal
Gerrit - the friendly Code Review server

revize
290546106a
@@ -274,4 +274,17 @@ QDF_STATUS wmi_unified_vdev_pcp_tid_map_cmd_send(void *wmi_hdl,
|
||||
*/
|
||||
QDF_STATUS wmi_unified_vdev_tidmap_prec_cmd_send(void *wmi_hdl,
|
||||
struct vap_tidmap_prec_params *param);
|
||||
|
||||
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
|
||||
/**
|
||||
* wmi_unified_set_rx_pkt_type_routing_tag() - api to add/delete
|
||||
* the protocols to be tagged by CCE
|
||||
* @wmi_hdl: wmi handle
|
||||
* @param: Packet routing/tagging info
|
||||
*
|
||||
* @return: QDF_STATUS_SUCCESS for success or error code
|
||||
*/
|
||||
QDF_STATUS wmi_unified_set_rx_pkt_type_routing_tag(
|
||||
void *wmi_hdl, struct wmi_rx_pkt_protocol_routing_info *param);
|
||||
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
||||
#endif /* _WMI_UNIFIED_AP_API_H_ */
|
||||
|
@@ -1181,3 +1181,24 @@ wmi_unified_vdev_tidmap_prec_cmd_send(void *wmi_hdl,
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
|
||||
/**
|
||||
* wmi_unified_set_rx_pkt_protocol_routing_tag() - api to add/delete the
|
||||
* protocols to be tagged by CCE
|
||||
* @wmi_hdl: wmi handle
|
||||
* @param: Packet routing/tagging info
|
||||
*
|
||||
* @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE on failure
|
||||
*/
|
||||
QDF_STATUS wmi_unified_set_rx_pkt_type_routing_tag(
|
||||
void *wmi_hdl, struct wmi_rx_pkt_protocol_routing_info *param)
|
||||
{
|
||||
wmi_unified_t wmi = (wmi_unified_t)wmi_hdl;
|
||||
|
||||
if (wmi->ops->set_rx_pkt_type_routing_tag_cmd)
|
||||
return wmi->ops->set_rx_pkt_type_routing_tag_cmd(wmi, param);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
||||
|
@@ -1887,6 +1887,59 @@ static QDF_STATUS extract_pdev_caldata_version_check_ev_param_tlv(
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
|
||||
/**
|
||||
* set_rx_pkt_type_routing_tag_update_tlv() - add/delete protocol tag in CCE
|
||||
* @wmi_handle: wmi handle
|
||||
* @param evt_buf: pointer to event buffer
|
||||
* @param param: pointer to protocol tag/routing struct
|
||||
*
|
||||
* @return:QDF_STATUS_SUCCESS for success or
|
||||
* QDF_STATUS_E_NOMEM/QDF_STATUS_E_FAILURE on failure
|
||||
*/
|
||||
static QDF_STATUS set_rx_pkt_type_routing_tag_update_tlv(
|
||||
void *wmi_hdl,
|
||||
struct wmi_rx_pkt_protocol_routing_info *param)
|
||||
{
|
||||
wmi_pdev_update_pkt_routing_cmd_fixed_param *cmd;
|
||||
wmi_buf_t buf;
|
||||
QDF_STATUS status;
|
||||
uint32_t len = sizeof(wmi_pdev_update_pkt_routing_cmd_fixed_param);
|
||||
|
||||
buf = wmi_buf_alloc(wmi_hdl, len);
|
||||
if (!buf) {
|
||||
WMI_LOGE("%s : wmi_buf_alloc failed", __func__);
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
cmd = (wmi_pdev_update_pkt_routing_cmd_fixed_param *)wmi_buf_data(buf);
|
||||
WMITLV_SET_HDR(&cmd->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_update_pkt_routing_cmd_fixed_param,
|
||||
WMITLV_GET_STRUCT_TLVLEN(
|
||||
wmi_pdev_update_pkt_routing_cmd_fixed_param));
|
||||
cmd->pdev_id = param->pdev_id;
|
||||
cmd->op_code = (A_UINT32) param->op_code;
|
||||
cmd->routing_type_bitmap = param->routing_type_bitmap;
|
||||
cmd->dest_ring = param->dest_ring;
|
||||
cmd->meta_data = param->meta_data;
|
||||
cmd->dest_ring_handler = param->dest_ring_handler;
|
||||
WMI_LOGI("Set RX PKT ROUTING TYPE TAG - opcode: %u", param->op_code);
|
||||
WMI_LOGI("routing_bitmap: %u, dest_ring: %u",
|
||||
param->routing_type_bitmap, param->dest_ring);
|
||||
WMI_LOGI("dest_ring_handler: %u, meta_data: 0x%x",
|
||||
param->dest_ring_handler, param->meta_data);
|
||||
|
||||
wmi_mtrace(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID, cmd->pdev_id, 0);
|
||||
status = wmi_unified_cmd_send(wmi_hdl, buf, len,
|
||||
WMI_PDEV_UPDATE_PKT_ROUTING_CMDID);
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
wmi_buf_free(buf);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
||||
|
||||
#ifdef WLAN_SUPPORT_FILS
|
||||
/**
|
||||
* send_vdev_fils_enable_cmd_tlv() - enable/Disable FD Frame command to fw
|
||||
@@ -2759,4 +2812,8 @@ void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
|
||||
ops->extract_channel_hopping_event = extract_channel_hopping_event_tlv;
|
||||
ops->send_peer_chan_width_switch_cmd =
|
||||
send_peer_chan_width_switch_cmd_tlv;
|
||||
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
|
||||
ops->set_rx_pkt_type_routing_tag_cmd =
|
||||
set_rx_pkt_type_routing_tag_update_tlv;
|
||||
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
|
||||
}
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele