qcacmn: Handling of multicast packets in MLO multi passphrase
In the case of MLO multi passphrase add GSN bsed support to multicast packets. Change-Id: I3b5bf8b611bd233141d677003905a8b5f18f9716 CRs-Fixed: 3203545
这个提交包含在:
@@ -610,7 +610,6 @@ int dp_wds_rx_policy_check(uint8_t *rx_tlv_hdr,
|
||||
* Return: void
|
||||
*/
|
||||
#ifdef QCA_MULTIPASS_SUPPORT
|
||||
static
|
||||
void dp_tx_add_groupkey_metadata(struct dp_vdev *vdev,
|
||||
struct dp_tx_msdu_info_s *msdu_info, uint16_t group_key)
|
||||
{
|
||||
@@ -636,7 +635,6 @@ void dp_tx_add_groupkey_metadata(struct dp_vdev *vdev,
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static
|
||||
void dp_tx_remove_vlan_tag(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
|
||||
{
|
||||
struct vlan_ethhdr veth_hdr;
|
||||
@@ -655,6 +653,30 @@ void dp_tx_remove_vlan_tag(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP) && \
|
||||
defined(WLAN_MCAST_MLO)
|
||||
/**
|
||||
* dp_tx_need_mcast_reinject - If frame needs to be processed in reinject path
|
||||
* @vdev: DP vdev handle
|
||||
*
|
||||
* Return: true if reinject handling is required else false
|
||||
*/
|
||||
static inline bool
|
||||
dp_tx_need_mcast_reinject(struct dp_vdev *vdev)
|
||||
{
|
||||
if (vdev->mlo_vdev && vdev->opmode == wlan_op_mode_ap)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
static inline bool
|
||||
dp_tx_need_mcast_reinject(struct dp_vdev *vdev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
/**
|
||||
* dp_tx_need_multipass_process - If frame needs multipass phrase processing
|
||||
* @vdev: DP vdev handle
|
||||
@@ -681,6 +703,10 @@ uint8_t dp_tx_need_multipass_process(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
*vlan_id = (ntohs(veh->h_vlan_TCI) & VLAN_VID_MASK);
|
||||
|
||||
if (qdf_unlikely(DP_FRAME_IS_MULTICAST((eh)->ether_dhost))) {
|
||||
/* look for handling of multicast packets in reinject path */
|
||||
if (dp_tx_need_mcast_reinject(vdev))
|
||||
return DP_VLAN_UNTAGGED;
|
||||
|
||||
qdf_spin_lock_bh(&vdev->mpass_peer_mutex);
|
||||
TAILQ_FOREACH(txrx_peer, &vdev->mpass_peer_list,
|
||||
mpass_peer_list_elem) {
|
||||
|
在新工单中引用
屏蔽一个用户