Home
last modified time | relevance | path

Searched refs:skbs (Results 1 – 25 of 69) sorted by relevance

123

/linux-6.15/Documentation/networking/
H A Dskbuff.rst15 Shared skbs and skb clones
19 to keep a struct sk_buff alive. skbs with a ``sk_buff.users != 1`` are referred
20 to as shared skbs (see skb_shared()).
22 skb_clone() allows for fast duplication of skbs. None of the data buffers
24 &skb_shared_info.refcount indicates the number of skbs pointing at the same
27 dataref and headerless skbs
31 :doc: dataref and headerless skbs
H A Dnetdev-features.rst129 ndo_start_xmit can handle skbs with frags in high memory.
133 Those features say that ndo_start_xmit can handle fragmented skbs:
134 NETIF_F_SG --- paged skbs (skb_shinfo()->frags), NETIF_F_FRAGLIST ---
135 chained skbs (skb->next/prev list).
H A Dxdp-rx-metadata.rst87 ``skbs``. However, TC-BPF programs can access the XDP metadata area using
91 can override some of the metadata used for building ``skbs``.
H A Dsegmentation-offloads.rst60 UFO is deprecated: modern kernels will no longer generate UFO skbs, but can
165 padded and stored as chained skbs, and skb_segment() splits based on those.
181 will check for GSO_BY_FRAGS and WARN if asked to manipulate these skbs.
H A Ddevmem.rst241 Unreadable skbs
245 results in a few quirks for payloads of devmem skbs:
248 not possible with devmem skbs.
/linux-6.15/kernel/bpf/
H A Dcpumap.c138 void **skbs, u32 skb_n, in cpu_map_bpf_prog_run_skb() argument
146 struct sk_buff *skb = skbs[i]; in cpu_map_bpf_prog_run_skb()
151 skbs[pass++] = skb; in cpu_map_bpf_prog_run_skb()
248 void **skbs, struct cpu_map_ret *ret, in cpu_map_bpf_prog_run() argument
272 memmove(&skbs[ret->xdp_n], skbs, ret->skb_n * sizeof(*skbs)); in cpu_map_bpf_prog_run()
308 void *skbs[CPUMAP_BATCH]; in cpu_map_kthread_run() local
343 skbs[ret.skb_n++] = skb; in cpu_map_kthread_run()
364 m = napi_skb_cache_get_bulk(skbs, ret.xdp_n); in cpu_map_kthread_run()
370 memmove(&skbs[m], &skbs[ret.xdp_n], in cpu_map_kthread_run()
371 ret.skb_n * sizeof(*skbs)); in cpu_map_kthread_run()
[all …]
/linux-6.15/drivers/net/ethernet/actions/
H A Dowl-emac.c206 ring->skbs[i] = skb; in owl_emac_ring_prepare_rx()
255 dev_kfree_skb(ring->skbs[i]); in owl_emac_ring_unprepare_rx()
256 ring->skbs[i] = NULL; in owl_emac_ring_unprepare_rx()
274 dev_kfree_skb(ring->skbs[i]); in owl_emac_ring_unprepare_tx()
275 ring->skbs[i] = NULL; in owl_emac_ring_unprepare_tx()
290 if (!ring->skbs) in owl_emac_ring_alloc()
530 ring->skbs[tx_head] = skb; in owl_emac_setup_frame_xmit()
605 ring->skbs[tx_head] = skb; in owl_emac_ndo_start_xmit()
680 skb = ring->skbs[tx_tail]; in owl_emac_tx_complete_tail()
684 ring->skbs[tx_tail] = NULL; in owl_emac_tx_complete_tail()
[all …]
/linux-6.15/drivers/net/ethernet/sfc/falcon/
H A Dselftest.c85 struct sk_buff **skbs; member
434 state->skbs[i] = skb; in ef4_begin_loopback()
492 skb = state->skbs[i]; in ef4_end_loopback()
548 state->skbs = kcalloc(state->packet_count, in ef4_test_loopback()
549 sizeof(state->skbs[0]), GFP_KERNEL); in ef4_test_loopback()
550 if (!state->skbs) in ef4_test_loopback()
571 kfree(state->skbs); in ef4_test_loopback()
/linux-6.15/drivers/net/ethernet/sfc/siena/
H A Dselftest.c88 struct sk_buff **skbs; member
432 state->skbs[i] = skb; in efx_begin_loopback()
490 skb = state->skbs[i]; in efx_end_loopback()
546 state->skbs = kcalloc(state->packet_count, in efx_test_loopback()
547 sizeof(state->skbs[0]), GFP_KERNEL); in efx_test_loopback()
548 if (!state->skbs) in efx_test_loopback()
569 kfree(state->skbs); in efx_test_loopback()
/linux-6.15/drivers/net/ethernet/sfc/
H A Dselftest.c87 struct sk_buff **skbs; member
431 state->skbs[i] = skb; in efx_begin_loopback()
489 skb = state->skbs[i]; in efx_end_loopback()
545 state->skbs = kcalloc(state->packet_count, in efx_test_loopback()
546 sizeof(state->skbs[0]), GFP_KERNEL); in efx_test_loopback()
547 if (!state->skbs) in efx_test_loopback()
568 kfree(state->skbs); in efx_test_loopback()
/linux-6.15/net/mctp/test/
H A Droute-test.c885 struct sk_buff *skbs[2]; in mctp_test_route_input_sk_fail_frag() local
896 for (i = 0; i < ARRAY_SIZE(skbs); i++) { in mctp_test_route_input_sk_fail_frag()
897 skbs[i] = mctp_test_create_skb(&hdrs[i], 10); in mctp_test_route_input_sk_fail_frag()
898 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, skbs[i]); in mctp_test_route_input_sk_fail_frag()
899 skb_get(skbs[i]); in mctp_test_route_input_sk_fail_frag()
901 mctp_test_skb_set_dev(skbs[i], dev); in mctp_test_route_input_sk_fail_frag()
907 rc = mctp_route_input(&rt->rt, skbs[0]); in mctp_test_route_input_sk_fail_frag()
911 rc = mctp_route_input(&rt->rt, skbs[1]); in mctp_test_route_input_sk_fail_frag()
915 KUNIT_EXPECT_EQ(test, refcount_read(&skbs[0]->users), 1); in mctp_test_route_input_sk_fail_frag()
916 kfree_skb(skbs[0]); in mctp_test_route_input_sk_fail_frag()
[all …]
/linux-6.15/drivers/net/ethernet/socionext/
H A Dsni_ave.c227 struct sk_buff *skbs; member
586 skb = priv->rx.desc[entry].skbs; in ave_rxdesc_prepare()
619 priv->rx.desc[entry].skbs = skb; in ave_rxdesc_prepare()
716 if (priv->tx.desc[done_idx].skbs) { in ave_tx_complete()
777 skb = priv->rx.desc[proc_idx].skbs; in ave_rx_receive()
778 priv->rx.desc[proc_idx].skbs = NULL; in ave_rx_receive()
1372 if (!priv->tx.desc[entry].skbs) in ave_stop()
1377 priv->tx.desc[entry].skbs = NULL; in ave_stop()
1384 if (!priv->rx.desc[entry].skbs) in ave_stop()
1389 priv->rx.desc[entry].skbs = NULL; in ave_stop()
[all …]
/linux-6.15/net/mac80211/
H A Dtx.c998 skb_queue_walk(&tx->skbs, skb) { in ieee80211_tx_h_fragment()
1686 __skb_unlink(skb, skbs); in ieee80211_tx_frags()
1709 skbs); in ieee80211_tx_frags()
1720 skb_queue_splice_init(skbs, in ieee80211_tx_frags()
1736 __skb_unlink(skb, skbs); in ieee80211_tx_frags()
1759 skb = skb_peek(skbs); in __ieee80211_tx()
1920 skb2 = __skb_dequeue(&tx.skbs); in ieee80211_tx_prepare_skb()
4661 skbs++; in ieee80211_8023_xmit()
4828 struct sk_buff_head skbs; in ieee80211_tx_pending_skb() local
4830 __skb_queue_head_init(&skbs); in ieee80211_tx_pending_skb()
[all …]
H A Dwpa.c255 skb_queue_walk(&tx->skbs, skb) { in ieee80211_crypto_tkip_encrypt()
505 skb_queue_walk(&tx->skbs, skb) { in ieee80211_crypto_ccmp_encrypt()
704 skb_queue_walk(&tx->skbs, skb) { in ieee80211_crypto_gcmp_encrypt()
840 if (WARN_ON(skb_queue_len(&tx->skbs) != 1)) in ieee80211_crypto_aes_cmac_encrypt()
843 skb = skb_peek(&tx->skbs); in ieee80211_crypto_aes_cmac_encrypt()
888 if (WARN_ON(skb_queue_len(&tx->skbs) != 1)) in ieee80211_crypto_aes_cmac_256_encrypt()
891 skb = skb_peek(&tx->skbs); in ieee80211_crypto_aes_cmac_256_encrypt()
1037 if (WARN_ON(skb_queue_len(&tx->skbs) != 1)) in ieee80211_crypto_aes_gmac_encrypt()
1040 skb = skb_peek(&tx->skbs); in ieee80211_crypto_aes_gmac_encrypt()
/linux-6.15/drivers/net/wireless/mediatek/mt7601u/
H A Ddma.c283 struct sk_buff_head skbs; in mt7601u_tx_tasklet() local
286 __skb_queue_head_init(&skbs); in mt7601u_tx_tasklet()
295 skb_queue_splice_init(&dev->tx_skb_done, &skbs); in mt7601u_tx_tasklet()
299 while (!skb_queue_empty(&skbs)) { in mt7601u_tx_tasklet()
300 struct sk_buff *skb = __skb_dequeue(&skbs); in mt7601u_tx_tasklet()
/linux-6.15/include/linux/
H A Dskb_array.h192 struct sk_buff **skbs, int n) in skb_array_unconsume() argument
194 ptr_ring_unconsume(&a->ring, (void **)skbs, n, __skb_array_destroy_skb); in skb_array_unconsume()
/linux-6.15/drivers/net/ethernet/netronome/nfp/nfd3/
H A Dxsk.c391 unsigned int pkts_polled, skbs = 0; in nfp_nfd3_xsk_poll() local
393 pkts_polled = nfp_nfd3_xsk_rx(r_vec->rx_ring, budget, &skbs); in nfp_nfd3_xsk_poll()
404 if (pkts_polled < budget && napi_complete_done(napi, skbs)) in nfp_nfd3_xsk_poll()
/linux-6.15/drivers/net/ethernet/qlogic/qede/
H A Dqede_fp.c79 struct sk_buff *skb = txq->sw_tx_ring.skbs[idx].skb; in qede_free_tx_pkt()
84 bool data_split = txq->sw_tx_ring.skbs[idx].flags & QEDE_TSO_SPLIT_BD; in qede_free_tx_pkt()
124 txq->sw_tx_ring.skbs[idx].skb = NULL; in qede_free_tx_pkt()
125 txq->sw_tx_ring.skbs[idx].flags = 0; in qede_free_tx_pkt()
136 struct sk_buff *skb = txq->sw_tx_ring.skbs[idx].skb; in qede_free_failed_tx_pkt()
172 txq->sw_tx_ring.skbs[idx].skb = NULL; in qede_free_failed_tx_pkt()
173 txq->sw_tx_ring.skbs[idx].flags = 0; in qede_free_failed_tx_pkt()
1519 txq->sw_tx_ring.skbs[idx].skb = skb; in qede_start_xmit()
1641 txq->sw_tx_ring.skbs[idx].flags |= QEDE_TSO_SPLIT_BD; in qede_start_xmit()
/linux-6.15/net/bpf/
H A Dtest_run.c117 struct sk_buff **skbs; member
178 xdp->skbs = kvmalloc_array(xdp->batch_size, sizeof(void *), GFP_KERNEL); in xdp_test_run_setup()
179 if (!xdp->skbs) in xdp_test_run_setup()
209 kvfree(xdp->skbs); in xdp_test_run_setup()
220 kfree(xdp->skbs); in xdp_test_run_teardown()
253 struct sk_buff **skbs, in xdp_recv_frames() argument
261 (void **)skbs); in xdp_recv_frames()
270 struct sk_buff *skb = skbs[i]; in xdp_recv_frames()
361 ret = xdp_recv_frames(frames, nframes, xdp->skbs, xdp->dev); in xdp_test_run_batch()
/linux-6.15/tools/testing/selftests/net/packetdrill/
H A Dtcp_eor_no-coalesce-small.pkt26 // This chunk should not be appended to the skbs created for the previous chunk.
H A Dtcp_eor_no-coalesce-subsequent.pkt35 // This chunk should not be appended to the skbs created for the previous chunk.
/linux-6.15/drivers/net/wireless/intel/iwlwifi/dvm/
H A Dtx.c1123 struct sk_buff_head skbs; in iwlagn_rx_reply_tx() local
1144 __skb_queue_head_init(&skbs); in iwlagn_rx_reply_tx()
1173 iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs, false); in iwlagn_rx_reply_tx()
1178 skb_queue_walk(&skbs, skb) { in iwlagn_rx_reply_tx()
1249 while (!skb_queue_empty(&skbs)) { in iwlagn_rx_reply_tx()
1250 skb = __skb_dequeue(&skbs); in iwlagn_rx_reply_tx()
/linux-6.15/drivers/net/ethernet/renesas/
H A Drswitch.c295 kfree(gq->skbs); in rswitch_gwca_queue_free()
296 gq->skbs = NULL; in rswitch_gwca_queue_free()
334 gq->skbs = kcalloc(gq->ring_size, sizeof(*gq->skbs), GFP_KERNEL); in rswitch_gwca_queue_alloc()
335 if (!gq->skbs) in rswitch_gwca_queue_alloc()
878 skb = gq->skbs[gq->dirty]; in rswitch_tx_free()
885 dev_kfree_skb_any(gq->skbs[gq->dirty]); in rswitch_tx_free()
886 gq->skbs[gq->dirty] = NULL; in rswitch_tx_free()
1734 gq->skbs[(gq->cur + nr_desc - 1) % gq->ring_size] = skb; in rswitch_start_xmit()
1755 gq->skbs[(gq->cur + nr_desc - 1) % gq->ring_size] = NULL; in rswitch_start_xmit()
/linux-6.15/drivers/net/wireless/intel/iwlwifi/mld/
H A Dtx.c1048 struct sk_buff_head skbs; in iwl_mld_handle_tx_resp_notif() local
1067 __skb_queue_head_init(&skbs); in iwl_mld_handle_tx_resp_notif()
1070 iwl_trans_reclaim(mld->trans, txq_id, ssn, &skbs, false); in iwl_mld_handle_tx_resp_notif()
1072 while (!skb_queue_empty(&skbs)) { in iwl_mld_handle_tx_resp_notif()
1073 struct sk_buff *skb = __skb_dequeue(&skbs); in iwl_mld_handle_tx_resp_notif()
/linux-6.15/drivers/net/ethernet/mediatek/
H A Dmtk_star_emac.c241 struct sk_buff *skbs[MTK_STAR_RING_NUM_DESCS]; member
325 desc_data->skb = ring->skbs[ring->tail]; in mtk_star_ring_pop_tail()
328 ring->skbs[ring->tail] = NULL; in mtk_star_ring_pop_tail()
349 ring->skbs[ring->head] = desc_data->skb; in mtk_star_ring_push_head()
718 ring->skbs[i] = skb; in mtk_star_prepare_rx_skbs()
738 desc_data.skb = ring->skbs[i]; in mtk_star_ring_free_skbs()

123