Compare commits

...

No commits in common. "c8" and "imports/c9-beta/tcpdump-4.99.0-7.el9" have entirely different histories.

18 changed files with 134 additions and 2126 deletions

6
.gitignore vendored
View File

@ -1,3 +1,3 @@
SOURCES/tcpdump-4.9.3.tar.gz SOURCES/tcpdump-4.99.0.tar.gz
SOURCES/tcpdump-4.9.3.tar.gz.sig SOURCES/tcpdump-4.99.0.tar.gz.sig
SOURCES/tcpslice-1.2a3.tar.gz SOURCES/tcpslice-1.3.tar.gz

3
.tcpdump.metadata Normal file
View File

@ -0,0 +1,3 @@
4348a93b47a5b35a9c04abcee4d84a04b1a681f8 SOURCES/tcpdump-4.99.0.tar.gz
3fadebc3d3edaa3f4326a11864a0034ba1f2ccb7 SOURCES/tcpdump-4.99.0.tar.gz.sig
4445c159ce45fa6fd9767658918eaf59175afac3 SOURCES/tcpslice-1.3.tar.gz

View File

@ -1,28 +1,26 @@
From c48fba64fbbff9c75c79e32ab33aa65742c197d9 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 20 Oct 2014 14:12:46 +0200
Subject: [PATCH 2/8] Use getnameinfo instead of gethostbyaddr
---
addrtoname.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 46 insertions(+), 2 deletions(-)
diff --git a/addrtoname.c b/addrtoname.c diff --git a/addrtoname.c b/addrtoname.c
index 6975b71..949acb7 100644 index 33b9378..426839c 100644
--- a/addrtoname.c --- a/addrtoname.c
+++ b/addrtoname.c +++ b/addrtoname.c
@@ -220,7 +220,6 @@ static uint32_t f_localnet; @@ -277,7 +277,6 @@ extern cap_channel_t *capdns;
const char * const char *
getname(netdissect_options *ndo, const u_char *ap) ipaddr_string(netdissect_options *ndo, const u_char *ap)
{ {
- register struct hostent *hp; - struct hostent *hp;
uint32_t addr; uint32_t addr;
struct hnamemem *p; struct hnamemem *p;
@@ -242,6 +241,28 @@ getname(netdissect_options *ndo, const u_char *ap) @@ -299,13 +298,29 @@ ipaddr_string(netdissect_options *ndo, const u_char *ap)
*/ */
if (!ndo->ndo_nflag && if (!ndo->ndo_nflag &&
(addr & f_netmask) == f_localnet) { (addr & f_netmask) == f_localnet) {
-#ifdef HAVE_CASPER
- if (capdns != NULL) {
- hp = cap_gethostbyaddr(capdns, (char *)&addr, 4,
- AF_INET);
- } else
-#endif
- hp = gethostbyaddr((char *)&addr, 4, AF_INET);
+#ifdef HAVE_GETNAMEINFO +#ifdef HAVE_GETNAMEINFO
+ struct sockaddr_in sa; + struct sockaddr_in sa;
+ char hbuf[NI_MAXHOST]; + char hbuf[NI_MAXHOST];
@ -44,11 +42,12 @@ index 6975b71..949acb7 100644
+ return p->name; + return p->name;
+ } + }
+#else +#else
+ register struct hostent *hp; + struct hostent *hp;
hp = gethostbyaddr((char *)&addr, 4, AF_INET); + hp = gethostbyaddr((char *)&addr, 4, AF_INET);
if (hp) { if (hp) {
char *dotp; char *dotp;
@@ -258,6 +279,7 @@ getname(netdissect_options *ndo, const u_char *ap)
@@ -321,6 +336,7 @@ ipaddr_string(netdissect_options *ndo, const u_char *ap)
} }
return (p->name); return (p->name);
} }
@ -56,18 +55,25 @@ index 6975b71..949acb7 100644
} }
p->name = strdup(intoa(addr)); p->name = strdup(intoa(addr));
if (p->name == NULL) if (p->name == NULL)
@@ -272,7 +294,6 @@ getname(netdissect_options *ndo, const u_char *ap) @@ -336,7 +352,6 @@ ipaddr_string(netdissect_options *ndo, const u_char *ap)
const char * const char *
getname6(netdissect_options *ndo, const u_char *ap) ip6addr_string(netdissect_options *ndo, const u_char *ap)
{ {
- register struct hostent *hp; - struct hostent *hp;
union { union {
struct in6_addr addr; nd_ipv6 addr;
struct for_hash_addr { struct for_hash_addr {
@@ -297,6 +318,28 @@ getname6(netdissect_options *ndo, const u_char *ap) @@ -361,13 +376,29 @@ ip6addr_string(netdissect_options *ndo, const u_char *ap)
* Do not print names if -n was given. * Do not print names if -n was given.
*/ */
if (!ndo->ndo_nflag) { if (!ndo->ndo_nflag) {
-#ifdef HAVE_CASPER
- if (capdns != NULL) {
- hp = cap_gethostbyaddr(capdns, (char *)&addr,
- sizeof(addr), AF_INET6);
- } else
-#endif
- hp = gethostbyaddr((char *)&addr, sizeof(addr),
+#ifdef HAVE_GETNAMEINFO +#ifdef HAVE_GETNAMEINFO
+ struct sockaddr_in6 sa; + struct sockaddr_in6 sa;
+ char hbuf[NI_MAXHOST]; + char hbuf[NI_MAXHOST];
@ -89,11 +95,12 @@ index 6975b71..949acb7 100644
+ return p->name; + return p->name;
+ } + }
+#else +#else
+ register struct hostent *hp; + struct hostent *hp;
hp = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET6); + hp = gethostbyaddr((char *)&addr, sizeof(addr),
AF_INET6);
if (hp) { if (hp) {
char *dotp; char *dotp;
@@ -313,6 +356,7 @@ getname6(netdissect_options *ndo, const u_char *ap) @@ -384,6 +415,7 @@ ip6addr_string(netdissect_options *ndo, const u_char *ap)
} }
return (p->name); return (p->name);
} }
@ -101,6 +108,3 @@ index 6975b71..949acb7 100644
} }
cp = addrtostr6(ap, ntop_buf, sizeof(ntop_buf)); cp = addrtostr6(ap, ntop_buf, sizeof(ntop_buf));
p->name = strdup(cp); p->name = strdup(cp);
--
2.9.3

View File

@ -19,7 +19,7 @@ index f04a579..ca5cff2 100644
not 1,048,576 bytes). not 1,048,576 bytes).
+ +
+Note that when used with \fB\-Z\fR option (enabled by default), privileges +Note that when used with \fB\-Z\fR option (enabled by default), privileges
+are dropped before opening first savefile. +are dropped before opening the first savefile.
.TP .TP
.B \-d .B \-d
Dump the compiled packet-matching code in a human readable form to Dump the compiled packet-matching code in a human readable form to
@ -34,6 +34,17 @@ index f04a579..ca5cff2 100644
.IP "\fI expression\fP" .IP "\fI expression\fP"
.RS .RS
selects which packets will be dumped. selects which packets will be dumped.
@@ -366,6 +366,10 @@ If no time format is specified, each new file will overwrite the previous.
If used in conjunction with the
.B \-C
option, filenames will take the form of `\fIfile\fP<count>'.
+.IP
+Note that when used with
+.B \-Z
+option (enabled by default), privileges are dropped before opening the first savefile.
.TP
.B \-h
.PD 0
diff --git a/tcpdump.c b/tcpdump.c diff --git a/tcpdump.c b/tcpdump.c
index 73bf138..29f7f87 100644 index 73bf138..29f7f87 100644
--- a/tcpdump.c --- a/tcpdump.c
@ -58,7 +69,7 @@ index 73bf138..29f7f87 100644
+ * user(default tcpdump) and drop root privileges. + * user(default tcpdump) and drop root privileges.
+ */ + */
+ if (WFileName) + if (WFileName)
+ if (Cflag && (username || chroot_dir)) + if ((Cflag || Gflag) && (username || chroot_dir))
+ droproot(username, chroot_dir); + droproot(username, chroot_dir);
+ else + else
+ chown_flag = 1; + chown_flag = 1;
@ -69,7 +80,7 @@ index 73bf138..29f7f87 100644
@@ -1881,6 +1895,22 @@ main(int argc, char **argv) @@ -1881,6 +1895,22 @@ main(int argc, char **argv)
MakeFilename(dumpinfo.CurrentFileName, WFileName, 0, 0); MakeFilename(dumpinfo.CurrentFileName, WFileName, 0, 0);
p = pcap_dump_open(pd, dumpinfo.CurrentFileName); pdd = pcap_dump_open(pd, dumpinfo.CurrentFileName);
+ +
+ /* Change ownership of file and drop root privileges */ + /* Change ownership of file and drop root privileges */
+ if (chown_flag) { + if (chown_flag) {
@ -91,4 +102,3 @@ index 73bf138..29f7f87 100644
* Only allow it to be restored if the -C or -G flag have been * Only allow it to be restored if the -C or -G flag have been
-- --
2.9.3 2.9.3

View File

@ -1,88 +0,0 @@
From 954c235f6db6f601d732b6fce48d2e8183c05d49 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 20 Oct 2014 14:43:04 +0200
Subject: [PATCH 4/8] tcpslice: update tcpslice patch to 1.2a3
---
tcpslice-1.2a3/search.c | 22 +++++++++++++++-------
tcpslice-1.2a3/tcpslice.h | 20 ++++++++++++++++++++
2 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/tcpslice-1.2a3/search.c b/tcpslice-1.2a3/search.c
index 1e2d051..23aa105 100644
--- a/tcpslice-1.2a3/search.c
+++ b/tcpslice-1.2a3/search.c
@@ -53,7 +53,7 @@ static const char rcsid[] =
/* Size of a packet header in bytes; easier than typing the sizeof() all
* the time ...
*/
-#define PACKET_HDR_LEN (sizeof( struct pcap_pkthdr ))
+#define PACKET_HDR_LEN (sizeof( struct pcap_sf_pkthdr ))
extern int snaplen;
@@ -111,16 +111,24 @@ reasonable_header( struct pcap_pkthdr *hdr, time_t first_time, time_t last_time
static void
extract_header( pcap_t *p, u_char *buf, struct pcap_pkthdr *hdr )
{
- memcpy((char *) hdr, (char *) buf, sizeof(struct pcap_pkthdr));
+ struct pcap_sf_pkthdr hdri;
+
+ memcpy((char *) &hdri, (char *) buf, sizeof(struct pcap_sf_pkthdr));
if ( pcap_is_swapped( p ) )
{
- hdr->ts.tv_sec = SWAPLONG(hdr->ts.tv_sec);
- hdr->ts.tv_usec = SWAPLONG(hdr->ts.tv_usec);
- hdr->len = SWAPLONG(hdr->len);
- hdr->caplen = SWAPLONG(hdr->caplen);
+ hdr->ts.tv_sec = SWAPLONG(hdri.ts.tv_sec);
+ hdr->ts.tv_usec = SWAPLONG(hdri.ts.tv_usec);
+ hdr->len = SWAPLONG(hdri.len);
+ hdr->caplen = SWAPLONG(hdri.caplen);
+ }
+ else
+ {
+ hdr->ts.tv_sec = hdri.ts.tv_sec;
+ hdr->ts.tv_usec = hdri.ts.tv_usec;
+ hdr->len = hdri.len;
+ hdr->caplen = hdri.caplen;
}
-
/*
* From bpf/libpcap/savefile.c:
*
diff --git a/tcpslice-1.2a3/tcpslice.h b/tcpslice-1.2a3/tcpslice.h
index de4a01c..9dcd1a1 100644
--- a/tcpslice-1.2a3/tcpslice.h
+++ b/tcpslice-1.2a3/tcpslice.h
@@ -20,6 +20,26 @@
*/
+#include <time.h>
+/* #include <net/bpf.h> */
+
+/*
+ * This is a timeval as stored in disk in a dumpfile.
+ * It has to use the same types everywhere, independent of the actual
+ * `struct timeval'
+ */
+
+struct pcap_timeval {
+ bpf_int32 tv_sec; /* seconds */
+ bpf_int32 tv_usec; /* microseconds */
+};
+
+struct pcap_sf_pkthdr {
+ struct pcap_timeval ts; /* time stamp */
+ bpf_u_int32 caplen; /* length of portion present */
+ bpf_u_int32 len; /* length this packet (off wire) */
+};
+
time_t gwtm2secs( struct tm *tm );
int sf_find_end( struct pcap *p, struct timeval *first_timestamp,
--
2.9.3

View File

@ -1,26 +0,0 @@
From d32956586bfb50b189132d5a15db8a50ef871278 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 20 Oct 2014 15:06:54 +0200
Subject: [PATCH 5/8] tcpslice: remove unneeded include
net/bpf.h doesn't exist on Linux.
---
tcpslice-1.2a3/tcpslice.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/tcpslice-1.2a3/tcpslice.c b/tcpslice-1.2a3/tcpslice.c
index e73d76f..895e54f 100644
--- a/tcpslice-1.2a3/tcpslice.c
+++ b/tcpslice-1.2a3/tcpslice.c
@@ -35,8 +35,6 @@ static const char rcsid[] =
#include <sys/file.h>
#include <sys/stat.h>
-#include <net/bpf.h>
-
#include <ctype.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
--
2.9.3

View File

@ -1,27 +0,0 @@
From e159008d2f126d92112858269fb6b2fbca63ffc2 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 20 Oct 2014 15:19:44 +0200
Subject: [PATCH 6/8] tcpslice: don't test the pointer but pointee for NULL
---
tcpslice-1.2a3/tcpslice.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tcpslice-1.2a3/tcpslice.c b/tcpslice-1.2a3/tcpslice.c
index 895e54f..a91439b 100644
--- a/tcpslice-1.2a3/tcpslice.c
+++ b/tcpslice-1.2a3/tcpslice.c
@@ -402,7 +402,9 @@ fill_tm(char *time_string, int is_delta, struct tm *t, time_t *usecs_addr)
while (isdigit(*t_stop))
++t_stop;
- if (! t_stop)
+
+ if (!(*t_stop))
+ /* we've reached end of string -> bad date format */
error("bad date format %s, problem starting at %s",
time_string, t_start);
--
2.9.3

View File

@ -1,24 +1,13 @@
From 04e23aa3f91ff137237daf68f02e7b3c0c1a9168 Mon Sep 17 00:00:00 2001 diff --git a/tests/TESTrun b/tests/TESTrun
From: rpm-build <rpm-build> index b423627..aa3c97d 100755
Date: Tue, 11 Apr 2017 09:19:48 +0200 --- a/tests/TESTrun
Subject: [PATCH 09/13] Change -n flag to -nn in TESTonce +++ b/tests/TESTrun
@@ -102,7 +102,7 @@ sub runtest {
We need to change this because we have a different meaning of -n #
flag than upstream does. We use -nn in those cases. # Furthermore, on Windows, fc can't read the standard input, so we
--- # can't do it as a pipeline in any case.
tests/TESTonce | 2 +- - $r = system "$TCPDUMP -# -n -r $input $options >tests/NEW/${outputbase} 2>${rawstderrlog}";
1 file changed, 1 insertion(+), 1 deletion(-) + $r = system "$TCPDUMP -# -nn -r $input $options >tests/NEW/${outputbase} 2>${rawstderrlog}";
if($r != 0) {
diff --git a/tests/TESTonce b/tests/TESTonce #
index 425abaa..81283d9 100755 # Something other than "tcpdump opened the file, read it, and
--- a/tests/TESTonce
+++ b/tests/TESTonce
@@ -43,7 +43,7 @@ if ($^O eq 'MSWin32') {
else {
# we used to do this as a nice pipeline, but the problem is that $r fails to
# to be set properly if the tcpdump core dumps.
- $cmd = "$TCPDUMP 2>${rawstderrlog} -t -n -r $input $options >tests/NEW/${outputbase}";
+ $cmd = "$TCPDUMP 2>${rawstderrlog} -t -nn -r $input $options >tests/NEW/${outputbase}";
print "CMD: $cmd\n" if $debug;
$r = system $cmd;
if($r == -1) {

View File

@ -1,13 +0,0 @@
diff --git a/print-esp.c b/print-esp.c
index 6fabff1..cdeca9d 100644
--- a/print-esp.c
+++ b/print-esp.c
@@ -259,7 +259,7 @@ int esp_print_decrypt_buffer_by_ikev2(netdissect_options *ndo,
EVP_CIPHER_CTX_free(ctx);
(*ndo->ndo_error)(ndo, "can't allocate memory for decryption buffer");
}
- EVP_Cipher(ctx, output_buffer, input_buffer, len);
+ EVP_Cipher(ctx, output_buffer, input_buffer, buffer_size);
EVP_CIPHER_CTX_free(ctx);
/*

View File

@ -1,318 +0,0 @@
From 66a5b93dee386bc2f57033a150341752923b8b41 Mon Sep 17 00:00:00 2001
From: Gerard Garcia <ggarcia@deic.uab.cat>
Date: Tue, 14 Jun 2016 16:45:44 +0200
Subject: [PATCH 13/13] Add printing support for vsockmon devices.
Print Linux 4.12 vsockmon captures:
# modprobe vsockmon
# ip link add type vsockmon
# ip link set vsockmon0 up
# tcpdump -i vsockmon0
16:25:24.987917 VIRTIO 3.1025 > 2.1234 CONNECT, length 76
16:25:24.987963 VIRTIO 2.1234 > 3.1025 CONNECT, length 76
16:25:26.568271 VIRTIO 3.1025 > 2.1234 PAYLOAD, length 82
16:25:26.568512 VIRTIO 2.1234 > 3.1025 CONTROL, length 76
16:25:28.411335 VIRTIO 3.1025 > 2.1234 DISCONNECT, length 76
16:25:28.411628 VIRTIO 2.1234 > 3.1025 DISCONNECT, length 76
For more information about vsock see:
http://wiki.qemu.org/Features/VirtioVsock
---
Makefile.in | 1 +
netdissect.h | 1 +
print-vsock.c | 243 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
print.c | 3 +
4 files changed, 248 insertions(+)
create mode 100644 print-vsock.c
diff --git a/Makefile.in b/Makefile.in
index 0941f0e..a301878 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -226,6 +226,7 @@ LIBNETDISSECT_SRC=\
print-vjc.c \
print-vqp.c \
print-vrrp.c \
+ print-vsock.c \
print-vtp.c \
print-vxlan.c \
print-vxlan-gpe.c \
diff --git a/netdissect.h b/netdissect.h
index 089b040..c89fcf1 100644
--- a/netdissect.h
+++ b/netdissect.h
@@ -444,6 +444,7 @@ extern u_int symantec_if_print IF_PRINTER_ARGS;
extern u_int token_if_print IF_PRINTER_ARGS;
extern u_int usb_linux_48_byte_print IF_PRINTER_ARGS;
extern u_int usb_linux_64_byte_print IF_PRINTER_ARGS;
+extern u_int vsock_print IF_PRINTER_ARGS;
/*
* Structure passed to some printers to allow them to print
diff --git a/print-vsock.c b/print-vsock.c
new file mode 100644
index 0000000..fc5694d
--- /dev/null
+++ b/print-vsock.c
@@ -0,0 +1,243 @@
+/*
+ * Copyright (c) 2016 Gerard Garcia <nouboh@gmail.com>
+ * Copyright (c) 2017 Red Hat, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. The names of the authors may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/* \summary: Linux vsock printer */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <netdissect-stdinc.h>
+#include <stddef.h>
+
+#include "netdissect.h"
+#include "extract.h"
+
+static const char tstr[] = " [|vsock]";
+
+enum af_vsockmon_transport {
+ AF_VSOCK_TRANSPORT_UNKNOWN = 0,
+ AF_VSOCK_TRANSPORT_NO_INFO = 1, /* No transport information */
+ AF_VSOCK_TRANSPORT_VIRTIO = 2, /* Virtio transport header */
+};
+
+static const struct tok vsock_transport[] = {
+ {AF_VSOCK_TRANSPORT_UNKNOWN, "UNKNOWN"},
+ {AF_VSOCK_TRANSPORT_NO_INFO, "NO_INFO"},
+ {AF_VSOCK_TRANSPORT_VIRTIO, "VIRTIO"},
+ { 0, NULL }
+};
+
+enum af_vsockmon_op {
+ AF_VSOCK_OP_UNKNOWN = 0,
+ AF_VSOCK_OP_CONNECT = 1,
+ AF_VSOCK_OP_DISCONNECT = 2,
+ AF_VSOCK_OP_CONTROL = 3,
+ AF_VSOCK_OP_PAYLOAD = 4,
+};
+
+static const struct tok vsock_op[] = {
+ {AF_VSOCK_OP_UNKNOWN, "UNKNOWN"},
+ {AF_VSOCK_OP_CONNECT, "CONNECT"},
+ {AF_VSOCK_OP_DISCONNECT, "DISCONNECT"},
+ {AF_VSOCK_OP_CONTROL, "CONTROL"},
+ {AF_VSOCK_OP_PAYLOAD, "PAYLOAD"},
+ { 0, NULL }
+};
+
+enum virtio_vsock_type {
+ VIRTIO_VSOCK_TYPE_STREAM = 1,
+};
+
+static const struct tok virtio_type[] = {
+ {VIRTIO_VSOCK_TYPE_STREAM, "STREAM"},
+ { 0, NULL }
+};
+
+enum virtio_vsock_op {
+ VIRTIO_VSOCK_OP_INVALID = 0,
+ VIRTIO_VSOCK_OP_REQUEST = 1,
+ VIRTIO_VSOCK_OP_RESPONSE = 2,
+ VIRTIO_VSOCK_OP_RST = 3,
+ VIRTIO_VSOCK_OP_SHUTDOWN = 4,
+ VIRTIO_VSOCK_OP_RW = 5,
+ VIRTIO_VSOCK_OP_CREDIT_UPDATE = 6,
+ VIRTIO_VSOCK_OP_CREDIT_REQUEST = 7,
+};
+
+static const struct tok virtio_op[] = {
+ {VIRTIO_VSOCK_OP_INVALID, "INVALID"},
+ {VIRTIO_VSOCK_OP_REQUEST, "REQUEST"},
+ {VIRTIO_VSOCK_OP_RESPONSE, "RESPONSE"},
+ {VIRTIO_VSOCK_OP_RST, "RST"},
+ {VIRTIO_VSOCK_OP_SHUTDOWN, "SHUTDOWN"},
+ {VIRTIO_VSOCK_OP_RW, "RW"},
+ {VIRTIO_VSOCK_OP_CREDIT_UPDATE, "CREDIT UPDATE"},
+ {VIRTIO_VSOCK_OP_CREDIT_REQUEST, "CREDIT REQUEST"},
+ { 0, NULL }
+};
+
+/* All fields are little-endian */
+
+struct virtio_vsock_hdr {
+ uint64_t src_cid;
+ uint64_t dst_cid;
+ uint32_t src_port;
+ uint32_t dst_port;
+ uint32_t len;
+ uint16_t type; /* enum virtio_vsock_type */
+ uint16_t op; /* enum virtio_vsock_op */
+ uint32_t flags;
+ uint32_t buf_alloc;
+ uint32_t fwd_cnt;
+} UNALIGNED;
+
+struct af_vsockmon_hdr {
+ uint64_t src_cid;
+ uint64_t dst_cid;
+ uint32_t src_port;
+ uint32_t dst_port;
+ uint16_t op; /* enum af_vsockmon_op */
+ uint16_t transport; /* enum af_vosckmon_transport */
+ uint16_t len; /* size of transport header */
+ uint8_t reserved[2];
+};
+
+static void
+vsock_virtio_hdr_print(netdissect_options *ndo, const struct virtio_vsock_hdr *hdr)
+{
+ uint16_t u16_v;
+ uint32_t u32_v;
+
+ u32_v = EXTRACT_LE_32BITS(&hdr->len);
+ ND_PRINT((ndo, "len %u", u32_v));
+
+ u16_v = EXTRACT_LE_16BITS(&hdr->type);
+ ND_PRINT((ndo, ", type %s",
+ tok2str(virtio_type, "Invalid type (%hu)", u16_v)));
+
+ u16_v = EXTRACT_LE_16BITS(&hdr->op);
+ ND_PRINT((ndo, ", op %s",
+ tok2str(virtio_op, "Invalid op (%hu)", u16_v)));
+
+ u32_v = EXTRACT_LE_32BITS(&hdr->flags);
+ ND_PRINT((ndo, ", flags %x", u32_v));
+
+ u32_v = EXTRACT_LE_32BITS(&hdr->buf_alloc);
+ ND_PRINT((ndo, ", buf_alloc %u", u32_v));
+
+ u32_v = EXTRACT_LE_32BITS(&hdr->fwd_cnt);
+ ND_PRINT((ndo, ", fwd_cnt %u", u32_v));
+}
+
+static size_t
+vsock_transport_hdr_size(uint16_t transport)
+{
+ switch (transport) {
+ case AF_VSOCK_TRANSPORT_VIRTIO:
+ return sizeof(struct virtio_vsock_hdr);
+ default:
+ return 0;
+ }
+}
+
+static void
+vsock_transport_hdr_print(netdissect_options *ndo, uint16_t transport,
+ const u_char *p, const u_int len)
+{
+ size_t transport_size = vsock_transport_hdr_size(transport);
+ const void *hdr;
+
+ if (len < sizeof(struct af_vsockmon_hdr) + transport_size)
+ return;
+
+ hdr = p + sizeof(struct af_vsockmon_hdr);
+ switch (transport) {
+ case AF_VSOCK_TRANSPORT_VIRTIO:
+ ND_PRINT((ndo, " ("));
+ vsock_virtio_hdr_print(ndo, hdr);
+ ND_PRINT((ndo, ")"));
+ break;
+ default:
+ break;
+ }
+}
+
+static void
+vsock_hdr_print(netdissect_options *ndo, const u_char *p, const u_int len)
+{
+ uint16_t hdr_transport, hdr_op;
+ uint32_t hdr_src_port, hdr_dst_port;
+ uint64_t hdr_src_cid, hdr_dst_cid;
+ size_t total_hdr_size;
+
+ const struct af_vsockmon_hdr *hdr = (struct af_vsockmon_hdr *)p;
+
+ hdr_transport = EXTRACT_LE_16BITS(&hdr->transport);
+ ND_PRINT((ndo, "%s",
+ tok2str(vsock_transport, "Invalid transport (%u)",
+ hdr_transport)));
+
+ /* If verbose level is more than 0 print transport details */
+ if (ndo->ndo_vflag) {
+ vsock_transport_hdr_print(ndo, hdr_transport, p, len);
+ ND_PRINT((ndo, "\n\t"));
+ } else
+ ND_PRINT((ndo, " "));
+
+ hdr_src_cid = EXTRACT_LE_64BITS(&hdr->src_cid);
+ hdr_dst_cid = EXTRACT_LE_64BITS(&hdr->dst_cid);
+ hdr_src_port = EXTRACT_LE_32BITS(&hdr->src_port);
+ hdr_dst_port = EXTRACT_LE_32BITS(&hdr->dst_port);
+ hdr_op = EXTRACT_LE_16BITS(&hdr->op);
+ ND_PRINT((ndo, "%lu.%hu > %lu.%hu %s, length %u",
+ hdr_src_cid, hdr_src_port,
+ hdr_dst_cid, hdr_dst_port,
+ tok2str(vsock_op, " invalid op (%u)", hdr_op),
+ len));
+
+ /* If debug level is more than 1 print payload contents */
+ total_hdr_size = sizeof(struct af_vsockmon_hdr) +
+ vsock_transport_hdr_size(hdr_transport);
+ if (ndo->ndo_vflag > 1 &&
+ hdr_op == AF_VSOCK_OP_PAYLOAD &&
+ len > total_hdr_size) {
+ const u_char *payload = p + total_hdr_size;
+
+ ND_PRINT((ndo, "\n"));
+ print_unknown_data(ndo, payload, "\t", len - total_hdr_size);
+ }
+}
+
+u_int
+vsock_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *cp)
+{
+ u_int len = h->len;
+
+ if (len < sizeof(struct af_vsockmon_hdr))
+ ND_PRINT((ndo, "%s", tstr));
+ else
+ vsock_hdr_print(ndo, cp, len);
+
+ return len;
+}
diff --git a/print.c b/print.c
index c76f344..1945cfd 100644
--- a/print.c
+++ b/print.c
@@ -220,6 +220,9 @@ static const struct printer printers[] = {
#ifdef DLT_PPP_SERIAL
{ ppp_hdlc_if_print, DLT_PPP_SERIAL },
#endif
+#ifdef DLT_VSOCK
+ { vsock_print, DLT_VSOCK },
+#endif
{ NULL, 0 },
};
--
2.13.5

View File

@ -1,12 +0,0 @@
diff --git a/tcpslice-1.2a3/util.c b/tcpslice-1.2a3/util.c
index cebaa5b..cada4c1 100644
--- a/tcpslice-1.2a3/util.c
+++ b/tcpslice-1.2a3/util.c
@@ -27,6 +27,7 @@ static const char rcsid[] =
#include <sys/types.h>
#include <stdio.h>
+#include <stdlib.h>
#if __STDC__
#include <stdarg.h>
#else

View File

@ -1,826 +0,0 @@
diff --git a/netdissect.h b/netdissect.h
index de478be..e180db1 100644
--- a/netdissect.h
+++ b/netdissect.h
@@ -157,6 +157,7 @@ struct netdissect_options {
* LF, CR and SPACE as graphical chars
*/
int ndo_Hflag; /* dissect 802.11s draft mesh standard */
+ const char *ndo_protocol; /* protocol */
int ndo_packet_number; /* print a packet number in the beginning of line */
int ndo_suppress_default_print; /* don't use default_print() for unknown packet types */
int ndo_tstamp_precision; /* requested time stamp precision */
diff --git a/tests/mptcp-fclose.out b/tests/mptcp-fclose.out
index d57c1950..1e28a655 100644
--- a/tests/mptcp-fclose.out
+++ b/tests/mptcp-fclose.out
@@ -1,8 +1,8 @@
ARP, Request who-has 10.2.1.2 tell 10.2.1.1, length 28
ARP, Reply 10.2.1.2 is-at d6:06:3c:4a:35:7a, length 28
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [S], seq 1895673170, win 14600, options [mss 1460,sackOK,TS val 38230 ecr 0,nop,wscale 6,mptcp capable csum {0x9b59be3d695e66a7}], length 0
-IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [S.], seq 2868811558, ack 1895673171, win 14280, options [mss 1460,sackOK,TS val 4294943148 ecr 38230,nop,wscale 6,mptcp capable csum {0xd005b1ab34bad344}], length 0
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp capable csum {0x9b59be3d695e66a7,0xd005b1ab34bad344}], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [S], seq 1895673170, win 14600, options [mss 1460,sackOK,TS val 38230 ecr 0,nop,wscale 6,mptcp capable v0 csum {0x9b59be3d695e66a7}], length 0
+IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [S.], seq 2868811558, ack 1895673171, win 14280, options [mss 1460,sackOK,TS val 4294943148 ecr 38230,nop,wscale 6,mptcp capable v0 csum {0xd005b1ab34bad344}], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp capable v0 csum {0x9b59be3d695e66a7,0xd005b1ab34bad344}], length 0
IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [P.], seq 1:2, ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp dss ack 3386645601 seq 2976985014 subseq 1 len 1 csum 0x9e91], length 1
IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [.], ack 2, win 224, options [nop,nop,TS val 4294943148 ecr 38230,mptcp dss ack 2976985015], length 0
IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [P.], seq 1:2, ack 2, win 224, options [nop,nop,TS val 4294943250 ecr 38230,mptcp dss ack 2976985015 seq 3386645601 subseq 1 len 1 csum 0x54ab], length 1
diff --git a/tests/mptcp.out b/tests/mptcp-v0.out
similarity index 99%
rename from tests/mptcp.out
rename to tests/mptcp-v0.out
index 29bbc5ea..722759d8 100644
--- a/tests/mptcp.out
+++ b/tests/mptcp-v0.out
@@ -1,6 +1,6 @@
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [S], seq 2912457561, win 14600, options [mss 1460,sackOK,TS val 4294943152 ecr 0,nop,wscale 6,mptcp capable csum {0x9c9eabd1e46a33b2}], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [S.], seq 125971326, ack 2912457562, win 14280, options [mss 1460,sackOK,TS val 4294943467 ecr 4294943152,nop,wscale 5,mptcp capable csum {0x967d2770b6960552}], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943152 ecr 4294943467,mptcp capable csum {0x9c9eabd1e46a33b2,0x967d2770b6960552}], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [S], seq 2912457561, win 14600, options [mss 1460,sackOK,TS val 4294943152 ecr 0,nop,wscale 6,mptcp capable v0 csum {0x9c9eabd1e46a33b2}], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [S.], seq 125971326, ack 2912457562, win 14280, options [mss 1460,sackOK,TS val 4294943467 ecr 4294943152,nop,wscale 5,mptcp capable v0 csum {0x967d2770b6960552}], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943152 ecr 4294943467,mptcp capable v0 csum {0x9c9eabd1e46a33b2,0x967d2770b6960552}], length 0
IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1:42, ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943152,mptcp add-addr id 1 10.1.2.2,mptcp dss ack 3576348362 seq 3518592144 subseq 1 len 41 csum 0x82f], length 41
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185], length 0
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1:42, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185 seq 3576348362 subseq 1 len 41 csum 0x45c9], length 41
diff --git a/tests/mptcp.pcap b/tests/mptcp-v0.pcap
similarity index 100%
rename from tests/mptcp.pcap
rename to tests/mptcp-v0.pcap
diff --git a/tests/TESTLIST b/tests/TESTLIST
index eb3052a..af5cd1d 100644
--- a/tests/TESTLIST
+++ b/tests/TESTLIST
@@ -181,7 +181,7 @@ msnlb msnlb.pcap msnlb.out
msnlb2 msnlb2.pcap msnlb2.out
# MPTCP tests
-mptcp mptcp.pcap mptcp.out
+mptcp-v0 mptcp-v0.pcap mptcp-v0.out
mptcp-fclose mptcp-fclose.pcap mptcp-fclose.out
# TFO tests
tfo tfo-5c1fa7f9ae91.pcap tfo.out
diff --git a/tests/mptcp-v0.out b/tests/mptcp-v0.out
index 15d5887..8f99b04 100644
--- a/tests/mptcp-v0.out
+++ b/tests/mptcp-v0.out
@@ -1,7 +1,7 @@
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [S], seq 2912457561, win 14600, options [mss 1460,sackOK,TS val 4294943152 ecr 0,nop,wscale 6,mptcp capable v0 csum {0x9c9eabd1e46a33b2}], length 0
IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [S.], seq 125971326, ack 2912457562, win 14280, options [mss 1460,sackOK,TS val 4294943467 ecr 4294943152,nop,wscale 5,mptcp capable v0 csum {0x967d2770b6960552}], length 0
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943152 ecr 4294943467,mptcp capable v0 csum {0x9c9eabd1e46a33b2,0x967d2770b6960552}], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1:42, ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943152,mptcp add-addr id 1 10.1.2.2,mptcp dss ack 3576348362 seq 3518592144 subseq 1 len 41 csum 0x82f], length 41
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1:42, ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943152,mptcp add-addr v0-ip4 id 1 10.1.2.2,mptcp dss ack 3576348362 seq 3518592144 subseq 1 len 41 csum 0x82f], length 41
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185], length 0
IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1:42, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185 seq 3576348362 subseq 1 len 41 csum 0x45c9], length 41
IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 42, win 447, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp dss ack 3576348403], length 0
diff --git a/print-mptcp.c b/print-mptcp.c
index 392791e..a7282d0 100644
--- a/print-mptcp.c
+++ b/print-mptcp.c
@@ -72,6 +72,7 @@ struct mp_capable {
uint8_t flags;
uint8_t sender_key[8];
uint8_t receiver_key[8];
+ uint8_t data_len[2];
};
#define MP_CAPABLE_OPT_VERSION(sub_ver) (((sub_ver) >> 0) & 0xF)
@@ -113,25 +114,41 @@ struct mp_dss {
#define MP_DSS_a 0x02
#define MP_DSS_A 0x01
+static const struct tok mptcp_addr_subecho_bits[] = {
+ { 0x6, "v0-ip6" },
+ { 0x4, "v0-ip4" },
+ { 0x1, "v1-echo" },
+ { 0x0, "v1" },
+ { 0, NULL }
+};
+
struct mp_add_addr {
uint8_t kind;
uint8_t len;
- uint8_t sub_ipver;
+ uint8_t sub_echo;
uint8_t addr_id;
union {
struct {
uint8_t addr[4];
uint8_t port[2];
+ uint8_t mac[8];
} v4;
+ struct {
+ uint8_t addr[4];
+ uint8_t mac[8];
+ } v4np;
struct {
uint8_t addr[16];
uint8_t port[2];
+ uint8_t mac[8];
} v6;
+ struct {
+ uint8_t addr[16];
+ uint8_t mac[8];
+ } v6np;
} u;
};
-#define MP_ADD_ADDR_IPVER(sub_ipver) (((sub_ipver) >> 0) & 0xF)
-
struct mp_remove_addr {
uint8_t kind;
uint8_t len;
@@ -177,22 +194,37 @@ mp_capable_print(netdissect_options *ndo,
const u_char *opt, u_int opt_len, u_char flags)
{
const struct mp_capable *mpc = (const struct mp_capable *) opt;
+ uint8_t csum_enabled;
- if (!(opt_len == 12 && (flags & TH_SYN)) &&
- !(opt_len == 20 && (flags & (TH_SYN | TH_ACK)) == TH_ACK))
+ if (!((opt_len == 12 || opt_len == 4) && flags & TH_SYN) &&
+ !((opt_len == 20 || opt_len == 22 || opt_len ==24) && (flags & (TH_SYN | TH_ACK)) ==
+ TH_ACK))
return 0;
- if (MP_CAPABLE_OPT_VERSION(mpc->sub_ver) != 0) {
- ND_PRINT((ndo, " Unknown Version (%d)", MP_CAPABLE_OPT_VERSION(mpc->sub_ver)));
- return 1;
+ switch (MP_CAPABLE_OPT_VERSION(mpc->sub_ver)) {
+ case 0: /* fall through */
+ case 1:
+ ND_PRINT((ndo, " v%d", MP_CAPABLE_OPT_VERSION(mpc->sub_ver)));
+ break;
+ default:
+ ND_PRINT((ndo, " Unknown Version (%d)",
+ MP_CAPABLE_OPT_VERSION(mpc->sub_ver)));
+ return 1;
}
- if (mpc->flags & MP_CAPABLE_C)
+ csum_enabled = mpc->flags & MP_CAPABLE_C;
+ if (csum_enabled)
ND_PRINT((ndo, " csum"));
- ND_PRINT((ndo, " {0x%" PRIx64, EXTRACT_64BITS(mpc->sender_key)));
- if (opt_len == 20) /* ACK */
- ND_PRINT((ndo, ",0x%" PRIx64, EXTRACT_64BITS(mpc->receiver_key)));
- ND_PRINT((ndo, "}"));
+ if (opt_len == 12 || opt_len >= 20) {
+ ND_PRINT((ndo, " {0x%" PRIx64, EXTRACT_64BITS(mpc->sender_key)));
+ if (opt_len >= 20) /* ACK */
+ ND_PRINT((ndo, ",0x%" PRIx64, EXTRACT_64BITS(mpc->receiver_key)));
+
+ /* RFC 8684 Section 3.1 */
+ if ((opt_len == 22 && !csum_enabled) || opt_len == 24)
+ ND_PRINT((ndo, ",data_len=%u", EXTRACT_16BITS(mpc->data_len)));
+ ND_PRINT((ndo, "}"));
+ }
return 1;
}
@@ -330,26 +362,33 @@ add_addr_print(netdissect_options *ndo,
const u_char *opt, u_int opt_len, u_char flags _U_)
{
const struct mp_add_addr *add_addr = (const struct mp_add_addr *) opt;
- u_int ipver = MP_ADD_ADDR_IPVER(add_addr->sub_ipver);
- if (!((opt_len == 8 || opt_len == 10) && ipver == 4) &&
- !((opt_len == 20 || opt_len == 22) && ipver == 6))
+ if (!(opt_len == 8 || opt_len == 10 || opt_len == 16 || opt_len == 18 ||
+ opt_len == 20 || opt_len == 22 || opt_len == 28 || opt_len == 30))
return 0;
+ ND_PRINT((ndo, " %s",
+ tok2str(mptcp_addr_subecho_bits, "[bad version/echo]",
+ EXTRACT_8BITS(&add_addr->sub_echo) & 0xF)));
ND_PRINT((ndo, " id %u", add_addr->addr_id));
- switch (ipver) {
- case 4:
+ if (opt_len == 8 || opt_len == 10 || opt_len == 16 || opt_len == 18) {
ND_PRINT((ndo, " %s", ipaddr_string(ndo, add_addr->u.v4.addr)));
- if (opt_len == 10)
+ if (opt_len == 10 || opt_len == 18)
ND_PRINT((ndo, ":%u", EXTRACT_16BITS(add_addr->u.v4.port)));
- break;
- case 6:
+ if (opt_len == 16)
+ ND_PRINT((ndo, " hmac 0x%" PRIx64, EXTRACT_64BITS(add_addr->u.v4np.mac)));
+ if (opt_len == 18)
+ ND_PRINT((ndo, " hmac 0x%" PRIx64, EXTRACT_64BITS(add_addr->u.v4.mac)));
+ }
+
+ if (opt_len == 20 || opt_len == 22 || opt_len == 28 || opt_len == 30) {
ND_PRINT((ndo, " %s", ip6addr_string(ndo, add_addr->u.v6.addr)));
- if (opt_len == 22)
+ if (opt_len == 22 || opt_len == 30)
ND_PRINT((ndo, ":%u", EXTRACT_16BITS(add_addr->u.v6.port)));
- break;
- default:
- return 0;
+ if (opt_len == 28)
+ ND_PRINT((ndo, " hmac 0x%" PRIx64, EXTRACT_8BITS(add_addr->u.v6np.mac)));
+ if (opt_len == 30)
+ ND_PRINT((ndo, " hmac 0x%" PRIx64, EXTRACT_8BITS(add_addr->u.v6.mac)));
}
return 1;
@@ -367,8 +406,10 @@ remove_addr_print(netdissect_options *ndo,
opt_len -= 3;
ND_PRINT((ndo, " id"));
- while (opt_len--)
- ND_PRINT((ndo, " %u", *addr_id++));
+ while (opt_len--) {
+ ND_PRINT((ndo, " %u", EXTRACT_8BITS(addr_id)));
+ addr_id++;
+ }
return 1;
}
@@ -435,12 +476,20 @@ mptcp_print(netdissect_options *ndo,
const struct mptcp_option *opt;
u_int subtype;
+ ndo->ndo_protocol = "mptcp";
if (len < 3)
return 0;
opt = (const struct mptcp_option *) cp;
+ //ND_TCHECK_SIZE(opt);
subtype = min(MPTCP_OPT_SUBTYPE(opt->sub_etc), MPTCP_SUB_FCLOSE + 1);
+ ND_PRINT((ndo, " %u", len));
+
ND_PRINT((ndo, " %s", mptcp_options[subtype].name));
return mptcp_options[subtype].print(ndo, cp, len, flags);
+
+trunc:
+ nd_print_trunc(ndo);
+ return 0;
}
diff --git a/tests/mptcp-fclose.out b/tests/mptcp-fclose.out
index a9cb7e4..dc6a1b7 100644
--- a/tests/mptcp-fclose.out
+++ b/tests/mptcp-fclose.out
@@ -1,11 +1,11 @@
ARP, Request who-has 10.2.1.2 tell 10.2.1.1, length 28
ARP, Reply 10.2.1.2 is-at d6:06:3c:4a:35:7a, length 28
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [S], seq 1895673170, win 14600, options [mss 1460,sackOK,TS val 38230 ecr 0,nop,wscale 6,mptcp capable v0 csum {0x9b59be3d695e66a7}], length 0
-IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [S.], seq 2868811558, ack 1895673171, win 14280, options [mss 1460,sackOK,TS val 4294943148 ecr 38230,nop,wscale 6,mptcp capable v0 csum {0xd005b1ab34bad344}], length 0
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp capable v0 csum {0x9b59be3d695e66a7,0xd005b1ab34bad344}], length 0
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [P.], seq 1:2, ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp dss ack 3386645601 seq 2976985014 subseq 1 len 1 csum 0x9e91], length 1
-IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [.], ack 2, win 224, options [nop,nop,TS val 4294943148 ecr 38230,mptcp dss ack 2976985015], length 0
-IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [P.], seq 1:2, ack 2, win 224, options [nop,nop,TS val 4294943250 ecr 38230,mptcp dss ack 2976985015 seq 3386645601 subseq 1 len 1 csum 0x54ab], length 1
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 2, win 229, options [nop,nop,TS val 38334 ecr 4294943250,mptcp dss ack 3386645602], length 0
-IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 2, win 229, options [nop,nop,TS val 38734 ecr 4294943250,mptcp fast-close key 0xd005b1ab34bad344], length 0
-IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [R.], seq 2, ack 2, win 224, options [nop,nop,TS val 4294943650 ecr 38734,mptcp dss ack 2976985015], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [S], seq 1895673170, win 14600, options [mss 1460,sackOK,TS val 38230 ecr 0,nop,wscale 6,mptcp 12 capable v0 csum {0x9b59be3d695e66a7}], length 0
+IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [S.], seq 2868811558, ack 1895673171, win 14280, options [mss 1460,sackOK,TS val 4294943148 ecr 38230,nop,wscale 6,mptcp 12 capable v0 csum {0xd005b1ab34bad344}], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp 20 capable v0 csum {0x9b59be3d695e66a7,0xd005b1ab34bad344}], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [P.], seq 1:2, ack 1, win 229, options [nop,nop,TS val 38230 ecr 4294943148,mptcp 20 dss ack 3386645601 seq 2976985014 subseq 1 len 1 csum 0x9e91], length 1
+IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [.], ack 2, win 224, options [nop,nop,TS val 4294943148 ecr 38230,mptcp 8 dss ack 2976985015], length 0
+IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [P.], seq 1:2, ack 2, win 224, options [nop,nop,TS val 4294943250 ecr 38230,mptcp 20 dss ack 2976985015 seq 3386645601 subseq 1 len 1 csum 0x54ab], length 1
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 2, win 229, options [nop,nop,TS val 38334 ecr 4294943250,mptcp 8 dss ack 3386645602], length 0
+IP 10.1.1.2.37479 > 10.2.1.2.2002: Flags [.], ack 2, win 229, options [nop,nop,TS val 38734 ecr 4294943250,mptcp 12 fast-close key 0xd005b1ab34bad344], length 0
+IP 10.2.1.2.2002 > 10.1.1.2.37479: Flags [R.], seq 2, ack 2, win 224, options [nop,nop,TS val 4294943650 ecr 38734,mptcp 8 dss ack 2976985015], length 0
diff --git a/tests/mptcp-dss-oobr.out b/tests/mptcp-dss-oobr.out
index f432e3c..ec90716 100644
--- a/tests/mptcp-dss-oobr.out
+++ b/tests/mptcp-dss-oobr.out
@@ -1,2 +1,2 @@
IP (tos 0x10, ttl 64, id 39991, offset 0, flags [DF], proto TCP (6), length 60)
- 127.0.0.1.57370 > 127.0.0.1.23: Flags [S], seq 1736820995, win 32792, options [mss 16396,sackOK,TS val 597120308 ecr 0,mptcp dss[bad opt]>
+ 127.0.0.1.57370 > 127.0.0.1.23: Flags [S], seq 1736820995, win 32792, options [mss 16396,sackOK,TS val 597120308 ecr 0,mptcp 3 dss[bad opt]>
diff --git a/tests/mptcp-v0.out b/tests/mptcp-v0.out
index 8f99b04..0ae0923 100644
--- a/tests/mptcp-v0.out
+++ b/tests/mptcp-v0.out
@@ -1,264 +1,264 @@
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [S], seq 2912457561, win 14600, options [mss 1460,sackOK,TS val 4294943152 ecr 0,nop,wscale 6,mptcp capable v0 csum {0x9c9eabd1e46a33b2}], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [S.], seq 125971326, ack 2912457562, win 14280, options [mss 1460,sackOK,TS val 4294943467 ecr 4294943152,nop,wscale 5,mptcp capable v0 csum {0x967d2770b6960552}], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943152 ecr 4294943467,mptcp capable v0 csum {0x9c9eabd1e46a33b2,0x967d2770b6960552}], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1:42, ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943152,mptcp add-addr v0-ip4 id 1 10.1.2.2,mptcp dss ack 3576348362 seq 3518592144 subseq 1 len 41 csum 0x82f], length 41
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1:42, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185 seq 3576348362 subseq 1 len 41 csum 0x45c9], length 41
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 42, win 447, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp dss ack 3576348403], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [S], seq 1863826096, win 14600, options [mss 1460,sackOK,TS val 4294943168 ecr 0,nop,wscale 6,mptcp join id 0 token 0xe47f0142 nonce 0x1b665a18], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [S.], seq 1704897135, ack 1863826097, win 14280, options [mss 1460,sackOK,TS val 4294943474 ecr 4294943168,nop,wscale 5,mptcp join id 1 hmac 0x5ab680c7884af03d nonce 0x33abe9d5], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp join hmac 0xcb7b87f5e5f0502f43b535fb70ef6607df2e6c7a], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 42:890, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp dss ack 3518592185 seq 3576348403 subseq 42 len 848 csum 0x6d11], length 848
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp dss ack 3576348403], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 890, win 500, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp dss ack 3576349251], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1:785, ack 1, win 500, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp dss ack 3576349251 seq 3518592185 subseq 1 len 784 csum 0x5187], length 784
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 785, win 253, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp dss ack 3518592969], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1:25, ack 785, win 253, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp dss ack 3518592969 seq 3576349251 subseq 1 len 24 csum 0xec8a], length 24
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 25, win 500, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp dss ack 3576349275], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 785:937, ack 25, win 500, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp dss ack 3576349275 seq 3518592969 subseq 785 len 152 csum 0x217c], length 152
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 25:169, ack 937, win 258, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp dss ack 3518593121 seq 3576349275 subseq 25 len 144 csum 0x7220], length 144
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 937:1657, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp dss ack 3576349419 seq 3518593121 subseq 937 len 720 csum 0xfb83], length 720
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 890:906, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp dss ack 3518593841 seq 3576349419 subseq 890 len 16 csum 0xc87], length 16
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 906, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp dss ack 3576349435], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 906:954, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp dss ack 3518593841 seq 3576349435 subseq 906 len 48 csum 0x36d0], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 954, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp dss ack 3576349483], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1657:1705, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp dss ack 3576349483 seq 3518593841 subseq 1657 len 48 csum 0xb8f3], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 1705, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp dss ack 3518593889], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 954:1018, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp dss ack 3518593889 seq 3576349483 subseq 954 len 64 csum 0x71f6], length 64
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 1018, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp dss ack 3576349547], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1705:1769, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp dss ack 3576349547 seq 3518593889 subseq 1705 len 64 csum 0x67b9], length 64
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1018:1386, ack 42, win 280, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp dss ack 3518593953 seq 3576349547 subseq 1018 len 368 csum 0x81d2], length 368
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 1386, win 567, options [nop,nop,TS val 4294943474 ecr 4294943175,mptcp dss ack 3576349915], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1769:2089, ack 169, win 567, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp dss ack 3576349915 seq 3518593953 subseq 1769 len 320 csum 0x5fc5], length 320
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2089, win 290, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp dss ack 3518594273], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1386:2026, ack 42, win 290, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp dss ack 3518594273 seq 3576349915 subseq 1386 len 640 csum 0x5af4], length 640
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 2026, win 607, options [nop,nop,TS val 4294943485 ecr 4294943175,mptcp dss ack 3576350555], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2089:2153, ack 169, win 607, options [nop,nop,TS val 4294943485 ecr 4294943175,mptcp dss ack 3576350555 seq 3518594273 subseq 2089 len 64 csum 0x548b], length 64
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2153, win 290, options [nop,nop,TS val 4294943179 ecr 4294943485,mptcp dss ack 3518594337], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2026:2170, ack 42, win 290, options [nop,nop,TS val 4294943301 ecr 4294943485,mptcp dss ack 3518594337 seq 3576350555 subseq 2026 len 144 csum 0x62d7], length 144
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 2170, win 640, options [nop,nop,TS val 4294943610 ecr 4294943301,mptcp dss ack 3576350699], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 42:74, ack 2170, win 640, options [nop,nop,TS val 4294943611 ecr 4294943301,mptcp dss ack 3576350699 seq 3518594337 subseq 42 len 32 csum 0x24cb], length 32
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2170:2298, ack 74, win 290, options [nop,nop,TS val 4294943304 ecr 4294943611,mptcp dss ack 3518594369 seq 3576350699 subseq 2170 len 128 csum 0x33ac], length 128
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 74:122, ack 2298, win 674, options [nop,nop,TS val 4294943611 ecr 4294943304,mptcp dss ack 3576350827 seq 3518594369 subseq 74 len 48 csum 0xf616], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 169:617, ack 2153, win 290, options [nop,nop,TS val 4294943306 ecr 4294943485,mptcp dss ack 3518594417 seq 3576350827 subseq 169 len 448 csum 0xe192], length 448
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 122:234, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943304,mptcp dss ack 3576351275 seq 3518594417 subseq 122 len 112 csum 0xeb29], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 234, win 290, options [nop,nop,TS val 4294943306 ecr 4294943611,mptcp dss ack 3518594529], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 234:346, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943306,mptcp dss ack 3576351275 seq 3518594529 subseq 234 len 112 csum 0x70c0], length 112
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 346:538, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943306,mptcp dss ack 3576351275 seq 3518594641 subseq 346 len 192 csum 0x91c], length 192
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 538, win 296, options [nop,nop,TS val 4294943309 ecr 4294943611,mptcp dss ack 3518594833], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 538:634, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943309,mptcp dss ack 3576351275 seq 3518594833 subseq 538 len 96 csum 0x5851], length 96
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 634:778, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943309,mptcp dss ack 3576351275 seq 3518594929 subseq 634 len 144 csum 0x405a], length 144
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 778, win 301, options [nop,nop,TS val 4294943309 ecr 4294943611,mptcp dss ack 3518595073], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 617, win 707, options [nop,nop,TS val 4294943621 ecr 4294943306,mptcp dss ack 3576351275], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 778:858, ack 2298, win 707, options [nop,nop,TS val 4294943621 ecr 4294943309,mptcp dss ack 3576351275 seq 3518595073 subseq 778 len 80 csum 0x3c7b], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 858, win 301, options [nop,nop,TS val 4294943316 ecr 4294943621,mptcp dss ack 3518595153], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2298:2346, ack 858, win 301, options [nop,nop,TS val 4294943328 ecr 4294943621,mptcp dss ack 3518595153 seq 3576351275 subseq 2298 len 48 csum 0xe0ce], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 858:906, ack 2346, win 707, options [nop,nop,TS val 4294943629 ecr 4294943328,mptcp dss ack 3576351323 seq 3518595153 subseq 858 len 48 csum 0xbe20], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 906, win 301, options [nop,nop,TS val 4294943328 ecr 4294943629,mptcp dss ack 3518595201], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 906:1034, ack 2346, win 707, options [nop,nop,TS val 4294943645 ecr 4294943328,mptcp dss ack 3576351323 seq 3518595201 subseq 906 len 128 csum 0x3d9d], length 128
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1034, win 305, options [nop,nop,TS val 4294943339 ecr 4294943645,mptcp dss ack 3518595329], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2346:2394, ack 1034, win 305, options [nop,nop,TS val 4294943343 ecr 4294943645,mptcp dss ack 3518595329 seq 3576351323 subseq 2346 len 48 csum 0x8505], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1034:1114, ack 2394, win 707, options [nop,nop,TS val 4294943651 ecr 4294943343,mptcp dss ack 3576351371 seq 3518595329 subseq 1034 len 80 csum 0xb3da], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1114, win 305, options [nop,nop,TS val 4294943343 ecr 4294943651,mptcp dss ack 3518595409], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2394:2442, ack 1114, win 305, options [nop,nop,TS val 4294943355 ecr 4294943651,mptcp dss ack 3518595409 seq 3576351371 subseq 2394 len 48 csum 0xd46b], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1114:1194, ack 2442, win 707, options [nop,nop,TS val 4294943663 ecr 4294943355,mptcp dss ack 3576351419 seq 3518595409 subseq 1114 len 80 csum 0xfe3d], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1194, win 305, options [nop,nop,TS val 4294943355 ecr 4294943663,mptcp dss ack 3518595489], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2442:2490, ack 1194, win 305, options [nop,nop,TS val 4294943387 ecr 4294943663,mptcp dss ack 3518595489 seq 3576351419 subseq 2442 len 48 csum 0xd83], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1194:1242, ack 2490, win 707, options [nop,nop,TS val 4294943695 ecr 4294943387,mptcp dss ack 3576351467 seq 3518595489 subseq 1194 len 48 csum 0xad99], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1242, win 305, options [nop,nop,TS val 4294943387 ecr 4294943695,mptcp dss ack 3518595537], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2490:2538, ack 1242, win 305, options [nop,nop,TS val 4294943395 ecr 4294943695,mptcp dss ack 3518595537 seq 3576351467 subseq 2490 len 48 csum 0x3689], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1242:1290, ack 2538, win 707, options [nop,nop,TS val 4294943703 ecr 4294943395,mptcp dss ack 3576351515 seq 3518595537 subseq 1242 len 48 csum 0xf0cf], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1290, win 305, options [nop,nop,TS val 4294943395 ecr 4294943703,mptcp dss ack 3518595585], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2538:2586, ack 1290, win 305, options [nop,nop,TS val 4294943408 ecr 4294943703,mptcp dss ack 3518595585 seq 3576351515 subseq 2538 len 48 csum 0xed5f], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1290:1338, ack 2586, win 707, options [nop,nop,TS val 4294943717 ecr 4294943408,mptcp dss ack 3576351563 seq 3518595585 subseq 1290 len 48 csum 0xf2ec], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1338, win 305, options [nop,nop,TS val 4294943408 ecr 4294943717,mptcp dss ack 3518595633], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2586:2634, ack 1338, win 305, options [nop,nop,TS val 4294943417 ecr 4294943717,mptcp dss ack 3518595633 seq 3576351563 subseq 2586 len 48 csum 0x3678], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1338:1386, ack 2634, win 707, options [nop,nop,TS val 4294943726 ecr 4294943417,mptcp dss ack 3576351611 seq 3518595633 subseq 1338 len 48 csum 0xc9a1], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1386, win 305, options [nop,nop,TS val 4294943417 ecr 4294943726,mptcp dss ack 3518595681], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2634:2682, ack 1386, win 305, options [nop,nop,TS val 4294943424 ecr 4294943726,mptcp dss ack 3518595681 seq 3576351611 subseq 2634 len 48 csum 0x54c7], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1386:1434, ack 2682, win 707, options [nop,nop,TS val 4294943733 ecr 4294943424,mptcp dss ack 3576351659 seq 3518595681 subseq 1386 len 48 csum 0xf5e9], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1434, win 305, options [nop,nop,TS val 4294943424 ecr 4294943733,mptcp dss ack 3518595729], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2682:2730, ack 1434, win 305, options [nop,nop,TS val 4294943435 ecr 4294943733,mptcp dss ack 3518595729 seq 3576351659 subseq 2682 len 48 csum 0xc90a], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1434:1482, ack 2730, win 707, options [nop,nop,TS val 4294943743 ecr 4294943435,mptcp dss ack 3576351707 seq 3518595729 subseq 1434 len 48 csum 0x4e7d], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1482, win 305, options [nop,nop,TS val 4294943435 ecr 4294943743,mptcp dss ack 3518595777], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2730:2778, ack 1482, win 305, options [nop,nop,TS val 4294943440 ecr 4294943743,mptcp dss ack 3518595777 seq 3576351707 subseq 2730 len 48 csum 0x7b3d], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1482:1530, ack 2778, win 707, options [nop,nop,TS val 4294943749 ecr 4294943440,mptcp dss ack 3576351755 seq 3518595777 subseq 1482 len 48 csum 0x83e2], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1530, win 305, options [nop,nop,TS val 4294943440 ecr 4294943749,mptcp dss ack 3518595825], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2778:2826, ack 1530, win 305, options [nop,nop,TS val 4294943453 ecr 4294943749,mptcp dss ack 3518595825 seq 3576351755 subseq 2778 len 48 csum 0x6e36], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1530:1578, ack 2826, win 707, options [nop,nop,TS val 4294943762 ecr 4294943453,mptcp dss ack 3576351803 seq 3518595825 subseq 1530 len 48 csum 0xb348], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1578, win 305, options [nop,nop,TS val 4294943453 ecr 4294943762,mptcp dss ack 3518595873], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2826:2874, ack 1578, win 305, options [nop,nop,TS val 4294943458 ecr 4294943762,mptcp dss ack 3518595873 seq 3576351803 subseq 2826 len 48 csum 0x1991], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1578:1626, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp dss ack 3576351851 seq 3518595873 subseq 1578 len 48 csum 0xb4f], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1626, win 305, options [nop,nop,TS val 4294943458 ecr 4294943766,mptcp dss ack 3518595921], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1626:1722, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp dss ack 3576351851 seq 3518595921 subseq 1626 len 96 csum 0x9334], length 96
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1722:1834, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp dss ack 3576351851 seq 3518596017 subseq 1722 len 112 csum 0xdc3f], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1722, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596017], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1834, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596129], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1834:1946, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596129 subseq 1834 len 112 csum 0x349e], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1946, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596241], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1946:2042, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596241 subseq 1946 len 96 csum 0xd5fe], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2042, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596337], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2042:2154, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596337 subseq 2042 len 112 csum 0x2c14], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2154, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596449], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2154:2266, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596449 subseq 2154 len 112 csum 0xe76e], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2266, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596561], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2266:2346, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596561 subseq 2266 len 80 csum 0x839a], length 80
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2346:2442, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596641 subseq 2346 len 96 csum 0xc1ee], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2346, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596641], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2442, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596737], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2442:2506, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596737 subseq 2442 len 64 csum 0xe67], length 64
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2506:2554, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596801 subseq 2506 len 48 csum 0x1474], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2506, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596801], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2554, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596849], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2554:2650, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596849 subseq 2554 len 96 csum 0x5dc1], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2650, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518596945], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2650:2762, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518596945 subseq 2650 len 112 csum 0xa20c], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2762, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597057], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2762:2874, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597057 subseq 2762 len 112 csum 0x643c], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2874, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597169], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2874:2970, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597169 subseq 2874 len 96 csum 0x5244], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2970, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597265], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2970:3082, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597265 subseq 2970 len 112 csum 0x295a], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3082, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597377], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3082:3194, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597377 subseq 3082 len 112 csum 0x510b], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3194, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597489], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3194:3274, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597489 subseq 3194 len 80 csum 0xc29a], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3274, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597569], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3274:3370, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597569 subseq 3274 len 96 csum 0x22a5], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3370, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597665], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3370:3434, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597665 subseq 3370 len 64 csum 0xe385], length 64
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3434, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597729], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3434:3482, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597729 subseq 3434 len 48 csum 0xd6b0], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3482, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597777], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3482:3562, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597777 subseq 3482 len 80 csum 0xec9d], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3562, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597857], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3562:3658, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597857 subseq 3562 len 96 csum 0x1eee], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3658, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518597953], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3658:3738, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518597953 subseq 3658 len 80 csum 0xbc5e], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3738, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598033], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3738:3834, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598033 subseq 3738 len 96 csum 0xe], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3834, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598129], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3834:3930, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598129 subseq 3834 len 96 csum 0xd42], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3930, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598225], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3930:4042, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598225 subseq 3930 len 112 csum 0xb006], length 112
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4042, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598337], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4042:4122, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598337 subseq 4042 len 80 csum 0x986f], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4122, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598417], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4122:4218, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598417 subseq 4122 len 96 csum 0x43ff], length 96
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4218, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598513], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4218:4266, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598513 subseq 4218 len 48 csum 0x8666], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4266, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598561], length 0
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4266:4346, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp dss ack 3576351851 seq 3518598561 subseq 4266 len 80 csum 0x9239], length 80
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4346, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp dss ack 3518598641], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2874:2922, ack 4346, win 305, options [nop,nop,TS val 4294943484 ecr 4294943766,mptcp dss ack 3518598641 seq 3576351851 subseq 2874 len 48 csum 0xd397], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4346:4394, ack 2922, win 707, options [nop,nop,TS val 4294943793 ecr 4294943484,mptcp dss ack 3576351899 seq 3518598641 subseq 4346 len 48 csum 0xeeaa], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4394, win 305, options [nop,nop,TS val 4294943484 ecr 4294943793,mptcp dss ack 3518598689], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2922:2970, ack 4394, win 305, options [nop,nop,TS val 4294943496 ecr 4294943793,mptcp dss ack 3518598689 seq 3576351899 subseq 2922 len 48 csum 0x48a7], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4394:4442, ack 2970, win 707, options [nop,nop,TS val 4294943805 ecr 4294943496,mptcp dss ack 3576351947 seq 3518598689 subseq 4394 len 48 csum 0xc354], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4442, win 305, options [nop,nop,TS val 4294943496 ecr 4294943805,mptcp dss ack 3518598737], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2970:3018, ack 4442, win 305, options [nop,nop,TS val 4294943513 ecr 4294943805,mptcp dss ack 3518598737 seq 3576351947 subseq 2970 len 48 csum 0xf6d], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4442:4490, ack 3018, win 707, options [nop,nop,TS val 4294943822 ecr 4294943513,mptcp dss ack 3576351995 seq 3518598737 subseq 4442 len 48 csum 0xe0e2], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4490, win 305, options [nop,nop,TS val 4294943513 ecr 4294943822,mptcp dss ack 3518598785], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3018:3066, ack 4490, win 305, options [nop,nop,TS val 4294943521 ecr 4294943822,mptcp dss ack 3518598785 seq 3576351995 subseq 3018 len 48 csum 0xf320], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4490:4538, ack 3066, win 707, options [nop,nop,TS val 4294943830 ecr 4294943521,mptcp dss ack 3576352043 seq 3518598785 subseq 4490 len 48 csum 0x9c04], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4538, win 305, options [nop,nop,TS val 4294943521 ecr 4294943830,mptcp dss ack 3518598833], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3066:3114, ack 4538, win 305, options [nop,nop,TS val 4294943525 ecr 4294943830,mptcp dss ack 3518598833 seq 3576352043 subseq 3066 len 48 csum 0x88f6], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4538:4586, ack 3114, win 707, options [nop,nop,TS val 4294943834 ecr 4294943525,mptcp dss ack 3576352091 seq 3518598833 subseq 4538 len 48 csum 0x8612], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4586, win 305, options [nop,nop,TS val 4294943525 ecr 4294943834,mptcp dss ack 3518598881], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3114:3162, ack 4586, win 305, options [nop,nop,TS val 4294943532 ecr 4294943834,mptcp dss ack 3518598881 seq 3576352091 subseq 3114 len 48 csum 0xa14c], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4586:4634, ack 3162, win 707, options [nop,nop,TS val 4294943841 ecr 4294943532,mptcp dss ack 3576352139 seq 3518598881 subseq 4586 len 48 csum 0x7979], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4634, win 305, options [nop,nop,TS val 4294943532 ecr 4294943841,mptcp dss ack 3518598929], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3162:3210, ack 4634, win 305, options [nop,nop,TS val 4294943543 ecr 4294943841,mptcp dss ack 3518598929 seq 3576352139 subseq 3162 len 48 csum 0x7c49], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4634:4682, ack 3210, win 707, options [nop,nop,TS val 4294943851 ecr 4294943543,mptcp dss ack 3576352187 seq 3518598929 subseq 4634 len 48 csum 0x7799], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4682, win 305, options [nop,nop,TS val 4294943543 ecr 4294943851,mptcp dss ack 3518598977], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3210:3258, ack 4682, win 305, options [nop,nop,TS val 4294943549 ecr 4294943851,mptcp dss ack 3518598977 seq 3576352187 subseq 3210 len 48 csum 0x7589], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4682:4730, ack 3258, win 707, options [nop,nop,TS val 4294943858 ecr 4294943549,mptcp dss ack 3576352235 seq 3518598977 subseq 4682 len 48 csum 0x9da3], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4730, win 305, options [nop,nop,TS val 4294943549 ecr 4294943858,mptcp dss ack 3518599025], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3258:3306, ack 4730, win 305, options [nop,nop,TS val 4294943560 ecr 4294943858,mptcp dss ack 3518599025 seq 3576352235 subseq 3258 len 48 csum 0x652], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4730:4778, ack 3306, win 707, options [nop,nop,TS val 4294943869 ecr 4294943560,mptcp dss ack 3576352283 seq 3518599025 subseq 4730 len 48 csum 0xf212], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4778, win 305, options [nop,nop,TS val 4294943560 ecr 4294943869,mptcp dss ack 3518599073], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3306:3354, ack 4778, win 305, options [nop,nop,TS val 4294943572 ecr 4294943869,mptcp dss ack 3518599073 seq 3576352283 subseq 3306 len 48 csum 0x757c], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4778:4826, ack 3354, win 707, options [nop,nop,TS val 4294943881 ecr 4294943572,mptcp dss ack 3576352331 seq 3518599073 subseq 4778 len 48 csum 0x5cf1], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4826, win 305, options [nop,nop,TS val 4294943572 ecr 4294943881,mptcp dss ack 3518599121], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3354:3402, ack 4826, win 305, options [nop,nop,TS val 4294943580 ecr 4294943881,mptcp dss ack 3518599121 seq 3576352331 subseq 3354 len 48 csum 0x363c], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4826:4874, ack 3402, win 707, options [nop,nop,TS val 4294943889 ecr 4294943580,mptcp dss ack 3576352379 seq 3518599121 subseq 4826 len 48 csum 0xdae4], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4874, win 305, options [nop,nop,TS val 4294943580 ecr 4294943889,mptcp dss ack 3518599169], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3402:3450, ack 4874, win 305, options [nop,nop,TS val 4294943589 ecr 4294943889,mptcp dss ack 3518599169 seq 3576352379 subseq 3402 len 48 csum 0x5ded], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4874:4922, ack 3450, win 707, options [nop,nop,TS val 4294943898 ecr 4294943589,mptcp dss ack 3576352427 seq 3518599169 subseq 4874 len 48 csum 0xb977], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4922, win 305, options [nop,nop,TS val 4294943589 ecr 4294943898,mptcp dss ack 3518599217], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3450:3498, ack 4922, win 305, options [nop,nop,TS val 4294943624 ecr 4294943898,mptcp dss ack 3518599217 seq 3576352427 subseq 3450 len 48 csum 0x8425], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4922:4970, ack 3498, win 707, options [nop,nop,TS val 4294943933 ecr 4294943624,mptcp dss ack 3576352475 seq 3518599217 subseq 4922 len 48 csum 0x1a42], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4970, win 305, options [nop,nop,TS val 4294943624 ecr 4294943933,mptcp dss ack 3518599265], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3498:3546, ack 4970, win 305, options [nop,nop,TS val 4294943675 ecr 4294943933,mptcp dss ack 3518599265 seq 3576352475 subseq 3498 len 48 csum 0x37f5], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4970:5018, ack 3546, win 707, options [nop,nop,TS val 4294943983 ecr 4294943675,mptcp dss ack 3576352523 seq 3518599265 subseq 4970 len 48 csum 0xb0f0], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5018, win 305, options [nop,nop,TS val 4294943675 ecr 4294943983,mptcp dss ack 3518599313], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3546:3594, ack 5018, win 305, options [nop,nop,TS val 4294943688 ecr 4294943983,mptcp dss ack 3518599313 seq 3576352523 subseq 3546 len 48 csum 0xd912], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5018:5066, ack 3594, win 707, options [nop,nop,TS val 4294943997 ecr 4294943688,mptcp dss ack 3576352571 seq 3518599313 subseq 5018 len 48 csum 0x5be5], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5066, win 305, options [nop,nop,TS val 4294943688 ecr 4294943997,mptcp dss ack 3518599361], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3594:3642, ack 5066, win 305, options [nop,nop,TS val 4294943703 ecr 4294943997,mptcp dss ack 3518599361 seq 3576352571 subseq 3594 len 48 csum 0x539a], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5066:5114, ack 3642, win 707, options [nop,nop,TS val 4294944011 ecr 4294943703,mptcp dss ack 3576352619 seq 3518599361 subseq 5066 len 48 csum 0x2d9e], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5114, win 305, options [nop,nop,TS val 4294943703 ecr 4294944011,mptcp dss ack 3518599409], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3642:3690, ack 5114, win 305, options [nop,nop,TS val 4294943712 ecr 4294944011,mptcp dss ack 3518599409 seq 3576352619 subseq 3642 len 48 csum 0xbda6], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5114:5162, ack 3690, win 707, options [nop,nop,TS val 4294944021 ecr 4294943712,mptcp dss ack 3576352667 seq 3518599409 subseq 5114 len 48 csum 0x1bc7], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5162, win 305, options [nop,nop,TS val 4294943712 ecr 4294944021,mptcp dss ack 3518599457], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3690:3738, ack 5162, win 305, options [nop,nop,TS val 4294943725 ecr 4294944021,mptcp dss ack 3518599457 seq 3576352667 subseq 3690 len 48 csum 0xad71], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5162:5210, ack 3738, win 707, options [nop,nop,TS val 4294944034 ecr 4294943725,mptcp dss ack 3576352715 seq 3518599457 subseq 5162 len 48 csum 0xf8f7], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5210, win 305, options [nop,nop,TS val 4294943725 ecr 4294944034,mptcp dss ack 3518599505], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3738:3786, ack 5210, win 305, options [nop,nop,TS val 4294943746 ecr 4294944034,mptcp dss ack 3518599505 seq 3576352715 subseq 3738 len 48 csum 0xd16], length 48
-IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5210:5258, ack 3786, win 707, options [nop,nop,TS val 4294944054 ecr 4294943746,mptcp dss ack 3576352763 seq 3518599505 subseq 5210 len 48 csum 0x8122], length 48
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5258, win 305, options [nop,nop,TS val 4294943746 ecr 4294944054,mptcp dss ack 3518599553], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 617, win 707, options [nop,nop,TS val 4294944054 ecr 4294943306,mptcp rem-addr id 0,mptcp dss ack 3576352763], length 0
-IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [R.], seq 3786, ack 5258, win 305, options [nop,nop,TS val 4294943749 ecr 4294944054,mptcp dss ack 3518599553], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2153:2233, ack 617, win 707, options [nop,nop,TS val 4294944054 ecr 4294943306,mptcp dss ack 3576352763 seq 3518599553 subseq 2153 len 80 csum 0xe206], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2233, win 305, options [nop,nop,TS val 4294943749 ecr 4294944054,mptcp dss ack 3518599633], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 617:665, ack 2233, win 305, options [nop,nop,TS val 4294943782 ecr 4294944054,mptcp dss ack 3518599633 seq 3576352763 subseq 617 len 48 csum 0xa135], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 665, win 707, options [nop,nop,TS val 4294944090 ecr 4294943782,mptcp dss ack 3576352811], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2233:2313, ack 665, win 707, options [nop,nop,TS val 4294944090 ecr 4294943782,mptcp dss ack 3576352811 seq 3518599633 subseq 2233 len 80 csum 0x917d], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2313, win 305, options [nop,nop,TS val 4294943782 ecr 4294944090,mptcp dss ack 3518599713], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 665:713, ack 2313, win 305, options [nop,nop,TS val 4294943797 ecr 4294944090,mptcp dss ack 3518599713 seq 3576352811 subseq 665 len 48 csum 0x3789], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2313:2393, ack 713, win 707, options [nop,nop,TS val 4294944106 ecr 4294943797,mptcp dss ack 3576352859 seq 3518599713 subseq 2313 len 80 csum 0x6cf1], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2393, win 305, options [nop,nop,TS val 4294943797 ecr 4294944106,mptcp dss ack 3518599793], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 713:761, ack 2393, win 305, options [nop,nop,TS val 4294943811 ecr 4294944106,mptcp dss ack 3518599793 seq 3576352859 subseq 713 len 48 csum 0xc47b], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2393:2473, ack 761, win 707, options [nop,nop,TS val 4294944119 ecr 4294943811,mptcp dss ack 3576352907 seq 3518599793 subseq 2393 len 80 csum 0x226], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2473, win 305, options [nop,nop,TS val 4294943811 ecr 4294944119,mptcp dss ack 3518599873], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 761:809, ack 2473, win 305, options [nop,nop,TS val 4294943826 ecr 4294944119,mptcp dss ack 3518599873 seq 3576352907 subseq 761 len 48 csum 0x187f], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2473:2553, ack 809, win 707, options [nop,nop,TS val 4294944134 ecr 4294943826,mptcp dss ack 3576352955 seq 3518599873 subseq 2473 len 80 csum 0xe4fe], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2553, win 305, options [nop,nop,TS val 4294943826 ecr 4294944134,mptcp dss ack 3518599953], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 809:857, ack 2553, win 305, options [nop,nop,TS val 4294943840 ecr 4294944134,mptcp dss ack 3518599953 seq 3576352955 subseq 809 len 48 csum 0xf780], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2553:2633, ack 857, win 707, options [nop,nop,TS val 4294944149 ecr 4294943840,mptcp dss ack 3576353003 seq 3518599953 subseq 2553 len 80 csum 0xb0e6], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2633, win 305, options [nop,nop,TS val 4294943841 ecr 4294944149,mptcp dss ack 3518600033], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 857:905, ack 2633, win 305, options [nop,nop,TS val 4294943856 ecr 4294944149,mptcp dss ack 3518600033 seq 3576353003 subseq 857 len 48 csum 0x1272], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2633:2713, ack 905, win 707, options [nop,nop,TS val 4294944164 ecr 4294943856,mptcp dss ack 3576353051 seq 3518600033 subseq 2633 len 80 csum 0x2521], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2713, win 305, options [nop,nop,TS val 4294943856 ecr 4294944164,mptcp dss ack 3518600113], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 905:953, ack 2713, win 305, options [nop,nop,TS val 4294943871 ecr 4294944164,mptcp dss ack 3518600113 seq 3576353051 subseq 905 len 48 csum 0xeb71], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2713:2793, ack 953, win 707, options [nop,nop,TS val 4294944179 ecr 4294943871,mptcp dss ack 3576353099 seq 3518600113 subseq 2713 len 80 csum 0xdd08], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2793, win 305, options [nop,nop,TS val 4294943871 ecr 4294944179,mptcp dss ack 3518600193], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 953:1001, ack 2793, win 305, options [nop,nop,TS val 4294943887 ecr 4294944179,mptcp dss ack 3518600193 seq 3576353099 subseq 953 len 48 csum 0xf047], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2793:2873, ack 1001, win 707, options [nop,nop,TS val 4294944195 ecr 4294943887,mptcp dss ack 3576353147 seq 3518600193 subseq 2793 len 80 csum 0x3967], length 80
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2873, win 305, options [nop,nop,TS val 4294943887 ecr 4294944195,mptcp dss ack 3518600273], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1001:1049, ack 2873, win 305, options [nop,nop,TS val 4294944018 ecr 4294944195,mptcp dss ack 3518600273 seq 3576353147 subseq 1001 len 48 csum 0xa43d], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2873:2921, ack 1049, win 707, options [nop,nop,TS val 4294944326 ecr 4294944018,mptcp dss ack 3576353195 seq 3518600273 subseq 2873 len 48 csum 0x1c25], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2921, win 305, options [nop,nop,TS val 4294944018 ecr 4294944326,mptcp dss ack 3518600321], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1049:1097, ack 2921, win 305, options [nop,nop,TS val 4294944032 ecr 4294944326,mptcp dss ack 3518600321 seq 3576353195 subseq 1049 len 48 csum 0xebdc], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2921:2969, ack 1097, win 707, options [nop,nop,TS val 4294944341 ecr 4294944032,mptcp dss ack 3576353243 seq 3518600321 subseq 2921 len 48 csum 0xf7df], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2969, win 305, options [nop,nop,TS val 4294944032 ecr 4294944341,mptcp dss ack 3518600369], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1097:1145, ack 2969, win 305, options [nop,nop,TS val 4294944037 ecr 4294944341,mptcp dss ack 3518600369 seq 3576353243 subseq 1097 len 48 csum 0xb656], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2969:3017, ack 1145, win 707, options [nop,nop,TS val 4294944346 ecr 4294944037,mptcp dss ack 3576353291 seq 3518600369 subseq 2969 len 48 csum 0x73fb], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3017, win 305, options [nop,nop,TS val 4294944037 ecr 4294944346,mptcp dss ack 3518600417], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1145:1193, ack 3017, win 305, options [nop,nop,TS val 4294944056 ecr 4294944346,mptcp dss ack 3518600417 seq 3576353291 subseq 1145 len 48 csum 0x7813], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3017:3065, ack 1193, win 707, options [nop,nop,TS val 4294944365 ecr 4294944056,mptcp dss ack 3576353339 seq 3518600417 subseq 3017 len 48 csum 0xa7ff], length 48
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3065, win 305, options [nop,nop,TS val 4294944056 ecr 4294944365,mptcp dss ack 3518600465], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1193:1241, ack 3065, win 305, options [nop,nop,TS val 4294944064 ecr 4294944365,mptcp dss ack 3518600465 seq 3576353339 subseq 1193 len 48 csum 0xd43c], length 48
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3065:3241, ack 1241, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp dss ack 3576353387 seq 3518600465 subseq 3065 len 176 csum 0x49a0], length 176
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3241:3305, ack 1241, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp dss ack 3576353387 seq 3518600641 subseq 3241 len 64 csum 0x2541], length 64
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3241, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp dss ack 3518600641], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp dss ack 3518600705], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1241:1273, ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp dss ack 3518600705 seq 3576353387 subseq 1241 len 32 csum 0xec34], length 32
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1273:1337, ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp dss ack 3518600705 seq 3576353419 subseq 1273 len 64 csum 0x3f93], length 64
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1337, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp dss ack 3576353483], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp dss fin ack 3518600705 seq 3576353483 subseq 0 len 1 csum 0xa51], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1337, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp dss fin ack 3576353484 seq 3518600705 subseq 0 len 1 csum 0xbe46], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [F.], seq 1337, ack 3305, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp dss ack 3518600705], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp dss ack 3518600706], length 0
-IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [F.], seq 3305, ack 1338, win 707, options [nop,nop,TS val 4294944372 ecr 4294944066,mptcp dss ack 3576353484], length 0
-IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3306, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp dss ack 3518600706], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [S], seq 2912457561, win 14600, options [mss 1460,sackOK,TS val 4294943152 ecr 0,nop,wscale 6,mptcp 12 capable v0 csum {0x9c9eabd1e46a33b2}], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [S.], seq 125971326, ack 2912457562, win 14280, options [mss 1460,sackOK,TS val 4294943467 ecr 4294943152,nop,wscale 5,mptcp 12 capable v0 csum {0x967d2770b6960552}], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943152 ecr 4294943467,mptcp 20 capable v0 csum {0x9c9eabd1e46a33b2,0x967d2770b6960552}], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1:42, ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943152,mptcp 8 add-addr v0-ip4 id 1 10.1.2.2,mptcp 20 dss ack 3576348362 seq 3518592144 subseq 1 len 41 csum 0x82f], length 41
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp 8 dss ack 3518592185], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1:42, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp 20 dss ack 3518592185 seq 3576348362 subseq 1 len 41 csum 0x45c9], length 41
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 42, win 447, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp 8 dss ack 3576348403], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [S], seq 1863826096, win 14600, options [mss 1460,sackOK,TS val 4294943168 ecr 0,nop,wscale 6,mptcp 12 join id 0 token 0xe47f0142 nonce 0x1b665a18], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [S.], seq 1704897135, ack 1863826097, win 14280, options [mss 1460,sackOK,TS val 4294943474 ecr 4294943168,nop,wscale 5,mptcp 16 join id 1 hmac 0x5ab680c7884af03d nonce 0x33abe9d5], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp 24 join hmac 0xcb7b87f5e5f0502f43b535fb70ef6607df2e6c7a], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 42:890, ack 42, win 229, options [nop,nop,TS val 4294943168 ecr 4294943474,mptcp 20 dss ack 3518592185 seq 3576348403 subseq 42 len 848 csum 0x6d11], length 848
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1, win 447, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp 8 dss ack 3576348403], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 890, win 500, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp 8 dss ack 3576349251], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1:785, ack 1, win 500, options [nop,nop,TS val 4294943474 ecr 4294943168,mptcp 20 dss ack 3576349251 seq 3518592185 subseq 1 len 784 csum 0x5187], length 784
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 785, win 253, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp 8 dss ack 3518592969], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1:25, ack 785, win 253, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp 20 dss ack 3518592969 seq 3576349251 subseq 1 len 24 csum 0xec8a], length 24
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 25, win 500, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp 8 dss ack 3576349275], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 785:937, ack 25, win 500, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp 20 dss ack 3576349275 seq 3518592969 subseq 785 len 152 csum 0x217c], length 152
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 25:169, ack 937, win 258, options [nop,nop,TS val 4294943170 ecr 4294943474,mptcp 20 dss ack 3518593121 seq 3576349275 subseq 25 len 144 csum 0x7220], length 144
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 937:1657, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp 20 dss ack 3576349419 seq 3518593121 subseq 937 len 720 csum 0xfb83], length 720
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 890:906, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp 20 dss ack 3518593841 seq 3576349419 subseq 890 len 16 csum 0xc87], length 16
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 906, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp 8 dss ack 3576349435], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 906:954, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp 20 dss ack 3518593841 seq 3576349435 subseq 906 len 48 csum 0x36d0], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 954, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp 8 dss ack 3576349483], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1657:1705, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943170,mptcp 20 dss ack 3576349483 seq 3518593841 subseq 1657 len 48 csum 0xb8f3], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 1705, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp 8 dss ack 3518593889], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 954:1018, ack 42, win 280, options [nop,nop,TS val 4294943172 ecr 4294943474,mptcp 20 dss ack 3518593889 seq 3576349483 subseq 954 len 64 csum 0x71f6], length 64
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 1018, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp 8 dss ack 3576349547], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1705:1769, ack 169, win 533, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp 20 dss ack 3576349547 seq 3518593889 subseq 1705 len 64 csum 0x67b9], length 64
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1018:1386, ack 42, win 280, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp 20 dss ack 3518593953 seq 3576349547 subseq 1018 len 368 csum 0x81d2], length 368
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 1386, win 567, options [nop,nop,TS val 4294943474 ecr 4294943175,mptcp 8 dss ack 3576349915], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 1769:2089, ack 169, win 567, options [nop,nop,TS val 4294943474 ecr 4294943172,mptcp 20 dss ack 3576349915 seq 3518593953 subseq 1769 len 320 csum 0x5fc5], length 320
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2089, win 290, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp 8 dss ack 3518594273], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 1386:2026, ack 42, win 290, options [nop,nop,TS val 4294943175 ecr 4294943474,mptcp 20 dss ack 3518594273 seq 3576349915 subseq 1386 len 640 csum 0x5af4], length 640
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 2026, win 607, options [nop,nop,TS val 4294943485 ecr 4294943175,mptcp 8 dss ack 3576350555], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2089:2153, ack 169, win 607, options [nop,nop,TS val 4294943485 ecr 4294943175,mptcp 20 dss ack 3576350555 seq 3518594273 subseq 2089 len 64 csum 0x548b], length 64
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2153, win 290, options [nop,nop,TS val 4294943179 ecr 4294943485,mptcp 8 dss ack 3518594337], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2026:2170, ack 42, win 290, options [nop,nop,TS val 4294943301 ecr 4294943485,mptcp 20 dss ack 3518594337 seq 3576350555 subseq 2026 len 144 csum 0x62d7], length 144
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [.], ack 2170, win 640, options [nop,nop,TS val 4294943610 ecr 4294943301,mptcp 8 dss ack 3576350699], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 42:74, ack 2170, win 640, options [nop,nop,TS val 4294943611 ecr 4294943301,mptcp 20 dss ack 3576350699 seq 3518594337 subseq 42 len 32 csum 0x24cb], length 32
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2170:2298, ack 74, win 290, options [nop,nop,TS val 4294943304 ecr 4294943611,mptcp 20 dss ack 3518594369 seq 3576350699 subseq 2170 len 128 csum 0x33ac], length 128
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 74:122, ack 2298, win 674, options [nop,nop,TS val 4294943611 ecr 4294943304,mptcp 20 dss ack 3576350827 seq 3518594369 subseq 74 len 48 csum 0xf616], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 169:617, ack 2153, win 290, options [nop,nop,TS val 4294943306 ecr 4294943485,mptcp 20 dss ack 3518594417 seq 3576350827 subseq 169 len 448 csum 0xe192], length 448
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 122:234, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943304,mptcp 20 dss ack 3576351275 seq 3518594417 subseq 122 len 112 csum 0xeb29], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 234, win 290, options [nop,nop,TS val 4294943306 ecr 4294943611,mptcp 8 dss ack 3518594529], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 234:346, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943306,mptcp 20 dss ack 3576351275 seq 3518594529 subseq 234 len 112 csum 0x70c0], length 112
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 346:538, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943306,mptcp 20 dss ack 3576351275 seq 3518594641 subseq 346 len 192 csum 0x91c], length 192
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 538, win 296, options [nop,nop,TS val 4294943309 ecr 4294943611,mptcp 8 dss ack 3518594833], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 538:634, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943309,mptcp 20 dss ack 3576351275 seq 3518594833 subseq 538 len 96 csum 0x5851], length 96
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 634:778, ack 2298, win 707, options [nop,nop,TS val 4294943611 ecr 4294943309,mptcp 20 dss ack 3576351275 seq 3518594929 subseq 634 len 144 csum 0x405a], length 144
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 778, win 301, options [nop,nop,TS val 4294943309 ecr 4294943611,mptcp 8 dss ack 3518595073], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 617, win 707, options [nop,nop,TS val 4294943621 ecr 4294943306,mptcp 8 dss ack 3576351275], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 778:858, ack 2298, win 707, options [nop,nop,TS val 4294943621 ecr 4294943309,mptcp 20 dss ack 3576351275 seq 3518595073 subseq 778 len 80 csum 0x3c7b], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 858, win 301, options [nop,nop,TS val 4294943316 ecr 4294943621,mptcp 8 dss ack 3518595153], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2298:2346, ack 858, win 301, options [nop,nop,TS val 4294943328 ecr 4294943621,mptcp 20 dss ack 3518595153 seq 3576351275 subseq 2298 len 48 csum 0xe0ce], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 858:906, ack 2346, win 707, options [nop,nop,TS val 4294943629 ecr 4294943328,mptcp 20 dss ack 3576351323 seq 3518595153 subseq 858 len 48 csum 0xbe20], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 906, win 301, options [nop,nop,TS val 4294943328 ecr 4294943629,mptcp 8 dss ack 3518595201], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 906:1034, ack 2346, win 707, options [nop,nop,TS val 4294943645 ecr 4294943328,mptcp 20 dss ack 3576351323 seq 3518595201 subseq 906 len 128 csum 0x3d9d], length 128
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1034, win 305, options [nop,nop,TS val 4294943339 ecr 4294943645,mptcp 8 dss ack 3518595329], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2346:2394, ack 1034, win 305, options [nop,nop,TS val 4294943343 ecr 4294943645,mptcp 20 dss ack 3518595329 seq 3576351323 subseq 2346 len 48 csum 0x8505], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1034:1114, ack 2394, win 707, options [nop,nop,TS val 4294943651 ecr 4294943343,mptcp 20 dss ack 3576351371 seq 3518595329 subseq 1034 len 80 csum 0xb3da], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1114, win 305, options [nop,nop,TS val 4294943343 ecr 4294943651,mptcp 8 dss ack 3518595409], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2394:2442, ack 1114, win 305, options [nop,nop,TS val 4294943355 ecr 4294943651,mptcp 20 dss ack 3518595409 seq 3576351371 subseq 2394 len 48 csum 0xd46b], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1114:1194, ack 2442, win 707, options [nop,nop,TS val 4294943663 ecr 4294943355,mptcp 20 dss ack 3576351419 seq 3518595409 subseq 1114 len 80 csum 0xfe3d], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1194, win 305, options [nop,nop,TS val 4294943355 ecr 4294943663,mptcp 8 dss ack 3518595489], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2442:2490, ack 1194, win 305, options [nop,nop,TS val 4294943387 ecr 4294943663,mptcp 20 dss ack 3518595489 seq 3576351419 subseq 2442 len 48 csum 0xd83], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1194:1242, ack 2490, win 707, options [nop,nop,TS val 4294943695 ecr 4294943387,mptcp 20 dss ack 3576351467 seq 3518595489 subseq 1194 len 48 csum 0xad99], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1242, win 305, options [nop,nop,TS val 4294943387 ecr 4294943695,mptcp 8 dss ack 3518595537], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2490:2538, ack 1242, win 305, options [nop,nop,TS val 4294943395 ecr 4294943695,mptcp 20 dss ack 3518595537 seq 3576351467 subseq 2490 len 48 csum 0x3689], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1242:1290, ack 2538, win 707, options [nop,nop,TS val 4294943703 ecr 4294943395,mptcp 20 dss ack 3576351515 seq 3518595537 subseq 1242 len 48 csum 0xf0cf], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1290, win 305, options [nop,nop,TS val 4294943395 ecr 4294943703,mptcp 8 dss ack 3518595585], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2538:2586, ack 1290, win 305, options [nop,nop,TS val 4294943408 ecr 4294943703,mptcp 20 dss ack 3518595585 seq 3576351515 subseq 2538 len 48 csum 0xed5f], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1290:1338, ack 2586, win 707, options [nop,nop,TS val 4294943717 ecr 4294943408,mptcp 20 dss ack 3576351563 seq 3518595585 subseq 1290 len 48 csum 0xf2ec], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1338, win 305, options [nop,nop,TS val 4294943408 ecr 4294943717,mptcp 8 dss ack 3518595633], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2586:2634, ack 1338, win 305, options [nop,nop,TS val 4294943417 ecr 4294943717,mptcp 20 dss ack 3518595633 seq 3576351563 subseq 2586 len 48 csum 0x3678], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1338:1386, ack 2634, win 707, options [nop,nop,TS val 4294943726 ecr 4294943417,mptcp 20 dss ack 3576351611 seq 3518595633 subseq 1338 len 48 csum 0xc9a1], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1386, win 305, options [nop,nop,TS val 4294943417 ecr 4294943726,mptcp 8 dss ack 3518595681], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2634:2682, ack 1386, win 305, options [nop,nop,TS val 4294943424 ecr 4294943726,mptcp 20 dss ack 3518595681 seq 3576351611 subseq 2634 len 48 csum 0x54c7], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1386:1434, ack 2682, win 707, options [nop,nop,TS val 4294943733 ecr 4294943424,mptcp 20 dss ack 3576351659 seq 3518595681 subseq 1386 len 48 csum 0xf5e9], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1434, win 305, options [nop,nop,TS val 4294943424 ecr 4294943733,mptcp 8 dss ack 3518595729], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2682:2730, ack 1434, win 305, options [nop,nop,TS val 4294943435 ecr 4294943733,mptcp 20 dss ack 3518595729 seq 3576351659 subseq 2682 len 48 csum 0xc90a], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1434:1482, ack 2730, win 707, options [nop,nop,TS val 4294943743 ecr 4294943435,mptcp 20 dss ack 3576351707 seq 3518595729 subseq 1434 len 48 csum 0x4e7d], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1482, win 305, options [nop,nop,TS val 4294943435 ecr 4294943743,mptcp 8 dss ack 3518595777], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2730:2778, ack 1482, win 305, options [nop,nop,TS val 4294943440 ecr 4294943743,mptcp 20 dss ack 3518595777 seq 3576351707 subseq 2730 len 48 csum 0x7b3d], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1482:1530, ack 2778, win 707, options [nop,nop,TS val 4294943749 ecr 4294943440,mptcp 20 dss ack 3576351755 seq 3518595777 subseq 1482 len 48 csum 0x83e2], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1530, win 305, options [nop,nop,TS val 4294943440 ecr 4294943749,mptcp 8 dss ack 3518595825], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2778:2826, ack 1530, win 305, options [nop,nop,TS val 4294943453 ecr 4294943749,mptcp 20 dss ack 3518595825 seq 3576351755 subseq 2778 len 48 csum 0x6e36], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1530:1578, ack 2826, win 707, options [nop,nop,TS val 4294943762 ecr 4294943453,mptcp 20 dss ack 3576351803 seq 3518595825 subseq 1530 len 48 csum 0xb348], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1578, win 305, options [nop,nop,TS val 4294943453 ecr 4294943762,mptcp 8 dss ack 3518595873], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2826:2874, ack 1578, win 305, options [nop,nop,TS val 4294943458 ecr 4294943762,mptcp 20 dss ack 3518595873 seq 3576351803 subseq 2826 len 48 csum 0x1991], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1578:1626, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp 20 dss ack 3576351851 seq 3518595873 subseq 1578 len 48 csum 0xb4f], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1626, win 305, options [nop,nop,TS val 4294943458 ecr 4294943766,mptcp 8 dss ack 3518595921], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1626:1722, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp 20 dss ack 3576351851 seq 3518595921 subseq 1626 len 96 csum 0x9334], length 96
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1722:1834, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943458,mptcp 20 dss ack 3576351851 seq 3518596017 subseq 1722 len 112 csum 0xdc3f], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1722, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596017], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1834, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596129], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1834:1946, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596129 subseq 1834 len 112 csum 0x349e], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 1946, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596241], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 1946:2042, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596241 subseq 1946 len 96 csum 0xd5fe], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2042, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596337], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2042:2154, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596337 subseq 2042 len 112 csum 0x2c14], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2154, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596449], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2154:2266, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596449 subseq 2154 len 112 csum 0xe76e], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2266, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596561], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2266:2346, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596561 subseq 2266 len 80 csum 0x839a], length 80
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2346:2442, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596641 subseq 2346 len 96 csum 0xc1ee], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2346, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596641], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2442, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596737], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2442:2506, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596737 subseq 2442 len 64 csum 0xe67], length 64
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2506:2554, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596801 subseq 2506 len 48 csum 0x1474], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2506, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596801], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2554, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596849], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2554:2650, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596849 subseq 2554 len 96 csum 0x5dc1], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2650, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518596945], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2650:2762, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518596945 subseq 2650 len 112 csum 0xa20c], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2762, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597057], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2762:2874, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597057 subseq 2762 len 112 csum 0x643c], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2874, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597169], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2874:2970, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597169 subseq 2874 len 96 csum 0x5244], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 2970, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597265], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 2970:3082, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597265 subseq 2970 len 112 csum 0x295a], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3082, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597377], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3082:3194, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597377 subseq 3082 len 112 csum 0x510b], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3194, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597489], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3194:3274, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597489 subseq 3194 len 80 csum 0xc29a], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3274, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597569], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3274:3370, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597569 subseq 3274 len 96 csum 0x22a5], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3370, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597665], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3370:3434, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597665 subseq 3370 len 64 csum 0xe385], length 64
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3434, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597729], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3434:3482, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597729 subseq 3434 len 48 csum 0xd6b0], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3482, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597777], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3482:3562, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597777 subseq 3482 len 80 csum 0xec9d], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3562, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597857], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3562:3658, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597857 subseq 3562 len 96 csum 0x1eee], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3658, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518597953], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3658:3738, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518597953 subseq 3658 len 80 csum 0xbc5e], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3738, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598033], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3738:3834, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598033 subseq 3738 len 96 csum 0xe], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3834, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598129], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3834:3930, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598129 subseq 3834 len 96 csum 0xd42], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 3930, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598225], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 3930:4042, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598225 subseq 3930 len 112 csum 0xb006], length 112
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4042, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598337], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4042:4122, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598337 subseq 4042 len 80 csum 0x986f], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4122, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598417], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4122:4218, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598417 subseq 4122 len 96 csum 0x43ff], length 96
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4218, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598513], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4218:4266, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598513 subseq 4218 len 48 csum 0x8666], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4266, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598561], length 0
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4266:4346, ack 2874, win 707, options [nop,nop,TS val 4294943766 ecr 4294943460,mptcp 20 dss ack 3576351851 seq 3518598561 subseq 4266 len 80 csum 0x9239], length 80
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4346, win 305, options [nop,nop,TS val 4294943460 ecr 4294943766,mptcp 8 dss ack 3518598641], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2874:2922, ack 4346, win 305, options [nop,nop,TS val 4294943484 ecr 4294943766,mptcp 20 dss ack 3518598641 seq 3576351851 subseq 2874 len 48 csum 0xd397], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4346:4394, ack 2922, win 707, options [nop,nop,TS val 4294943793 ecr 4294943484,mptcp 20 dss ack 3576351899 seq 3518598641 subseq 4346 len 48 csum 0xeeaa], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4394, win 305, options [nop,nop,TS val 4294943484 ecr 4294943793,mptcp 8 dss ack 3518598689], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2922:2970, ack 4394, win 305, options [nop,nop,TS val 4294943496 ecr 4294943793,mptcp 20 dss ack 3518598689 seq 3576351899 subseq 2922 len 48 csum 0x48a7], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4394:4442, ack 2970, win 707, options [nop,nop,TS val 4294943805 ecr 4294943496,mptcp 20 dss ack 3576351947 seq 3518598689 subseq 4394 len 48 csum 0xc354], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4442, win 305, options [nop,nop,TS val 4294943496 ecr 4294943805,mptcp 8 dss ack 3518598737], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 2970:3018, ack 4442, win 305, options [nop,nop,TS val 4294943513 ecr 4294943805,mptcp 20 dss ack 3518598737 seq 3576351947 subseq 2970 len 48 csum 0xf6d], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4442:4490, ack 3018, win 707, options [nop,nop,TS val 4294943822 ecr 4294943513,mptcp 20 dss ack 3576351995 seq 3518598737 subseq 4442 len 48 csum 0xe0e2], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4490, win 305, options [nop,nop,TS val 4294943513 ecr 4294943822,mptcp 8 dss ack 3518598785], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3018:3066, ack 4490, win 305, options [nop,nop,TS val 4294943521 ecr 4294943822,mptcp 20 dss ack 3518598785 seq 3576351995 subseq 3018 len 48 csum 0xf320], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4490:4538, ack 3066, win 707, options [nop,nop,TS val 4294943830 ecr 4294943521,mptcp 20 dss ack 3576352043 seq 3518598785 subseq 4490 len 48 csum 0x9c04], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4538, win 305, options [nop,nop,TS val 4294943521 ecr 4294943830,mptcp 8 dss ack 3518598833], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3066:3114, ack 4538, win 305, options [nop,nop,TS val 4294943525 ecr 4294943830,mptcp 20 dss ack 3518598833 seq 3576352043 subseq 3066 len 48 csum 0x88f6], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4538:4586, ack 3114, win 707, options [nop,nop,TS val 4294943834 ecr 4294943525,mptcp 20 dss ack 3576352091 seq 3518598833 subseq 4538 len 48 csum 0x8612], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4586, win 305, options [nop,nop,TS val 4294943525 ecr 4294943834,mptcp 8 dss ack 3518598881], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3114:3162, ack 4586, win 305, options [nop,nop,TS val 4294943532 ecr 4294943834,mptcp 20 dss ack 3518598881 seq 3576352091 subseq 3114 len 48 csum 0xa14c], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4586:4634, ack 3162, win 707, options [nop,nop,TS val 4294943841 ecr 4294943532,mptcp 20 dss ack 3576352139 seq 3518598881 subseq 4586 len 48 csum 0x7979], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4634, win 305, options [nop,nop,TS val 4294943532 ecr 4294943841,mptcp 8 dss ack 3518598929], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3162:3210, ack 4634, win 305, options [nop,nop,TS val 4294943543 ecr 4294943841,mptcp 20 dss ack 3518598929 seq 3576352139 subseq 3162 len 48 csum 0x7c49], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4634:4682, ack 3210, win 707, options [nop,nop,TS val 4294943851 ecr 4294943543,mptcp 20 dss ack 3576352187 seq 3518598929 subseq 4634 len 48 csum 0x7799], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4682, win 305, options [nop,nop,TS val 4294943543 ecr 4294943851,mptcp 8 dss ack 3518598977], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3210:3258, ack 4682, win 305, options [nop,nop,TS val 4294943549 ecr 4294943851,mptcp 20 dss ack 3518598977 seq 3576352187 subseq 3210 len 48 csum 0x7589], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4682:4730, ack 3258, win 707, options [nop,nop,TS val 4294943858 ecr 4294943549,mptcp 20 dss ack 3576352235 seq 3518598977 subseq 4682 len 48 csum 0x9da3], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4730, win 305, options [nop,nop,TS val 4294943549 ecr 4294943858,mptcp 8 dss ack 3518599025], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3258:3306, ack 4730, win 305, options [nop,nop,TS val 4294943560 ecr 4294943858,mptcp 20 dss ack 3518599025 seq 3576352235 subseq 3258 len 48 csum 0x652], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4730:4778, ack 3306, win 707, options [nop,nop,TS val 4294943869 ecr 4294943560,mptcp 20 dss ack 3576352283 seq 3518599025 subseq 4730 len 48 csum 0xf212], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4778, win 305, options [nop,nop,TS val 4294943560 ecr 4294943869,mptcp 8 dss ack 3518599073], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3306:3354, ack 4778, win 305, options [nop,nop,TS val 4294943572 ecr 4294943869,mptcp 20 dss ack 3518599073 seq 3576352283 subseq 3306 len 48 csum 0x757c], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4778:4826, ack 3354, win 707, options [nop,nop,TS val 4294943881 ecr 4294943572,mptcp 20 dss ack 3576352331 seq 3518599073 subseq 4778 len 48 csum 0x5cf1], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4826, win 305, options [nop,nop,TS val 4294943572 ecr 4294943881,mptcp 8 dss ack 3518599121], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3354:3402, ack 4826, win 305, options [nop,nop,TS val 4294943580 ecr 4294943881,mptcp 20 dss ack 3518599121 seq 3576352331 subseq 3354 len 48 csum 0x363c], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4826:4874, ack 3402, win 707, options [nop,nop,TS val 4294943889 ecr 4294943580,mptcp 20 dss ack 3576352379 seq 3518599121 subseq 4826 len 48 csum 0xdae4], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4874, win 305, options [nop,nop,TS val 4294943580 ecr 4294943889,mptcp 8 dss ack 3518599169], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3402:3450, ack 4874, win 305, options [nop,nop,TS val 4294943589 ecr 4294943889,mptcp 20 dss ack 3518599169 seq 3576352379 subseq 3402 len 48 csum 0x5ded], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4874:4922, ack 3450, win 707, options [nop,nop,TS val 4294943898 ecr 4294943589,mptcp 20 dss ack 3576352427 seq 3518599169 subseq 4874 len 48 csum 0xb977], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4922, win 305, options [nop,nop,TS val 4294943589 ecr 4294943898,mptcp 8 dss ack 3518599217], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3450:3498, ack 4922, win 305, options [nop,nop,TS val 4294943624 ecr 4294943898,mptcp 20 dss ack 3518599217 seq 3576352427 subseq 3450 len 48 csum 0x8425], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4922:4970, ack 3498, win 707, options [nop,nop,TS val 4294943933 ecr 4294943624,mptcp 20 dss ack 3576352475 seq 3518599217 subseq 4922 len 48 csum 0x1a42], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 4970, win 305, options [nop,nop,TS val 4294943624 ecr 4294943933,mptcp 8 dss ack 3518599265], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3498:3546, ack 4970, win 305, options [nop,nop,TS val 4294943675 ecr 4294943933,mptcp 20 dss ack 3518599265 seq 3576352475 subseq 3498 len 48 csum 0x37f5], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 4970:5018, ack 3546, win 707, options [nop,nop,TS val 4294943983 ecr 4294943675,mptcp 20 dss ack 3576352523 seq 3518599265 subseq 4970 len 48 csum 0xb0f0], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5018, win 305, options [nop,nop,TS val 4294943675 ecr 4294943983,mptcp 8 dss ack 3518599313], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3546:3594, ack 5018, win 305, options [nop,nop,TS val 4294943688 ecr 4294943983,mptcp 20 dss ack 3518599313 seq 3576352523 subseq 3546 len 48 csum 0xd912], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5018:5066, ack 3594, win 707, options [nop,nop,TS val 4294943997 ecr 4294943688,mptcp 20 dss ack 3576352571 seq 3518599313 subseq 5018 len 48 csum 0x5be5], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5066, win 305, options [nop,nop,TS val 4294943688 ecr 4294943997,mptcp 8 dss ack 3518599361], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3594:3642, ack 5066, win 305, options [nop,nop,TS val 4294943703 ecr 4294943997,mptcp 20 dss ack 3518599361 seq 3576352571 subseq 3594 len 48 csum 0x539a], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5066:5114, ack 3642, win 707, options [nop,nop,TS val 4294944011 ecr 4294943703,mptcp 20 dss ack 3576352619 seq 3518599361 subseq 5066 len 48 csum 0x2d9e], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5114, win 305, options [nop,nop,TS val 4294943703 ecr 4294944011,mptcp 8 dss ack 3518599409], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3642:3690, ack 5114, win 305, options [nop,nop,TS val 4294943712 ecr 4294944011,mptcp 20 dss ack 3518599409 seq 3576352619 subseq 3642 len 48 csum 0xbda6], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5114:5162, ack 3690, win 707, options [nop,nop,TS val 4294944021 ecr 4294943712,mptcp 20 dss ack 3576352667 seq 3518599409 subseq 5114 len 48 csum 0x1bc7], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5162, win 305, options [nop,nop,TS val 4294943712 ecr 4294944021,mptcp 8 dss ack 3518599457], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3690:3738, ack 5162, win 305, options [nop,nop,TS val 4294943725 ecr 4294944021,mptcp 20 dss ack 3518599457 seq 3576352667 subseq 3690 len 48 csum 0xad71], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5162:5210, ack 3738, win 707, options [nop,nop,TS val 4294944034 ecr 4294943725,mptcp 20 dss ack 3576352715 seq 3518599457 subseq 5162 len 48 csum 0xf8f7], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5210, win 305, options [nop,nop,TS val 4294943725 ecr 4294944034,mptcp 8 dss ack 3518599505], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [P.], seq 3738:3786, ack 5210, win 305, options [nop,nop,TS val 4294943746 ecr 4294944034,mptcp 20 dss ack 3518599505 seq 3576352715 subseq 3738 len 48 csum 0xd16], length 48
+IP 10.1.1.2.22 > 10.2.1.2.35961: Flags [P.], seq 5210:5258, ack 3786, win 707, options [nop,nop,TS val 4294944054 ecr 4294943746,mptcp 20 dss ack 3576352763 seq 3518599505 subseq 5210 len 48 csum 0x8122], length 48
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [.], ack 5258, win 305, options [nop,nop,TS val 4294943746 ecr 4294944054,mptcp 8 dss ack 3518599553], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 617, win 707, options [nop,nop,TS val 4294944054 ecr 4294943306,mptcp 4 rem-addr id 0,mptcp 8 dss ack 3576352763], length 0
+IP 10.2.1.2.35961 > 10.1.1.2.22: Flags [R.], seq 3786, ack 5258, win 305, options [nop,nop,TS val 4294943749 ecr 4294944054,mptcp 8 dss ack 3518599553], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2153:2233, ack 617, win 707, options [nop,nop,TS val 4294944054 ecr 4294943306,mptcp 20 dss ack 3576352763 seq 3518599553 subseq 2153 len 80 csum 0xe206], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2233, win 305, options [nop,nop,TS val 4294943749 ecr 4294944054,mptcp 8 dss ack 3518599633], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 617:665, ack 2233, win 305, options [nop,nop,TS val 4294943782 ecr 4294944054,mptcp 20 dss ack 3518599633 seq 3576352763 subseq 617 len 48 csum 0xa135], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 665, win 707, options [nop,nop,TS val 4294944090 ecr 4294943782,mptcp 8 dss ack 3576352811], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2233:2313, ack 665, win 707, options [nop,nop,TS val 4294944090 ecr 4294943782,mptcp 20 dss ack 3576352811 seq 3518599633 subseq 2233 len 80 csum 0x917d], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2313, win 305, options [nop,nop,TS val 4294943782 ecr 4294944090,mptcp 8 dss ack 3518599713], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 665:713, ack 2313, win 305, options [nop,nop,TS val 4294943797 ecr 4294944090,mptcp 20 dss ack 3518599713 seq 3576352811 subseq 665 len 48 csum 0x3789], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2313:2393, ack 713, win 707, options [nop,nop,TS val 4294944106 ecr 4294943797,mptcp 20 dss ack 3576352859 seq 3518599713 subseq 2313 len 80 csum 0x6cf1], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2393, win 305, options [nop,nop,TS val 4294943797 ecr 4294944106,mptcp 8 dss ack 3518599793], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 713:761, ack 2393, win 305, options [nop,nop,TS val 4294943811 ecr 4294944106,mptcp 20 dss ack 3518599793 seq 3576352859 subseq 713 len 48 csum 0xc47b], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2393:2473, ack 761, win 707, options [nop,nop,TS val 4294944119 ecr 4294943811,mptcp 20 dss ack 3576352907 seq 3518599793 subseq 2393 len 80 csum 0x226], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2473, win 305, options [nop,nop,TS val 4294943811 ecr 4294944119,mptcp 8 dss ack 3518599873], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 761:809, ack 2473, win 305, options [nop,nop,TS val 4294943826 ecr 4294944119,mptcp 20 dss ack 3518599873 seq 3576352907 subseq 761 len 48 csum 0x187f], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2473:2553, ack 809, win 707, options [nop,nop,TS val 4294944134 ecr 4294943826,mptcp 20 dss ack 3576352955 seq 3518599873 subseq 2473 len 80 csum 0xe4fe], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2553, win 305, options [nop,nop,TS val 4294943826 ecr 4294944134,mptcp 8 dss ack 3518599953], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 809:857, ack 2553, win 305, options [nop,nop,TS val 4294943840 ecr 4294944134,mptcp 20 dss ack 3518599953 seq 3576352955 subseq 809 len 48 csum 0xf780], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2553:2633, ack 857, win 707, options [nop,nop,TS val 4294944149 ecr 4294943840,mptcp 20 dss ack 3576353003 seq 3518599953 subseq 2553 len 80 csum 0xb0e6], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2633, win 305, options [nop,nop,TS val 4294943841 ecr 4294944149,mptcp 8 dss ack 3518600033], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 857:905, ack 2633, win 305, options [nop,nop,TS val 4294943856 ecr 4294944149,mptcp 20 dss ack 3518600033 seq 3576353003 subseq 857 len 48 csum 0x1272], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2633:2713, ack 905, win 707, options [nop,nop,TS val 4294944164 ecr 4294943856,mptcp 20 dss ack 3576353051 seq 3518600033 subseq 2633 len 80 csum 0x2521], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2713, win 305, options [nop,nop,TS val 4294943856 ecr 4294944164,mptcp 8 dss ack 3518600113], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 905:953, ack 2713, win 305, options [nop,nop,TS val 4294943871 ecr 4294944164,mptcp 20 dss ack 3518600113 seq 3576353051 subseq 905 len 48 csum 0xeb71], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2713:2793, ack 953, win 707, options [nop,nop,TS val 4294944179 ecr 4294943871,mptcp 20 dss ack 3576353099 seq 3518600113 subseq 2713 len 80 csum 0xdd08], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2793, win 305, options [nop,nop,TS val 4294943871 ecr 4294944179,mptcp 8 dss ack 3518600193], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 953:1001, ack 2793, win 305, options [nop,nop,TS val 4294943887 ecr 4294944179,mptcp 20 dss ack 3518600193 seq 3576353099 subseq 953 len 48 csum 0xf047], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2793:2873, ack 1001, win 707, options [nop,nop,TS val 4294944195 ecr 4294943887,mptcp 20 dss ack 3576353147 seq 3518600193 subseq 2793 len 80 csum 0x3967], length 80
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2873, win 305, options [nop,nop,TS val 4294943887 ecr 4294944195,mptcp 8 dss ack 3518600273], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1001:1049, ack 2873, win 305, options [nop,nop,TS val 4294944018 ecr 4294944195,mptcp 20 dss ack 3518600273 seq 3576353147 subseq 1001 len 48 csum 0xa43d], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2873:2921, ack 1049, win 707, options [nop,nop,TS val 4294944326 ecr 4294944018,mptcp 20 dss ack 3576353195 seq 3518600273 subseq 2873 len 48 csum 0x1c25], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2921, win 305, options [nop,nop,TS val 4294944018 ecr 4294944326,mptcp 8 dss ack 3518600321], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1049:1097, ack 2921, win 305, options [nop,nop,TS val 4294944032 ecr 4294944326,mptcp 20 dss ack 3518600321 seq 3576353195 subseq 1049 len 48 csum 0xebdc], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2921:2969, ack 1097, win 707, options [nop,nop,TS val 4294944341 ecr 4294944032,mptcp 20 dss ack 3576353243 seq 3518600321 subseq 2921 len 48 csum 0xf7df], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 2969, win 305, options [nop,nop,TS val 4294944032 ecr 4294944341,mptcp 8 dss ack 3518600369], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1097:1145, ack 2969, win 305, options [nop,nop,TS val 4294944037 ecr 4294944341,mptcp 20 dss ack 3518600369 seq 3576353243 subseq 1097 len 48 csum 0xb656], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 2969:3017, ack 1145, win 707, options [nop,nop,TS val 4294944346 ecr 4294944037,mptcp 20 dss ack 3576353291 seq 3518600369 subseq 2969 len 48 csum 0x73fb], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3017, win 305, options [nop,nop,TS val 4294944037 ecr 4294944346,mptcp 8 dss ack 3518600417], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1145:1193, ack 3017, win 305, options [nop,nop,TS val 4294944056 ecr 4294944346,mptcp 20 dss ack 3518600417 seq 3576353291 subseq 1145 len 48 csum 0x7813], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3017:3065, ack 1193, win 707, options [nop,nop,TS val 4294944365 ecr 4294944056,mptcp 20 dss ack 3576353339 seq 3518600417 subseq 3017 len 48 csum 0xa7ff], length 48
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3065, win 305, options [nop,nop,TS val 4294944056 ecr 4294944365,mptcp 8 dss ack 3518600465], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1193:1241, ack 3065, win 305, options [nop,nop,TS val 4294944064 ecr 4294944365,mptcp 20 dss ack 3518600465 seq 3576353339 subseq 1193 len 48 csum 0xd43c], length 48
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3065:3241, ack 1241, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp 20 dss ack 3576353387 seq 3518600465 subseq 3065 len 176 csum 0x49a0], length 176
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [P.], seq 3241:3305, ack 1241, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp 20 dss ack 3576353387 seq 3518600641 subseq 3241 len 64 csum 0x2541], length 64
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3241, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp 8 dss ack 3518600641], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp 8 dss ack 3518600705], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1241:1273, ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp 20 dss ack 3518600705 seq 3576353387 subseq 1241 len 32 csum 0xec34], length 32
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [P.], seq 1273:1337, ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp 20 dss ack 3518600705 seq 3576353419 subseq 1273 len 64 csum 0x3f93], length 64
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1337, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp 8 dss ack 3576353483], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944064 ecr 4294944372,mptcp 20 dss fin ack 3518600705 seq 3576353483 subseq 0 len 1 csum 0xa51], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [.], ack 1337, win 707, options [nop,nop,TS val 4294944372 ecr 4294944064,mptcp 20 dss fin ack 3576353484 seq 3518600705 subseq 0 len 1 csum 0xbe46], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [F.], seq 1337, ack 3305, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp 8 dss ack 3518600705], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3305, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp 8 dss ack 3518600706], length 0
+IP 10.1.2.2.22 > 10.2.1.2.41221: Flags [F.], seq 3305, ack 1338, win 707, options [nop,nop,TS val 4294944372 ecr 4294944066,mptcp 8 dss ack 3576353484], length 0
+IP 10.2.1.2.41221 > 10.1.2.2.22: Flags [.], ack 3306, win 310, options [nop,nop,TS val 4294944066 ecr 4294944372,mptcp 8 dss ack 3518600706], length 0

