diff options
author | Paul Durrant <Paul.Durrant@citrix.com> | 2013-10-16 12:50:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-17 15:35:17 -0400 |
commit | 82cada22a0bbec6a7afb573ef5fb6c512aaa2739 (patch) | |
tree | 509d5a4bea1dc636885572a4c5d85e9e7bbce32b /drivers/net/xen-netback/common.h | |
parent | a94685876859be30446357db6d6c4a9c951305b4 (diff) |
xen-netback: enable IPv6 TCP GSO to the guest
This patch adds code to handle SKB_GSO_TCPV6 skbs and construct appropriate
extra or prefix segments to pass the large packet to the frontend. New
xenstore flags, feature-gso-tcpv6 and feature-gso-tcpv6-prefix, are sampled
to determine if the frontend is capable of handling such packets.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback/common.h')
-rw-r--r-- | drivers/net/xen-netback/common.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h index b4a9a3c844b2..55b8dec86233 100644 --- a/drivers/net/xen-netback/common.h +++ b/drivers/net/xen-netback/common.h | |||
@@ -87,9 +87,13 @@ struct pending_tx_info { | |||
87 | struct xenvif_rx_meta { | 87 | struct xenvif_rx_meta { |
88 | int id; | 88 | int id; |
89 | int size; | 89 | int size; |
90 | int gso_type; | ||
90 | int gso_size; | 91 | int gso_size; |
91 | }; | 92 | }; |
92 | 93 | ||
94 | #define GSO_BIT(type) \ | ||
95 | (1 << XEN_NETIF_GSO_TYPE_ ## type) | ||
96 | |||
93 | /* Discriminate from any valid pending_idx value. */ | 97 | /* Discriminate from any valid pending_idx value. */ |
94 | #define INVALID_PENDING_IDX 0xFFFF | 98 | #define INVALID_PENDING_IDX 0xFFFF |
95 | 99 | ||
@@ -150,9 +154,10 @@ struct xenvif { | |||
150 | u8 fe_dev_addr[6]; | 154 | u8 fe_dev_addr[6]; |
151 | 155 | ||
152 | /* Frontend feature information. */ | 156 | /* Frontend feature information. */ |
157 | int gso_mask; | ||
158 | int gso_prefix_mask; | ||
159 | |||
153 | u8 can_sg:1; | 160 | u8 can_sg:1; |
154 | u8 gso:1; | ||
155 | u8 gso_prefix:1; | ||
156 | u8 ip_csum:1; | 161 | u8 ip_csum:1; |
157 | u8 ipv6_csum:1; | 162 | u8 ipv6_csum:1; |
158 | 163 | ||