From 807b6d07acd35dd636bccd12b2064d1de34e4043 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Wed, 7 Mar 2018 18:19:06 -0800 Subject: [PATCH] qcacld-3.0: Ensure BSS color is within 1-63 when not specified Randomize bss color within 1 to 63 When hostapd.conf does not specifies bss color parameter. Change-Id: I5650d15836e19bd0efc226f86b22a8697e45c59e CRs-Fixed: 2200411 --- core/mac/src/pe/lim/lim_utils.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index b525e11aa36d..41305f9ab77a 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -7324,6 +7324,7 @@ void lim_decide_he_op(tpAniSirGlobal mac_ctx, tpAddBssParams add_bss, tpPESession session) { uint32_t val; + uint8_t color; struct he_ops_network_endian *he_ops_from_ie; tDot11fIEhe_op *he_ops = &add_bss->he_op; tSirAddIeParams *add_ie = &session->addIeParams; @@ -7343,7 +7344,13 @@ void lim_decide_he_op(tpAniSirGlobal mac_ctx, tpAddBssParams add_bss, he_ops_from_ie = (struct he_ops_network_endian *) &extracted_buff[HE_OP_OUI_SIZE + 2]; - he_ops->bss_color = he_ops_from_ie->bss_color; + if (he_ops_from_ie->bss_color) { + he_ops->bss_color = he_ops_from_ie->bss_color; + } else { + cds_rand_get_bytes(0, &color, 1); + /* make sure color is within 1-63*/ + he_ops->bss_color = (color % WNI_CFG_HE_OPS_BSS_COLOR_MAX) + 1; + } he_ops->default_pe = he_ops_from_ie->default_pe; he_ops->twt_required = he_ops_from_ie->twt_required; he_ops->rts_threshold = he_ops_from_ie->rts_threshold;