/linux-6.12.1/net/core/ |
D | tso.c | 5 #include <net/tso.h> 8 void tso_build_hdr(const struct sk_buff *skb, char *hdr, struct tso_t *tso, in tso_build_hdr() argument 11 int hdr_len = skb_transport_offset(skb) + tso->tlen; in tso_build_hdr() 15 if (!tso->ipv6) { in tso_build_hdr() 18 iph->id = htons(tso->ip_id); in tso_build_hdr() 20 tso->ip_id++; in tso_build_hdr() 24 iph->payload_len = htons(size + tso->tlen); in tso_build_hdr() 27 if (tso->tlen != sizeof(struct udphdr)) { in tso_build_hdr() 30 put_unaligned_be32(tso->tcp_seq, &tcph->seq); in tso_build_hdr() 46 void tso_build_data(const struct sk_buff *skb, struct tso_t *tso, int size) in tso_build_data() argument [all …]
|
/linux-6.12.1/tools/testing/selftests/net/ |
D | veth.sh | 231 chk_tso_flag " - tso flag" $SRC on 232 chk_tso_flag " - peer tso flag" $DST on 235 chk_gro " - aggregation with TSO off" 10 242 chk_tso_flag " - tso flag" $SRC on 243 chk_tso_flag " - peer tso flag" $DST on 246 chk_gro " - aggregation with TSO off" 1 285 chk_tso_flag " - tso flag" $SRC on 286 chk_tso_flag " - peer tso flag" $DST on 290 chk_gro " - aggregation with TSO off" 1 347 chk_tso_flag " - tso flag" $SRC off [all …]
|
D | gre_gso.sh | 124 log_test $? 0 "$name - copy file w/ TSO" 126 ethtool -K veth0 tso off 131 ethtool -K veth0 tso on
|
/linux-6.12.1/arch/powerpc/kernel/ptrace/ |
D | ptrace-view.c | 352 BUILD_BUG_ON(TSO(ebbrr) + sizeof(unsigned long) != TSO(ebbhr)); in ebb_get() 353 BUILD_BUG_ON(TSO(ebbhr) + sizeof(unsigned long) != TSO(bescr)); in ebb_get() 371 BUILD_BUG_ON(TSO(ebbrr) + sizeof(unsigned long) != TSO(ebbhr)); in ebb_set() 372 BUILD_BUG_ON(TSO(ebbhr) + sizeof(unsigned long) != TSO(bescr)); in ebb_set() 407 BUILD_BUG_ON(TSO(siar) + sizeof(unsigned long) != TSO(sdar)); in pmu_get() 408 BUILD_BUG_ON(TSO(sdar) + sizeof(unsigned long) != TSO(sier)); in pmu_get() 409 BUILD_BUG_ON(TSO(sier) + sizeof(unsigned long) != TSO(mmcr2)); in pmu_get() 410 BUILD_BUG_ON(TSO(mmcr2) + sizeof(unsigned long) != TSO(mmcr0)); in pmu_get() 425 BUILD_BUG_ON(TSO(siar) + sizeof(unsigned long) != TSO(sdar)); in pmu_set() 426 BUILD_BUG_ON(TSO(sdar) + sizeof(unsigned long) != TSO(sier)); in pmu_set() [all …]
|
D | ptrace-tm.c | 578 BUILD_BUG_ON(TSO(tm_tfhar) + sizeof(u64) != TSO(tm_texasr)); in tm_spr_get() 579 BUILD_BUG_ON(TSO(tm_texasr) + sizeof(u64) != TSO(tm_tfiar)); in tm_spr_get() 580 BUILD_BUG_ON(TSO(tm_tfiar) + sizeof(u64) != TSO(ckpt_regs)); in tm_spr_get() 623 BUILD_BUG_ON(TSO(tm_tfhar) + sizeof(u64) != TSO(tm_texasr)); in tm_spr_set() 624 BUILD_BUG_ON(TSO(tm_texasr) + sizeof(u64) != TSO(tm_tfiar)); in tm_spr_set() 625 BUILD_BUG_ON(TSO(tm_tfiar) + sizeof(u64) != TSO(ckpt_regs)); in tm_spr_set()
|
/linux-6.12.1/include/linux/ |
D | netdev_features.h | 40 NETIF_F_GSO_GRE_BIT, /* ... GRE with TSO */ 41 NETIF_F_GSO_GRE_CSUM_BIT, /* ... GRE with csum with TSO */ 42 NETIF_F_GSO_IPXIP4_BIT, /* ... IP4 or IP6 over IP4 with TSO */ 43 NETIF_F_GSO_IPXIP6_BIT, /* ... IP4 or IP6 over IP6 with TSO */ 44 NETIF_F_GSO_UDP_TUNNEL_BIT, /* ... UDP TUNNEL with TSO */ 45 NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT,/* ... UDP TUNNEL with TSO & CSUM */ 50 NETIF_F_GSO_TUNNEL_REMCSUM_BIT, /* ... TUNNEL with TSO & REMCSUM */ 52 NETIF_F_GSO_ESP_BIT, /* ... ESP with TSO */ 131 #define NETIF_F_TSO __NETIF_F(TSO)
|
/linux-6.12.1/include/net/ |
D | tso.h | 26 void tso_build_hdr(const struct sk_buff *skb, char *hdr, struct tso_t *tso, 28 void tso_build_data(const struct sk_buff *skb, struct tso_t *tso, int size); 29 int tso_start(struct sk_buff *skb, struct tso_t *tso);
|
/linux-6.12.1/drivers/net/ethernet/google/gve/ |
D | gve_desc.h | 46 u8 l3_offset; /* TSO: 2 byte units to start of IPH */ 48 __be16 mss; /* TSO MSS */ 55 #define GVE_TXD_TSO (0x1 << 4) /* TSO with Host Address */ 63 /* GVE Transmit Descriptor Flags for TSO Segs */ 64 #define GVE_TXSF_IPV6 BIT(1) /* IPv6 TSO */
|
D | gve_desc_dqo.h | 48 /* Maximum number of data descriptors allowed per packet, or per-TSO segment. */ 62 u8 tso: 1; member 70 /* TX Native TSO Context DTYPE (0x05) 79 /* Max segment size in TSO excluding headers. */ 83 u8 header_len; /* Header length to use for TSO offload */
|
/linux-6.12.1/drivers/net/ethernet/sfc/ |
D | tx_tso.c | 37 * struct tso_state - TSO state for an SKB 141 * under which TSO will be attempted hold true. Return the protocol number. 227 * @st: TSO state 280 * @st: TSO state 304 /* Send the original headers with a TSO option descriptor in tso_start_new_packet() 350 * efx_enqueue_skb_tso - segment and transmit a TSO socket buffer 358 * Add socket buffer @skb to @tx_queue, doing TSO or return != 0 if 432 "Out of memory for TSO headers, or DMA mapping error\n"); in efx_enqueue_skb_tso() 434 netif_err(efx, tx_err, efx->net_dev, "TSO failed, rc = %d\n", rc); in efx_enqueue_skb_tso()
|
D | ef100_tx.c | 69 WARN_ONCE(1, "MSS of %u is too small for TSO\n", mss); in ef100_tx_can_tso() 90 /* Reserve an empty buffer for the TSO V3 descriptor. in ef100_tx_can_tso() 209 /* We use 1 for the TSO descriptor and 1 for the header */ in ef100_make_tso_desc() 309 /* TX TSO descriptor */ in ef100_tx_make_descriptors() 394 segments = 0; /* Don't use TSO/GSO for a single segment. */ in __ef100_enqueue_skb()
|
/linux-6.12.1/Documentation/networking/ |
D | segmentation-offloads.rst | 15 * TCP Segmentation Offload - TSO 34 offload. For this reason TSO is normally disabled if the Tx checksum 47 NETIF_F_TSO_MANGLEID set then the IP ID can be ignored when performing TSO 57 fragmentation offload are the same as TSO. However the IPv4 ID for 136 Partial generic segmentation offload is a hybrid between TSO and GSO. What
|
/linux-6.12.1/drivers/net/ethernet/marvell/octeontx2/nic/ |
D | otx2_txrx.c | 10 #include <net/tso.h> 679 * sending TSO segment, hence set payload length in otx2_sqe_add_ext() 785 /* In case of TSO, HW needs this to be explicitly set. in otx2_sqe_add_hdr() 891 struct tso_t tso; in otx2_sq_append_tso() local 893 hdr_len = tso_start(skb, &tso); in otx2_sq_append_tso() 896 * It's done here to avoid mapping for every TSO segment's packet. in otx2_sq_append_tso() 918 /* Add TSO segment's pkt header */ in otx2_sq_append_tso() 920 tso_build_hdr(skb, hdr, &tso, seg_len, tcp_data == 0); in otx2_sq_append_tso() 926 /* Add TSO segment's payload data fragments */ in otx2_sq_append_tso() 931 size = min_t(int, tso.size, seg_len); in otx2_sq_append_tso() [all …]
|
/linux-6.12.1/Documentation/networking/device_drivers/ethernet/chelsio/ |
D | cxgb.rst | 77 TCP Segmentation Offloading (TSO) Support 87 By default, TSO is enabled. 88 To disable TSO:: 90 ethtool -K <interface> tso off 92 To enable TSO:: 94 ethtool -K <interface> tso on 96 To view the status of TSO::
|
/linux-6.12.1/Documentation/networking/device_drivers/ethernet/neterion/ |
D | s2io.rst | 22 such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on. 59 and receive, TSO. 160 c. Turn on TSO(using "ethtool -K"):: 162 # ethtool -K <ethX> tso on
|
/linux-6.12.1/drivers/net/ethernet/sun/ |
D | sunvnet_common.h | 16 #define VNET_MINTSO 2048 /* VIO protocol's minimum TSO len */ 17 #define VNET_MAXTSO 65535 /* VIO protocol's maximum TSO len */ 66 unsigned tso:1; member
|
/linux-6.12.1/drivers/net/ethernet/myricom/myri10ge/ |
D | myri10ge_mcp.h | 282 /* Return data = the max. size of the entire headers of a IPv6 TSO packet. 283 * If the header size of a IPv6 TSO packet is larger than the specified 284 * value, then the driver must not use TSO. 285 * This size restriction only applies to IPv6 TSO. 286 * For IPv4 TSO, the maximum size of the headers is fixed, and the NIC 291 /* data0 = TSO mode.
|
/linux-6.12.1/drivers/net/ethernet/cavium/thunder/ |
D | nicvf_queues.c | 12 #include <net/tso.h> 542 /* Preallocate memory for TSO segment's header */ in nicvf_init_snd_queue() 605 /* Check for dummy descriptor used for HW TSO offload on 88xx */ in nicvf_free_snd_queue() 607 /* Get actual TSO descriptors and unmap them */ in nicvf_free_snd_queue() 1215 /* Inform HW to xmit all TSO segments */ in nicvf_xdp_sq_doorbell() 1258 * segments of this TSO packet. 1316 /* Dummy descriptors to get TSO pkt completion notification */ in nicvf_sq_subdesc_required() 1347 /* post_cqe = 0, to avoid HW posting a CQE for every TSO in nicvf_sq_add_hdr_subdesc() 1384 hdr->tso = 1; in nicvf_sq_add_hdr_subdesc() 1398 /* Tx timestamping not supported along with TSO, so ignore request */ in nicvf_sq_add_hdr_subdesc() [all …]
|
/linux-6.12.1/tools/include/uapi/linux/ |
D | if_tun.h | 87 #define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */ 88 #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ 89 #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
|
/linux-6.12.1/include/uapi/linux/ |
D | if_tun.h | 89 #define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */ 90 #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ 91 #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
|
/linux-6.12.1/drivers/net/ethernet/netronome/nfp/nfd3/ |
D | nfd3.h | 62 * Will be 1 for all non-TSO packets. 66 * on the head's buffer). Equal to skb->len for non-TSO packets.
|
/linux-6.12.1/drivers/net/ethernet/netronome/nfp/nfdk/ |
D | nfdk.h | 60 __le16 lso_meta_res; /* Rsvd bits in TSO metadata */ 101 /* TSO (optional) */
|
/linux-6.12.1/drivers/net/ethernet/intel/ixgbe/ |
D | ixgbe_dcb.h | 142 #define DCB_MAX_TSO_SIZE (32*1024) /* MAX TSO packet size supported in DCB mode */ 143 #define MINIMUM_CREDIT_FOR_TSO (DCB_MAX_TSO_SIZE/64 + 1) /* 513 for 32KB TSO packet */
|
/linux-6.12.1/drivers/net/ethernet/synopsys/ |
D | dwc-xlgmac-desc.c | 507 unsigned int tso, vlan; in xlgmac_map_tx_skb() local 519 tso = XLGMAC_GET_REG_BITS(pkt_info->attributes, in xlgmac_map_tx_skb() 527 if ((tso && (pkt_info->mss != ring->tx.cur_mss)) || in xlgmac_map_tx_skb() 532 if (tso) { in xlgmac_map_tx_skb() 533 /* Map the TSO header */ in xlgmac_map_tx_skb()
|
/linux-6.12.1/drivers/net/ethernet/cisco/enic/ |
D | enic.h | 135 u64 tso; /* non-encap tso pkt */ member 136 u64 encap_tso; /* encap tso pkt */
|