#. Currently, the GSO library supports the following IPv4 packet types:
- TCP
+ - UDP
- VxLAN
- GRE
TCP/IPv4 GSO supports segmentation of suitably large TCP/IPv4 packets, which
may also contain an optional VLAN tag.
+UDP/IPv4 GSO
+~~~~~~~~~~~~
+UDP/IPv4 GSO supports segmentation of suitably large UDP/IPv4 packets, which
+may also contain an optional VLAN tag. UDP GSO is the same as IP fragmentation.
+Specifically, UDP GSO treats the UDP header as a part of the payload and
+does not modify it during segmentation. Therefore, after UDP GSO, only the
+first output packet has the original UDP header, and others just have l2
+and l3 headers.
+
VxLAN GSO
~~~~~~~~~
VxLAN packets GSO supports segmentation of suitably large VxLAN packets,
2. Set the appropriate ol_flags in the mbuf.
- The GSO library use the value of an mbuf's ``ol_flags`` attribute to
- to determine how a packet should be segmented. It is the application's
+ determine how a packet should be segmented. It is the application's
responsibility to ensure that these flags are set.
- For example, in order to segment TCP/IPv4 packets, the application should
For tunneled packets, the outer IPv4 headers' checksums should also be
updated. Alternatively, the application may offload checksum calculation
to HW.
-