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:
Chaitanya Kiran Godavarthi
2018-11-23 23:24:05 +05:30
commit de nshrivas
commit f6c061252f
3 arquivos alterados com 94 adições e 44 exclusões

Ver arquivo

@@ -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