|
@@ -1844,78 +1844,6 @@ qdf_nbuf_t dp_tx_extract_mesh_meta_data(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-#ifdef DP_FEATURE_NAWDS_TX
|
|
|
-/**
|
|
|
- * dp_tx_prepare_nawds(): Tramit NAWDS frames
|
|
|
- * @vdev: dp_vdev handle
|
|
|
- * @nbuf: skb
|
|
|
- * @tid: TID from HLOS for overriding default DSCP-TID mapping
|
|
|
- * @tx_q: Tx queue to be used for this Tx frame
|
|
|
- * @meta_data: Meta date for mesh
|
|
|
- * @peer_id: peer_id of the peer in case of NAWDS frames
|
|
|
- *
|
|
|
- * return: NULL on success nbuf on failure
|
|
|
- */
|
|
|
-static qdf_nbuf_t dp_tx_prepare_nawds(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|
|
- struct dp_tx_msdu_info_s *msdu_info)
|
|
|
-{
|
|
|
- struct dp_peer *peer = NULL;
|
|
|
- struct dp_soc *soc = vdev->pdev->soc;
|
|
|
- struct dp_ast_entry *ast_entry = NULL;
|
|
|
- qdf_ether_header_t *eh = (qdf_ether_header_t *)qdf_nbuf_data(nbuf);
|
|
|
- uint16_t peer_id = HTT_INVALID_PEER;
|
|
|
-
|
|
|
- struct dp_peer *sa_peer = NULL;
|
|
|
- qdf_nbuf_t nbuf_copy;
|
|
|
-
|
|
|
- qdf_spin_lock_bh(&(soc->ast_lock));
|
|
|
- ast_entry = dp_peer_ast_hash_find_by_pdevid
|
|
|
- (soc,
|
|
|
- (uint8_t *)(eh->ether_shost),
|
|
|
- vdev->pdev->pdev_id);
|
|
|
-
|
|
|
- if (ast_entry)
|
|
|
- sa_peer = ast_entry->peer;
|
|
|
-
|
|
|
- qdf_spin_unlock_bh(&(soc->ast_lock));
|
|
|
-
|
|
|
- TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
|
|
- if ((peer->peer_ids[0] != HTT_INVALID_PEER) &&
|
|
|
- (peer->nawds_enabled)) {
|
|
|
- if (sa_peer == peer) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_DP,
|
|
|
- QDF_TRACE_LEVEL_DEBUG,
|
|
|
- " %s: broadcast multicast packet",
|
|
|
- __func__);
|
|
|
- DP_STATS_INC(peer, tx.nawds_mcast_drop, 1);
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- nbuf_copy = qdf_nbuf_copy(nbuf);
|
|
|
- if (!nbuf_copy) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_DP,
|
|
|
- QDF_TRACE_LEVEL_ERROR,
|
|
|
- "nbuf copy failed");
|
|
|
- }
|
|
|
-
|
|
|
- peer_id = peer->peer_ids[0];
|
|
|
- nbuf_copy = dp_tx_send_msdu_single(vdev, nbuf_copy,
|
|
|
- msdu_info, peer_id, NULL);
|
|
|
- if (nbuf_copy) {
|
|
|
- qdf_nbuf_free(nbuf_copy);
|
|
|
- continue;
|
|
|
- }
|
|
|
- DP_STATS_INC_PKT(peer, tx.nawds_mcast,
|
|
|
- 1, qdf_nbuf_len(nbuf));
|
|
|
- }
|
|
|
- }
|
|
|
- if (peer_id == HTT_INVALID_PEER)
|
|
|
- return nbuf;
|
|
|
-
|
|
|
- return NULL;
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
/**
|
|
|
* dp_check_exc_metadata() - Checks if parameters are valid
|
|
|
* @tx_exc - holds all exception path parameters
|