[ovs-dev] Test result. RE: [patch v1] conntrack-tcp: Handle tcp session reuse.

Message ID E19C1D5C27651949A30F5DDE5DDC479FC6B7F42F@dggeml511-mbx.china.huawei.com
State Not Applicable
Headers show
Series
  • [ovs-dev] Test result. RE: [patch v1] conntrack-tcp: Handle tcp session reuse.
Related show

Commit Message

Yangxiaoliang (Neo) March 7, 2018, 1:23 a.m.
Hi Darrell,

I have tested VM migration with this patch for several times. And this patch can avoid stopping the TCP stream, but the issue is that the TCP stream will suspend for  a big number of seconds after migration ( for example, more than 100 seconds on 8Gbps).  

I think users will not be satisfied this issue. Can we enlarge the range that is saved by sequence tracking to be more permissive to decrease the time. Or maybe in the future we will solve this issue completely, for now it's not recommended to migrate VM with a big network throughput. Or any other idea ?

Thanks.

-----Original Message-----
From: ovs-dev-bounces@openvswitch.org [mailto:ovs-dev-bounces@openvswitch.org] On Behalf Of Darrell Ball
Sent: Thursday, March 01, 2018 3:26 PM
To: dlu998@gmail.com; dev@openvswitch.org
Subject: [ovs-dev] [patch v1] conntrack-tcp: Handle tcp session reuse.

Fix tcp sequence tracking for session reuse cases.  This can happen, for example by doing VM migration, where sequence tracking needs to be more permissive.  The solution is to be more permissive for session restart and session start only.  We don't differentiate session start here where we could be more strict, although we could, because the gain in protection is almost zero and the code modularity would be lessened and code complexity increased.
This issue originates in release 2.7.

Signed-off-by: Darrell Ball <dlu998@gmail.com>
---
 lib/conntrack-tcp.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

--
1.9.1

Comments

Darrell Ball March 9, 2018, 10 p.m. | #1
On Tue, Mar 6, 2018 at 5:23 PM, Yangxiaoliang (Neo) <
david.yangxiaoliang@huawei.com> wrote:

> Hi Darrell,
>
> I have tested VM migration with this patch for several times. And this
> patch can avoid stopping the TCP stream,


Thanks for testing and reporting Neo



> but the issue is that the TCP stream will suspend for  a big number of
> seconds after migration ( for example, more than 100 seconds on 8Gbps). I
> think users will not be satisfied this issue.


Thanks, could you please report:
1/ How you carry out the migration ?
2/ The packets and their timing seen coming the endpoints; the rst packets
are of particular interest.



>
> Can we enlarge the range that is saved by sequence tracking to be more
> permissive to decrease the time.


The problem with enlarging the range is the common case becomes too
permissive and we loose the benefit of sequence tracking.



> Or maybe in the future we will solve this issue completely, for now it's
> not recommended to migrate VM with a big network throughput. Or any other
> idea ?


