/linux-4.1.27/drivers/net/ |
H A D | tun.c | 1038 struct virtio_net_hdr gso = { 0 }; tun_get_user() local 1061 n = copy_from_iter(&gso, sizeof(gso), from); tun_get_user() 1062 if (n != sizeof(gso)) tun_get_user() 1065 if ((gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && tun_get_user() 1066 tun16_to_cpu(tun, gso.csum_start) + tun16_to_cpu(tun, gso.csum_offset) + 2 > tun16_to_cpu(tun, gso.hdr_len)) tun_get_user() 1067 gso.hdr_len = cpu_to_tun16(tun, tun16_to_cpu(tun, gso.csum_start) + tun16_to_cpu(tun, gso.csum_offset) + 2); tun_get_user() 1069 if (tun16_to_cpu(tun, gso.hdr_len) > len) tun_get_user() 1071 iov_iter_advance(from, tun->vnet_hdr_sz - sizeof(gso)); tun_get_user() 1077 (gso.hdr_len && tun16_to_cpu(tun, gso.hdr_len) < ETH_HLEN))) tun_get_user() 1090 copylen = gso.hdr_len ? tun16_to_cpu(tun, gso.hdr_len) : GOODCOPY_LEN; tun_get_user() 1101 if (tun16_to_cpu(tun, gso.hdr_len) > good_linear) tun_get_user() 1104 linear = tun16_to_cpu(tun, gso.hdr_len); tun_get_user() 1130 if (gso.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) { tun_get_user() 1131 if (!skb_partial_csum_set(skb, tun16_to_cpu(tun, gso.csum_start), tun_get_user() 1132 tun16_to_cpu(tun, gso.csum_offset))) { tun_get_user() 1165 if (gso.gso_type != VIRTIO_NET_HDR_GSO_NONE) { tun_get_user() 1167 switch (gso.gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { tun_get_user() 1183 if (gso.gso_type & VIRTIO_NET_HDR_GSO_ECN) tun_get_user() 1186 skb_shinfo(skb)->gso_size = tun16_to_cpu(tun, gso.gso_size); tun_get_user() 1269 struct virtio_net_hdr gso = { 0 }; /* no info leak */ tun_put_user() local 1277 gso.hdr_len = cpu_to_tun16(tun, skb_headlen(skb)); tun_put_user() 1278 gso.gso_size = cpu_to_tun16(tun, sinfo->gso_size); tun_put_user() 1280 gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV4; tun_put_user() 1282 gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV6; tun_put_user() 1284 gso.gso_type = VIRTIO_NET_HDR_GSO_UDP; tun_put_user() 1288 sinfo->gso_type, tun16_to_cpu(tun, gso.gso_size), tun_put_user() 1289 tun16_to_cpu(tun, gso.hdr_len)); tun_put_user() 1293 min((int)tun16_to_cpu(tun, gso.hdr_len), 64), true); tun_put_user() 1298 gso.gso_type |= VIRTIO_NET_HDR_GSO_ECN; tun_put_user() 1300 gso.gso_type = VIRTIO_NET_HDR_GSO_NONE; tun_put_user() 1303 gso.flags = VIRTIO_NET_HDR_F_NEEDS_CSUM; tun_put_user() 1304 gso.csum_start = cpu_to_tun16(tun, skb_checksum_start_offset(skb) + tun_put_user() 1306 gso.csum_offset = cpu_to_tun16(tun, skb->csum_offset); tun_put_user() 1308 gso.flags = VIRTIO_NET_HDR_F_DATA_VALID; tun_put_user() 1311 if (copy_to_iter(&gso, sizeof(gso), iter) != sizeof(gso)) tun_put_user() 1314 iov_iter_advance(iter, vnet_hdr_sz - sizeof(gso)); tun_put_user()
|
H A D | xen-netfront.c | 584 struct xen_netif_extra_info *gso; xennet_start_xmit() local 586 gso = (struct xen_netif_extra_info *) xennet_start_xmit() 591 gso->u.gso.size = skb_shinfo(skb)->gso_size; xennet_start_xmit() 592 gso->u.gso.type = (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) ? xennet_start_xmit() 595 gso->u.gso.pad = 0; xennet_start_xmit() 596 gso->u.gso.features = 0; xennet_start_xmit() 598 gso->type = XEN_NETIF_EXTRA_TYPE_GSO; xennet_start_xmit() 599 gso->flags = 0; xennet_start_xmit() 793 struct xen_netif_extra_info *gso) xennet_set_skb_gso() 795 if (!gso->u.gso.size) { xennet_set_skb_gso() 801 if (gso->u.gso.type != XEN_NETIF_GSO_TYPE_TCPV4 && xennet_set_skb_gso() 802 gso->u.gso.type != XEN_NETIF_GSO_TYPE_TCPV6) { xennet_set_skb_gso() 804 pr_warn("Bad GSO type %d\n", gso->u.gso.type); xennet_set_skb_gso() 808 skb_shinfo(skb)->gso_size = gso->u.gso.size; xennet_set_skb_gso() 810 (gso->u.gso.type == XEN_NETIF_GSO_TYPE_TCPV4) ? xennet_set_skb_gso() 956 struct xen_netif_extra_info *gso; xennet_poll() local 957 gso = &extras[XEN_NETIF_EXTRA_TYPE_GSO - 1]; xennet_poll() 959 if (unlikely(xennet_set_skb_gso(skb, gso))) { xennet_poll() 1137 "feature-gso-tcpv4", "%d", &val) < 0) xennet_fix_features() 1146 "feature-gso-tcpv6", "%d", &val) < 0) xennet_fix_features() 1868 err = xenbus_printf(xbt, dev->nodename, "feature-gso-tcpv4", "%d", 1); talk_to_netback() 1870 message = "writing feature-gso-tcpv4"; talk_to_netback() 1874 err = xenbus_write(xbt, dev->nodename, "feature-gso-tcpv6", "1"); talk_to_netback() 1876 message = "writing feature-gso-tcpv6"; talk_to_netback() 792 xennet_set_skb_gso(struct sk_buff *skb, struct xen_netif_extra_info *gso) xennet_set_skb_gso() argument
|
H A D | virtio_net.c | 35 static bool csum = true, gso = true; variable 37 module_param(gso, bool, 0444); 499 net_warn_ratelimited("%s: bad gso type %u.\n", receive_buf() 510 net_warn_ratelimited("%s: zero gso size.\n", dev->name); receive_buf() 1779 if (gso) virtnet_probe() 1781 /* (!csum && gso) case will be fixed by register_netdev() */ virtnet_probe()
|
/linux-4.1.27/drivers/net/xen-netback/ |
H A D | netback.c | 582 struct xen_netif_extra_info *gso = xenvif_rx_action() local 589 gso->u.gso.type = queue->meta[npo.meta_cons].gso_type; xenvif_rx_action() 590 gso->u.gso.size = queue->meta[npo.meta_cons].gso_size; xenvif_rx_action() 591 gso->u.gso.pad = 0; xenvif_rx_action() 592 gso->u.gso.features = 0; xenvif_rx_action() 594 gso->type = XEN_NETIF_EXTRA_TYPE_GSO; xenvif_rx_action() 595 gso->flags = 0; xenvif_rx_action() 1099 struct xen_netif_extra_info *gso) xenvif_set_skb_gso() 1101 if (!gso->u.gso.size) { xenvif_set_skb_gso() 1107 switch (gso->u.gso.type) { xenvif_set_skb_gso() 1115 netdev_err(vif->dev, "Bad GSO type %d.\n", gso->u.gso.type); xenvif_set_skb_gso() 1120 skb_shinfo(skb)->gso_size = gso->u.gso.size; xenvif_set_skb_gso() 1274 struct xen_netif_extra_info *gso; xenvif_tx_build_gops() local 1275 gso = &extras[XEN_NETIF_EXTRA_TYPE_GSO - 1]; xenvif_tx_build_gops() 1277 if (xenvif_set_skb_gso(queue->vif, skb, gso)) { xenvif_tx_build_gops() 1097 xenvif_set_skb_gso(struct xenvif *vif, struct sk_buff *skb, struct xen_netif_extra_info *gso) xenvif_set_skb_gso() argument
|
H A D | xenbus.c | 288 err = xenbus_printf(xbt, dev->nodename, "feature-gso-tcpv4", netback_probe() 291 message = "writing feature-gso-tcpv4"; netback_probe() 295 err = xenbus_printf(xbt, dev->nodename, "feature-gso-tcpv6", netback_probe() 298 message = "writing feature-gso-tcpv6"; netback_probe() 977 if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv4", read_xenbus_vif_flags() 983 if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv4-prefix", read_xenbus_vif_flags() 989 if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv6", read_xenbus_vif_flags() 995 if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv6-prefix", read_xenbus_vif_flags() 1003 "%s: gso and gso prefix flags are not " read_xenbus_vif_flags()
|
/linux-4.1.27/include/xen/interface/io/ |
H A D | netif.h | 114 * "feature-gso-tcpv4" and "feature-gso-tcpv6" advertise the capability to 158 #define XEN_NETIF_EXTRA_TYPE_GSO (1) /* u.gso */ 202 } gso; member in union:xen_netif_extra_info::__anon13912
|
/linux-4.1.27/net/ipv4/ |
H A D | ip_tunnel_core.c | 140 /* If packet is not gso and we are resolving any partial checksum, iptunnel_handle_offloads()
|
/linux-4.1.27/drivers/net/ethernet/emulex/benet/ |
H A D | be_hw.h | 219 u8 gso[2]; member in struct:amap_eth_hdr_wrb
|
/linux-4.1.27/drivers/net/ethernet/intel/i40e/ |
H A D | i40e_fcoe.c | 1213 /* must match gso type as FCoE */ i40e_fcoe_tso() 1217 /* is it the expected gso type for FCoE ?*/ i40e_fcoe_tso() 1220 "wrong gso type %d:expecting SKB_GSO_FCOE\n", i40e_fcoe_tso()
|
/linux-4.1.27/net/sched/ |
H A D | sch_tbf.c | 146 * Return length of individual segments of a gso packet,
|
/linux-4.1.27/drivers/net/ethernet/intel/ixgbe/ |
H A D | ixgbe_fcoe.c | 523 dev_err(tx_ring->dev, "Wrong gso type %d:expecting SKB_GSO_FCOE\n", ixgbe_fso()
|
H A D | ixgbe_main.c | 6825 /* update gso size and bytecount with header size */ ixgbe_tso()
|
/linux-4.1.27/drivers/net/ethernet/mellanox/mlx4/ |
H A D | en_tx.c | 555 * Note that caller already checked skb was not a gso packet
|
/linux-4.1.27/net/core/ |
H A D | ethtool.c | 80 [NETIF_F_GSO_ROBUST_BIT] = "tx-gso-robust",
|
H A D | skbuff.c | 4168 * skb_gso_transport_seglen - Return length of individual segments of a gso packet
|
H A D | dev.c | 2414 /* Tunnel gso handlers can set protocol to ethernet. */ skb_network_protocol()
|
/linux-4.1.27/drivers/net/ethernet/intel/fm10k/ |
H A D | fm10k_main.c | 821 /* update gso size and bytecount with header size */ fm10k_tso()
|
/linux-4.1.27/include/linux/ |
H A D | skbuff.h | 3348 /* Compute the checksum for a gso segment. First compute the checksum value 3442 * skb_gso_network_seglen - Return length of individual segments of a gso packet
|
/linux-4.1.27/drivers/net/ethernet/tehuti/ |
H A D | tehuti.c | 1649 DBG("skb %p skb len %d gso size = %d\n", skb, skb->len, bdx_tx_transmit()
|
/linux-4.1.27/drivers/net/ethernet/broadcom/bnx2x/ |
H A D | bnx2x_cmn.c | 3781 "queue[%d]: SKB: summed %x protocol %x protocol(%x,%x) gso type %x xmit_type %x len %d\n", bnx2x_start_xmit()
|
/linux-4.1.27/drivers/net/ethernet/intel/igb/ |
H A D | igb_main.c | 4694 /* update gso size and bytecount with header size */ igb_tso()
|