| /linux/net/core/ |
| H A D | skbuff.c | 406 shinfo = skb_shinfo(skb); in __finalize_skb_around() 898 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; in skb_coalesce_rx_frag() 917 skb_drop_list(&skb_shinfo(skb)->frag_list); in skb_drop_fraglist() 1061 shinfo = skb_shinfo(skb); in skb_pp_frag_ref() 1093 struct skb_shared_info *shinfo = skb_shinfo(skb); in skb_release_data() 1303 struct skb_shared_info *sh = skb_shinfo(skb); in skb_dump() 1368 for (i = 0; len && i < skb_shinfo(skb)->nr_frags; i++) { in skb_dump() 1369 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; in skb_dump() 1624 atomic_inc(&(skb_shinfo(skb)->dataref)); in __skb_clone() 1647 skb_shinfo(n)->frag_list = first; in alloc_skb_for_msg() [all …]
|
| H A D | gro.c | 94 struct skb_shared_info *pinfo, *skbinfo = skb_shinfo(skb); in skb_gro_receive() 127 pinfo = skb_shinfo(lp); in skb_gro_receive() 207 skb_shinfo(p)->frag_list = skb; in skb_gro_receive() 219 skb_shinfo(p)->flags |= skbinfo->flags & SKBFL_SHARED_FRAG; in skb_gro_receive() 224 skb_shinfo(lp)->flags |= skbinfo->flags & SKBFL_SHARED_FRAG; in skb_gro_receive() 236 skb_shinfo(p)->frag_list = skb; in skb_gro_receive_list() 252 skb_shinfo(p)->flags |= skb_shinfo(skb)->flags & SKBFL_SHARED_FRAG; in skb_gro_receive_list() 269 skb_shinfo(skb)->gso_size = 0; in gro_complete() 408 pinfo = skb_shinfo(skb); in skb_gro_reset_offset() 423 struct skb_shared_info *pinfo = skb_shinfo(skb); in gro_pull_from_frag0() [all …]
|
| /linux/drivers/net/wireless/intel/iwlwifi/ |
| H A D | iwl-utils.c | 22 unsigned int mss = skb_shinfo(skb)->gso_size; in iwl_tx_tso_segment() 27 skb_shinfo(skb)->gso_size = num_subframes * mss; in iwl_tx_tso_segment() 31 skb_shinfo(skb)->gso_size = mss; in iwl_tx_tso_segment() 32 skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6; in iwl_tx_tso_segment() 60 skb_shinfo(tmp)->gso_size = mss; in iwl_tx_tso_segment() 61 skb_shinfo(tmp)->gso_type = ipv4 ? SKB_GSO_TCPV4 : in iwl_tx_tso_segment() 73 skb_shinfo(tmp)->gso_size = 0; in iwl_tx_tso_segment()
|
| /linux/net/ipv4/ |
| H A D | udp_offload.c | 198 if (skb_shinfo(skb)->gso_type & SKB_GSO_PARTIAL) in __skb_udp_tunnel_segment() 214 need_csum = !!(skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM); in __skb_udp_tunnel_segment() 217 remcsum = !!(skb_shinfo(skb)->gso_type & SKB_GSO_TUNNEL_REMCSUM); in __skb_udp_tunnel_segment() 250 gso_partial = !!(skb_shinfo(segs)->gso_type & SKB_GSO_PARTIAL); in __skb_udp_tunnel_segment() 282 uh->len = htons(skb_shinfo(skb)->gso_size + in __skb_udp_tunnel_segment() 465 unsigned int mss = skb_shinfo(skb)->gso_size; in __udp_gso_segment_list() 492 mss = skb_shinfo(gso_skb)->gso_size; in __udp_gso_segment() 498 !(skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST))) in __udp_gso_segment() 509 skb_shinfo(gso_skb)->gso_segs = DIV_ROUND_UP(gso_skb->len - sizeof(*uh), in __udp_gso_segment() 514 if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST) { in __udp_gso_segment() [all …]
|
| H A D | gre_offload.c | 45 need_csum = !!(skb_shinfo(skb)->gso_type & SKB_GSO_GRE_CSUM); in gre_gso_segment() 65 gso_partial = !!(skb_shinfo(segs)->gso_type & SKB_GSO_PARTIAL); in gre_gso_segment() 103 skb_shinfo(skb)->gso_size; in gre_gso_segment() 245 skb_shinfo(skb)->gso_type = SKB_GSO_GRE; in gre_gro_complete()
|
| /linux/drivers/net/xen-netback/ |
| H A D | netback.c | 371 skb_shinfo(skb)->destructor_arg = NULL; in xenvif_alloc_skb() 387 struct skb_shared_info *shinfo = skb_shinfo(skb); in xenvif_get_requests() 486 shinfo = skb_shinfo(nskb); in xenvif_get_requests() 507 skb_shinfo(skb)->frag_list = nskb; in xenvif_get_requests() 561 struct skb_shared_info *shinfo = skb_shinfo(skb); in xenvif_tx_check_gop() 678 shinfo = skb_shinfo(shinfo->frag_list); in xenvif_tx_check_gop() 690 struct skb_shared_info *shinfo = skb_shinfo(skb); in xenvif_fill_frags() 705 skb_shinfo(skb)->destructor_arg = in xenvif_fill_frags() 772 skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4; in xenvif_set_skb_gso() 775 skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6; in xenvif_set_skb_gso() [all …]
|
| /linux/drivers/net/ethernet/sfc/siena/ |
| H A D | tx.h | 28 if (skb_shinfo(skb)->gso_segs > 1 && in efx_tx_csum_type_skb() 29 !(skb_shinfo(skb)->gso_type & SKB_GSO_PARTIAL) && in efx_tx_csum_type_skb() 30 (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM)) in efx_tx_csum_type_skb()
|
| /linux/Documentation/translations/zh_CN/networking/ |
| H A D | timestamping.rst | 313 节。它存储相关的序列号在 skb_shinfo(skb)->tskey。因为一个 skbuff 只有一 528 - 在 hard_start_xmit() 中,检查 (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) 530 - 如果此 skb 和请求都可能,则声明驱动程序正在执行时间戳,通过设置 skb_shinfo(skb)->tx_flags 533 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; 652 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; 660 == true``")和当前 skb 是否需要 TX 时间戳("``skb_shinfo(skb)->tx_flags 661 & SKBTX_HW_TSTAMP``")。如果为真,则设置 "``skb_shinfo(skb)->tx_flags 667 型的错误所在:驱动程序采取捷径,只检查 "``skb_shinfo(skb)->tx_flags & 672 针对 "``skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS``",还针对
|
| /linux/net/openvswitch/ |
| H A D | openvswitch_trace.h | 52 __entry->nr_frags = skb_shinfo(skb)->nr_frags; 53 __entry->gso_size = skb_shinfo(skb)->gso_size; 54 __entry->gso_type = skb_shinfo(skb)->gso_type; 122 __entry->nr_frags = skb_shinfo(skb)->nr_frags; 123 __entry->gso_size = skb_shinfo(skb)->gso_size; 124 __entry->gso_type = skb_shinfo(skb)->gso_type;
|
| /linux/include/linux/ |
| H A D | virtio_net.h | 160 struct skb_shared_info *shinfo = skb_shinfo(skb); in __virtio_net_hdr_to_skb() 252 struct skb_shared_info *sinfo = skb_shinfo(skb); in virtio_net_hdr_from_skb() 367 skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL_CSUM; in virtio_net_hdr_tnl_to_skb() 369 skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL; in virtio_net_hdr_tnl_to_skb() 429 tnl_gso_type = skb_shinfo(skb)->gso_type & (SKB_GSO_UDP_TUNNEL | in virtio_net_hdr_tnl_from_skb() 453 skb_shinfo(skb)->gso_type &= ~tnl_gso_type; in virtio_net_hdr_tnl_from_skb() 455 skb_shinfo(skb)->gso_type |= tnl_gso_type; in virtio_net_hdr_tnl_from_skb() 467 if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM) in virtio_net_hdr_tnl_from_skb()
|
| H A D | skbuff.h | 574 #define skb_uarg(SKB) ((struct ubuf_info *)(skb_shinfo(SKB)->destructor_arg)) 1785 #define skb_shinfo(SKB) ((struct skb_shared_info *)(skb_end_pointer(SKB))) macro 1789 return &skb_shinfo(skb)->hwtstamps; in skb_hwtstamps() 1794 bool is_zcopy = skb && skb_shinfo(skb)->flags & SKBFL_ZEROCOPY_ENABLE; in skb_zcopy() 1801 return skb_shinfo(skb)->flags & SKBFL_PURE_ZEROCOPY; in skb_zcopy_pure() 1806 return skb_shinfo(skb)->flags & SKBFL_MANAGED_FRAG_REFS; in skb_zcopy_managed() 1822 skb_shinfo(skb)->destructor_arg = uarg; in skb_zcopy_init() 1823 skb_shinfo(skb)->flags |= uarg->flags; in skb_zcopy_init() 1840 skb_shinfo(skb)->destructor_arg = (void *)((uintptr_t) val | 0x1UL); in skb_zcopy_set_nouarg() 1841 skb_shinfo(skb)->flags |= SKBFL_ZEROCOPY_FRAG; in skb_zcopy_set_nouarg() [all …]
|
| /linux/net/tls/ |
| H A D | tls_strp.c | 32 struct skb_shared_info *shinfo = skb_shinfo(strp->anchor); in tls_strp_anchor_free() 53 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in tls_strp_skb_copy() 54 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; in tls_strp_skb_copy() 147 struct skb_shared_info *shinfo = skb_shinfo(strp->anchor); in tls_strp_msg_hold() 194 struct skb_shared_info *shinfo = skb_shinfo(strp->anchor); in tls_strp_flush_anchor_copy() 219 if (unlikely(nfrag >= skb_shinfo(skb)->nr_frags)) { in tls_strp_copyin_frag() 224 frag = &skb_shinfo(skb)->frags[nfrag]; in tls_strp_copyin_frag() 305 shinfo = skb_shinfo(skb); in tls_strp_copyin_skb() 404 shinfo = skb_shinfo(strp->anchor); in tls_strp_read_copy() 440 first = skb_shinfo(strp->anchor)->frag_list; in tls_strp_check_queue_ok() [all …]
|
| /linux/drivers/net/ethernet/sfc/ |
| H A D | tx_tso.c | 291 bool is_last = st->out_len <= skb_shinfo(skb)->gso_size; in tso_start_new_packet() 295 st->packet_space = skb_shinfo(skb)->gso_size; in tso_start_new_packet() 341 st->seqnum += skb_shinfo(skb)->gso_size; in tso_start_new_packet() 386 EFX_WARN_ON_ONCE_PARANOID(skb_shinfo(skb)->nr_frags < 1); in efx_enqueue_skb_tso() 389 skb_shinfo(skb)->frags + frag_i); in efx_enqueue_skb_tso() 408 if (++frag_i >= skb_shinfo(skb)->nr_frags) in efx_enqueue_skb_tso() 412 skb_shinfo(skb)->frags + frag_i); in efx_enqueue_skb_tso()
|
| /linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_txrx.c | 148 if (skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS) { in otx2_snd_pkt_handler() 196 if (likely(!skb_shinfo(skb)->nr_frags)) { in otx2_skb_add_frag() 209 if (likely(skb_shinfo(skb)->nr_frags < MAX_SKB_FRAGS)) { in otx2_skb_add_frag() 210 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, in otx2_skb_add_frag() 714 if (skb_shinfo(skb)->gso_size) { in otx2_sqe_add_ext() 717 ext->lso_mps = skb_shinfo(skb)->gso_size; in otx2_sqe_add_ext() 720 if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) { in otx2_sqe_add_ext() 729 } else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) { in otx2_sqe_add_ext() 732 } else if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) { in otx2_sqe_add_ext() 755 } else if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) { in otx2_sqe_add_ext() [all …]
|
| /linux/net/sctp/ |
| H A D | inqueue.c | 133 chunk->skb = skb_shinfo(chunk->skb)->frag_list; in sctp_inq_pop() 168 if (skb_shinfo(chunk->skb)->frag_list) in sctp_inq_pop() 173 if (WARN_ON(!skb_shinfo(chunk->skb)->frag_list)) { in sctp_inq_pop() 179 chunk->skb = skb_shinfo(chunk->skb)->frag_list; in sctp_inq_pop()
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | en_tx.c | 161 if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) in mlx5e_tx_get_gso_ihs() 169 if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) in mlx5e_tx_get_gso_ihs() 204 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in mlx5e_txwqe_build_dsegs() 205 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; in mlx5e_txwqe_build_dsegs() 275 .mss = cpu_to_be16(skb_shinfo(skb)->gso_size), in mlx5e_sq_xmit_prepare() 277 .num_bytes = skb->len + (skb_shinfo(skb)->gso_segs - 1) * ihs, in mlx5e_sq_xmit_prepare() 281 stats->packets += skb_shinfo(skb)->gso_segs; in mlx5e_sq_xmit_prepare() 314 ds_cnt += !!attr->headlen + skb_shinfo(skb)->nr_frags + ds_cnt_ids; in mlx5e_sq_calc_wqe_attr() 338 if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) in mlx5e_tx_skb_update_ts_flags() 339 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; in mlx5e_tx_skb_update_ts_flags() [all …]
|
| /linux/drivers/net/ethernet/chelsio/cxgb4/ |
| H A D | cxgb4_ptp.h | 57 return skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP; in cxgb4_xmit_with_hwtstamp() 62 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; in cxgb4_xmit_hwtstamp_pending()
|
| /linux/drivers/net/ethernet/sun/ |
| H A D | sunvnet_common.c | 1084 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in vnet_skb_map() 1085 skb_frag_t *f = &skb_shinfo(skb)->frags[i]; in vnet_skb_map() 1124 docopy = skb_shinfo(skb)->nr_frags >= ncookies; in vnet_skb_shape() 1125 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in vnet_skb_shape() 1126 skb_frag_t *f = &skb_shinfo(skb)->frags[i]; in vnet_skb_shape() 1210 skb_shinfo(nskb)->gso_size = skb_shinfo(skb)->gso_size; in vnet_skb_shape() 1211 skb_shinfo(nskb)->gso_type = skb_shinfo(skb)->gso_type; in vnet_skb_shape() 1250 gso_size = skb_shinfo(skb)->gso_size; in vnet_handle_offloads() 1251 gso_type = skb_shinfo(skb)->gso_type; in vnet_handle_offloads() 1252 gso_segs = skb_shinfo(skb)->gso_segs; in vnet_handle_offloads() [all …]
|
| /linux/drivers/net/ethernet/qlogic/qede/ |
| H A D | qede_fp.c | 113 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++, bds_consumed++) { in qede_free_tx_pkt() 193 unsigned short gso_type = skb_shinfo(skb)->gso_type; in qede_xmit_type() 285 return (skb_shinfo(skb)->nr_frags > allowed_frags); in qede_pkt_req_lin() 657 skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6; in qede_set_gro_params() 659 skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4; in qede_set_gro_params() 661 skb_shinfo(skb)->gso_size = __le16_to_cpu(cqe->len_on_first_bd) - in qede_set_gro_params() 929 skb_shinfo(skb)->gso_type = 0; in qede_gro_receive() 930 skb_shinfo(skb)->gso_size = 0; in qede_gro_receive() 935 if (skb_shinfo(skb)->gso_size) { in qede_gro_receive() 1209 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, bd->data, in qede_rx_build_jumbo() [all …]
|
| /linux/drivers/net/ethernet/pensando/ionic/ |
| H A D | ionic_txrx.c | 167 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, in ionic_rx_add_skb_frag() 1129 frag = skb_shinfo(skb)->frags; in ionic_tx_map_skb() 1130 nfrags = skb_shinfo(skb)->nr_frags; in ionic_tx_map_skb() 1219 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; in ionic_tx_clean() 1472 mss = skb_shinfo(skb)->gso_size; in ionic_tx_tso() 1473 outer_csum = (skb_shinfo(skb)->gso_type & (SKB_GSO_GRE | in ionic_tx_tso() 1566 flags, skb_shinfo(skb)->nr_frags, in ionic_tx_calc_csum() 1605 flags, skb_shinfo(skb)->nr_frags, in ionic_tx_calc_no_csum() 1632 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++, buf_info++, elem++) { in ionic_tx_skb_frags() 1637 stats->frags += skb_shinfo(skb)->nr_frags; in ionic_tx_skb_frags() [all …]
|
| /linux/drivers/net/ethernet/cavium/thunder/ |
| H A D | nicvf_queues.c | 1262 struct skb_shared_info *sh = skb_shinfo(skb); in nicvf_tso_count_subdescs() 1310 if (skb_shinfo(skb)->gso_size && !nic->hw_tso) { in nicvf_sq_subdesc_required() 1316 if (nic->t88 && nic->hw_tso && skb_shinfo(skb)->gso_size) in nicvf_sq_subdesc_required() 1319 if (skb_shinfo(skb)->nr_frags) in nicvf_sq_subdesc_required() 1320 subdesc_cnt += skb_shinfo(skb)->nr_frags; in nicvf_sq_subdesc_required() 1345 if (nic->t88 && nic->hw_tso && skb_shinfo(skb)->gso_size) { in nicvf_sq_add_hdr_subdesc() 1382 if (nic->hw_tso && skb_shinfo(skb)->gso_size) { in nicvf_sq_add_hdr_subdesc() 1385 hdr->tso_max_paysize = skb_shinfo(skb)->gso_size; in nicvf_sq_add_hdr_subdesc() 1392 if (!(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) in nicvf_sq_add_hdr_subdesc() 1396 if (skb_shinfo(skb)->gso_size) in nicvf_sq_add_hdr_subdesc() [all …]
|
| /linux/net/xfrm/ |
| H A D | xfrm_ipcomp.c | 74 frag = skb_shinfo(skb)->frags + skb_shinfo(skb)->nr_frags; in ipcomp_post_acomp() 84 skb_shinfo(skb)->nr_frags++; in ipcomp_post_acomp() 147 nfrags = skb_shinfo(skb)->nr_frags; in ipcomp_setup_req()
|
| /linux/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_tx.c | 151 for (i = 0 ; i < skb_shinfo(skb)->nr_frags; i++) { in tx_map_skb() 152 frag = &skb_shinfo(skb)->frags[i]; in tx_map_skb() 191 for (i = 0; i < skb_shinfo(skb)->nr_frags ; i++) in tx_unmap_skb() 290 u32 gso_type = skb_shinfo(skb)->gso_type; in offload_tso() 348 ip_identify, skb_shinfo(skb)->gso_size); in offload_tso() 504 nr_sges = skb_shinfo(skb)->nr_frags + 1; in hinic_lb_xmit_frame() 575 nr_sges = skb_shinfo(skb)->nr_frags + 1; in hinic_xmit_frame() 680 nr_sges = skb_shinfo(skb)->nr_frags + 1; in free_all_tx_skbs() 735 nr_sges = skb_shinfo(skb)->nr_frags + 1; in free_tx_poll()
|
| /linux/drivers/net/ |
| H A D | xen-netfront.c | 332 page = skb_frag_page(&skb_shinfo(skb)->frags[0]); in xennet_alloc_rx_buffers() 566 int i, frags = skb_shinfo(skb)->nr_frags; in xennet_count_skb_slots() 573 skb_frag_t *frag = skb_shinfo(skb)->frags + i; in xennet_count_skb_slots() 803 if (skb_shinfo(skb)->gso_size) { in xennet_start_xmit() 811 gso->u.gso.size = skb_shinfo(skb)->gso_size; in xennet_start_xmit() 812 gso->u.gso.type = (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) ? in xennet_start_xmit() 826 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in xennet_start_xmit() 827 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; in xennet_start_xmit() 1092 skb_frag_page(&skb_shinfo(skb)->frags[0]), in xennet_get_responses() 1151 skb_shinfo(skb)->gso_size = gso->u.gso.size; in xennet_set_skb_gso() [all …]
|
| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_txrx.c | 1430 for (frag = &skb_shinfo(skb)->frags[0];; frag++) { in ice_tx_map() 1694 gso_ena = skb_shinfo(skb)->gso_type & SKB_GSO_PARTIAL; in ice_tx_csum() 1697 (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM)) in ice_tx_csum() 1888 if (skb_shinfo(skb)->gso_type & (SKB_GSO_GRE | in ice_tso() 1894 if (!(skb_shinfo(skb)->gso_type & SKB_GSO_PARTIAL) && in ice_tso() 1895 (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM)) { in ice_tso() 1926 if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) { in ice_tso() 1939 first->gso_segs = skb_shinfo(skb)->gso_segs; in ice_tso() 1943 cd_mss = skb_shinfo(skb)->gso_size; in ice_tso() 1995 const skb_frag_t *frag = &skb_shinfo(skb)->frags[0]; in ice_xmit_desc_count() [all …]
|