> Thanks.
>
> -----Original Message-----
> From: ovs-dev-bounces@openvswitch.org [mailto:ovs-dev-bounces@
> openvswitch.org] On Behalf Of Darrell Ball
> Sent: Thursday, March 01, 2018 3:26 PM
> To: dlu998@gmail.com; dev@openvswitch.org
> Subject: [ovs-dev] [patch v1] conntrack-tcp: Handle tcp session reuse.
>
> Fix tcp sequence tracking for session reuse cases.  This can happen, for
> example by doing VM migration, where sequence tracking needs to be more
> permissive.  The solution is to be more permissive for session restart and
> session start only.  We don't differentiate session start here where we
> could be more strict, although we could, because the gain in protection is
> almost zero and the code modularity would be lessened and code complexity
> increased.
> This issue originates in release 2.7.
>
> Signed-off-by: Darrell Ball <dlu998@gmail.com>
> ---
>  lib/conntrack-tcp.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c index
> 04460c3..a0ddd65 100644
> --- a/lib/conntrack-tcp.c
> +++ b/lib/conntrack-tcp.c
> @@ -160,7 +160,6 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>      uint16_t win = ntohs(tcp->tcp_winsz);
>      uint32_t ack, end, seq, orig_seq;
>      uint32_t p_len = tcp_payload_length(pkt);
> -    int ackskew;
>
>      if (tcp_invalid_flags(tcp_flags)) {
>          return CT_UPDATE_INVALID;
> @@ -195,11 +194,11 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>       */
>
>      orig_seq = seq = ntohl(get_16aligned_be32(&tcp->tcp_seq));
> +    bool check_ackskew = true;
>      if (src->state < CT_DPIF_TCPS_SYN_SENT) {
>          /* First packet from this end. Set its state */
>
>          ack = ntohl(get_16aligned_be32(&tcp->tcp_ack));
> -
>          end = seq + p_len;
>          if (tcp_flags & TCP_SYN) {
>              end++;
> @@ -232,6 +231,7 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>          if (src->seqhi == 1
>                  || SEQ_GEQ(end + MAX(1, dst->max_win << dws),
> src->seqhi)) {
>              src->seqhi = end + MAX(1, dst->max_win << dws);
> +            check_ackskew = false;
>          }
>          if (win > src->max_win) {
>              src->max_win = win;
> @@ -265,7 +265,13 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>          end = seq;
>      }
>
> -    ackskew = dst->seqlo - ack;
> +    int ackskew;
> +    if (check_ackskew) {
> +        ackskew = dst->seqlo - ack;
> +    } else {
> +        ackskew = 0;
> +    }
> +
>  #define MAXACKWINDOW (0xffff + 1500)    /* 1500 is an arbitrary fudge
> factor */
>      if (SEQ_GEQ(src->seqhi, end)
>          /* Last octet inside other's window space */
> --
> 1.9.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Yangxiaoliang (Neo) March 18, 2018, 8:30 a.m. | #2
Hi  Darrell,

Sorry for delay.

During the last week, I have tried sveral live migration script, and found that

1. sctipt1: Tcp stream will stop only 2 seconds, then the stream is ok. ( 8Gbps… 0Gbps .<- 0Gbps for 2 seconds ->….0Gbps … 8Gbps)
  #Migrate VM to the destination
  #Then flush all conntrack on the destination: ovs-appctl dpctl/flush-conntrack netdev@ovs-netdev

2. Use the original script (listed as below) to test. The TCP stream will stop for more 100 secons.

====Reply to your questions: ==
1/ How you carry out the migration ?
I have two servers (9.16.1.111 and 9.16.1.114) with centos 7.3 installed. Two VMs were running on 9.16.1.111 at the beginning.
Migrate VM1( iperf3 client) between 9.16.1.111 and 9.16.1.114.

Live migration script(This is the original script):
  // 9.16.1.111 -> 9.16.1.114
  #virsh migrate vm1 qemu+tcp://9.16.1.114/system
  // Clear conntrack entry on 111 host to prepare for next migration
  #ovs-appctl dpctl/flush-conntrack netdev@ovs-netdev zone=11 (zone 11 is configured on 9.16.1.111 for vm1: table=14,priority=6,ip actions=ct(table=16,zone=11))

  //9.16.1.114 -> 9.16.1.111
  #virsh migrate vm1 qemu+tcp://9.16.1.111/system
  #ovs-appctl dpctl/flush-conntrack netdev@ovs-netdev zone=21(zone 21 is configured on 9.16.1.114 for vm1: table=14,priority=6,ip actions=ct(table=16,zone=21))

2/ The packets and their timing seen coming the endpoints; the rst packets are of particular interest.
The packets and more information are list as below:

#### software version ####
ovs_version: "2.7.3"
libvirt 3.2.0
QEMU emulator version 2.8.1.1(25.124)
dpdk 16.11

#### ovs-ofctl show br-tap0 (9.16.1.111 has the same br-tap0 with 9.16.1.114) ####
OFPT_FEATURES_REPLY (xid=0x2): dpid:000090e2ba69cd11
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
1(hnic0): addr:e6:8d:45:ae:05:ce // connected to linux bridge(in)
     config:     0
     state:      0
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
2(hnic1): addr:b6:d1:cd:16:ad:51 // connected to linux bridge(out)
     config:     0
     state:      0
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
3(tap0): addr:a6:f7:0b:73:1a:7a
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
4(p-tap0-int): addr:5a:26:31:7b:24:1d
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
LOCAL(br-tap0): addr:90:e2:ba:69:cd:11
     config:     0
     state:      0
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

#### Linux bridge ####
bridge name     bridge id               STP enabled     interfaces
br-linux1               8000.b6d1cd16ad51       no              hnic0
                                                        hnic1

#### ovs-ofctl dump-flows br-tap0 (on host 9.16.1.111) ####
table=0,priority=2,in_port=1 actions=resubmit(,2)
table=0,priority=2,in_port=4 actions=resubmit(,2)
table=0,priority=0 actions=drop
table=0,priority=1 actions=resubmit(,10)
table=1,priority=0 actions=resubmit(,14)
table=2,priority=0 actions=resubmit(,4)
table=4,priority=0 actions=resubmit(,14)
table=10,priority=2,arp actions=resubmit(,12)
table=10,priority=1,dl_src=90:E2:BA:69:CD:11 actions=resubmit(,1)
table=10,priority=0 actions=drop
table=12,priority=3,arp,dl_src=90:E2:BA:69:CD:11,arp_spa=194.168.100.11,arp_sha=90:E2:BA:69:CD:11 actions=resubmit(,1)
table=12,priority=2,arp actions=drop
table=14,priority=10,icmp actions=resubmit(,18)
table=14,priority=6,ip actions=ct(table=16,zone=11)
table=14,priority=0 actions=resubmit(,20)
table=14,priority=20,ip,ip_frag=yes,actions=resubmit(,18)
table=16,priority=20,ct_state=+est+trk,ip actions=resubmit(,20)
table=16,priority=15,ct_state=+rel+trk,ip actions=resubmit(,20)
table=16,priority=10,ct_mark=0x80000000/0x80000000,udp actions=resubmit(,20)
table=16,priority=5,ct_state=+new+trk,ip,in_port=3 actions=resubmit(,18)
table=16,priority=5,ct_state=+new+trk,ip,in_port=4 actions=resubmit(,18)
table=16,priority=5,ct_state=+new+trk,ip,in_port=2 actions=ct(commit,zone=11,exec(load:0x1->NXM_NX_CT_MARK[31])),output:4
table=16,priority=5,ct_state=+new+trk,ip,in_port=1 actions=ct(commit,zone=11,exec(load:0x1->NXM_NX_CT_MARK[31])),output:3
table=18,priority=0,in_port=3 actions=output:1
table=18,priority=0,in_port=2 actions=output:4
table=18,priority=0,in_port=4 actions=output:2
table=18,priority=0,in_port=1 actions=output:3
table=20,priority=10,in_port=3 actions=output:4
table=20,priority=10,in_port=4 actions=output:3
table=20,priority=1 actions=resubmit(,18)

#### ovs-ofctl dump-flows br-tap0 (on host 9.16.1.114) ####
table=0,priority=2,in_port=1 actions=resubmit(,2)
table=0,priority=2,in_port=4 actions=resubmit(,2)
table=0,priority=0 actions=drop
table=0,priority=1 actions=resubmit(,10)
table=1,priority=0 actions=resubmit(,14)
table=2,priority=0 actions=resubmit(,4)
table=4,priority=0 actions=resubmit(,14)
table=10,priority=2,arp actions=resubmit(,12)
table=10,priority=1,dl_src=90:E2:BA:69:CD:12 actions=resubmit(,1)
table=10,priority=0 actions=drop
table=12,priority=3,arp,dl_src=90:E2:BA:69:CD:12,arp_spa=194.168.100.12,arp_sha=90:E2:BA:69:CD:12 actions=resubmit(,1)
table=12,priority=2,arp actions=drop
table=14,priority=10,icmp actions=resubmit(,18)
table=14,priority=6,ip actions=ct(table=16,zone=12)
table=14,priority=0 actions=resubmit(,20)
table=14,priority=20,ip,ip_frag=yes,actions=resubmit(,18)
table=16,priority=20,ct_state=+est+trk,ip actions=resubmit(,20)
table=16,priority=15,ct_state=+rel+trk,ip actions=resubmit(,20)
table=16,priority=10,ct_mark=0x80000000/0x80000000,udp actions=resubmit(,20)
table=16,priority=5,ct_state=+new+trk,ip,in_port=3 actions=resubmit(,18)
table=16,priority=5,ct_state=+new+trk,ip,in_port=4 actions=resubmit(,18)
table=16,priority=5,ct_state=+new+trk,ip,in_port=2 actions=ct(commit,zone=12,exec(load:0x1->NXM_NX_CT_MARK[31])),output:4
table=16,priority=5,ct_state=+new+trk,ip,in_port=1 actions=ct(commit,zone=12,exec(load:0x1->NXM_NX_CT_MARK[31])),output:3
table=18,priority=0,in_port=3 actions=output:1
table=18,priority=0,in_port=2 actions=output:4
table=18,priority=0,in_port=4 actions=output:2
table=18,priority=0,in_port=1 actions=output:3
table=20,priority=10,in_port=3 actions=output:4
table=20,priority=10,in_port=4 actions=output:3
table=20,priority=1 actions=resubmit(,18)

#### Packets detail ####
#### When the TCP stream is stopped, begin to capture packets. When the TCP stream is restored, then stop the capturing.
===iperf3 client VM1
21:38:39.813369 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 1167842239:1167843687, ack 506240381, win 229, options [nop,nop,TS val 20960 ecr 4294962169], length 1448
21:38:44.821345 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype ARP (0x0806), length 42: Request who-has 194.168.100.12 tell 194.168.100.11, length 28
21:38:44.821863 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype ARP (0x0806), length 42: Reply 194.168.100.12 is-at 90:e2:ba:69:cd:12, length 28
21:39:08.261354 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 0:1448, ack 1, win 229, options [nop,nop,TS val 49408 ecr 4294962169], length 1448
21:40:05.221359 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 0:1448, ack 1, win 229, options [nop,nop,TS val 106368 ecr 4294962169], length 1448
21:40:05.222262 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111445 ecr 4294959955,nop,nop,sack 1 {0:1448}], length 0
21:40:05.222315 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2689496:2692392, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222320 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2692392:2695288, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222324 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2695288:2698184, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222326 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2698184:2701080, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222329 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2701080:2703976, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222332 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2703976:2706872, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222334 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2706872:2709768, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222338 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2709768:2712664, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222340 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2712664:2715560, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222344 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2715560:2718456, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222346 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2718456:2721352, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222349 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2721352:2724248, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222351 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2724248:2727144, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222353 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2727144:2730040, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222355 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2730040:2732936, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222358 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2732936:2735832, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222360 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2735832:2738728, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222362 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2738728:2741624, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222365 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2741624:2744520, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222367 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2744520:2747416, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222370 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2747416:2750312, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222372 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2750312:2753208, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222375 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2753208:2756104, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222378 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2756104:2759000, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222383 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2759000:2761896, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222386 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2761896:2764792, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222388 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2764792:2767688, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222391 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2767688:2770584, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222393 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2770584:2773480, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.222395 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2773480:2776376, ack 1, win 229, options [nop,nop,TS val 106368 ecr 111445], length 2896
21:40:05.223147 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3474592:3477488, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223179 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3477488:3480384, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223182 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3480384:3483280, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223187 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3483280:3486176, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223190 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3486176:3489072, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223204 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3489072:3491968, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223206 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3491968:3494864, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223209 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3494864:3497760, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223212 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3497760:3500656, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223214 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3500656:3503552, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223216 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3503552:3506448, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223219 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3506448:3509344, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223221 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3509344:3512240, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223226 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3512240:3515136, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223228 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3515136:3518032, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223232 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3518032:3520928, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223234 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3520928:3523824, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223237 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3523824:3526720, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223239 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3526720:3529616, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223242 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3529616:3532512, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223244 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3532512:3535408, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223247 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3535408:3538304, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223249 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3538304:3541200, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223252 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3541200:3544096, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223253 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3544096:3546992, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223259 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3546992:3549888, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223261 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3549888:3552784, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223262 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3552784:3555680, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223264 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3555680:3558576, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223268 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3558576:3561472, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.223270 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 3561472:3564368, ack 1, win 229, options [nop,nop,TS val 106369 ecr 111445], length 2896
21:40:05.225201 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3015296}], length 0
21:40:05.225211 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3023984}], length 0
21:40:05.225215 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3031224}], length 0
21:40:05.225480 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3035568}], length 0
21:40:05.225493 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3037016}], length 0
21:40:05.225495 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3038464}], length 0
21:40:05.225497 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr 4294959955,nop,nop,sack 1 {3013848:3039912}], length 0
21:40:05.225500 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 94: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836: Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111448 ecr 4294959955,nop,nop,sack 3 {3248424:3294760}{3013848:3199192}{2689496:2782168}], length 0
21:40:05.225568 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2688048:2689496, ack 1, win 229, options [nop,nop,TS val 106372 ecr 111448], length 1448
21:40:05.225582 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2782168:2783616, ack 1, win 229, options [nop,nop,TS val 106372 ecr 111448], length 1448
21:40:05.225584 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1: Flags [.], seq 2783616:2785064, ack 1, win 229, options [nop,nop,TS val 106372 ecr 111448], length 1448

