examples/tep_term: fix L4 length
authorMichael Qiu <qiudayu@chinac.com>
Tue, 18 Oct 2016 05:49:06 +0000 (13:49 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 25 Oct 2016 15:50:34 +0000 (17:50 +0200)
l4_len is not fixed, althrough mostly it is a fixed value,
but when guest using iperf to do some tests, the l4_len
will have another 12 bytes optional fields.

Fixes: 2bb43bd4350a ("examples/tep_term: add TSO offload configuration")

Signed-off-by: Michael Qiu <qiudayu@chinac.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
examples/tep_termination/vxlan.c

index 155415c..109e93a 100644 (file)
@@ -148,7 +148,7 @@ process_inner_cksums(struct ether_hdr *eth_hdr, union tunnel_offload_info *info)
                if (tso_segsz != 0) {
                        ol_flags |= PKT_TX_TCP_SEG;
                        info->tso_segsz = tso_segsz;
-                       info->l4_len = sizeof(struct tcp_hdr);
+                       info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
                }
                ol_flags |= PKT_TX_TCP_CKSUM;
                tcp_hdr->cksum = get_psd_sum(l3_hdr, ethertype, ol_flags);