aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/xen
diff options
context:
space:
mode:
authorRoger Pau Monné <royger@FreeBSD.org>2016-06-02 11:12:11 +0000
committerRoger Pau Monné <royger@FreeBSD.org>2016-06-02 11:12:11 +0000
commitd9a66b6ded4fce6e364be420318ef45bf7e84c27 (patch)
tree79280871bcee42770baa8cea93e2e53b4461dd77 /sys/dev/xen
parent7b1d3a09e3629b4a8432766fe2ac0a910e563d6b (diff)
Notes
Diffstat (limited to 'sys/dev/xen')
-rw-r--r--sys/dev/xen/netfront/netfront.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/xen/netfront/netfront.c b/sys/dev/xen/netfront/netfront.c
index 356445c9ba1f..2576668449dd 100644
--- a/sys/dev/xen/netfront/netfront.c
+++ b/sys/dev/xen/netfront/netfront.c
@@ -1253,6 +1253,13 @@ xn_rxeof(struct netfront_rxq *rxq)
| CSUM_PSEUDO_HDR);
m->m_pkthdr.csum_data = 0xffff;
}
+ if ((rx->flags & NETRXF_extra_info) != 0 &&
+ (extras[XEN_NETIF_EXTRA_TYPE_GSO - 1].type ==
+ XEN_NETIF_EXTRA_TYPE_GSO)) {
+ m->m_pkthdr.tso_segsz =
+ extras[XEN_NETIF_EXTRA_TYPE_GSO - 1].u.gso.size;
+ m->m_pkthdr.csum_flags |= CSUM_TSO;
+ }
rxq->stats.rx_packets++;
rxq->stats.rx_bytes += m->m_pkthdr.len;