qcacmn: Store MSCS context in MLD peer in case of MLO connection

Store MSCS context in MLD peer in case of MLO connection

Change-Id: I482e2259077eb8c74aeed93beb8472a683ce2817
CRs-Fixed: 3457780
This commit is contained in:
Harsh Kumar Bijlani
2023-04-03 18:20:05 +05:30
committed by Madan Koyyalamudi
parent b0e26ae525
commit 56c08d2ecf

View File

@@ -4963,6 +4963,7 @@ dp_record_mscs_params(struct cdp_soc_t *soc_hdl, uint8_t *peer_mac,
bool active) bool active)
{ {
struct dp_peer *peer; struct dp_peer *peer;
struct dp_peer *tgt_peer;
QDF_STATUS status = QDF_STATUS_E_INVAL; QDF_STATUS status = QDF_STATUS_E_INVAL;
struct dp_soc *soc = (struct dp_soc *)soc_hdl; struct dp_soc *soc = (struct dp_soc *)soc_hdl;
@@ -4973,37 +4974,42 @@ dp_record_mscs_params(struct cdp_soc_t *soc_hdl, uint8_t *peer_mac,
dp_err("Peer is NULL!"); dp_err("Peer is NULL!");
goto fail; goto fail;
} }
tgt_peer = dp_get_tgt_peer_from_peer(peer);
if (!tgt_peer)
goto fail;
if (!active) { if (!active) {
dp_info("MSCS Procedure is terminated"); dp_info("MSCS Procedure is terminated");
peer->mscs_active = active; tgt_peer->mscs_active = active;
goto fail; goto fail;
} }
if (mscs_params->classifier_type == IEEE80211_TCLAS_MASK_CLA_TYPE_4) { if (mscs_params->classifier_type == IEEE80211_TCLAS_MASK_CLA_TYPE_4) {
/* Populate entries inside IPV4 database first */ /* Populate entries inside IPV4 database first */
peer->mscs_ipv4_parameter.user_priority_bitmap = tgt_peer->mscs_ipv4_parameter.user_priority_bitmap =
mscs_params->user_pri_bitmap; mscs_params->user_pri_bitmap;
peer->mscs_ipv4_parameter.user_priority_limit = tgt_peer->mscs_ipv4_parameter.user_priority_limit =
mscs_params->user_pri_limit; mscs_params->user_pri_limit;
peer->mscs_ipv4_parameter.classifier_mask = tgt_peer->mscs_ipv4_parameter.classifier_mask =
mscs_params->classifier_mask; mscs_params->classifier_mask;
/* Populate entries inside IPV6 database */ /* Populate entries inside IPV6 database */
peer->mscs_ipv6_parameter.user_priority_bitmap = tgt_peer->mscs_ipv6_parameter.user_priority_bitmap =
mscs_params->user_pri_bitmap; mscs_params->user_pri_bitmap;
peer->mscs_ipv6_parameter.user_priority_limit = tgt_peer->mscs_ipv6_parameter.user_priority_limit =
mscs_params->user_pri_limit; mscs_params->user_pri_limit;
peer->mscs_ipv6_parameter.classifier_mask = tgt_peer->mscs_ipv6_parameter.classifier_mask =
mscs_params->classifier_mask; mscs_params->classifier_mask;
peer->mscs_active = 1; tgt_peer->mscs_active = 1;
dp_info("\n\tMSCS Procedure request based parameters for "QDF_MAC_ADDR_FMT"\n" dp_info("\n\tMSCS Procedure request based parameters for "QDF_MAC_ADDR_FMT"\n"
"\tClassifier_type = %d\tUser priority bitmap = %x\n" "\tClassifier_type = %d\tUser priority bitmap = %x\n"
"\tUser priority limit = %x\tClassifier mask = %x", "\tUser priority limit = %x\tClassifier mask = %x",
QDF_MAC_ADDR_REF(peer_mac), QDF_MAC_ADDR_REF(peer_mac),
mscs_params->classifier_type, mscs_params->classifier_type,
peer->mscs_ipv4_parameter.user_priority_bitmap, tgt_peer->mscs_ipv4_parameter.user_priority_bitmap,
peer->mscs_ipv4_parameter.user_priority_limit, tgt_peer->mscs_ipv4_parameter.user_priority_limit,
peer->mscs_ipv4_parameter.classifier_mask); tgt_peer->mscs_ipv4_parameter.classifier_mask);
} }
status = QDF_STATUS_SUCCESS; status = QDF_STATUS_SUCCESS;