commit 54527b28739217f7dae439af767b89efaa62a3eb Author: CentOS Sources Date: Tue May 10 03:10:31 2022 -0400 import tcpdump-4.9.3-3.el8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e45ade0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/tcpdump-4.9.3.tar.gz +SOURCES/tcpslice-1.2a3.tar.gz diff --git a/.tcpdump.metadata b/.tcpdump.metadata new file mode 100644 index 0000000..7eaf682 --- /dev/null +++ b/.tcpdump.metadata @@ -0,0 +1,2 @@ +59b309f3620ac4b709de2eaf7bf3a83bf04bc048 SOURCES/tcpdump-4.9.3.tar.gz +98790301cb1bf4399a95153bc62d49b3f5808994 SOURCES/tcpslice-1.2a3.tar.gz diff --git a/SOURCES/0002-Use-getnameinfo-instead-of-gethostbyaddr.patch b/SOURCES/0002-Use-getnameinfo-instead-of-gethostbyaddr.patch new file mode 100644 index 0000000..28bce58 --- /dev/null +++ b/SOURCES/0002-Use-getnameinfo-instead-of-gethostbyaddr.patch @@ -0,0 +1,106 @@ +From c48fba64fbbff9c75c79e32ab33aa65742c197d9 Mon Sep 17 00:00:00 2001 +From: 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 +index 6975b71..949acb7 100644 +--- a/addrtoname.c ++++ b/addrtoname.c +@@ -220,7 +220,6 @@ static uint32_t f_localnet; + const char * + getname(netdissect_options *ndo, const u_char *ap) + { +- register struct hostent *hp; + uint32_t addr; + struct hnamemem *p; + +@@ -242,6 +241,28 @@ getname(netdissect_options *ndo, const u_char *ap) + */ + if (!ndo->ndo_nflag && + (addr & f_netmask) == f_localnet) { ++#ifdef HAVE_GETNAMEINFO ++ struct sockaddr_in sa; ++ char hbuf[NI_MAXHOST]; ++ ++ memset(&sa, 0, sizeof (sa)); ++ sa.sin_family = AF_INET; ++ sa.sin_addr.s_addr = addr; ++ if (!getnameinfo((struct sockaddr *)&sa, sizeof (sa), ++ hbuf, sizeof (hbuf), NULL, 0, 0)) { ++ if (ndo->ndo_Nflag) { ++ char *dotp; ++ ++ /* Remove domain qualifications */ ++ dotp = strchr(hbuf, '.'); ++ if (dotp) ++ *dotp = '\0'; ++ } ++ p->name = strdup(hbuf); ++ return p->name; ++ } ++#else ++ register struct hostent *hp; + hp = gethostbyaddr((char *)&addr, 4, AF_INET); + if (hp) { + char *dotp; +@@ -258,6 +279,7 @@ getname(netdissect_options *ndo, const u_char *ap) + } + return (p->name); + } ++#endif + } + p->name = strdup(intoa(addr)); + if (p->name == NULL) +@@ -272,7 +294,6 @@ getname(netdissect_options *ndo, const u_char *ap) + const char * + getname6(netdissect_options *ndo, const u_char *ap) + { +- register struct hostent *hp; + union { + struct in6_addr addr; + struct for_hash_addr { +@@ -297,6 +318,28 @@ getname6(netdissect_options *ndo, const u_char *ap) + * Do not print names if -n was given. + */ + if (!ndo->ndo_nflag) { ++#ifdef HAVE_GETNAMEINFO ++ struct sockaddr_in6 sa; ++ char hbuf[NI_MAXHOST]; ++ ++ memset(&sa, 0, sizeof (sa)); ++ sa.sin6_family = AF_INET6; ++ sa.sin6_addr = addr.addr; ++ if (!getnameinfo((struct sockaddr *)&sa, sizeof (sa), ++ hbuf, sizeof (hbuf), NULL, 0, 0)) { ++ if (ndo->ndo_Nflag) { ++ char *dotp; ++ ++ /* Remove domain qualifications */ ++ dotp = strchr(hbuf, '.'); ++ if (dotp) ++ *dotp = '\0'; ++ } ++ p->name = strdup(hbuf); ++ return p->name; ++ } ++#else ++ register struct hostent *hp; + hp = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET6); + if (hp) { + char *dotp; +@@ -313,6 +356,7 @@ getname6(netdissect_options *ndo, const u_char *ap) + } + return (p->name); + } ++#endif + } + cp = addrtostr6(ap, ntop_buf, sizeof(ntop_buf)); + p->name = strdup(cp); +-- +2.9.3 + diff --git a/SOURCES/0003-Drop-root-priviledges-before-opening-first-savefile-.patch b/SOURCES/0003-Drop-root-priviledges-before-opening-first-savefile-.patch new file mode 100644 index 0000000..c7ffc59 --- /dev/null +++ b/SOURCES/0003-Drop-root-priviledges-before-opening-first-savefile-.patch @@ -0,0 +1,94 @@ +From 9bee0dffaebbc53b9762df7a6d84a553969e7b00 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Fri, 3 Feb 2017 09:36:26 +0100 +Subject: [PATCH 3/8] Drop root priviledges before opening first savefile if + running with -Z root + +--- + tcpdump.1.in | 7 ++++++- + tcpdump.c | 30 ++++++++++++++++++++++++++++++ + 2 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/tcpdump.1.in b/tcpdump.1.in +index f04a579..ca5cff2 100644 +--- a/tcpdump.1.in ++++ b/tcpdump.1.in +@@ -249,6 +249,9 @@ have the name specified with the + flag, with a number after it, starting at 1 and continuing upward. + The units of \fIfile_size\fP are millions of bytes (1,000,000 bytes, + not 1,048,576 bytes). ++ ++Note that when used with \fB\-Z\fR option (enabled by default), privileges ++are dropped before opening first savefile. + .TP + .B \-d + Dump the compiled packet-matching code in a human readable form to +@@ -860,7 +863,9 @@ but before opening any savefiles for output, change the user ID to + and the group ID to the primary group of + .IR user . + .IP +-This behavior can also be enabled by default at compile time. ++This behavior is enabled by default (\fB\-Z tcpdump\fR), and can ++be disabled by \fB\-Z root\fR. ++ + .IP "\fI expression\fP" + .RS + selects which packets will be dumped. +diff --git a/tcpdump.c b/tcpdump.c +index 73bf138..29f7f87 100644 +--- a/tcpdump.c ++++ b/tcpdump.c +@@ -1133,6 +1133,7 @@ main(int argc, char **argv) + cap_rights_t rights; + int cansandbox; + #endif /* HAVE_CAPSICUM */ ++ int chown_flag = 0; + int Oflag = 1; /* run filter code optimizer */ + int yflag_dlt = -1; + const char *yflag_dlt_name = NULL; +@@ -1843,6 +1844,19 @@ main(int argc, char **argv) + } + capng_apply(CAPNG_SELECT_BOTH); + #endif /* HAVE_LIBCAP_NG */ ++ /* If user is running tcpdump as root and wants to write to the savefile, ++ * we will check if -C is set and if it is, we will drop root ++ * privileges right away and consequent call to>pcap_dump_open() ++ * will most likely fail for the first file. If -C flag is not set we ++ * will create file as root then change ownership of file to proper ++ * user(default tcpdump) and drop root privileges. ++ */ ++ if (WFileName) ++ if (Cflag && (username || chroot_dir)) ++ droproot(username, chroot_dir); ++ else ++ chown_flag = 1; ++ else + if (username || chroot_dir) + droproot(username, chroot_dir); + +@@ -1881,6 +1895,22 @@ main(int argc, char **argv) + MakeFilename(dumpinfo.CurrentFileName, WFileName, 0, 0); + + p = pcap_dump_open(pd, dumpinfo.CurrentFileName); ++ ++ /* Change ownership of file and drop root privileges */ ++ if (chown_flag) { ++ struct passwd *pwd; ++ ++ pwd = getpwnam(username); ++ if (!pwd) ++ error("Couldn't find user '%s'", username); ++ ++ if (strcmp(WFileName, "-") && chown(dumpinfo.CurrentFileName, pwd->pw_uid, pwd->pw_gid) < 0) ++ error("Couldn't change ownership of savefile"); ++ ++ if (username || chroot_dir) ++ droproot(username, chroot_dir); ++ } ++ + #ifdef HAVE_LIBCAP_NG + /* Give up CAP_DAC_OVERRIDE capability. + * Only allow it to be restored if the -C or -G flag have been +-- +2.9.3 + diff --git a/SOURCES/0004-tcpslice-update-tcpslice-patch-to-1.2a3.patch b/SOURCES/0004-tcpslice-update-tcpslice-patch-to-1.2a3.patch new file mode 100644 index 0000000..d6973ac --- /dev/null +++ b/SOURCES/0004-tcpslice-update-tcpslice-patch-to-1.2a3.patch @@ -0,0 +1,88 @@ +From 954c235f6db6f601d732b6fce48d2e8183c05d49 Mon Sep 17 00:00:00 2001 +From: 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 ++/* #include */ ++ ++/* ++ * 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 + diff --git a/SOURCES/0005-tcpslice-remove-unneeded-include.patch b/SOURCES/0005-tcpslice-remove-unneeded-include.patch new file mode 100644 index 0000000..2413575 --- /dev/null +++ b/SOURCES/0005-tcpslice-remove-unneeded-include.patch @@ -0,0 +1,26 @@ +From d32956586bfb50b189132d5a15db8a50ef871278 Mon Sep 17 00:00:00 2001 +From: 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 + #include + +-#include +- + #include + #ifdef HAVE_FCNTL_H + #include +-- +2.9.3 + diff --git a/SOURCES/0006-tcpslice-don-t-test-the-pointer-but-pointee-for-NULL.patch b/SOURCES/0006-tcpslice-don-t-test-the-pointer-but-pointee-for-NULL.patch new file mode 100644 index 0000000..60efc1c --- /dev/null +++ b/SOURCES/0006-tcpslice-don-t-test-the-pointer-but-pointee-for-NULL.patch @@ -0,0 +1,27 @@ +From e159008d2f126d92112858269fb6b2fbca63ffc2 Mon Sep 17 00:00:00 2001 +From: 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 + diff --git a/SOURCES/0007-Introduce-nn-option.patch b/SOURCES/0007-Introduce-nn-option.patch new file mode 100644 index 0000000..1e64d8b --- /dev/null +++ b/SOURCES/0007-Introduce-nn-option.patch @@ -0,0 +1,55 @@ +From 9ea43c6c97d3653cb58c1934f8770b951917bf9a Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 20 Oct 2014 13:26:38 +0200 +Subject: [PATCH 7/8] Introduce -nn option + +This changes the semantics on -n option so only namelookups are skipped. Port +numbers *are* translated to their string representations. Option -nn then has +the same semantics as -n had originally. +--- + addrtoname.c | 4 ++-- + tcpdump.1.in | 6 +++++- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/addrtoname.c b/addrtoname.c +index 949acb7..9dd78d8 100644 +--- a/addrtoname.c ++++ b/addrtoname.c +@@ -810,7 +810,7 @@ init_servarray(netdissect_options *ndo) + + while (table->name) + table = table->nxt; +- if (ndo->ndo_nflag) { ++ if (ndo->ndo_nflag > 1) { + (void)snprintf(buf, sizeof(buf), "%d", port); + table->name = strdup(buf); + } else +@@ -1233,7 +1233,7 @@ init_addrtoname(netdissect_options *ndo, uint32_t localnet, uint32_t mask) + f_localnet = localnet; + f_netmask = mask; + } +- if (ndo->ndo_nflag) ++ if (ndo->ndo_nflag > 1) + /* + * Simplest way to suppress names. + */ +diff --git a/tcpdump.1.in b/tcpdump.1.in +index ca5cff2..c711a24 100644 +--- a/tcpdump.1.in ++++ b/tcpdump.1.in +@@ -547,7 +547,11 @@ Use \fIsecret\fP as a shared secret for validating the digests found in + TCP segments with the TCP-MD5 option (RFC 2385), if present. + .TP + .B \-n +-Don't convert addresses (i.e., host addresses, port numbers, etc.) to names. ++Don't convert host addresses to names. This can be used to avoid ++DNS lookups. ++.TP ++.B \-nn ++Don't convert protocol and port numbers etc. to names either. + .TP + .B \-N + Don't print domain name qualification of host names. +-- +2.9.3 + diff --git a/SOURCES/0009-Change-n-flag-to-nn-in-TESTonce.patch b/SOURCES/0009-Change-n-flag-to-nn-in-TESTonce.patch new file mode 100644 index 0000000..d106be3 --- /dev/null +++ b/SOURCES/0009-Change-n-flag-to-nn-in-TESTonce.patch @@ -0,0 +1,24 @@ +From 04e23aa3f91ff137237daf68f02e7b3c0c1a9168 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Tue, 11 Apr 2017 09:19:48 +0200 +Subject: [PATCH 09/13] Change -n flag to -nn in TESTonce + +We need to change this because we have a different meaning of -n +flag than upstream does. We use -nn in those cases. +--- + tests/TESTonce | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/TESTonce b/tests/TESTonce +index 425abaa..81283d9 100755 +--- 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) { diff --git a/SOURCES/0011-Evp-cipher-buffers.patch b/SOURCES/0011-Evp-cipher-buffers.patch new file mode 100644 index 0000000..2a507ee --- /dev/null +++ b/SOURCES/0011-Evp-cipher-buffers.patch @@ -0,0 +1,13 @@ +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); + + /* diff --git a/SOURCES/0012-Add-printing-support-for-vsockmon-devices.patch b/SOURCES/0012-Add-printing-support-for-vsockmon-devices.patch new file mode 100644 index 0000000..0808c3e --- /dev/null +++ b/SOURCES/0012-Add-printing-support-for-vsockmon-devices.patch @@ -0,0 +1,318 @@ +From 66a5b93dee386bc2f57033a150341752923b8b41 Mon Sep 17 00:00:00 2001 +From: Gerard Garcia +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 ++ * 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 ++#include ++ ++#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 + diff --git a/SOURCES/0013-tcpslice-stdlib.patch b/SOURCES/0013-tcpslice-stdlib.patch new file mode 100644 index 0000000..fc14ed2 --- /dev/null +++ b/SOURCES/0013-tcpslice-stdlib.patch @@ -0,0 +1,12 @@ +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 + + #include ++#include + #if __STDC__ + #include + #else diff --git a/SOURCES/0014-enhance-mptcp.patch b/SOURCES/0014-enhance-mptcp.patch new file mode 100644 index 0000000..a83745a --- /dev/null +++ b/SOURCES/0014-enhance-mptcp.patch @@ -0,0 +1,826 @@ +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 diff --git a/SOURCES/0015-CVE-2020-8037.patch b/SOURCES/0015-CVE-2020-8037.patch new file mode 100644 index 0000000..2852845 --- /dev/null +++ b/SOURCES/0015-CVE-2020-8037.patch @@ -0,0 +1,63 @@ +From 32027e199368dad9508965aae8cd8de5b6ab5231 Mon Sep 17 00:00:00 2001 +From: Guy Harris +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; diff --git a/SOURCES/0016-direction-for-any.patch b/SOURCES/0016-direction-for-any.patch new file mode 100644 index 0000000..4e67d49 --- /dev/null +++ b/SOURCES/0016-direction-for-any.patch @@ -0,0 +1,400 @@ +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 header file. */ + #undef HAVE_NETINET_IF_ETHER_H + ++/* Define to 1 if you have the header file. */ ++#undef HAVE_NET_IF_H ++ + /* Define to 1 if you have the 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 + #include + #include ]) +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 ++#endif ++ + #include + + #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); diff --git a/SOURCES/tcpdump-4.9.3.tar.gz.sig b/SOURCES/tcpdump-4.9.3.tar.gz.sig new file mode 100644 index 0000000..ef927bf Binary files /dev/null and b/SOURCES/tcpdump-4.9.3.tar.gz.sig differ diff --git a/SPECS/tcpdump.spec b/SPECS/tcpdump.spec new file mode 100644 index 0000000..f9461b7 --- /dev/null +++ b/SPECS/tcpdump.spec @@ -0,0 +1,710 @@ +Summary: A network traffic monitoring tool +Name: tcpdump +Epoch: 14 +Version: 4.9.3 +Release: 3%{?dist} +License: BSD with advertising +URL: http://www.tcpdump.org +Group: Applications/Internet +Requires(pre): shadow-utils +BuildRequires: automake openssl-devel libpcap-devel git-core + +Source0: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz +Source1: ftp://ftp.ee.lbl.gov/tcpslice-1.2a3.tar.gz +Source2: http://www.tcpdump.org/release/tcpdump-%{version}.tar.gz.sig + +Patch0002: 0002-Use-getnameinfo-instead-of-gethostbyaddr.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 +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 + +%define tcpslice_dir tcpslice-1.2a3 + +%description +Tcpdump is a command-line tool for monitoring network traffic. +Tcpdump can capture and display the packet headers on a particular +network interface or on all interfaces. Tcpdump can display all of +the packet headers, or just the ones that match particular criteria. + +Install tcpdump if you need a program to monitor network traffic. + +%prep +%autosetup -a 1 -S git + +%build +export CFLAGS="$RPM_OPT_FLAGS $(getconf LFS_CFLAGS) -fno-strict-aliasing" + +pushd %{tcpslice_dir} +# update config.{guess,sub} +automake -a -f 2> /dev/null || : +%configure +make %{?_smp_mflags} +popd + +%configure --with-crypto --with-user=tcpdump --without-smi +make %{?_smp_mflags} + +%check +make check + +%install +mkdir -p ${RPM_BUILD_ROOT}%{_libdir} +mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man8 +mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} + +pushd %{tcpslice_dir} +install -m755 tcpslice ${RPM_BUILD_ROOT}%{_sbindir} +install -m644 tcpslice.1 ${RPM_BUILD_ROOT}%{_mandir}/man8/tcpslice.8 +popd + +install -m755 tcpdump ${RPM_BUILD_ROOT}%{_sbindir} +install -m644 tcpdump.1 ${RPM_BUILD_ROOT}%{_mandir}/man8/tcpdump.8 + +# fix section numbers +sed -i 's/\(\.TH[a-zA-Z ]*\)[1-9]\(.*\)/\18\2/' \ + ${RPM_BUILD_ROOT}%{_mandir}/man8/* + +%pre +/usr/bin/getent group tcpdump >/dev/null || /usr/sbin/groupadd \ + -g 72 tcpdump 2> /dev/null +/usr/bin/getent passwd tcpdump >/dev/null || /usr/sbin/useradd \ + -u 72 -g 72 -s /sbin/nologin -M -r \ + -d / tcpdump 2> /dev/null +exit 0 + +%files +%defattr(-,root,root) +%license LICENSE +%doc README.md CHANGES CREDITS +%{_sbindir}/tcpdump +%{_sbindir}/tcpslice +%{_mandir}/man8/tcpslice.8* +%{_mandir}/man8/tcpdump.8* + +%changelog +* Mon Jan 10 2022 Michal Ruprich - 14:4.9.3-3 +- Resolves: #2005451 - tcpdump support for direction and interface needed in RHEL8 + +* Thu May 13 2021 Michal Ruprich - 14:4.9.3-2 +- Resolves: #1860216 - tcpdump can not parse mptcp options +- Resolves: #1901635 - ppp decapsulator can be convinced to allocate a large amount of memory +- Adding tedude test to gating + +* Thu May 07 2020 Michal Ruprich - 14:4.9.3-1 +- Resolves: #1804063 - Rebase tcpdump to 4.9.3 to fix multiple CVEs + +* Tue Oct 29 2019 Michal Ruprich - 14:4.9.2-6 +- Resolves: #1715423 - tcpdump pre creates user and groups unconditionally +- 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 - 14:4.9.2-5 +- Resolves: #1602710 - Please review important issues found by covscan + +* Thu Jun 21 2018 Michal Ruprich - 14:4.9.2-4 +- Removing build-time dependency on sharutils(rhbz#1587877) +- Changing git dependency to smaller git-core + +* Thu Jun 07 2018 Michal Ruprich - 14:4.9.2-3 +- Adding support for VSOCK (rhbz#1587831) + +* Fri Feb 09 2018 Fedora Release Engineering - 14:4.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Sep 05 2017 Martin Sehnoutka - 14:4.9.2-1 +- New upstream release 4.9.2 + +* Thu Aug 03 2017 Fedora Release Engineering - 14:4.9.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Mon Jul 31 2017 Florian Weimer - 14:4.9.1-2 +- Rebuild with binutils fix for ppc64le (#1475636) + +* Wed Jul 26 2017 Martin Sehnoutka - 14:4.9.1-1 +- New upstream release 4.9.1 + +* Sat Feb 11 2017 Fedora Release Engineering - 14:4.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Feb 03 2017 Martin Sehnoutka - 14:4.9.0-1 +- New upstream version 4.9.0 + +* Mon Oct 31 2016 Luboš Uhliarik - 14:4.8.1-1 +- new version 4.8.1 + +* Tue Aug 09 2016 Luboš Uhliarik - 14:4.8.0-1 +- new version 4.8.0 + +* Fri Feb 05 2016 Fedora Release Engineering - 14:4.7.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jun 29 2015 Michal Sekletar - 14:4.7.4-3 +- prevent sefaulting by properly initializing chown_flag variable (#1223329) + +* Fri Jun 19 2015 Fedora Release Engineering - 14:4.7.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 5 2015 Michal Sekletar - 14:4.7.4-1 +- rebase to 4.7.4 (#1214753) + +* Wed Mar 25 2015 Michal Sekletar - 14:4.7.3-1 +- rebase to 4.7.3 (#1201573) +- contains fixes for CVE-2015-0261 CVE-2015-2154 CVE-2015-2153 CVE-2015-2155 (#1201799,#1201792,#1201795,#1201797) + +* Wed Dec 03 2014 Michal Sekletar - 14:4.6.2-3 +- fix for CVE-2014-9140 + +* Thu Nov 20 2014 Michal Sekletar - 14:4.6.2-2 +- fix for CVE-2014-8767 (#1165160) +- fix for CVE-2014-8768 (#1165161) +- fix for CVE-2014-8769 (#1165162) + +* Mon Oct 20 2014 Michal Sekletar - 14:4.6.2-1 +- update to 4.6.2 (#1124289) + +* Mon Aug 18 2014 Fedora Release Engineering - 14:4.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 14:4.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Nov 28 2013 Michal Sekletar - 14:4.5.1-1 +- update to 4.5.1 + +* Fri Nov 08 2013 Michal Sekletar - 14:4.5.0-1.20131108gitb07944a +- update to snaphot gitb07944a + +* Mon Oct 7 2013 Michal Sekletar - 14:4.4.0-3 +- don't try to change ownership of stdout (#1015767) + +* Sun Aug 04 2013 Fedora Release Engineering - 14:4.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jun 06 2013 Michal Sekletar - 14:4.4.0-1 +- update to 4.4.0 + +* Fri Feb 15 2013 Fedora Release Engineering - 14:4.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 14:4.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 13 2012 Michal Sekletar - 14:4.3.0-1 +- Update to 4.3.0 + +* Wed May 16 2012 Michal Sekletar +- Resolves: #809638 +- created savefile has proper owner + +* Sat Jan 14 2012 Fedora Release Engineering - 14:4.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Jan 03 2012 Jan Synáček - 14:4.2.1-1 +- Update to 4.2.1 +- Remove ppi.h from sources (readded again in upstream tarball) + +* Fri Dec 02 2011 Michal Sekletar - 14:4.2.0-1 +- updated to 4.2.0 +- added new source file ppi.h, missing in upstream tarball +- disabled make check because of missing .pcap files in testsuite +- dropped unnecessary patches + +* Wed Aug 24 2011 Michal Sekletar - 14:4.1.1-3 +- Fix manpage (#663739) +- Fix improper handling of bad date format in tcpslice (#684005) +- Spec file clean up + +* Wed Feb 09 2011 Fedora Release Engineering - 14:4.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Apr 06 2010 Miroslav Lichvar - 14:4.1.1-1 +- update to 4.1.1 +- add %%check + +* Wed Sep 23 2009 Miroslav Lichvar - 14:4.0.0-3.20090921gitdf3cb4 +- update to snapshot 20090921gitdf3cb4 + +* Fri Aug 21 2009 Tomas Mraz - 14:4.0.0-2.20090818git832d2c +- rebuilt with new openssl + +* Thu Aug 20 2009 Miroslav Lichvar - 14:4.0.0-1.20090818git832d2c +- update to post 4.0.0 git snapshot 20090818git832d2c +- print retrans and reachable times in ICMPv6 as milliseconds (#474264) + +* Sun Jul 26 2009 Fedora Release Engineering - 14:3.9.8-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 14:3.9.8-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue Jan 20 2009 Miroslav Lichvar - 14:3.9.8-7 +- rebuild for new openssl +- convert CREDITS to UTF-8 (#226481) + +* Fri Aug 29 2008 Miroslav Lichvar - 14:3.9.8-6 +- rediff patches with fuzz +- add -fno-strict-aliasing to CFLAGS + +* Mon Jun 02 2008 Miroslav Lichvar - 14:3.9.8-5 +- update config.{guess,sub} when building tcpslice +- remove -D_GNU_SOURCE from CFLAGS +- disable libsmi check in configure + +* Wed Feb 13 2008 Miroslav Lichvar - 14:3.9.8-4 +- fix building with new glibc headers + +* Thu Dec 06 2007 Miroslav Lichvar - 14:3.9.8-3 +- update IKEv2 support + +* Thu Dec 6 2007 Jeremy Katz - 14:3.9.8-2 +- rebuild for new openssl + +* Wed Oct 24 2007 Miroslav Lichvar - 14:3.9.8-1 +- update to 3.9.8 +- don't use gethostbyaddr +- fix default user in man page + +* Tue Sep 18 2007 Miroslav Lichvar - 14:3.9.7-5 +- support decoding IKEv2 packets + +* Wed Aug 22 2007 Miroslav Lichvar - 14:3.9.7-4 +- rebuild + +* Thu Aug 09 2007 Miroslav Lichvar - 14:3.9.7-3 +- enable crypto support on 64-bit architectures +- update license tag + +* Wed Jul 25 2007 Jeremy Katz - 14:3.9.7-2 +- rebuild for toolchain bug + +* Tue Jul 24 2007 Miroslav Lichvar - 14:3.9.7-1 +- update to 3.9.7 +- with -C option, drop root privileges before opening first savefile (#244860) +- update tcpslice to 1.2a3 +- include time patch from Debian to fix tcpslice on 64-bit architectures + +* Thu Mar 15 2007 Miroslav Lichvar - 14:3.9.5-3 +- fix buffer overflow in 802.11 printer (#232349, CVE-2007-1218) +- spec cleanup (#226481) + +* Tue Dec 12 2006 Miroslav Lichvar - 14:3.9.5-2 +- use tcpdump user, fix scriptlet (#219268) + +* Wed Nov 29 2006 Miroslav Lichvar - 14:3.9.5-1 +- split off libpcap and arpwatch (#193657) +- update to 3.9.5 +- force linking with system libpcap + +* Fri Nov 17 2006 Miroslav Lichvar - 14:3.9.4-9 +- fix processing of Prism and AVS headers (#206686) +- fix arp2ethers script +- update ethercodes.dat +- move pcap man page to devel package + +* Wed Jul 12 2006 Jesse Keating - 14:3.9.4-8.1 +- rebuild + +* Thu Jun 22 2006 Martin Stransky - 14:3.9.4-8 +- more ipv6 flags + +* Sun Jun 4 2006 Jeremy Katz - 14:3.9.4-7 +- fix libpcap-devel inclusion of .so and its deps (#193189) + +* Thu Jun 1 2006 Martin Stransky - 14:3.9.4-6 +- added release to arpwatch package name + +* Wed May 31 2006 Martin Stransky - 14:3.9.4-5 +- removed libpcap-devel dependency from libpcap + +* Mon May 29 2006 Martin Stransky - 14:3.9.4-4 +- added libpcap-devel package (#193189) + +* Tue Mar 28 2006 Martin Stransky - 14:3.9.4-3 +- updated ethernet codes (#186633) + +* Fri Feb 10 2006 Jesse Keating - 14:3.9.4-2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 14:3.9.4-2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Dec 20 2005 Martin Stransky - 14:3.9.4-2 +- fix for #176010 - file owner problem when using 'ring buffer + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Nov 10 2005 Martin Stransky - 14:3.9.4-1 +- new upstream + +* Thu Nov 10 2005 Tomas Mraz - 14:3.9.3-5 +- rebuilt against new openssl + +* Wed Nov 9 2005 Martin Stransky - 14:3.9.3-4 +- rebuilt + +* Tue Aug 9 2005 Jeremy Katz - 14:3.9.3-3 +- remove explicit kernel dep for libpcap too + +* Tue Jul 26 2005 Martin Stransky - 14:3.9.3-2 +- fixed typo in last patch + +* Tue Jul 26 2005 Martin Stransky - 14:3.9.3-1 +- New upstream version - 3.9.3 +- fix for #164227 (buffer overflow) +- fix for #164230 (missing debug info) + +* Thu Jul 14 2005 Martin Stransky - 14:3.9.1-1 +- New upstream version + +* Tue Jun 21 2005 Martin Stransky - 14:3.8.2-14 +- add shadow-utils to Prereq (#160643) + +* Tue Jun 7 2005 Martin Stransky - 14:3.8.2-13 +- fix for CAN-2005-1267 - BGP DoS, #159209 + +* Thu Apr 28 2005 Martin Stransky - 14:3.8.2-12 +- fix for CAN-2005-1280 Multiple DoS issues in tcpdump + (CAN-2005-1279 CAN-2005-1278), #156041 + +* Mon Mar 7 2005 Martin Stransky +- rebuilt + +* Mon Feb 14 2005 Martin Stransky - 14:3.8.2-10 +- remove explicit kernel dependecy (#146165) +- support for files larger than 2GB (#147840) + +* Fri Feb 11 2005 Ivana Varekova - 14:3.8.2-9 +- added arpsnmp options to specify sender and recipient + and corrected arpwatch and arpsnmp man pages (#70386) + +* Thu Feb 10 2005 Ivana Varekova - 14:3.8.2-8 +- rebuilt + +* Tue Oct 12 2004 Harald Hoyer - 14:3.8.2-7 +- fixed nfs protocol parsing for 64 bit architectures (bug 132781) + +* Wed Sep 15 2004 Harald Hoyer - 14:3.8.2-6 +- added libpcap-0.8.3-ppp.patch for ppp (bug 128053) + +* Wed Jun 23 2004 Elliot Lee +- added flex to BuildRequires + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Sun May 30 2004 Florian La Roche +- simplify rpm scripts + +* Tue Apr 6 2004 Harald Hoyer - 14:3.8.2-3 +- added LICENSE files + +* Wed Mar 31 2004 Harald Hoyer - 14:3.8.2-2 +- update to libpcap-0.8.3 (tcpdump-3.8.3 seems to be older that 3.8.2!!) + +* Tue Mar 30 2004 Harald Hoyer - 14:3.8.2-1 +- update to tcpdump-3.8.2, libpcap-0.8.2, arpwatch-2.1a13 +- patched tcpdump configure for gcc34 optimizations +- removed obsolete patches + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Fri Jan 23 2004 Harald Hoyer 14:3.8.1-4/17 +- fixed arpwatch version +- fixed libpcap library version +- fixed tcpdump droproot + +* Tue Jan 20 2004 Harald Hoyer 14:3.8.1-3 +- corrected tcpslice (bpf.h issue) + +* Tue Jan 13 2004 Harald Hoyer 14:3.8.1-2 +- more security issues (patch 18) + +* Fri Jan 09 2004 Phil Knirsch 14:3.8.1-1 +- Updated to latest version because of security issue + +* Fri Aug 29 2003 Harald Hoyer 14:3.7.2-7 +- build libpcap shared library with gcc and not ld + +* Tue Jul 22 2003 Phil Knirsch 14:3.7.2-6.1 +- rebuilt + +* Mon Jul 21 2003 Phil Knirsch 14:3.7.2-6 +- rebuilt + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed May 21 2003 Harald Hoyer 14:3.7.2-5 +- add proper attributes for arp.dat, ethercodes + +* Tue May 20 2003 Harald Hoyer 14:3.7.2-4 +- take ethercodes.dat from the arpwatch package now + +* Tue May 6 2003 Harald Hoyer 14:3.7.2-3 +- compile tcpdump with autoheader #90208 + +* Thu May 1 2003 Elliot Lee 14:3.7.2-2 +- Add sctpdef patch to fix ppc64 builds + +* Thu Feb 27 2003 Phil Knirsch 14:3.7.2-1 +- Update to upstream version 3.7.2 + +* Sat Feb 01 2003 Florian La Roche +- sanitized rpm scripts + +* Wed Jan 22 2003 Tim Powers 12:3.6.3-20 +- rebuilt + +* Tue Jan 7 2003 Nalin Dahyabhai 12:3.6.3-19/0.6.2-19/2.1a11-19 +- rebuild + +* Sat Jan 4 2003 Jeff Johnson 12:3.6.3-18/0.6.2-18/2.1a11-18 +- set execute bits on library so that requires are generated. + +* Wed Dec 11 2002 Harald Hoyer 12:3.6.3-17/0.6.2-17/2.1a11-17 +- common release no. across all subpackages + +* Wed Dec 11 2002 Harald Hoyer 12:3.6.3-5/0.6.2-16/2.1a11-16 +- print_bgp security fix + +* Mon Nov 18 2002 Tim Powers +- rebuild on all arches + +* Fri Aug 2 2002 Harald Hoyer 12:3.6.3-3/0.6.2-16/2.1a11-16 +- added man page descriptions for the new parameters + +* Thu Aug 1 2002 Harald Hoyer 12:3.6.3-2 +- added arpwatch options to specify sender and recipient (#70386) + +* Tue Jul 23 2002 Harald Hoyer 12:3.6.3-1 +- removed prestripping + +* Thu May 16 2002 Harald Hoyer 12:3.6.2-13 +- added official 3.6.3 fix +- fixed 6.2 compat #63113 + +* Wed Jan 23 2002 Harald Hoyer 12:3.6.2-12 +- tcpdump-3.6.2-snaplen.patch added to fix #55145 + +* Tue Dec 18 2001 Harald Hoyer 12:3.6.2-10 +- took old purge patch for filters +- fixed #54225,#58346 +- drop root by default #49635 +- fixed #54593 +- fixed #57711 + +* Fri Aug 31 2001 Harald Hoyer 12:3.6.2-9 +- took better fix for #52654 from tcpdump cvs + +* Thu Aug 30 2001 Harald Hoyer 11:3.6.2-8 +- fixed #52654 + +* Thu Jul 19 2001 Harald Hoyer 10:3.6.2-7 +- added shared library to libpcap (#47174) +- afs printing security patch (#49294) + +* Wed Jun 20 2001 Harald Hoyer +- use initgroups, instead of setgroups + +* Mon Jun 18 2001 Harald Hoyer +- added dropgroup patches (#44563) + +* Mon May 07 2001 Harald Hoyer +- switched to Pekka's tcpdump-3.6.2 package +- incremented epoch + +* Sat Apr 14 2001 Pekka Savola +- fix building of tcpslice on glibc 2.2.2 (time.h) +- disable /etc/init.d requirement and fix %%post scripts in arpwatch + +* Wed Feb 14 2001 Harald Hoyer +- glibc sys/time -> time include patch + +* Wed Feb 7 2001 Trond Eivind Glomsrød +- Add space to this check + +* Wed Feb 07 2001 Harald Hoyer +- added check for presence of /etc/sysconfig/arpwatch (#23172) + +* Wed Feb 7 2001 Pekka Savola +- update to 3.6.2, 0.6.2 and new CVS of tcpslice. +- i18n'ize arpwatch init script + +* Fri Feb 2 2001 Trond Eivind Glomsrød +- i18nize initscript + +* Mon Jan 29 2001 Harald Hoyer +- fixed EINTR stopping for e.g. SIGSTOP. (#22008) +- added -u option for tcpdump (#20231) +- new arpwatch version (#23172) +- added "all" and "one" interface for -i (#20907) +- added arpwatch sysconfig (#23172) + +* Mon Jan 22 2001 Harald Hoyer +- more (potential) overflows in libpcap. #21373 +- documentation fix for #20906 + +* Sun Jan 14 2001 Pekka Savola +- use --enable-ipv6 +- Add two patches from CVS to enhance 802.2 printing, and more importantly, + to be able to specify 'no stp' + +* Sat Jan 13 2001 Pekka Savola +- Make SMB printing output a lot more quiet unless in verbose mode. +- Make -n resolve port/protocol numbers but not hostnames, -nn for no + resolving at all +- Separate droproot patch from a more generic man/usage fix one +- Add non-promiscuous mode -by default patch, but don't apply it by default + +* Thu Jan 11 2001 Pekka Savola +- Update to tcpdump 3.6.1 and libpcap 0.6.1 releases. + +* Mon Jan 8 2001 Pekka Savola +- Update to 20010108 CVS, disable some upstreamed patches. +- Change some additional .1 pages to .8. +- Add droproot patch, some --usage and man page fixes. + +* Mon Jan 1 2001 Pekka Savola +- Initial packaging with latest tcpdump.org CVS tcpdump-3.6 and libpcap-0.6. +- add earlier print-domain.c, the latest is segfaulting +- don't unnecesessarily include snprintf.o, it didn't compile with gcc 2.96 anyway +- don't use savestr, require openssl, tweak tweak tweak +- add tcpslice, patch it a bit for egcs detection + +* Sun Dec 31 2000 Pekka Savola +- tcpdump: spice up the manpage about interfaces +- tcpdump: add 'all' and 'any' keywords to -i, saner default behaviour. +- upgrade arpwatch to 2.1a10 + +* Sun Nov 26 2000 Jeff Johnson +- more (potential) overflows in libpcap. + +* Sun Nov 12 2000 Jeff Johnson +- eliminate still more buffer overflows (from FreeBSD) (#20069). + +* Thu Nov 2 2000 Jeff Johnson +- eliminate more buffer overflows (from FreeBSD) (#20069). +- 802.1q ether type incorrect (#19850). +- add -u flag to drop arpwatch privs (#19696). + +* Sun Oct 15 2000 Jeff Johnson +- updated ethercodes.dat + +* Thu Oct 12 2000 Jeff Johnson +- fix arpwatch tmp race (#18943). + +* Fri Aug 11 2000 Bill Nottingham +- fix condrestart + +* Fri Aug 11 2000 Jeff Johnson +- correct arpsnmp man pages (#15442). +- don't print harmless ENOPROTOOPT message (#13518). + +* Fri Aug 4 2000 Jeff Johnson +- rebuild with final kernel headers (#13518). + +* Sat Jul 22 2000 Jeff Johnson +- add STP patch (#14112). + +* Fri Jul 14 2000 Matt Wilson +- source /etc/init.d/functions +- back out /etc/init.d/arpwatch, place file in /etc/rc.d +- move initscript to /etc/init.d +- changed initscript to use start() and stop() functions +- added condrestart to init script +- added %%post %%preun %%postun scripts to register arpwatch script +- added Prereq: for all things needed in post/preun/postun + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Tue Jul 11 2000 Jeff Johnson +- updated man page and help (pekkas@netcore.fi) (#10739 et al). + +* Sun Jun 18 2000 Jeff Johnson +- FHS packaging. + +* Tue May 9 2000 Bill Nottingham +- minor tweaks for ia64 (prototypes) + +* Thu Feb 17 2000 Bernhard Rosenkraenzer +- Compile shared libpcap with -fPIC (Bug #6342) + +* Wed Feb 02 2000 Cristian Gafton +- fix descriptions +- man pages are compressed + +* Wed Dec 22 1999 Jeff Johnson +- remove sparc64 SIOCGIFNAME hack, not needed with (at least) kernel 2.2.12-40. +- upgrade to ANK ss991030 snapshot with pcap magic fix (#6773). +- add getprotobyname lookup (#6725). +- getservbyname port lookup appears functional (#7569). +- remove uid 2090 backdoor (sorry Dave) (#7116). + +* Thu Sep 09 1999 Cristian Gafton +- fox the pcap.h header + +* Fri Aug 20 1999 Jeff Johnson +- prevent segfault on obscure spoofed ip header (#4634). + +* Wed Aug 18 1999 Jeff Johnson +- add defattr to arpwatch (#4591). + +* Mon Aug 16 1999 Bill Nottingham +- initscript munging + +* Sun Aug 8 1999 Jeff Johnson +- add -DWORDS_BIGINDIAN to tcpdump compile on sparc sparc61. + +* Tue Aug 3 1999 Jeff Johnson +- include A. Kuznetsov's patches to libpcap/tcpdump. +- added arpsnmp to package (#3258). +- arp2ethers written for different of awk (#4326). + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 10) + +* Fri Mar 19 1999 Jeff Johnson +- strip binaries. + +* Wed Jan 13 1999 Bill Nottingham +- autoconf fixes for arm + +* Tue Sep 29 1998 Jeff Johnson +- libpcap description typo. + +* Sat Sep 19 1998 Jeff Johnson +- fix arpwatch summary line. + +* Mon Aug 17 1998 Jeff Johnson +- enable arpwatch + +* Mon Aug 3 1998 Jeff Johnson +- separate package for libpcap. +- update tcpdump to 3.4, libpcap to 0.4. +- added arpwatch (but disabled for now) + +* Thu May 07 1998 Prospector System +- translations modified for de, fr, tr + +* Sat May 2 1998 Alan Cox +- Added the SACK printing fix so you can dump Linux 2.1+. + +* Tue Oct 21 1997 Erik Troan +- updated to release 3.4a5 +- uses a buildroot and %%attr + +* Thu Jul 17 1997 Erik Troan +- built against glibc