Lines Matching refs:nbuf
45 dp_rx_update_flow_info(qdf_nbuf_t nbuf, uint8_t *rx_tlv_hdr) in dp_rx_update_flow_info() argument
62 qdf_nbuf_set_rx_flow_idx_valid(nbuf, in dp_rx_update_flow_info()
67 dp_rx_update_flow_info(qdf_nbuf_t nbuf, uint8_t *rx_tlv_hdr) in dp_rx_update_flow_info() argument
76 qdf_nbuf_t nbuf) in dp_rx_msdu_done_fail_event_record() argument
87 entry->paddr = qdf_nbuf_get_frag_paddr(nbuf, 0); in dp_rx_msdu_done_fail_event_record()
98 qdf_nbuf_t nbuf) in dp_rx_msdu_done_fail_event_record() argument
109 qdf_nbuf_t nbuf) in dp_rx_wds_learn() argument
119 nbuf, in dp_rx_wds_learn()
137 qdf_nbuf_t nbuf) in dp_wds_ext_peer_learn_be() argument
151 if (qdf_nbuf_is_rx_chfrag_start(nbuf) && in dp_wds_ext_peer_learn_be()
152 (qdf_nbuf_is_fr_ds_set(nbuf) && qdf_nbuf_is_to_ds_set(nbuf))) { in dp_wds_ext_peer_learn_be()
187 qdf_nbuf_t nbuf) in dp_wds_ext_peer_learn_be() argument
196 qdf_nbuf_t nbuf) in dp_rx_wds_learn() argument
198 dp_wds_ext_peer_learn_be(soc, ta_txrx_peer, rx_tlv_hdr, nbuf); in dp_rx_wds_learn()
208 qdf_nbuf_sync_for_cpu(soc->osdev, rx_desc->nbuf, QDF_DMA_FROM_DEVICE); in dp_rx_war_peek_msdu_done()
209 rx_tlv_hdr = qdf_nbuf_data(rx_desc->nbuf); in dp_rx_war_peek_msdu_done()
231 dp_rx_nbuf_free(rx_desc->nbuf); in dp_rx_delink_n_rel_rx_desc()
289 qdf_nbuf_t nbuf, next; in dp_rx_process_be() local
441 if (qdf_unlikely(rx_desc && rx_desc->nbuf)) { in dp_rx_process_be()
444 dp_rx_buffer_pool_nbuf_free(soc, rx_desc->nbuf, in dp_rx_process_be()
489 rx_desc->nbuf, in dp_rx_process_be()
492 if (qdf_unlikely(qdf_nbuf_is_rx_chfrag_cont(rx_desc->nbuf))) { in dp_rx_process_be()
497 qdf_nbuf_set_rx_chfrag_end(rx_desc->nbuf, 0); in dp_rx_process_be()
513 if ((QDF_NBUF_CB_RX_PKT_LEN(rx_desc->nbuf) / in dp_rx_process_be()
555 rx_desc->nbuf); in dp_rx_process_be()
560 !(qdf_nbuf_is_rx_chfrag_cont(rx_desc->nbuf))) in dp_rx_process_be()
638 nbuf = nbuf_head; in dp_rx_process_be()
639 while (nbuf) { in dp_rx_process_be()
640 next = nbuf->next; in dp_rx_process_be()
641 dp_rx_prefetch_nbuf_data_be(nbuf, next); in dp_rx_process_be()
642 if (qdf_unlikely(dp_rx_is_raw_frame_dropped(nbuf))) { in dp_rx_process_be()
643 nbuf = next; in dp_rx_process_be()
649 rx_tlv_hdr = qdf_nbuf_data(nbuf); in dp_rx_process_be()
650 vdev_id = QDF_NBUF_CB_RX_VDEV_ID(nbuf); in dp_rx_process_be()
651 peer_id = dp_rx_get_peer_id_be(nbuf); in dp_rx_process_be()
652 dp_rx_set_mpdu_seq_number_be(nbuf, rx_tlv_hdr); in dp_rx_process_be()
664 tid = qdf_nbuf_get_tid_val(nbuf); in dp_rx_process_be()
668 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
669 nbuf = next; in dp_rx_process_be()
674 txrx_peer = dp_rx_get_txrx_peer_and_vdev(soc, nbuf, in dp_rx_process_be()
683 nbuf = next; in dp_rx_process_be()
691 txrx_peer = dp_rx_get_txrx_peer_and_vdev(soc, nbuf, in dp_rx_process_be()
700 nbuf = next; in dp_rx_process_be()
707 QDF_NBUF_CB_DP_TRACE_PRINT(nbuf) = false; in dp_rx_process_be()
708 qdf_dp_trace_set_track(nbuf, QDF_RX); in dp_rx_process_be()
709 QDF_NBUF_CB_RX_DP_TRACE(nbuf) = 1; in dp_rx_process_be()
710 QDF_NBUF_CB_RX_PACKET_TRACK(nbuf) = in dp_rx_process_be()
719 nbuf, in dp_rx_process_be()
725 dp_rx_set_nbuf_band(nbuf, txrx_peer, link_id); in dp_rx_process_be()
732 qdf_nbuf_set_priority(nbuf, tid); in dp_rx_process_be()
734 DP_RX_TID_SAVE(nbuf, tid); in dp_rx_process_be()
737 qdf_nbuf_set_timestamp(nbuf); in dp_rx_process_be()
749 if (qdf_unlikely(!qdf_nbuf_is_rx_chfrag_cont(nbuf) && in dp_rx_process_be()
756 dp_rx_msdu_done_fail_event_record(soc, NULL, nbuf); in dp_rx_process_be()
758 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
760 nbuf = next; in dp_rx_process_be()
790 if (qdf_unlikely(qdf_nbuf_is_frag(nbuf))) { in dp_rx_process_be()
802 qdf_nbuf_set_da_mcbc(nbuf, is_mcbc); in dp_rx_process_be()
803 qdf_nbuf_set_da_valid(nbuf, is_da_vld); in dp_rx_process_be()
804 qdf_nbuf_set_sa_valid(nbuf, is_sa_vld); in dp_rx_process_be()
806 qdf_nbuf_pull_head(nbuf, soc->rx_pkt_tlv_size); in dp_rx_process_be()
807 } else if (qdf_nbuf_is_rx_chfrag_cont(nbuf)) { in dp_rx_process_be()
808 msdu_len = QDF_NBUF_CB_RX_PKT_LEN(nbuf); in dp_rx_process_be()
809 nbuf = dp_rx_sg_create(soc, nbuf); in dp_rx_process_be()
810 next = nbuf->next; in dp_rx_process_be()
812 if (qdf_nbuf_is_raw_frame(nbuf)) { in dp_rx_process_be()
822 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
825 nbuf = next; in dp_rx_process_be()
830 l3_pad = hal_rx_get_l3_pad_bytes_be(nbuf, rx_tlv_hdr); in dp_rx_process_be()
831 msdu_len = QDF_NBUF_CB_RX_PKT_LEN(nbuf); in dp_rx_process_be()
834 qdf_nbuf_set_pktlen(nbuf, pkt_len); in dp_rx_process_be()
835 dp_rx_skip_tlvs(soc, nbuf, l3_pad); in dp_rx_process_be()
838 dp_rx_send_pktlog(soc, rx_pdev, nbuf, QDF_TX_RX_STATUS_OK); in dp_rx_process_be()
847 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
849 nbuf = next; in dp_rx_process_be()
858 !qdf_nbuf_is_raw_frame(nbuf)) { in dp_rx_process_be()
859 bool is_eapol = qdf_nbuf_is_ipv4_eapol_pkt(nbuf) || in dp_rx_process_be()
860 qdf_nbuf_is_ipv4_wapi_pkt(nbuf); in dp_rx_process_be()
867 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
868 nbuf = next; in dp_rx_process_be()
873 dp_rx_cksum_offload(vdev->pdev, nbuf, rx_tlv_hdr); in dp_rx_process_be()
874 dp_rx_update_flow_info(nbuf, rx_tlv_hdr); in dp_rx_process_be()
881 if (dp_rx_multipass_process(txrx_peer, nbuf, in dp_rx_process_be()
888 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
889 nbuf = next; in dp_rx_process_be()
895 (qdf_nbuf_is_da_mcbc(nbuf)) && in dp_rx_process_be()
903 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
904 nbuf = next; in dp_rx_process_be()
910 dp_rx_update_protocol_tag(soc, vdev, nbuf, rx_tlv_hdr, in dp_rx_process_be()
914 dp_rx_update_flow_tag(soc, vdev, nbuf, rx_tlv_hdr, in dp_rx_process_be()
918 if (dp_rx_filter_mesh_packets(vdev, nbuf, in dp_rx_process_be()
927 dp_rx_nbuf_free(nbuf); in dp_rx_process_be()
928 nbuf = next; in dp_rx_process_be()
931 dp_rx_fill_mesh_stats(vdev, nbuf, rx_tlv_hdr, in dp_rx_process_be()
942 nbuf); in dp_rx_process_be()
945 dp_rx_msdu_stats_update(soc, nbuf, rx_tlv_hdr, txrx_peer, in dp_rx_process_be()
955 nbuf, in dp_rx_process_be()
957 nbuf = next; in dp_rx_process_be()
963 dp_rx_fill_gro_info(soc, rx_tlv_hdr, nbuf, &rx_ol_pkt_cnt); in dp_rx_process_be()
966 nbuf); in dp_rx_process_be()
968 dp_rx_update_stats(soc, nbuf); in dp_rx_process_be()
971 current_time, nbuf); in dp_rx_process_be()
975 nbuf); in dp_rx_process_be()
978 QDF_NBUF_CB_RX_PKT_LEN(nbuf), in dp_rx_process_be()
982 QDF_NBUF_CB_RX_PKT_LEN(nbuf), in dp_rx_process_be()
988 QDF_NBUF_CB_RX_PKT_LEN(nbuf), in dp_rx_process_be()
992 nbuf = next; in dp_rx_process_be()
1289 qdf_nbuf_t nbuf) in dp_rx_dummy_src_mac() argument
1292 (qdf_ether_header_t *)qdf_nbuf_data(nbuf); in dp_rx_dummy_src_mac()
1329 qdf_nbuf_t nbuf, in dp_rx_mlo_igmp_handler() argument
1334 uint8_t tid = qdf_nbuf_get_tid_val(nbuf); in dp_rx_mlo_igmp_handler()
1338 if (!(qdf_nbuf_is_ipv4_igmp_pkt(nbuf) || in dp_rx_mlo_igmp_handler()
1339 qdf_nbuf_is_ipv6_igmp_pkt(nbuf))) in dp_rx_mlo_igmp_handler()
1343 if (dp_rx_multipass_process(peer, nbuf, tid) == false) { in dp_rx_mlo_igmp_handler()
1352 if (dp_rx_intrabss_mcbc_fwd(soc, peer, NULL, nbuf, in dp_rx_mlo_igmp_handler()
1357 qdf_nbuf_set_next(nbuf, NULL); in dp_rx_mlo_igmp_handler()
1398 nbuf_copy = qdf_nbuf_copy(nbuf); in dp_rx_mlo_igmp_handler()
1402 dp_rx_dummy_src_mac(vdev, nbuf); in dp_rx_mlo_igmp_handler()
1406 QDF_NBUF_CB_RX_PEER_ID(nbuf) |= CDP_RX_ML_PEER_VALID_MASK; in dp_rx_mlo_igmp_handler()
1412 nbuf, in dp_rx_mlo_igmp_handler()
1420 qdf_nbuf_t nbuf, in dp_rx_mlo_igmp_handler() argument
1492 dp_rx_intrabss_ucast_check_be(qdf_nbuf_t nbuf, in dp_rx_intrabss_ucast_check_be() argument
1506 if (!qdf_nbuf_is_intra_bss(nbuf)) in dp_rx_intrabss_ucast_check_be()
1560 dp_rx_intrabss_ucast_check_be(qdf_nbuf_t nbuf, in dp_rx_intrabss_ucast_check_be() argument
1576 if (!(qdf_nbuf_is_da_valid(nbuf) || qdf_nbuf_is_da_mcbc(nbuf))) in dp_rx_intrabss_ucast_check_be()
1667 dp_rx_intrabss_ucast_check_be(qdf_nbuf_t nbuf,
1678 if (!qdf_nbuf_is_da_valid(nbuf) || qdf_nbuf_is_da_mcbc(nbuf))
1851 uint8_t *rx_tlv_hdr, qdf_nbuf_t nbuf,
1854 uint8_t tid = qdf_nbuf_get_tid_val(nbuf);
1855 uint8_t ring_id = QDF_NBUF_CB_RX_CTX_ID(nbuf);
1870 if (qdf_nbuf_is_da_mcbc(nbuf) && !ta_peer->bss_peer) {
1872 nbuf, tid_stats, link_id);
1876 nbuf))
1881 if (dp_rx_intrabss_ucast_check_be(nbuf, ta_peer, rx_tlv_hdr,
1885 rx_tlv_hdr, nbuf, tid_stats,
1905 static bool dp_rx_chain_msdus_be(struct dp_soc *soc, qdf_nbuf_t nbuf,
1929 qdf_nbuf_set_rx_chfrag_start(nbuf, 1);
1953 if (qdf_nbuf_is_rx_chfrag_end(nbuf) &&
1969 nbuf);
1974 static bool dp_rx_chain_msdus_be(struct dp_soc *soc, qdf_nbuf_t nbuf,
1999 qdf_nbuf_t nbuf;
2065 rx_desc->nbuf);
2070 nbuf = rx_desc->nbuf;
2080 nbuf,
2100 dp_rx_nbuf_unmap_pool(soc, rx_desc_pool, nbuf);
2111 nbuf);
2118 qdf_nbuf_data(nbuf));
2125 qdf_nbuf_set_rx_chfrag_cont(nbuf, 1);
2126 QDF_NBUF_CB_RX_PKT_LEN(nbuf) =
2130 qdf_nbuf_set_rx_chfrag_start(nbuf, 1);
2131 qdf_nbuf_set_rx_chfrag_end(nbuf, 1);
2132 QDF_NBUF_CB_RX_PKT_LEN(nbuf) =
2137 qdf_nbuf_set_rx_chfrag_cont(nbuf, 0);
2142 if (qdf_nbuf_is_rx_chfrag_cont(nbuf) || process_sg_buf) {
2145 nbuf);
2159 } else if (!dp_rx_buffer_pool_refill(soc, nbuf,
2161 DP_RX_LIST_APPEND(nbuf_head, nbuf_tail, nbuf);
2235 dp_rx_null_q_desc_handle_be(struct dp_soc *soc, qdf_nbuf_t nbuf,
2255 nbuf,
2258 qdf_nbuf_set_rx_chfrag_end(nbuf,
2261 qdf_nbuf_set_da_mcbc(nbuf, hal_rx_msdu_end_da_is_mcbc_get(soc->hal_soc,
2263 qdf_nbuf_set_da_valid(nbuf,
2266 qdf_nbuf_set_sa_valid(nbuf,
2275 if (qdf_likely(!qdf_nbuf_is_frag(nbuf))) {
2280 qdf_nbuf_set_pktlen(nbuf, qdf_min(pkt_len, (uint32_t)buf_size));
2296 rx_tlv_hdr, nbuf))
2310 qdf_nbuf_len(nbuf));
2315 nbuf->next = NULL;
2318 nbuf,
2322 mpdu_done = dp_rx_chain_msdus_be(soc, nbuf, rx_tlv_hdr,
2351 if (qdf_nbuf_is_frag(nbuf))
2352 qdf_nbuf_pull_head(nbuf, soc->rx_pkt_tlv_size);
2354 qdf_nbuf_pull_head(nbuf, (msdu_metadata.l3_hdr_pad +
2357 DP_STATS_INC_PKT(vdev, rx_i.null_q_desc_pkt, 1, qdf_nbuf_len(nbuf));
2359 dp_vdev_peer_stats_update_protocol_cnt(vdev, nbuf, NULL, 0, 1);
2378 dp_rx_mcast_echo_check(soc, txrx_peer, rx_tlv_hdr, nbuf)) {
2381 qdf_nbuf_len(nbuf), link_id);
2390 if (check_qwrap_multicast_loopback(vdev, nbuf)) {
2392 qdf_nbuf_len(nbuf), link_id);
2415 dp_rx_wds_srcport_learn(soc, rx_tlv_hdr, txrx_peer, nbuf,
2450 eh = (qdf_ether_header_t *)qdf_nbuf_data(nbuf);
2453 is_eapol = qdf_nbuf_is_ipv4_eapol_pkt(nbuf);
2455 if (is_eapol || qdf_nbuf_is_ipv4_wapi_pkt(nbuf)) {
2475 if (qdf_unlikely(dp_rx_err_cce_drop(soc, vdev, nbuf, rx_tlv_hdr)))
2486 qdf_nbuf_len(nbuf), link_id);
2491 qdf_nbuf_set_raw_frame(nbuf, 1);
2492 qdf_nbuf_set_next(nbuf, NULL);
2493 dp_rx_deliver_raw(vdev, nbuf, txrx_peer, link_id);
2496 qdf_nbuf_set_next(nbuf, NULL);
2497 DP_PEER_TO_STACK_INCC_PKT(txrx_peer, 1, qdf_nbuf_len(nbuf),
2501 qdf_nbuf_len(nbuf),
2507 dp_rx_update_protocol_tag(soc, vdev, nbuf, rx_tlv_hdr,
2512 dp_rx_update_flow_tag(soc, vdev, nbuf,
2519 DP_PEER_MC_INCC_PKT(txrx_peer, 1, qdf_nbuf_len(nbuf),
2524 qdf_nbuf_len(nbuf),
2529 qdf_nbuf_len(nbuf),
2534 qdf_nbuf_set_exc_frame(nbuf, 1);
2537 if (dp_rx_multipass_process(txrx_peer, nbuf,
2547 dp_rx_deliver_to_osif_stack(soc, vdev, txrx_peer, nbuf, NULL,
2553 dp_rx_nbuf_free(nbuf);