==iperf3 server vm2
21:17:01.971477 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2886259810:2886261258, ack 2096407016, win 229, options [nop,nop,TS val 1029120 ecr 932825], length 1448
21:17:01.971978 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914: Flags [.], ack 1330712, win 24576, options [nop,nop,TS val 1042304 ecr 922544,nop,nop,sack 1 {0:1448}], length 0
21:17:01.972018 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1330712:1333608, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972026 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1333608:1336504, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972029 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1336504:1339400, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972032 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1339400:1342296, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972034 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1342296:1345192, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972037 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1345192:1348088, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972040 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1348088:1350984, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972043 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1350984:1353880, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972045 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1353880:1356776, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972048 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1356776:1359672, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972052 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1359672:1362568, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972055 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1362568:1365464, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972058 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1365464:1368360, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972061 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1368360:1371256, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972064 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1371256:1374152, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972066 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1374152:1377048, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972069 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1377048:1379944, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972071 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1379944:1382840, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972074 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1382840:1385736, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972076 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1385736:1388632, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972079 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1388632:1391528, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972081 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1391528:1394424, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972084 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1394424:1395872, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 1448
21:17:01.972087 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1395872:1398768, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972089 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1398768:1401664, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972095 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1401664:1404560, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972097 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1404560:1407456, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972100 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1407456:1410352, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972103 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1410352:1413248, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.972105 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1413248:1416144, ack 1, win 229, options [nop,nop,TS val 1029120 ecr 1042304], length 2896
21:17:01.974439 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 66: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914: Flags [.], ack 1342296, win 24486, options [nop,nop,TS val 1042306 ecr 1029120], length 0
21:17:01.974453 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2722240:2725136, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.974511 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2725136:2728032, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.974513 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2728032:2730928, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.974515 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2730928:2733824, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.974517 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2733824:2736720, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.974519 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 2736720:2739616, ack 1, win 229, options [nop,nop,TS val 1029122 ecr 1042306], length 2896
21:17:01.975110 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4 (0x0800), length 94: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914: Flags [.], ack 1352432, win 24409, options [nop,nop,TS val 1042307 ecr 1029120,nop,nop,sack 3 {2633912:2657080}{2289288:2632464}{1563840:1587008}], length 0
21:17:01.975222 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1352432:1353880, ack 1, win 229, options [nop,nop,TS val 1029123 ecr 1042307], length 1448
21:17:01.975243 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1353880:1355328, ack 1, win 229, options [nop,nop,TS val 1029123 ecr 1042307], length 1448
21:17:01.975245 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4 (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1: Flags [.], seq 1355328:1356776, ack 1, win 229, options [nop,nop,TS val 1029123 ecr 1042307], length 1448

Thanks.

From: Darrell Ball [mailto:dlu998@gmail.com]

Sent: Saturday, March 10, 2018 6:01 AM
To: Yangxiaoliang (Neo) <david.yangxiaoliang@huawei.com>
Cc: dev@openvswitch.org; liucheng (J) <liucheng11@huawei.com>; gaoxiaoqiu <gaoxiaoqiu@huawei.com>; Yinpeijun <yinpeijun@huawei.com>; zhangyuexi <zhangyuexi@huawei.com>; Lichunhe <lichunhe@huawei.com>; wangyunjian <wangyunjian@huawei.com>; Lilijun (Jerry) <jerry.lilijun@huawei.com>; Zhoujingbin <zhoujingbin@huawei.com>; Jiangtao (D) <jtao@huawei.com>; Liujinsong (Paul) <liu.jinsong@huawei.com>; lixiao (H) <lixiao91@huawei.com>
Subject: Re: Test result. RE: [ovs-dev] [patch v1] conntrack-tcp: Handle tcp session reuse.



On Tue, Mar 6, 2018 at 5:23 PM, Yangxiaoliang (Neo) <david.yangxiaoliang@huawei.com<mailto:david.yangxiaoliang@huawei.com>> wrote:
Hi Darrell,

I have tested VM migration with this patch for several times. And this patch can avoid stopping the TCP stream,

Thanks for testing and reporting Neo


but the issue is that the TCP stream will suspend for  a big number of seconds after migration ( for example, more than 100 seconds on 8Gbps). I think users will not be satisfied this issue.

Thanks, could you please report:
1/ How you carry out the migration ?
2/ The packets and their timing seen coming the endpoints; the rst packets are of particular interest.



Can we enlarge the range that is saved by sequence tracking to be more permissive to decrease the time.

The problem with enlarging the range is the common case becomes too permissive and we loose the benefit of sequence tracking.


Or maybe in the future we will solve this issue completely, for now it's not recommended to migrate VM with a big network throughput. Or any other idea ?

Thanks.

-----Original Message-----
From: ovs-dev-bounces@openvswitch.org<mailto:ovs-dev-bounces@openvswitch.org> [mailto:ovs-dev-bounces@openvswitch.org<mailto:ovs-dev-bounces@openvswitch.org>] On Behalf Of Darrell Ball

Sent: Thursday, March 01, 2018 3:26 PM
To: dlu998@gmail.com<mailto:dlu998@gmail.com>; dev@openvswitch.org<mailto:dev@openvswitch.org>
Subject: [ovs-dev] [patch v1] conntrack-tcp: Handle tcp session reuse.

Fix tcp sequence tracking for session reuse cases.  This can happen, for example by doing VM migration, where sequence tracking needs to be more permissive.  The solution is to be more permissive for session restart and session start only.  We don't differentiate session start here where we could be more strict, although we could, because the gain in protection is almost zero and the code modularity would be lessened and code complexity increased.
This issue originates in release 2.7.

Signed-off-by: Darrell Ball <dlu998@gmail.com<mailto:dlu998@gmail.com>>

---
 lib/conntrack-tcp.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c index 04460c3..a0ddd65 100644
--- a/lib/conntrack-tcp.c
+++ b/lib/conntrack-tcp.c
@@ -160,7 +160,6 @@ tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
     uint16_t win = ntohs(tcp->tcp_winsz);
     uint32_t ack, end, seq, orig_seq;
     uint32_t p_len = tcp_payload_length(pkt);
-    int ackskew;

     if (tcp_invalid_flags(tcp_flags)) {
         return CT_UPDATE_INVALID;
@@ -195,11 +194,11 @@ tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
      */

     orig_seq = seq = ntohl(get_16aligned_be32(&tcp->tcp_seq));
+    bool check_ackskew = true;
     if (src->state < CT_DPIF_TCPS_SYN_SENT) {
         /* First packet from this end. Set its state */

         ack = ntohl(get_16aligned_be32(&tcp->tcp_ack));
-
         end = seq + p_len;
         if (tcp_flags & TCP_SYN) {
             end++;
@@ -232,6 +231,7 @@ tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
         if (src->seqhi == 1
                 || SEQ_GEQ(end + MAX(1, dst->max_win << dws), src->seqhi)) {
             src->seqhi = end + MAX(1, dst->max_win << dws);
+            check_ackskew = false;
         }
         if (win > src->max_win) {
             src->max_win = win;
@@ -265,7 +265,13 @@ tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
         end = seq;
     }

-    ackskew = dst->seqlo - ack;
+    int ackskew;
+    if (check_ackskew) {
+        ackskew = dst->seqlo - ack;
+    } else {
+        ackskew = 0;
+    }
+
 #define MAXACKWINDOW (0xffff + 1500)    /* 1500 is an arbitrary fudge factor */
     if (SEQ_GEQ(src->seqhi, end)
         /* Last octet inside other's window space */
--
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org<mailto:dev@openvswitch.org>
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Darrell Ball March 27, 2018, 1:08 a.m. | #3
Thanks much for testtng Neo


On Sun, Mar 18, 2018 at 1:30 AM, Yangxiaoliang (Neo) <
david.yangxiaoliang@huawei.com> wrote:

> Hi  Darrell,
>
>
>
> Sorry for delay.
>
>
>
> During the last week, I have tried sveral live migration script, and found
> that
>
>
>
> 1. sctipt1: Tcp stream will stop only 2 seconds, then the stream is ok. (
> 8Gbps… 0Gbps .<- 0Gbps for 2 seconds ->….0Gbps … 8Gbps)
>
>   #Migrate VM to the destination
>
>   #Then flush all conntrack on the destination: ovs-appctl
> dpctl/flush-conntrack netdev@ovs-netdev
>
>
>
> 2. Use the original script (listed as below) to test. The TCP stream will
> stop for more 100 secons.
>
>
>
> ====Reply to your questions: ==
>
> 1/ How you carry out the migration ?
>
> I have two servers (9.16.1.111 and 9.16.1.114) with centos 7.3 installed.
> Two VMs were running on 9.16.1.111 at the beginning.
>
> Migrate VM1( iperf3 client) between 9.16.1.111 and 9.16.1.114.
>
>
>
> Live migration script(This is the original script):
>
>   // 9.16.1.111 -> 9.16.1.114
>
>   #virsh migrate vm1 qemu+tcp://9.16.1.114/system
>
>   // Clear conntrack entry on 111 host to prepare for next migration
>
>   #ovs-appctl dpctl/flush-conntrack netdev@ovs-netdev zone=11 (zone 11 is
> configured on 9.16.1.111 for vm1: table=14,priority=6,ip
> actions=ct(table=16,zone=11))
>
>
>
>   //9.16.1.114 -> 9.16.1.111
>
>   #virsh migrate vm1 qemu+tcp://9.16.1.111/system
>
>   #ovs-appctl dpctl/flush-conntrack netdev@ovs-netdev zone=21(zone 21 is
> configured on 9.16.1.114 for vm1: table=14,priority=6,ip
> actions=ct(table=16,zone=21))
>


If I understand correctly, the VM is migrated away and then back to the
same HV, so in the case, it does not move zone in the final state
w.r.t the start state and you are essentially simulating dropping a bunch of
packets between being on "HV X" and then back to the same "HV X".

I see you did a flush on the zone (somehow I missed that b4), so we have a
new connection being setup in conntrack in this case as well.
I did not see any resets but it looks like the connection gets re-setup
anyways after a period of 100 seconds.
I will do another parse of the packet traces to be sure.

However, with the zone flush, I would expect to hit the new connection case
when back to same HV and zone. This means the increased
skew allowed with the patch should apply here as well.  In the previous
test, you had the full context including the code traces you saw,
but those are missing in the second test. Could you provide those so we can
confirm which case we are hitting in this second test ?

Thanks Darrell




>
>
> 2/ The packets and their timing seen coming the endpoints; the rst packets
> are of particular interest.
>
> The packets and more information are list as below:
>
>
>
> #### software version ####
>
> ovs_version: "2.7.3"
>
> libvirt 3.2.0
>
> QEMU emulator version 2.8.1.1(25.124)
>
> dpdk 16.11
>
>
>
> #### ovs-ofctl show br-tap0 (9.16.1.111 has the same br-tap0 with
> 9.16.1.114) ####
>
> OFPT_FEATURES_REPLY (xid=0x2): dpid:000090e2ba69cd11
>
> n_tables:254, n_buffers:0
>
> capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
>
> actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src
> mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
>
> 1(hnic0): addr:e6:8d:45:ae:05:ce // connected to linux bridge(in)
>
>      config:     0
>
>      state:      0
>
>      current:    10MB-FD COPPER
>
>      speed: 10 Mbps now, 0 Mbps max
>
> 2(hnic1): addr:b6:d1:cd:16:ad:51 // connected to linux bridge(out)
>
>      config:     0
>
>      state:      0
>
>      current:    10MB-FD COPPER
>
>      speed: 10 Mbps now, 0 Mbps max
>
> 3(tap0): addr:a6:f7:0b:73:1a:7a
>
>      config:     0
>
>      state:      0
>
>      speed: 0 Mbps now, 0 Mbps max
>
> 4(p-tap0-int): addr:5a:26:31:7b:24:1d
>
>      config:     0
>
>      state:      0
>
>      speed: 0 Mbps now, 0 Mbps max
>
> LOCAL(br-tap0): addr:90:e2:ba:69:cd:11
>
>      config:     0
>
>      state:      0
>
>      current:    10MB-FD COPPER
>
>      speed: 10 Mbps now, 0 Mbps max
>
> OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
>
>
>
> #### Linux bridge ####
>
> bridge name     bridge id               STP enabled     interfaces
>
> br-linux1               8000.b6d1cd16ad51       no              hnic0
>
>                                                         hnic1
>
>
>
> #### ovs-ofctl dump-flows br-tap0 (on host 9.16.1.111) ####
>
> table=0,priority=2,in_port=1 actions=resubmit(,2)
>
> table=0,priority=2,in_port=4 actions=resubmit(,2)
>
> table=0,priority=0 actions=drop
>
> table=0,priority=1 actions=resubmit(,10)
>
> table=1,priority=0 actions=resubmit(,14)
>
> table=2,priority=0 actions=resubmit(,4)
>
> table=4,priority=0 actions=resubmit(,14)
>
> table=10,priority=2,arp actions=resubmit(,12)
>
> table=10,priority=1,dl_src=90:E2:BA:69:CD:11 actions=resubmit(,1)
>
> table=10,priority=0 actions=drop
>
> table=12,priority=3,arp,dl_src=90:E2:BA:69:CD:11,arp_spa=
> 194.168.100.11,arp_sha=90:E2:BA:69:CD:11 actions=resubmit(,1)
>
> table=12,priority=2,arp actions=drop
>
> table=14,priority=10,icmp actions=resubmit(,18)
>
> table=14,priority=6,ip actions=ct(table=16,zone=11)
>
> table=14,priority=0 actions=resubmit(,20)
>
> table=14,priority=20,ip,ip_frag=yes,actions=resubmit(,18)
>
> table=16,priority=20,ct_state=+est+trk,ip actions=resubmit(,20)
>
> table=16,priority=15,ct_state=+rel+trk,ip actions=resubmit(,20)
>
> table=16,priority=10,ct_mark=0x80000000/0x80000000,udp
> actions=resubmit(,20)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=3 actions=resubmit(,18)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=4 actions=resubmit(,18)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=2
> actions=ct(commit,zone=11,exec(load:0x1->NXM_NX_CT_MARK[31])),output:4
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=1
> actions=ct(commit,zone=11,exec(load:0x1->NXM_NX_CT_MARK[31])),output:3
>
> table=18,priority=0,in_port=3 actions=output:1
>
> table=18,priority=0,in_port=2 actions=output:4
>
> table=18,priority=0,in_port=4 actions=output:2
>
> table=18,priority=0,in_port=1 actions=output:3
>
> table=20,priority=10,in_port=3 actions=output:4
>
> table=20,priority=10,in_port=4 actions=output:3
>
> table=20,priority=1 actions=resubmit(,18)
>
>
>
> #### ovs-ofctl dump-flows br-tap0 (on host 9.16.1.114) ####
>
> table=0,priority=2,in_port=1 actions=resubmit(,2)
>
> table=0,priority=2,in_port=4 actions=resubmit(,2)
>
> table=0,priority=0 actions=drop
>
> table=0,priority=1 actions=resubmit(,10)
>
> table=1,priority=0 actions=resubmit(,14)
>
> table=2,priority=0 actions=resubmit(,4)
>
> table=4,priority=0 actions=resubmit(,14)
>
> table=10,priority=2,arp actions=resubmit(,12)
>
> table=10,priority=1,dl_src=90:E2:BA:69:CD:12 actions=resubmit(,1)
>
> table=10,priority=0 actions=drop
>
> table=12,priority=3,arp,dl_src=90:E2:BA:69:CD:12,arp_spa=
> 194.168.100.12,arp_sha=90:E2:BA:69:CD:12 actions=resubmit(,1)
>
> table=12,priority=2,arp actions=drop
>
> table=14,priority=10,icmp actions=resubmit(,18)
>
> table=14,priority=6,ip actions=ct(table=16,zone=12)
>
> table=14,priority=0 actions=resubmit(,20)
>
> table=14,priority=20,ip,ip_frag=yes,actions=resubmit(,18)
>
> table=16,priority=20,ct_state=+est+trk,ip actions=resubmit(,20)
>
> table=16,priority=15,ct_state=+rel+trk,ip actions=resubmit(,20)
>
> table=16,priority=10,ct_mark=0x80000000/0x80000000,udp
> actions=resubmit(,20)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=3 actions=resubmit(,18)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=4 actions=resubmit(,18)
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=2
> actions=ct(commit,zone=12,exec(load:0x1->NXM_NX_CT_MARK[31])),output:4
>
> table=16,priority=5,ct_state=+new+trk,ip,in_port=1
> actions=ct(commit,zone=12,exec(load:0x1->NXM_NX_CT_MARK[31])),output:3
>
> table=18,priority=0,in_port=3 actions=output:1
>
> table=18,priority=0,in_port=2 actions=output:4
>
> table=18,priority=0,in_port=4 actions=output:2
>
> table=18,priority=0,in_port=1 actions=output:3
>
> table=20,priority=10,in_port=3 actions=output:4
>
> table=20,priority=10,in_port=4 actions=output:3
>
> table=20,priority=1 actions=resubmit(,18)
>
>
>
> #### Packets detail ####
>
> #### When the TCP stream is stopped, begin to capture packets. When the
> TCP stream is restored, then stop the capturing.
>
> ===iperf3 client VM1
>
> 21:38:39.813369 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1167842239:1167843687, ack 506240381, win 229, options
> [nop,nop,TS val 20960 ecr 4294962169], length 1448
>
> 21:38:44.821345 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype ARP
> (0x0806), length 42: Request who-has 194.168.100.12 tell 194.168.100.11,
> length 28
>
> 21:38:44.821863 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype ARP
> (0x0806), length 42: Reply 194.168.100.12 is-at 90:e2:ba:69:cd:12, length 28
>
> 21:39:08.261354 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 0:1448, ack 1, win 229, options [nop,nop,TS val 49408 ecr
> 4294962169], length 1448
>
> 21:40:05.221359 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 0:1448, ack 1, win 229, options [nop,nop,TS val 106368 ecr
> 4294962169], length 1448
>
> 21:40:05.222262 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111445 ecr
> 4294959955,nop,nop,sack 1 {0:1448}], length 0
>
> 21:40:05.222315 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2689496:2692392, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222320 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2692392:2695288, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222324 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2695288:2698184, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222326 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2698184:2701080, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222329 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2701080:2703976, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222332 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2703976:2706872, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222334 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2706872:2709768, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222338 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2709768:2712664, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222340 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2712664:2715560, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222344 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2715560:2718456, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222346 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2718456:2721352, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222349 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2721352:2724248, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222351 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2724248:2727144, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222353 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2727144:2730040, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222355 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2730040:2732936, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222358 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2732936:2735832, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222360 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2735832:2738728, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222362 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2738728:2741624, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222365 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2741624:2744520, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222367 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2744520:2747416, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222370 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2747416:2750312, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222372 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2750312:2753208, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222375 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2753208:2756104, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222378 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2756104:2759000, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222383 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2759000:2761896, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222386 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2761896:2764792, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222388 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2764792:2767688, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222391 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2767688:2770584, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222393 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2770584:2773480, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.222395 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2773480:2776376, ack 1, win 229, options [nop,nop,TS val
> 106368 ecr 111445], length 2896
>
> 21:40:05.223147 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3474592:3477488, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223179 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3477488:3480384, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223182 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3480384:3483280, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223187 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3483280:3486176, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223190 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3486176:3489072, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223204 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3489072:3491968, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223206 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3491968:3494864, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223209 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3494864:3497760, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223212 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3497760:3500656, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223214 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3500656:3503552, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223216 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3503552:3506448, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223219 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3506448:3509344, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223221 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3509344:3512240, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223226 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3512240:3515136, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223228 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3515136:3518032, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223232 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3518032:3520928, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223234 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3520928:3523824, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223237 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3523824:3526720, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223239 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3526720:3529616, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223242 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3529616:3532512, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223244 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3532512:3535408, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223247 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3535408:3538304, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223249 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3538304:3541200, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223252 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3541200:3544096, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223253 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3544096:3546992, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223259 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3546992:3549888, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223261 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3549888:3552784, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223262 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3552784:3555680, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223264 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3555680:3558576, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223268 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3558576:3561472, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.223270 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 3561472:3564368, ack 1, win 229, options [nop,nop,TS val
> 106369 ecr 111445], length 2896
>
> 21:40:05.225201 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3015296}], length 0
>
> 21:40:05.225211 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3023984}], length 0
>
> 21:40:05.225215 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3031224}], length 0
>
> 21:40:05.225480 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3035568}], length 0
>
> 21:40:05.225493 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3037016}], length 0
>
> 21:40:05.225495 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3038464}], length 0
>
> 21:40:05.225497 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111447 ecr
> 4294959955,nop,nop,sack 1 {3013848:3039912}], length 0
>
> 21:40:05.225500 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 94: 194.168.100.12.targus-getdata1 > 194.168.100.11.58836:
> Flags [.], ack 2688048, win 24576, options [nop,nop,TS val 111448 ecr
> 4294959955,nop,nop,sack 3 {3248424:3294760}{3013848:3199192}{2689496:2782168}],
> length 0
>
> 21:40:05.225568 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2688048:2689496, ack 1, win 229, options [nop,nop,TS val
> 106372 ecr 111448], length 1448
>
> 21:40:05.225582 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2782168:2783616, ack 1, win 229, options [nop,nop,TS val
> 106372 ecr 111448], length 1448
>
> 21:40:05.225584 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.58836 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2783616:2785064, ack 1, win 229, options [nop,nop,TS val
> 106372 ecr 111448], length 1448
>
>
>
> ==iperf3 server vm2
>
> 21:17:01.971477 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2886259810:2886261258, ack 2096407016, win 229, options
> [nop,nop,TS val 1029120 ecr 932825], length 1448
>
> 21:17:01.971978 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 78: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914:
> Flags [.], ack 1330712, win 24576, options [nop,nop,TS val 1042304 ecr
> 922544,nop,nop,sack 1 {0:1448}], length 0
>
> 21:17:01.972018 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1330712:1333608, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972026 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1333608:1336504, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972029 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1336504:1339400, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972032 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1339400:1342296, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972034 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1342296:1345192, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972037 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1345192:1348088, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972040 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1348088:1350984, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972043 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1350984:1353880, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972045 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1353880:1356776, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972048 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1356776:1359672, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972052 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1359672:1362568, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972055 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1362568:1365464, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972058 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1365464:1368360, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972061 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1368360:1371256, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972064 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1371256:1374152, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972066 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1374152:1377048, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972069 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1377048:1379944, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972071 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1379944:1382840, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972074 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1382840:1385736, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972076 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1385736:1388632, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972079 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1388632:1391528, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972081 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1391528:1394424, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972084 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1394424:1395872, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 1448
>
> 21:17:01.972087 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1395872:1398768, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972089 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1398768:1401664, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972095 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1401664:1404560, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972097 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1404560:1407456, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972100 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1407456:1410352, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972103 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1410352:1413248, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.972105 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1413248:1416144, ack 1, win 229, options [nop,nop,TS val
> 1029120 ecr 1042304], length 2896
>
> 21:17:01.974439 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 66: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914:
> Flags [.], ack 1342296, win 24486, options [nop,nop,TS val 1042306 ecr
> 1029120], length 0
>
> 21:17:01.974453 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2722240:2725136, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.974511 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2725136:2728032, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.974513 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2728032:2730928, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.974515 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2730928:2733824, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.974517 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2733824:2736720, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.974519 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 2962: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 2736720:2739616, ack 1, win 229, options [nop,nop,TS val
> 1029122 ecr 1042306], length 2896
>
> 21:17:01.975110 90:e2:ba:69:cd:12 > 90:e2:ba:69:cd:11, ethertype IPv4
> (0x0800), length 94: 194.168.100.12.targus-getdata1 > 194.168.100.11.32914:
> Flags [.], ack 1352432, win 24409, options [nop,nop,TS val 1042307 ecr
> 1029120,nop,nop,sack 3 {2633912:2657080}{2289288:2632464}{1563840:1587008}],
> length 0
>
> 21:17:01.975222 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1352432:1353880, ack 1, win 229, options [nop,nop,TS val
> 1029123 ecr 1042307], length 1448
>
> 21:17:01.975243 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1353880:1355328, ack 1, win 229, options [nop,nop,TS val
> 1029123 ecr 1042307], length 1448
>
> 21:17:01.975245 90:e2:ba:69:cd:11 > 90:e2:ba:69:cd:12, ethertype IPv4
> (0x0800), length 1514: 194.168.100.11.32914 > 194.168.100.12.targus-getdata1:
> Flags [.], seq 1355328:1356776, ack 1, win 229, options [nop,nop,TS val
> 1029123 ecr 1042307], length 1448
>
>
>
> Thanks.
>
>
>
> *From:* Darrell Ball [mailto:dlu998@gmail.com]
> *Sent:* Saturday, March 10, 2018 6:01 AM
> *To:* Yangxiaoliang (Neo) <david.yangxiaoliang@huawei.com>
> *Cc:* dev@openvswitch.org; liucheng (J) <liucheng11@huawei.com>;
> gaoxiaoqiu <gaoxiaoqiu@huawei.com>; Yinpeijun <yinpeijun@huawei.com>;
> zhangyuexi <zhangyuexi@huawei.com>; Lichunhe <lichunhe@huawei.com>;
> wangyunjian <wangyunjian@huawei.com>; Lilijun (Jerry) <
> jerry.lilijun@huawei.com>; Zhoujingbin <zhoujingbin@huawei.com>; Jiangtao
> (D) <jtao@huawei.com>; Liujinsong (Paul) <liu.jinsong@huawei.com>; lixiao
> (H) <lixiao91@huawei.com>
> *Subject:* Re: Test result. RE: [ovs-dev] [patch v1] conntrack-tcp:
> Handle tcp session reuse.
>
>
>
>
>
>
>
> On Tue, Mar 6, 2018 at 5:23 PM, Yangxiaoliang (Neo) <
> david.yangxiaoliang@huawei.com> wrote:
>
> Hi Darrell,
>
> I have tested VM migration with this patch for several times. And this
> patch can avoid stopping the TCP stream,
>
>
>
> Thanks for testing and reporting Neo
>
>
>
>
>
> but the issue is that the TCP stream will suspend for  a big number of
> seconds after migration ( for example, more than 100 seconds on 8Gbps). I
> think users will not be satisfied this issue.
>
>
>
> Thanks, could you please report:
>
> 1/ How you carry out the migration ?
>
> 2/ The packets and their timing seen coming the endpoints; the rst packets
> are of particular interest.
>
>
>
>
>
>
> Can we enlarge the range that is saved by sequence tracking to be more
> permissive to decrease the time.
>
>
>
> The problem with enlarging the range is the common case becomes too
> permissive and we loose the benefit of sequence tracking.
>
>
>
>
>
> Or maybe in the future we will solve this issue completely, for now it's
> not recommended to migrate VM with a big network throughput. Or any other
> idea ?
>
>
> Thanks.
>
> -----Original Message-----
> From: ovs-dev-bounces@openvswitch.org [mailto:ovs-dev-bounces@
> openvswitch.org] On Behalf Of Darrell Ball
> Sent: Thursday, March 01, 2018 3:26 PM
> To: dlu998@gmail.com; dev@openvswitch.org
> Subject: [ovs-dev] [patch v1] conntrack-tcp: Handle tcp session reuse.
>
> Fix tcp sequence tracking for session reuse cases.  This can happen, for
> example by doing VM migration, where sequence tracking needs to be more
> permissive.  The solution is to be more permissive for session restart and
> session start only.  We don't differentiate session start here where we
> could be more strict, although we could, because the gain in protection is
> almost zero and the code modularity would be lessened and code complexity
> increased.
> This issue originates in release 2.7.
>
> Signed-off-by: Darrell Ball <dlu998@gmail.com>
> ---
>  lib/conntrack-tcp.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c index
> 04460c3..a0ddd65 100644
> --- a/lib/conntrack-tcp.c
> +++ b/lib/conntrack-tcp.c
> @@ -160,7 +160,6 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>      uint16_t win = ntohs(tcp->tcp_winsz);
>      uint32_t ack, end, seq, orig_seq;
>      uint32_t p_len = tcp_payload_length(pkt);
> -    int ackskew;
>
>      if (tcp_invalid_flags(tcp_flags)) {
>          return CT_UPDATE_INVALID;
> @@ -195,11 +194,11 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>       */
>
>      orig_seq = seq = ntohl(get_16aligned_be32(&tcp->tcp_seq));
> +    bool check_ackskew = true;
>      if (src->state < CT_DPIF_TCPS_SYN_SENT) {
>          /* First packet from this end. Set its state */
>
>          ack = ntohl(get_16aligned_be32(&tcp->tcp_ack));
> -
>          end = seq + p_len;
>          if (tcp_flags & TCP_SYN) {
>              end++;
> @@ -232,6 +231,7 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>          if (src->seqhi == 1
>                  || SEQ_GEQ(end + MAX(1, dst->max_win << dws),
> src->seqhi)) {
>              src->seqhi = end + MAX(1, dst->max_win << dws);
> +            check_ackskew = false;
>          }
>          if (win > src->max_win) {
>              src->max_win = win;
> @@ -265,7 +265,13 @@ tcp_conn_update(struct conn *conn_, struct
> conntrack_bucket *ctb,
>          end = seq;
>      }
>
> -    ackskew = dst->seqlo - ack;
> +    int ackskew;
> +    if (check_ackskew) {
> +        ackskew = dst->seqlo - ack;
> +    } else {
> +        ackskew = 0;
> +    }
> +
>  #define MAXACKWINDOW (0xffff + 1500)    /* 1500 is an arbitrary fudge
> factor */
>      if (SEQ_GEQ(src->seqhi, end)
>          /* Last octet inside other's window space */
> --
> 1.9.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
>

Patch

diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c index 04460c3..a0ddd65 100644
--- a/lib/conntrack-tcp.c
+++ b/lib/conntrack-tcp.c
@@ -160,7 +160,6 @@  tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
     uint16_t win = ntohs(tcp->tcp_winsz);
     uint32_t ack, end, seq, orig_seq;
     uint32_t p_len = tcp_payload_length(pkt);
-    int ackskew;
 
     if (tcp_invalid_flags(tcp_flags)) {
         return CT_UPDATE_INVALID;
@@ -195,11 +194,11 @@  tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
      */
 
     orig_seq = seq = ntohl(get_16aligned_be32(&tcp->tcp_seq));
+    bool check_ackskew = true;
     if (src->state < CT_DPIF_TCPS_SYN_SENT) {
         /* First packet from this end. Set its state */
 
         ack = ntohl(get_16aligned_be32(&tcp->tcp_ack));
-
         end = seq + p_len;
         if (tcp_flags & TCP_SYN) {
             end++;
@@ -232,6 +231,7 @@  tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
         if (src->seqhi == 1
                 || SEQ_GEQ(end + MAX(1, dst->max_win << dws), src->seqhi)) {
             src->seqhi = end + MAX(1, dst->max_win << dws);
+            check_ackskew = false;
         }
         if (win > src->max_win) {
             src->max_win = win;
@@ -265,7 +265,13 @@  tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb,
         end = seq;
     }
 
-    ackskew = dst->seqlo - ack;
+    int ackskew;
+    if (check_ackskew) {
+        ackskew = dst->seqlo - ack;
+    } else {
+        ackskew = 0;
+    }
+
 #define MAXACKWINDOW (0xffff + 1500)    /* 1500 is an arbitrary fudge factor */
     if (SEQ_GEQ(src->seqhi, end)
         /* Last octet inside other's window space */