/Linux-v5.10/net/core/ |
D | tso.c | 5 #include <net/tso.h> 16 void tso_build_hdr(const struct sk_buff *skb, char *hdr, struct tso_t *tso, in tso_build_hdr() argument 19 int hdr_len = skb_transport_offset(skb) + tso->tlen; in tso_build_hdr() 23 if (!tso->ipv6) { in tso_build_hdr() 26 iph->id = htons(tso->ip_id); in tso_build_hdr() 28 tso->ip_id++; in tso_build_hdr() 32 iph->payload_len = htons(size + tso->tlen); in tso_build_hdr() 35 if (tso->tlen != sizeof(struct udphdr)) { in tso_build_hdr() 38 put_unaligned_be32(tso->tcp_seq, &tcph->seq); in tso_build_hdr() 54 void tso_build_data(const struct sk_buff *skb, struct tso_t *tso, int size) in tso_build_data() argument [all …]
|
/Linux-v5.10/arch/powerpc/kernel/ptrace/ |
D | ptrace-view.c | 354 BUILD_BUG_ON(TSO(ebbrr) + sizeof(unsigned long) != TSO(ebbhr)); in ebb_get() 355 BUILD_BUG_ON(TSO(ebbhr) + sizeof(unsigned long) != TSO(bescr)); in ebb_get() 373 BUILD_BUG_ON(TSO(ebbrr) + sizeof(unsigned long) != TSO(ebbhr)); in ebb_set() 374 BUILD_BUG_ON(TSO(ebbhr) + sizeof(unsigned long) != TSO(bescr)); in ebb_set() 409 BUILD_BUG_ON(TSO(siar) + sizeof(unsigned long) != TSO(sdar)); in pmu_get() 410 BUILD_BUG_ON(TSO(sdar) + sizeof(unsigned long) != TSO(sier)); in pmu_get() 411 BUILD_BUG_ON(TSO(sier) + sizeof(unsigned long) != TSO(mmcr2)); in pmu_get() 412 BUILD_BUG_ON(TSO(mmcr2) + sizeof(unsigned long) != TSO(mmcr0)); in pmu_get() 427 BUILD_BUG_ON(TSO(siar) + sizeof(unsigned long) != TSO(sdar)); in pmu_set() 428 BUILD_BUG_ON(TSO(sdar) + sizeof(unsigned long) != TSO(sier)); in pmu_set() [all …]
|
D | ptrace-tm.c | 577 BUILD_BUG_ON(TSO(tm_tfhar) + sizeof(u64) != TSO(tm_texasr)); in tm_spr_get() 578 BUILD_BUG_ON(TSO(tm_texasr) + sizeof(u64) != TSO(tm_tfiar)); in tm_spr_get() 579 BUILD_BUG_ON(TSO(tm_tfiar) + sizeof(u64) != TSO(ckpt_regs)); in tm_spr_get() 622 BUILD_BUG_ON(TSO(tm_tfhar) + sizeof(u64) != TSO(tm_texasr)); in tm_spr_set() 623 BUILD_BUG_ON(TSO(tm_texasr) + sizeof(u64) != TSO(tm_tfiar)); in tm_spr_set() 624 BUILD_BUG_ON(TSO(tm_tfiar) + sizeof(u64) != TSO(ckpt_regs)); in tm_spr_set()
|
/Linux-v5.10/include/linux/ |
D | netdev_features.h | 41 NETIF_F_GSO_GRE_BIT, /* ... GRE with TSO */ 42 NETIF_F_GSO_GRE_CSUM_BIT, /* ... GRE with csum with TSO */ 43 NETIF_F_GSO_IPXIP4_BIT, /* ... IP4 or IP6 over IP4 with TSO */ 44 NETIF_F_GSO_IPXIP6_BIT, /* ... IP4 or IP6 over IP6 with TSO */ 45 NETIF_F_GSO_UDP_TUNNEL_BIT, /* ... UDP TUNNEL with TSO */ 46 NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT,/* ... UDP TUNNEL with TSO & CSUM */ 51 NETIF_F_GSO_TUNNEL_REMCSUM_BIT, /* ... TUNNEL with TSO & REMCSUM */ 53 NETIF_F_GSO_ESP_BIT, /* ... ESP with TSO */ 129 #define NETIF_F_TSO __NETIF_F(TSO)
|
/Linux-v5.10/include/net/ |
D | tso.h | 20 void tso_build_hdr(const struct sk_buff *skb, char *hdr, struct tso_t *tso, 22 void tso_build_data(const struct sk_buff *skb, struct tso_t *tso, int size); 23 int tso_start(struct sk_buff *skb, struct tso_t *tso);
|
/Linux-v5.10/drivers/net/ethernet/google/gve/ |
D | gve_desc.h | 36 u8 l3_offset; /* TSO: 2 byte units to start of IPH */ 38 __be16 mss; /* TSO MSS */ 45 #define GVE_TXD_TSO (0x1 << 4) /* TSO with Host Address */ 52 /* GVE Transmit Descriptor Flags for TSO Segs */ 53 #define GVE_TXSF_IPV6 BIT(1) /* IPv6 TSO */
|
/Linux-v5.10/scripts/gcc-plugins/ |
D | arm_ssp_per_task_plugin.c | 75 int tso = 0; in plugin_init() local 94 if (!strcmp(argv[i].key, "tso")) { in plugin_init() 95 tso = atoi(argv[i].value); in plugin_init() 109 sp_mask = ~((1U << (12 + tso)) - 1); in plugin_init()
|
/Linux-v5.10/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 | 71 WARN_ONCE(1, "MSS of %u is too small for TSO\n", mss); in ef100_tx_can_tso() 92 /* Reserve an empty buffer for the TSO V3 descriptor. in ef100_tx_can_tso() 217 /* We use 1 for the TSO descriptor and 1 for the header */ in ef100_make_tso_desc() 278 /* TX TSO descriptor */ in ef100_tx_make_descriptors() 353 segments = 0; /* Don't use TSO/GSO for a single segment. */ in ef100_enqueue_skb()
|
/Linux-v5.10/drivers/net/ethernet/marvell/octeontx2/nic/ |
D | otx2_txrx.c | 13 #include <net/tso.h> 522 * sending TSO segment, hence set payload length in otx2_sqe_add_ext() 608 /* In case of TSO, HW needs this to be explicitly set. in otx2_sqe_add_hdr() 714 struct tso_t tso; in otx2_sq_append_tso() local 716 hdr_len = tso_start(skb, &tso); in otx2_sq_append_tso() 719 * It's done here to avoid mapping for every TSO segment's packet. in otx2_sq_append_tso() 741 /* Add TSO segment's pkt header */ in otx2_sq_append_tso() 743 tso_build_hdr(skb, hdr, &tso, seg_len, tcp_data == 0); in otx2_sq_append_tso() 749 /* Add TSO segment's payload data fragments */ in otx2_sq_append_tso() 754 size = min_t(int, tso.size, seg_len); in otx2_sq_append_tso() [all …]
|
/Linux-v5.10/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-v5.10/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-v5.10/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
|
D | vxge.rst | 30 priority allocation and guarantees, GRO, TSO, interrupt moderation etc are 55 - TCP Segmentation Offload (TSO) on transmit path
|
/Linux-v5.10/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-v5.10/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-v5.10/drivers/net/ethernet/cavium/thunder/ |
D | nicvf_queues.c | 12 #include <net/tso.h> 541 /* Preallocate memory for TSO segment's header */ in nicvf_init_snd_queue() 604 /* Check for dummy descriptor used for HW TSO offload on 88xx */ in nicvf_free_snd_queue() 606 /* Get actual TSO descriptors and unmap them */ in nicvf_free_snd_queue() 1214 /* Inform HW to xmit all TSO segments */ in nicvf_xdp_sq_doorbell() 1257 * segments of this TSO packet. 1315 /* Dummy descriptors to get TSO pkt completion notification */ in nicvf_sq_subdesc_required() 1346 /* post_cqe = 0, to avoid HW posting a CQE for every TSO in nicvf_sq_add_hdr_subdesc() 1383 hdr->tso = 1; in nicvf_sq_add_hdr_subdesc() 1397 /* Tx timestamping not supported along with TSO, so ignore request */ in nicvf_sq_add_hdr_subdesc() [all …]
|
/Linux-v5.10/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-v5.10/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-v5.10/drivers/net/ethernet/stmicro/stmmac/ |
D | dwmac5.c | 44 { true, "TPES", "TSO Data Path Parity Check Error" }, 139 { true, "TCES", "DMA TSO Memory Error" }, 140 { true, "TAMS", "DMA TSO Memory Address Mismatch Error" }, 141 { true, "TUES", "DMA TSO Memory Error" }, 195 value |= TSOEE; /* TSO ECC */ in dwmac5_safety_feat_config() 212 value |= TCEIE; /* TSO Memory Correctable Error */ in dwmac5_safety_feat_config()
|
/Linux-v5.10/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-v5.10/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-v5.10/Documentation/networking/device_drivers/ethernet/stmicro/ |
D | stmmac.rst | 90 - TCP / UDP Segmentation Offload (TSO, USO) 273 TSO Support 276 TSO (TCP Segmentation Offload) feature is supported by GMAC > 4.x and XGMAC 285 When TSO is enabled, the TCP stack doesn't care about the maximum frame length 289 This feature can be enabled in device tree through ``snps,tso`` entry. 478 32) Enables TSO feature::
|
/Linux-v5.10/drivers/net/ethernet/amd/xgbe/ |
D | xgbe-desc.c | 532 unsigned int offset, tso, vlan, datalen, len; in xgbe_map_tx_skb() local 545 tso = XGMAC_GET_BITS(packet->attributes, TX_PACKET_ATTRIBUTES, in xgbe_map_tx_skb() 551 if ((tso && (packet->mss != ring->tx.cur_mss)) || in xgbe_map_tx_skb() 556 if (tso) { in xgbe_map_tx_skb() 557 /* Map the TSO header */ in xgbe_map_tx_skb()
|
/Linux-v5.10/drivers/net/wireless/intel/iwlwifi/queue/ |
D | tx.c | 51 #include <net/tso.h> 410 struct tso_t tso; in iwl_txq_gen2_build_amsdu() local 432 * Pull the ieee80211 header to be able to use TSO core, in iwl_txq_gen2_build_amsdu() 444 tso_start(skb, &tso); in iwl_txq_gen2_build_amsdu() 473 tso_build_hdr(skb, hdr_page->pos, &tso, data_left, !total_len); in iwl_txq_gen2_build_amsdu() 485 * No need for _with_wa, this is from the TSO page and in iwl_txq_gen2_build_amsdu() 502 tb_len = min_t(unsigned int, tso.size, data_left); in iwl_txq_gen2_build_amsdu() 503 tb_phys = dma_map_single(trans->dev, tso.data, in iwl_txq_gen2_build_amsdu() 506 tb_phys, tso.data, in iwl_txq_gen2_build_amsdu() 514 tso_build_data(skb, &tso, tb_len); in iwl_txq_gen2_build_amsdu()
|