qcacmn: Reduce ASE aging for MEC entry type
ASE entry aging for MEC entry type was same as WDS type for 120 secs, this creates an issue when device roams from MEC to WDS connection by not aging out till 120secs. So now we reduce the MEC aging time to 1sec Change-Id: I6ab3b095a85c6d09f9fcd95b3b39f7152064d297
Esse commit está contido em:

commit de
nshrivas

pai
74c34ff6b0
commit
f6c061252f
@@ -343,7 +343,7 @@ dp_get_vdev_from_peer(struct dp_soc *soc,
|
||||
*
|
||||
* @soc: core txrx main context
|
||||
* @rx_tlv_hdr : start address of rx tlvs
|
||||
* @sa_peer : source peer entry
|
||||
* @ta_peer : Transmitter peer entry
|
||||
* @nbuf : nbuf to retrieve destination mac for which AST will be added
|
||||
*
|
||||
*/
|
||||
@@ -384,7 +384,7 @@ dp_rx_da_learn(struct dp_soc *soc,
|
||||
* dp_rx_intrabss_fwd() - Implements the Intra-BSS forwarding logic
|
||||
*
|
||||
* @soc: core txrx main context
|
||||
* @sa_peer : source peer entry
|
||||
* @ta_peer : source peer entry
|
||||
* @rx_tlv_hdr : start address of rx tlvs
|
||||
* @nbuf : nbuf that has to be intrabss forwarded
|
||||
*
|
||||
@@ -392,7 +392,7 @@ dp_rx_da_learn(struct dp_soc *soc,
|
||||
*/
|
||||
static bool
|
||||
dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
struct dp_peer *sa_peer,
|
||||
struct dp_peer *ta_peer,
|
||||
uint8_t *rx_tlv_hdr,
|
||||
qdf_nbuf_t nbuf)
|
||||
{
|
||||
@@ -424,8 +424,14 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
|
||||
if (!da_peer)
|
||||
return false;
|
||||
/* TA peer cannot be same as peer(DA) on which AST is present
|
||||
* this indicates a change in topology and that AST entries
|
||||
* are yet to be updated.
|
||||
*/
|
||||
if (da_peer == ta_peer)
|
||||
return false;
|
||||
|
||||
if (da_peer->vdev == sa_peer->vdev && !da_peer->bss_peer) {
|
||||
if (da_peer->vdev == ta_peer->vdev && !da_peer->bss_peer) {
|
||||
memset(nbuf->cb, 0x0, sizeof(nbuf->cb));
|
||||
len = qdf_nbuf_len(nbuf);
|
||||
|
||||
@@ -438,7 +444,7 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
|
||||
nbuf = qdf_nbuf_unshare(nbuf);
|
||||
if (!nbuf) {
|
||||
DP_STATS_INC_PKT(sa_peer,
|
||||
DP_STATS_INC_PKT(ta_peer,
|
||||
rx.intra_bss.fail,
|
||||
1,
|
||||
len);
|
||||
@@ -451,13 +457,13 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
}
|
||||
}
|
||||
|
||||
if (!dp_tx_send(sa_peer->vdev, nbuf)) {
|
||||
DP_STATS_INC_PKT(sa_peer, rx.intra_bss.pkts,
|
||||
1, len);
|
||||
if (!dp_tx_send(ta_peer->vdev, nbuf)) {
|
||||
DP_STATS_INC_PKT(ta_peer, rx.intra_bss.pkts, 1,
|
||||
len);
|
||||
return true;
|
||||
} else {
|
||||
DP_STATS_INC_PKT(sa_peer, rx.intra_bss.fail, 1,
|
||||
len);
|
||||
DP_STATS_INC_PKT(ta_peer, rx.intra_bss.fail, 1,
|
||||
len);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -471,18 +477,19 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
* Mcast enhancement.
|
||||
*/
|
||||
else if (qdf_unlikely((hal_rx_msdu_end_da_is_mcbc_get(rx_tlv_hdr) &&
|
||||
!sa_peer->bss_peer))) {
|
||||
!ta_peer->bss_peer))) {
|
||||
nbuf_copy = qdf_nbuf_copy(nbuf);
|
||||
if (!nbuf_copy)
|
||||
return false;
|
||||
memset(nbuf_copy->cb, 0x0, sizeof(nbuf_copy->cb));
|
||||
len = qdf_nbuf_len(nbuf_copy);
|
||||
|
||||
if (dp_tx_send(sa_peer->vdev, nbuf_copy)) {
|
||||
DP_STATS_INC_PKT(sa_peer, rx.intra_bss.fail, 1, len);
|
||||
if (dp_tx_send(ta_peer->vdev, nbuf_copy)) {
|
||||
DP_STATS_INC_PKT(ta_peer, rx.intra_bss.fail, 1, len);
|
||||
qdf_nbuf_free(nbuf_copy);
|
||||
} else
|
||||
DP_STATS_INC_PKT(sa_peer, rx.intra_bss.pkts, 1, len);
|
||||
} else {
|
||||
DP_STATS_INC_PKT(ta_peer, rx.intra_bss.pkts, 1, len);
|
||||
}
|
||||
}
|
||||
/* return false as we have to still send the original pkt
|
||||
* up the stack
|
||||
|
Referência em uma nova issue
Block a user