View File

@ -1,63 +0,0 @@
From 32027e199368dad9508965aae8cd8de5b6ab5231 Mon Sep 17 00:00:00 2001
From: Guy Harris <guy@alum.mit.edu>
Date: Sat, 18 Apr 2020 14:04:59 -0700
Subject: [PATCH] PPP: When un-escaping, don't allocate a too-large buffer.
The buffer should be big enough to hold the captured data, but it
doesn't need to be big enough to hold the entire on-the-network packet,
if we haven't captured all of it.
(backported from commit e4add0b010ed6f2180dcb05a13026242ed935334)
---
print-ppp.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/print-ppp.c b/print-ppp.c
index 891761728..33fb03412 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -1367,19 +1367,29 @@ print_bacp_config_options(netdissect_options *ndo,
return 0;
}
+/*
+ * Un-escape RFC 1662 PPP in HDLC-like framing, with octet escapes.
+ * The length argument is the on-the-wire length, not the captured
+ * length; we can only un-escape the captured part.
+ */
static void
ppp_hdlc(netdissect_options *ndo,
const u_char *p, int length)
{
+ u_int caplen = ndo->ndo_snapend - p;
u_char *b, *t, c;
const u_char *s;
- int i, proto;
+ u_int i;
+ int proto;
const void *se;
+ if (caplen == 0)
+ return;
+
if (length <= 0)
return;
- b = (u_char *)malloc(length);
+ b = (u_char *)malloc(caplen);
if (b == NULL)
return;
@@ -1388,10 +1398,10 @@ ppp_hdlc(netdissect_options *ndo,
* Do this so that we dont overwrite the original packet
* contents.
*/
- for (s = p, t = b, i = length; i > 0 && ND_TTEST(*s); i--) {
+ for (s = p, t = b, i = caplen; i != 0; i--) {
c = *s++;
if (c == 0x7d) {
- if (i <= 1 || !ND_TTEST(*s))
+ if (i <= 1)
break;
i--;
c = *s++ ^ 0x20;

View File

@ -1,400 +0,0 @@
diff --git a/netdissect.h b/netdissect.h
index 4f3c666a..93fa8be6 100644
--- a/netdissect.h
+++ b/netdissect.h
@@ -465,6 +465,7 @@ extern u_int raw_if_print IF_PRINTER_ARGS;
extern u_int sl_bsdos_if_print IF_PRINTER_ARGS;
extern u_int sl_if_print IF_PRINTER_ARGS;
extern u_int sll_if_print IF_PRINTER_ARGS;
+extern u_int sll2_if_print IF_PRINTER_ARGS;
extern u_int sunatm_if_print IF_PRINTER_ARGS;
extern u_int symantec_if_print IF_PRINTER_ARGS;
extern u_int token_if_print IF_PRINTER_ARGS;
diff --git a/print-sll.c b/print-sll.c
index 571b7c5e..5a4e2f68 100644
--- a/print-sll.c
+++ b/print-sll.c
@@ -84,6 +84,21 @@ struct sll_header {
uint16_t sll_protocol; /* protocol */
};
+/*
+ * A DLT_LINUX_SLL2 fake link-layer header.
+ */
+#define SLL2_HDR_LEN 20 /* total header length */
+
+struct sll2_header {
+ uint16_t sll2_protocol; /* protocol */
+ uint16_t sll2_reserved_mbz; /* reserved - must be zero */
+ uint32_t sll2_if_index; /* 1-based interface index */
+ uint16_t sll2_hatype; /* link-layer address type */
+ uint8_t sll2_pkttype; /* packet type */
+ uint8_t sll2_halen; /* link-layer address length */
+ u_char sll2_addr[SLL_ADDRLEN]; /* link-layer address */
+};
+
/*
* The LINUX_SLL_ values for "sll_pkttype"; these correspond to the
* PACKET_ values on Linux, but are defined here so that they're
@@ -308,3 +323,192 @@ recurse:
return (hdrlen);
}
+
+static void
+sll2_print(netdissect_options *ndo, const struct sll2_header *sllp, u_int length)
+{
+ u_short ether_type;
+
+ ndo->ndo_protocol = "sll2";
+ ND_PRINT((ndo,"ifindex %u ", EXTRACT_32BITS(&sllp->sll2_if_index)));
+
+ /*
+ * XXX - check the link-layer address type value?
+ * For now, we just assume 6 means Ethernet.
+ * XXX - print others as strings of hex?
+ */
+ if (EXTRACT_8BITS(&sllp->sll2_halen) == 6)
+ ND_PRINT((ndo, "%s ", etheraddr_string(ndo, sllp->sll2_addr)));
+
+ if (!ndo->ndo_qflag) {
+ ether_type = EXTRACT_16BITS(&sllp->sll2_protocol);
+
+ if (ether_type <= MAX_ETHERNET_LENGTH_VAL) {
+ /*
+ * Not an Ethernet type; what type is it?
+ */
+ switch (ether_type) {
+
+ case LINUX_SLL_P_802_3:
+ /*
+ * Ethernet_802.3 IPX frame.
+ */
+ ND_PRINT((ndo, "802.3"));
+ break;
+
+ case LINUX_SLL_P_802_2:
+ /*
+ * 802.2.
+ */
+ ND_PRINT((ndo, "802.2"));
+ break;
+
+ default:
+ /*
+ * What is it?
+ */
+ ND_PRINT((ndo, "ethertype Unknown (0x%04x)",
+ ether_type));
+ break;
+ }
+ } else {
+ ND_PRINT((ndo, "ethertype %s (0x%04x)",
+ tok2str(ethertype_values, "Unknown", ether_type),
+ ether_type));
+ }
+ ND_PRINT((ndo, ", length %u: ", length));
+ }
+}
+
+/*
+ * This is the top level routine of the printer. 'p' points to the
+ * Linux "cooked capture" header of the packet, 'h->ts' is the timestamp,
+ * 'h->len' is the length of the packet off the wire, and 'h->caplen'
+ * is the number of bytes actually captured.
+ */
+u_int
+sll2_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *p)
+{
+ u_int caplen = h->caplen;
+ u_int length = h->len;
+ const struct sll2_header *sllp;
+ u_short ether_type;
+ int llc_hdrlen;
+ u_int hdrlen;
+
+ ndo->ndo_protocol = "sll2";
+ if (caplen < SLL2_HDR_LEN) {
+ /*
+ * XXX - this "can't happen" because "pcap-linux.c" always
+ * adds this many bytes of header to every packet in a
+ * cooked socket capture.
+ */
+ ND_PRINT((ndo, " [|%s]", ndo->ndo_protocol));
+ return (caplen);
+ }
+
+ sllp = (const struct sll2_header *)p;
+#ifdef HAVE_NET_IF_H
+ uint32_t if_index = EXTRACT_32BITS(&sllp->sll2_if_index);
+ if (!if_indextoname(if_index, ifname))
+ strncpy(ifname, "?", 2);
+ ND_PRINT((ndo, "%-5s ", ifname));
+#endif
+
+ ND_PRINT((ndo, "%-3s ",
+ tok2str(sll_pkttype_values, "?", EXTRACT_8BITS(&sllp->sll2_pkttype))));
+
+ if (ndo->ndo_eflag)
+ sll2_print(ndo, sllp, length);
+
+ /*
+ * Go past the cooked-mode header.
+ */
+ length -= SLL2_HDR_LEN;
+ caplen -= SLL2_HDR_LEN;
+ p += SLL2_HDR_LEN;
+ hdrlen = SLL2_HDR_LEN;
+
+ ether_type = EXTRACT_16BITS(&sllp->sll2_protocol);
+
+recurse:
+ /*
+ * Is it (gag) an 802.3 encapsulation, or some non-Ethernet
+ * packet type?
+ */
+ if (ether_type <= MAX_ETHERNET_LENGTH_VAL) {
+ /*
+ * Yes - what type is it?
+ */
+ switch (ether_type) {
+
+ case LINUX_SLL_P_802_3:
+ /*
+ * Ethernet_802.3 IPX frame.
+ */
+ ipx_print(ndo, p, length);
+ break;
+
+ case LINUX_SLL_P_802_2:
+ /*
+ * 802.2.
+ * Try to print the LLC-layer header & higher layers.
+ */
+ llc_hdrlen = llc_print(ndo, p, length, caplen, NULL, NULL);
+ if (llc_hdrlen < 0)
+ goto unknown; /* unknown LLC type */
+ hdrlen += llc_hdrlen;
+ break;
+
+ default:
+ /*FALLTHROUGH*/
+
+ unknown:
+ /* packet type not known, print raw packet */
+ if (!ndo->ndo_suppress_default_print)
+ ND_DEFAULTPRINT(p, caplen);
+ break;
+ }
+ } else if (ether_type == ETHERTYPE_8021Q) {
+ /*
+ * Print VLAN information, and then go back and process
+ * the enclosed type field.
+ */
+ if (caplen < 4) {
+ ND_PRINT((ndo, "[|vlan]"));
+ return (hdrlen + caplen);
+ }
+ if (length < 4) {
+ ND_PRINT((ndo, "[|vlan]"));
+ return (hdrlen + length);
+ }
+ if (ndo->ndo_eflag) {
+ uint16_t tag = EXTRACT_16BITS(p);
+
+ ND_PRINT((ndo, "%s, ", ieee8021q_tci_string(tag)));
+ }
+
+ ether_type = EXTRACT_16BITS(p + 2);
+ if (ether_type <= MAX_ETHERNET_LENGTH_VAL)
+ ether_type = LINUX_SLL_P_802_2;
+ if (!ndo->ndo_qflag) {
+ ND_PRINT((ndo, "ethertype %s, ",
+ tok2str(ethertype_values, "Unknown", ether_type)));
+ }
+ p += 4;
+ length -= 4;
+ caplen -= 4;
+ hdrlen += 4;
+ goto recurse;
+ } else {
+ if (ethertype_print(ndo, ether_type, p, length, caplen, NULL, NULL) == 0) {
+ /* ether_type not known, print raw packet */
+ if (!ndo->ndo_eflag)
+ sll2_print(ndo, sllp, length + SLL2_HDR_LEN);
+ if (!ndo->ndo_suppress_default_print)
+ ND_DEFAULTPRINT(p, caplen);
+ }
+ }
+
+ return (hdrlen);
+}
diff --git a/print.c b/print.c
index b9c92adc..4cc35bab 100644
--- a/print.c
+++ b/print.c
@@ -126,6 +126,9 @@ static const struct printer printers[] = {
#ifdef DLT_LINUX_SLL
{ sll_if_print, DLT_LINUX_SLL },
#endif
+#ifdef DLT_LINUX_SLL2
+ { sll2_if_print, DLT_LINUX_SLL2 },
+#endif
#ifdef DLT_FR
{ fr_if_print, DLT_FR },
#endif
diff --git a/ethertype.h b/ethertype.h
index f38ec8e4..7719a6f0 100644
--- a/ethertype.h
+++ b/ethertype.h
@@ -19,6 +19,13 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
+/*
+ * Maximum length of the length field in an Ethernet header; any value
+ * greater than this is not a length value, so it's either an Ethernet
+ * type or an invalid value.
+ */
+#define MAX_ETHERNET_LENGTH_VAL 1500
+
/*
* Ethernet types.
*
diff --git a/config.h.in b/config.h.in
index 4fcbba77..8ae16730 100644
--- a/config.h.in
+++ b/config.h.in
@@ -78,6 +78,9 @@
/* Define to 1 if you have the <netinet/if_ether.h> header file. */
#undef HAVE_NETINET_IF_ETHER_H
+/* Define to 1 if you have the <net/if.h> header file. */
+#undef HAVE_NET_IF_H
+
/* Define to 1 if you have the <net/if_pflog.h> header file. */
#undef HAVE_NET_IF_PFLOG_H
diff --git a/configure b/configure
index eb33db18..f64c4eea 100755
--- a/configure
+++ b/configure
@@ -4037,7 +4037,7 @@ fi
done
-for ac_header in fcntl.h rpc/rpc.h rpc/rpcent.h
+for ac_header in fcntl.h rpc/rpc.h rpc/rpcent.h net/if.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
diff --git a/configure.ac b/configure.ac
index 32f48b60..46f841c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,7 @@ AC_PROG_CC_C99
fi
fi
-AC_CHECK_HEADERS(fcntl.h rpc/rpc.h rpc/rpcent.h)
+AC_CHECK_HEADERS(fcntl.h rpc/rpc.h rpc/rpcent.h net/if.h)
AC_CHECK_HEADERS(net/pfvar.h, , , [#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>])
diff --git a/print-sll.c b/print-sll.c
index 96031442..e6c7bd4a 100644
--- a/print-sll.c
+++ b/print-sll.c
@@ -25,6 +25,10 @@
#include "config.h"
#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+
#include <netdissect-stdinc.h>
#include "netdissect.h"
@@ -395,6 +399,9 @@ sll2_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char
u_short ether_type;
int llc_hdrlen;
u_int hdrlen;
+#ifdef HAVE_NET_IF_H
+ char ifname[IF_NAMESIZE];
+#endif
ndo->ndo_protocol = "sll2";
if (caplen < SLL2_HDR_LEN) {
diff --git a/tcpdump.c b/tcpdump.c
index 2bef72c8..0ef21117 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -1978,6 +1978,10 @@ main(int argc, char **argv)
RFileName, dlt_name,
pcap_datalink_val_to_description(dlt));
}
+#ifdef DLT_LINUX_SLL2
+ if (dlt == DLT_LINUX_SLL2)
+ fprintf(stderr, "Warning: interface names might be incorrect\n");
+#endif
} else {
/*
* We're doing a live capture.
diff --git a/tcpdump.c b/tcpdump.c
index 376d9a20..06d3d9b9 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -155,6 +155,7 @@ static int Iflag; /* rfmon (monitor) mode */
static int Jflag; /* list available time stamp types */
#endif
static int jflag = -1; /* packet time stamp source */
+static int oflag = 0;
static int pflag; /* don't go promiscuous */
#ifdef HAVE_PCAP_SETDIRECTION
static int Qflag = -1; /* restrict captured packet by send/receive direction */
@@ -515,7 +515,7 @@ show_devices_and_exit (void)
#define Q_FLAG
#endif
-#define SHORTOPTS "aAb" B_FLAG "c:C:d" D_FLAG "eE:fF:G:hHi:" I_FLAG j_FLAG J_FLAG "KlLm:M:nNOpq" Q_FLAG "r:s:StT:u" U_FLAG "vV:w:W:xXy:Yz:Z:#"
+#define SHORTOPTS "aAb" B_FLAG "c:C:d" D_FLAG "eE:fF:G:hHi:" I_FLAG j_FLAG J_FLAG "KlLm:M:nNoOpq" Q_FLAG "r:s:StT:u" U_FLAG "vV:w:W:xXy:Yz:Z:#"
/*
* Long options.
@@ -1340,6 +1341,10 @@ main(int argc, char **argv)
++ndo->ndo_Nflag;
break;
+ case 'o':
+ oflag++;
+ break;
+
case 'O':
Oflag = 0;
break;
@@ -1932,6 +1932,14 @@ main(int argc, char **argv)
show_devices_and_exit();
#endif
+#if defined(DLT_LINUX_SLL2) && defined(HAVE_PCAP_SET_DATALINK)
+/* Set default linktype DLT_LINUX_SLL2 when capturing on the "any" device */
+ if (device != NULL &&
+ strncmp (device, "any", strlen("any")) == 0
+ && yflag_dlt == -1 && oflag > 0)
+ yflag_dlt = DLT_LINUX_SLL2;
+#endif
+
switch (ndo->ndo_tflag) {
case 0: /* Default */
@@ -2180,7 +2188,8 @@ main(int argc, char **argv)
}
#endif
(void)fprintf(stderr, "%s: data link type %s\n",
- program_name, yflag_dlt_name);
+ program_name,
+ pcap_datalink_val_to_name(yflag_dlt));
(void)fflush(stderr);
}
i = pcap_snapshot(pd);

View File

@ -1,155 +0,0 @@
From 1ef47c304f226ca9f8a8d6bff1b43e617eafef19 Mon Sep 17 00:00:00 2001
From: Guy Harris <gharris@sonic.net>
Date: Mon, 21 Aug 2023 23:15:14 -0700
Subject: [PATCH] pgm: fix the way we step through the packet.
Step past the PGM header after we finish processing it and before we
process the message-type-specific header.
Step past the message-type-specific fixed-length header before we
process the stuff after that header.
This makes the code a bit clearer (by explicitly advancing bp by the
size of the stuff we just processed, rather than doing so by trickery
involving adding 1 to a pointer to a structure), and fixes the
processing of message types that don't have a message-type-specific
header (where we weren't stepping past the PGM header). It also affects
the way we handle messages of an unknown type.
(cherry picked from commit 9a3eebde95cf1032ac68ae4312e2db14bb1fe58d)
---
print-pgm.c | 29 +++++++++++++++--------------
tests/pgm_opts_asan.out | 2 +-
tests/pgm_opts_asan_2.out | 2 +-
tests/pgm_opts_asan_3.out | 2 +-
4 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/print-pgm.c b/print-pgm.c
index 7672b616..f5ef7702 100644
--- a/print-pgm.c
+++ b/print-pgm.c
@@ -218,13 +218,14 @@ pgm_print(netdissect_options *ndo,
pgm->pgm_gsid[3],
pgm->pgm_gsid[4],
pgm->pgm_gsid[5]));
+ bp += sizeof(struct pgm_header);
switch (pgm->pgm_type) {
case PGM_SPM: {
const struct pgm_spm *spm;
- spm = (const struct pgm_spm *)(pgm + 1);
+ spm = (const struct pgm_spm *)bp;
ND_TCHECK(*spm);
- bp = (const u_char *) (spm + 1);
+ bp += sizeof(struct pgm_spm);
switch (EXTRACT_16BITS(&spm->pgms_nla_afi)) {
case AFNUM_INET:
@@ -253,21 +254,21 @@ pgm_print(netdissect_options *ndo,
case PGM_POLL: {
const struct pgm_poll *poll_msg;
- poll_msg = (const struct pgm_poll *)(pgm + 1);
+ poll_msg = (const struct pgm_poll *)bp;
ND_TCHECK(*poll_msg);
ND_PRINT((ndo, "POLL seq %u round %u",
EXTRACT_32BITS(&poll_msg->pgmp_seq),
EXTRACT_16BITS(&poll_msg->pgmp_round)));
- bp = (const u_char *) (poll_msg + 1);
+ bp += sizeof(struct pgm_poll);
break;
}
case PGM_POLR: {
const struct pgm_polr *polr;
uint32_t ivl, rnd, mask;
- polr = (const struct pgm_polr *)(pgm + 1);
+ polr = (const struct pgm_polr *)bp;
ND_TCHECK(*polr);
- bp = (const u_char *) (polr + 1);
+ bp += sizeof(struct pgm_polr);
switch (EXTRACT_16BITS(&polr->pgmp_nla_afi)) {
case AFNUM_INET:
@@ -305,24 +306,24 @@ pgm_print(netdissect_options *ndo,
case PGM_ODATA: {
const struct pgm_data *odata;
- odata = (const struct pgm_data *)(pgm + 1);
+ odata = (const struct pgm_data *)bp;
ND_TCHECK(*odata);
ND_PRINT((ndo, "ODATA trail %u seq %u",
EXTRACT_32BITS(&odata->pgmd_trailseq),
EXTRACT_32BITS(&odata->pgmd_seq)));
- bp = (const u_char *) (odata + 1);
+ bp += sizeof(struct pgm_data);
break;
}
case PGM_RDATA: {
const struct pgm_data *rdata;
- rdata = (const struct pgm_data *)(pgm + 1);
+ rdata = (const struct pgm_data *)bp;
ND_TCHECK(*rdata);
ND_PRINT((ndo, "RDATA trail %u seq %u",
EXTRACT_32BITS(&rdata->pgmd_trailseq),
EXTRACT_32BITS(&rdata->pgmd_seq)));
- bp = (const u_char *) (rdata + 1);
+ bp += sizeof(struct pgm_data);
break;
}
@@ -332,9 +333,9 @@ pgm_print(netdissect_options *ndo,
const struct pgm_nak *nak;
char source_buf[INET6_ADDRSTRLEN], group_buf[INET6_ADDRSTRLEN];
- nak = (const struct pgm_nak *)(pgm + 1);
+ nak = (const struct pgm_nak *)bp;
ND_TCHECK(*nak);
- bp = (const u_char *) (nak + 1);
+ bp += sizeof(struct pgm_nak);
/*
* Skip past the source, saving info along the way
@@ -402,11 +403,11 @@ pgm_print(netdissect_options *ndo,
case PGM_ACK: {
const struct pgm_ack *ack;
- ack = (const struct pgm_ack *)(pgm + 1);
+ ack = (const struct pgm_ack *)bp;
ND_TCHECK(*ack);
ND_PRINT((ndo, "ACK seq %u",
EXTRACT_32BITS(&ack->pgma_rx_max_seq)));
- bp = (const u_char *) (ack + 1);
+ bp += sizeof(struct pgm_ack);
break;
}
diff --git a/tests/pgm_opts_asan.out b/tests/pgm_opts_asan.out
index cc0607a4..b75868ac 100644
--- a/tests/pgm_opts_asan.out
+++ b/tests/pgm_opts_asan.out
@@ -1,2 +1,2 @@
IP (tos 0x41,ECT(1), id 0, offset 0, flags [none], proto PGM (113), length 32639, options (unknown 89 [bad length 232]), bad cksum 5959 (->9eb9)!)
- 128.121.89.107 > 89.89.16.63: 128.121.89.107.4 > 89.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f OPTS LEN 225 OPT_1F [13] OPT_06 [26] PATH_NLA [4] [|OPT]
+ 128.121.89.107 > 89.89.16.63: 128.121.89.107.4 > 89.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f[Bad OPT_LENGTH option, length 0 != 4]
diff --git a/tests/pgm_opts_asan_2.out b/tests/pgm_opts_asan_2.out
index 7e948d41..21cd69a7 100644
--- a/tests/pgm_opts_asan_2.out
+++ b/tests/pgm_opts_asan_2.out
@@ -1,2 +1,2 @@
IP (tos 0x41,ECT(1), id 0, offset 0, flags [none], proto PGM (113), length 32639, options (unknown 89 [bad length 232]), bad cksum 5959 (->96b9)!)
- 128.121.89.107 > 89.89.16.63: 128.121.89.107.4 > 89.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f OPTS LEN 225 OPT_1F [13] OPT_06 [26] [Bad OPT_PGMCC_DATA option, length 4 < 12]
+ 128.121.89.107 > 89.89.16.63: 128.121.89.107.4 > 89.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f[Bad OPT_LENGTH option, length 0 != 4]
diff --git a/tests/pgm_opts_asan_3.out b/tests/pgm_opts_asan_3.out
index 8a6bffd3..f3da1d38 100644
--- a/tests/pgm_opts_asan_3.out
+++ b/tests/pgm_opts_asan_3.out
@@ -1,2 +1,2 @@
IP (tos 0x41,ECT(1), id 0, offset 0, flags [none], proto PGM (113), length 32639, options (unknown 89 [bad length 232]), bad cksum 5959 (->f814)!)
- 128.121.89.16 > 0.89.16.63: 128.121.89.16.4 > 0.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f OPTS LEN 225 OPT_1F [13] OPT_06 [26] [Bad OPT_REDIRECT option, length 4 < 8]
+ 128.121.89.16 > 0.89.16.63: 128.121.89.16.4 > 0.89.16.63.225: PGM, length 0 0x3414eb1f0022 UNKNOWN type 0x1f[Bad OPT_LENGTH option, length 0 != 4]
--
2.41.0

View File

@ -1,48 +0,0 @@
From 5109a65f791280b3549377851e4bdd77f802c207 Mon Sep 17 00:00:00 2001
From: Guy Harris <gharris@sonic.net>
Date: Tue, 22 Aug 2023 12:23:20 -0700
Subject: [PATCH] pgm: don't advance bp by the option haeder length twice.
At those points, we've already advanced it by the option header length,
and opt_len includes that length, so advance bp by opt_len minus the
option header length.
(cherry picked from commit 09b0447fad52298440e05e7368f9d24492d0b0fe)
---
print-pgm.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/print-pgm.c b/print-pgm.c
index 8340f2c3..7672b616 100644
--- a/print-pgm.c
+++ b/print-pgm.c
@@ -668,7 +668,7 @@ pgm_print(netdissect_options *ndo,
case PGM_OPT_PATH_NLA:
ND_PRINT((ndo, " PATH_NLA [%d]", opt_len));
- bp += opt_len;
+ bp += opt_len - 2;
opts_len -= opt_len;
break;
@@ -710,7 +710,7 @@ pgm_print(netdissect_options *ndo,
case PGM_OPT_CR:
ND_PRINT((ndo, " CR"));
- bp += opt_len;
+ bp += opt_len - 2;
opts_len -= opt_len;
break;
@@ -814,7 +814,7 @@ pgm_print(netdissect_options *ndo,
default:
ND_PRINT((ndo, " OPT_%02X [%d] ", opt_type, opt_len));
- bp += opt_len;
+ bp += opt_len - 2;
opts_len -= opt_len;
break;
}
--
2.41.0

View File

@ -1,48 +0,0 @@
From 030859fce9c77417de657b9bb29c0f78c2d68f4a Mon Sep 17 00:00:00 2001
From: Denis Ovsienko <denis@ovsienko.info>
Date: Thu, 30 Dec 2021 17:52:52 +0000
Subject: [PATCH] CVE-2021-41043: Fix a use-after-free in extract_slice().
This issue was discovered by Mohammad Hosein Askari (@C0NSTANTINE110),
see GitHub issue #11.
In extract_slice() pcap_dump_open() takes a pcap_t argument to tell
which DLT to use for the output file. This used to be the pcap_t of the
first input file, as main() requires at least one input file. However,
the loop before pcap_dump_open() closes all, including the first, input
files that don't meet a test condition. This way, when the first file
didn't meet the condition, the call to pcap_dump_open() would end up as
a use-after-free. Make the pcap_dump_open() call before the loop, when
the first array element is always valid, and fix this problem.
---
diff --git a/tcpslice-1.2a3/tcpslice.c b/tcpslice-1.2a3/tcpslice.c
index 6d08473..7c0f4a0 100644
--- a/tcpslice-1.2a3/tcpslice.c
+++ b/tcpslice-1.2a3/tcpslice.c
@@ -841,6 +841,13 @@ extract_slice(struct state *states, const int numfiles, const char *write_file_n
TV_SUB(start_time, base_time, &relative_start);
TV_SUB(stop_time, base_time, &relative_stop);
+ /* Always write the output file, use the first input file's DLT. */
+ dumper = pcap_dump_open(states[0].p, write_file_name);
+ if (!dumper) {
+ error("error creating output file '%s': %s",
+ write_file_name, pcap_geterr(states[0].p));
+ }
+
for (i = 0; i < numfiles; ++i) {
s = &states[i];
@@ -879,12 +886,6 @@ extract_slice(struct state *states, const int numfiles, const char *write_file_n
get_next_packet(s);
}
- dumper = pcap_dump_open(states->p, write_file_name);
- if (! dumper) {
- error( "error creating output file %s: ",
- write_file_name, pcap_geterr( states->p ) );
- }
-
/*
* Now, loop thru all the packets in all the files,

View File

@ -1,36 +1,24 @@
Summary: A network traffic monitoring tool Summary: A network traffic monitoring tool
Name: tcpdump Name: tcpdump
Epoch: 14 Epoch: 14
Version: 4.9.3 Version: 4.99.0
Release: 5%{?dist} Release: 7%{?dist}
License: BSD with advertising License: BSD with advertising
URL: http://www.tcpdump.org URL: http://www.tcpdump.org
Group: Applications/Internet
Requires(pre): shadow-utils Requires(pre): shadow-utils
BuildRequires: automake openssl-devel libpcap-devel git-core BuildRequires: make
BuildRequires: automake openssl-devel libpcap-devel git-core gcc
Source0: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz Source0: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz
Source1: ftp://ftp.ee.lbl.gov/tcpslice-1.2a3.tar.gz Source1: ftp://ftp.ee.lbl.gov/tcpslice-1.3.tar.gz
Source2: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz.sig Source2: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz.sig
Patch0002: 0002-Use-getnameinfo-instead-of-gethostbyaddr.patch Patch0002: 0002-Use-getnameinfo-instead-of-gethostbyaddr.patch
Patch0003: 0003-Drop-root-priviledges-before-opening-first-savefile-.patch Patch0003: 0003-Drop-root-priviledges-before-opening-first-savefile-.patch
Patch0004: 0004-tcpslice-update-tcpslice-patch-to-1.2a3.patch
Patch0005: 0005-tcpslice-remove-unneeded-include.patch
Patch0006: 0006-tcpslice-don-t-test-the-pointer-but-pointee-for-NULL.patch
Patch0007: 0007-Introduce-nn-option.patch Patch0007: 0007-Introduce-nn-option.patch
Patch0009: 0009-Change-n-flag-to-nn-in-TESTonce.patch Patch0009: 0009-Change-n-flag-to-nn-in-TESTonce.patch
Patch0011: 0011-Evp-cipher-buffers.patch
Patch0012: 0012-Add-printing-support-for-vsockmon-devices.patch
Patch0013: 0013-tcpslice-stdlib.patch
Patch0014: 0014-enhance-mptcp.patch
Patch0015: 0015-CVE-2020-8037.patch
Patch0016: 0016-direction-for-any.patch
Patch0017: 0017-pgm-fix-the-way-we-step-through-the-packet.patch
Patch0018: 0018-pgm-don-t-advance-bp-by-the-option-haeder-length-twi.patch
Patch0019: 0019-CVE-2021-41043.patch
%define tcpslice_dir tcpslice-1.2a3 %define tcpslice_dir tcpslice-1.3
%description %description
Tcpdump is a command-line tool for monitoring network traffic. Tcpdump is a command-line tool for monitoring network traffic.
@ -44,17 +32,17 @@ Install tcpdump if you need a program to monitor network traffic.
%autosetup -a 1 -S git %autosetup -a 1 -S git
%build %build
export CFLAGS="$RPM_OPT_FLAGS $(getconf LFS_CFLAGS) -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS $(getconf LFS_CFLAGS) -fno-strict-aliasing -DGUESS_TSO"
pushd %{tcpslice_dir} pushd %{tcpslice_dir}
# update config.{guess,sub} # update config.{guess,sub}
automake -a -f 2> /dev/null || : automake -a -f 2> /dev/null || :
%configure %configure
make %{?_smp_mflags} %{make_build}
popd popd
%configure --with-crypto --with-user=tcpdump --without-smi %configure --with-crypto --with-user=tcpdump --without-smi
make %{?_smp_mflags} %{make_build}
%check %check
make check make check
@ -85,7 +73,6 @@ sed -i 's/\(\.TH[a-zA-Z ]*\)[1-9]\(.*\)/\18\2/' \
exit 0 exit 0
%files %files
%defattr(-,root,root)
%license LICENSE %license LICENSE
%doc README.md CHANGES CREDITS %doc README.md CHANGES CREDITS
%{_sbindir}/tcpdump %{_sbindir}/tcpdump
@ -94,35 +81,74 @@ exit 0
%{_mandir}/man8/tcpdump.8* %{_mandir}/man8/tcpdump.8*
%changelog %changelog
* Fri Jan 05 2024 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-5 * Wed May 24 2023 Michal Ruprich <mruprich@redhat.com> - 14:4.99.0-7
- Resolves: RHEL-7858 - tcpslice: use-after-free in extract_slice() - Resolves: #2188429 - enable GUESS_TSO for large packets
* Wed Nov 01 2023 Pavol Žáčik <pzacik@redhat.com> - 14:4.9.3-4 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 14:4.99.0-6
- Resolves: RHEL-10708 - Fix PGM option printing - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Jan 10 2022 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-3 * Wed Jul 28 2021 Florian Weimer <fweimer@redhat.com> - 14:4.99.0-5
- Resolves: #2005451 - tcpdump support for direction and interface needed in RHEL8 - Rebuild to pick up OpenSSL 3.0 Beta ABI (#1984097)
* Thu May 13 2021 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-2 * Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 14:4.99.0-4
- Resolves: #1860216 - tcpdump can not parse mptcp options - Rebuilt for RHEL 9 BETA for openssl 3.0
- Resolves: #1901635 - ppp decapsulator can be convinced to allocate a large amount of memory Related: rhbz#1971065
- Adding tedude test to gating
* Thu May 07 2020 Michal Ruprich <michalruprich@gmail.com> - 14:4.9.3-1 * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 14:4.99.0-3
- Resolves: #1804063 - Rebase tcpdump to 4.9.3 to fix multiple CVEs - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Oct 29 2019 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-6 * Fri Mar 12 2021 Michal Ruprich <mruprich@redhat.com> - 14:4.99.0-2
- Resolves: #1715423 - tcpdump pre creates user and groups unconditionally - New version of tcpslice-1.3
- Resolves: #1655622 - CVE-2018-19519 Stack-based buffer over-read in print-hncp.c:print_prefix() via crafted pcap
* Wed Sep 26 2018 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-5
- Resolves: #1602710 - Please review important issues found by covscan
* Thu Jun 21 2018 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-4 * Fri Feb 12 2021 Michal Ruprich <mruprich@redhat.com> - 14:4.99.0-1
- Removing build-time dependency on sharutils(rhbz#1587877) - New version 4.99.0
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Nov 26 2020 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-6
- Fix for CVE-2020-8037
* Thu Nov 19 2020 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-5
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jul 16 2020 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-3
- Fixing a -G option bug in one of our patches
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 15 2019 Michal Ruprich <mruprich@redhat.com> - 14:4.9.3-1
- New version 4.9.3
- Fixes CVE-2017-16808, CVE-2018-14468, CVE-2018-14469, CVE-2018-14470, CVE-2018-14466, CVE-2018-14461, CVE-2018-14462, CVE-2018-14465, CVE-2018-14881, CVE-2018-14464, CVE-2018-14463, CVE-2018-14467, CVE-2018-10103, CVE-2018-10105, CVE-2018-14880, CVE-2018-16451, CVE-2018-14882, CVE-2018-16227, CVE-2018-16229, CVE-2018-16301, CVE-2018-16230, CVE-2018-16452, CVE-2018-16300, CVE-2018-16228, CVE-2019-15166, CVE-2019-15167
* Mon Sep 16 2019 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-9
- Adding getent to pre scriptlet to avoid audit messages (rhbz#1715420)
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jun 21 2018 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-5
- Removing sharutils from build-time dependencies
- Changing git dependency to smaller git-core - Changing git dependency to smaller git-core
* Thu Jun 07 2018 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-3 * Thu May 10 2018 Michal Ruprich <mruprich@redhat.com> - 14:4.9.2-4
- Adding support for VSOCK (rhbz#1587831) - Enabling upstream tests
- Adding VSOCK support
* Tue Feb 20 2018 Martin Sehnoutka <msehnout@redhat.com> - 14:4.9.2-3
- Add gcc to BuildRequires
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.2-2 * Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 14:4.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild