|
@@ -7751,84 +7751,4 @@ static uint8_t sme_qos_assign_dialog_token(void)
|
|
|
}
|
|
|
return token;
|
|
|
}
|
|
|
-
|
|
|
-/**
|
|
|
- * sme_qos_tspec_active() - API exposed to HDD to check no of active Tspecs
|
|
|
- *
|
|
|
- * @pMac: The handle returned by macOpen
|
|
|
- * @ac: Determines type of Access Category
|
|
|
- * @sessionId: sessionId returned by sme_OpenSession
|
|
|
- * @pActiveTspec: return the number of active Tspecs
|
|
|
- *
|
|
|
- * Return: true if success, otherwise false
|
|
|
- */
|
|
|
-bool sme_qos_tspec_active(tpAniSirGlobal pMac, sme_ac_enum_type ac,
|
|
|
- uint8_t sessionId, uint8_t *pActiveTspec)
|
|
|
-{
|
|
|
- sme_QosSessionInfo *pSession = NULL;
|
|
|
- sme_QosACInfo *pACInfo = NULL;
|
|
|
-
|
|
|
- if (!CSR_IS_SESSION_VALID(pMac, sessionId)) {
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: %d: Session Id %d is invalid",
|
|
|
- __func__, __LINE__, sessionId);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- pSession = &sme_qos_cb.sessionInfo[sessionId];
|
|
|
-
|
|
|
- if (NULL == pSession) {
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: %d pSession not found sessionId:%d",
|
|
|
- __func__, __LINE__, sessionId);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if (!pSession->sessionActive) {
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: %d: Session %d is inactive",
|
|
|
- __func__, __LINE__, sessionId);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
|
|
|
- "%s: %d: Session %d is active",
|
|
|
- __func__, __LINE__, sessionId);
|
|
|
-
|
|
|
- pACInfo = &pSession->ac_info[ac];
|
|
|
-
|
|
|
- /* Does this AC have QoS active? */
|
|
|
- if (SME_QOS_QOS_ON == pACInfo->curr_state) {
|
|
|
- /* Yes, QoS is active on this AC */
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
|
|
|
- "%s: %d: On session %d AC %d has QoS active",
|
|
|
- __func__, __LINE__, sessionId, ac);
|
|
|
-
|
|
|
- /* Are any TSPECs active? */
|
|
|
- if (pACInfo->tspec_mask_status) {
|
|
|
- /* at least 1 TSPEC is active. Are they both active? */
|
|
|
- if (SME_QOS_TSPEC_MASK_BIT_1_2_SET ==
|
|
|
- pACInfo->tspec_mask_status) {
|
|
|
- /* both TSPECS are active */
|
|
|
- *pActiveTspec = 2;
|
|
|
- } else {
|
|
|
- /* only one TSPEC is active */
|
|
|
- *pActiveTspec = 1;
|
|
|
- }
|
|
|
- } else {
|
|
|
- *pActiveTspec = 0;
|
|
|
- }
|
|
|
- } else {
|
|
|
- /* Hardcoding value to INVALID_TSPEC to indicate the caller
|
|
|
- * not to update UAPSD parameters as QOS is not active
|
|
|
- */
|
|
|
- *pActiveTspec = INVALID_TSPEC;
|
|
|
- CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
|
|
|
- "%s: %d: On session %d AC %d has no QoS active",
|
|
|
- __func__, __LINE__, sessionId, ac);
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
-}
|
|
|
-
|
|
|
#endif /* WLAN_MDM_CODE_REDUCTION_OPT */
|