qcacmn: Code movement to enable multipass support without WDS
Currently the code to support Multipass on SAP is present along with the code to support WDS. Hence with the code in its current state, we will not be able to enable Multipass support without enabling WDS. Move the multipass support code out of the WDS support code, to be able to enable Multipass for chipsets which do not use WDS. Change-Id: Id17035f1ada9bde56ca2c61fd4688fa3454b0b11 CRs-Fixed: 3479991
This commit is contained in:

committed by
Madan Koyyalamudi

parent
0e1360e358
commit
cdab8dab71
@@ -42,6 +42,7 @@
|
||||
#ifdef DP_RATETABLE_SUPPORT
|
||||
#include "dp_ratetable.h"
|
||||
#endif
|
||||
#include "enet.h"
|
||||
|
||||
#ifndef WLAN_SOFTUMAC_SUPPORT /* WLAN_SOFTUMAC_SUPPORT */
|
||||
|
||||
@@ -3300,3 +3301,33 @@ bool dp_rx_deliver_special_frame(struct dp_soc *soc,
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QCA_MULTIPASS_SUPPORT
|
||||
bool dp_rx_multipass_process(struct dp_txrx_peer *txrx_peer, qdf_nbuf_t nbuf,
|
||||
uint8_t tid)
|
||||
{
|
||||
struct vlan_ethhdr *vethhdrp;
|
||||
|
||||
if (qdf_unlikely(!txrx_peer->vlan_id))
|
||||
return true;
|
||||
|
||||
vethhdrp = (struct vlan_ethhdr *)qdf_nbuf_data(nbuf);
|
||||
/*
|
||||
* h_vlan_proto & h_vlan_TCI should be 0x8100 & zero respectively
|
||||
* as it is expected to be padded by 0
|
||||
* return false if frame doesn't have above tag so that caller will
|
||||
* drop the frame.
|
||||
*/
|
||||
if (qdf_unlikely(vethhdrp->h_vlan_proto != htons(QDF_ETH_TYPE_8021Q)) ||
|
||||
qdf_unlikely(vethhdrp->h_vlan_TCI != 0))
|
||||
return false;
|
||||
|
||||
vethhdrp->h_vlan_TCI = htons(((tid & 0x7) << VLAN_PRIO_SHIFT) |
|
||||
(txrx_peer->vlan_id & VLAN_VID_MASK));
|
||||
|
||||
if (vethhdrp->h_vlan_encapsulated_proto == htons(ETHERTYPE_PAE))
|
||||
dp_tx_remove_vlan_tag(txrx_peer->vdev, nbuf);
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif /* QCA_MULTIPASS_SUPPORT */
|
||||
|
Reference in New Issue
Block a user