qcacmn: Donot forward MDNS packets for NAN vdev

MDNS packets if forwarded for a NAN vdev can lead to potential flooding
of the air interface. Hence donot forward them.

Change-Id: Idfdedfb0b5b553745440587448230013f3b56a7d
CRs-Fixed: 2503360
This commit is contained in:
Mohit Khanna
2019-08-08 18:44:17 -07:00
committad av nshrivas
förälder 4b4e8b48cf
incheckning c42d8036c9
7 ändrade filer med 76 tillägg och 1 borttagningar

Visa fil

@@ -40,6 +40,24 @@
#define DP_RX_TID_SAVE(_nbuf, _tid)
#endif
#ifdef DP_RX_DISABLE_NDI_MDNS_FORWARDING
static inline
bool dp_rx_check_ndi_mdns_fwding(struct dp_peer *ta_peer, qdf_nbuf_t nbuf)
{
if (ta_peer->vdev->opmode == wlan_op_mode_ndi &&
qdf_nbuf_is_ipv6_mdns_pkt(nbuf)) {
DP_STATS_INC(ta_peer, rx.intra_bss.mdns_no_fwd, 1);
return false;
}
return true;
}
#else
static inline
bool dp_rx_check_ndi_mdns_fwding(struct dp_peer *ta_peer, qdf_nbuf_t nbuf)
{
return true;
}
#endif
static inline bool dp_rx_check_ap_bridge(struct dp_vdev *vdev)
{
return vdev->ap_bridge_enabled;
@@ -471,9 +489,12 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
*/
else if (qdf_unlikely((qdf_nbuf_is_da_mcbc(nbuf) &&
!ta_peer->bss_peer))) {
if (!dp_rx_check_ndi_mdns_fwding(ta_peer, nbuf))
goto end;
nbuf_copy = qdf_nbuf_copy(nbuf);
if (!nbuf_copy)
return false;
goto end;
len = QDF_NBUF_CB_RX_PKT_LEN(nbuf);
memset(nbuf_copy->cb, 0x0, sizeof(nbuf_copy->cb));
@@ -487,6 +508,8 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
tid_stats->intrabss_cnt++;
}
}
end:
/* return false as we have to still send the original pkt
* up the stack
*/