/linux/net/core/ |
H A 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/include/linux/ |
H A 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 */ 56 NETIF_F_GSO_ACCECN_BIT, /* TCP AccECN w/ TSO (no clear CWR) */ 132 #define NETIF_F_TSO __NETIF_F(TSO)
|
/linux/arch/powerpc/kernel/ptrace/ |
H A 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 …]
|
H A 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/include/net/ |
H A 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/include/uapi/linux/ |
H A 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. */ 96 /* I can handle TSO/USO for UDP tunneled packets */ 100 * I can handle TSO/USO for UDP tunneled packets requiring csum offload for
|
/linux/drivers/net/ethernet/google/gve/ |
H A 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 */
|
H A 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/drivers/net/ethernet/sfc/ |
H A 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()
|
/linux/Documentation/networking/device_drivers/ethernet/chelsio/ |
H A 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/Documentation/networking/device_drivers/ethernet/neterion/ |
H A 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/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | otx2_txrx.c | 10 #include <net/tso.h> 724 * sending TSO segment, hence set payload length in otx2_sqe_add_ext() 830 /* In case of TSO, HW needs this to be explicitly set. in otx2_sqe_add_hdr() 936 struct tso_t tso; in otx2_sq_append_tso() local 938 hdr_len = tso_start(skb, &tso); in otx2_sq_append_tso() 941 * It's done here to avoid mapping for every TSO segment's packet. in otx2_sq_append_tso() 963 /* Add TSO segment's pkt header */ in otx2_sq_append_tso() 965 tso_build_hdr(skb, hdr, &tso, seg_len, tcp_data == 0); in otx2_sq_append_tso() 971 /* Add TSO segment's payload data fragments */ in otx2_sq_append_tso() 976 size = min_t(int, tso.size, seg_len); in otx2_sq_append_tso() [all …]
|
/linux/drivers/net/ethernet/myricom/myri10ge/ |
H A 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/drivers/net/ethernet/sun/ |
H A 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
|
H A D | sunvnet_common.c | 111 if (vio_version_after_eq(vio, 1, 7) && port->tso) { in sunvnet_send_attr_common() 174 port->tso &= !!(pkt->cflags & VNET_LSO_IPV4_CAPAB); in handle_attr_info() 176 port->tso = false; in handle_attr_info() 177 if (port->tso) { in handle_attr_info() 182 port->tso = false; in handle_attr_info() 384 if (port->tso && port->tsolen > port->rmtu) in vnet_rx_one() 1254 if (port->tso && gso_size < datalen) in vnet_handle_offloads() 1270 if (port->tso && gso_size < datalen) { in vnet_handle_offloads() 1274 /* segment to TSO size */ in vnet_handle_offloads() 1288 if (port->tso && curr->len > dev->mtu) { in vnet_handle_offloads() [all …]
|
/linux/tools/include/uapi/linux/ |
H A 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/tools/testing/selftests/net/ |
H A 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/drivers/net/ethernet/stmicro/stmmac/ |
H A 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" }, 212 value |= TSOEE; /* TSO ECC */ in dwmac5_safety_feat_config() 233 value |= TCEIE; /* TSO Memory Correctable Error */ in dwmac5_safety_feat_config()
|
/linux/drivers/net/ethernet/amd/xgbe/ |
H A D | xgbe-desc.c | 428 unsigned int offset, tso, vlan, datalen, len; in xgbe_map_tx_skb() local 441 tso = XGMAC_GET_BITS(packet->attributes, TX_PACKET_ATTRIBUTES, in xgbe_map_tx_skb() 447 if ((tso && (packet->mss != ring->tx.cur_mss)) || in xgbe_map_tx_skb() 452 if (tso) { in xgbe_map_tx_skb() 453 /* Map the TSO header */ in xgbe_map_tx_skb()
|
/linux/drivers/net/ethernet/netronome/nfp/nfd3/ |
H A 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/drivers/net/ethernet/netronome/nfp/nfdk/ |
H A D | nfdk.h | 60 __le16 lso_meta_res; /* Rsvd bits in TSO metadata */ 101 /* TSO (optional) */
|
/linux/drivers/net/ethernet/synopsys/ |
H A 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/drivers/net/ethernet/intel/ixgbe/ |
H A 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/Documentation/networking/device_drivers/ethernet/stmicro/ |
H A 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/drivers/net/ethernet/intel/idpf/ |
H A D | idpf_singleq_txrx.c | 51 * case of TSO. in idpf_tx_singleq_csum() 126 * header checksum in the case of TSO. in idpf_tx_singleq_csum() 218 /* If we failed a DMA mapping for a TSO packet, we will have in idpf_tx_singleq_dma_map_error() 418 int csum, tso, needed; in idpf_tx_singleq_frame() local 444 tso = idpf_tso(skb, &offload); in idpf_tx_singleq_frame() 445 if (tso < 0) in idpf_tx_singleq_frame() 452 if (tso || offload.cd_tunneling) in idpf_tx_singleq_frame() 459 if (tso) { in idpf_tx_singleq_frame()
|