Snap for 10453563 from ecbde7e0a073a51a5b6d3403d36b265b37eaf444 to mainline-uwb-release

Change-Id: I77d591defd34313856bf76a83c5d9c569964202a
diff --git a/.appveyor.yml b/.appveyor.yml
index f923c33..261a2cb 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -12,8 +12,8 @@
 install:
   - appveyor DownloadFile https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip
   - 7z x .\WpdPack_4_1_2.zip -oc:\projects\libpcap\Win32
-  - appveyor DownloadFile https://nmap.org/npcap/dist/npcap-sdk-1.07.zip
-  - 7z x .\npcap-sdk-1.07.zip -oc:\projects\libpcap\Win32\npcap-sdk-1.07
+  - appveyor DownloadFile https://npcap.com/dist/npcap-sdk-1.12.zip
+  - 7z x .\npcap-sdk-1.12.zip -oc:\projects\libpcap\Win32\npcap-sdk-1.12
 
 environment:
   matrix:
@@ -25,10 +25,10 @@
       SDK: WpdPack
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
       GENERATOR: "Visual Studio 14 2015"
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
       GENERATOR: "Visual Studio 14 2015 Win64"
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
       GENERATOR: "Visual Studio 15 2017"
       SDK: WpdPack
@@ -37,10 +37,10 @@
       SDK: WpdPack
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
       GENERATOR: "Visual Studio 15 2017"
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
       GENERATOR: "Visual Studio 15 2017 Win64"
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
       GENERATOR: "Visual Studio 16 2019"
       PLATFORM: Win32
@@ -52,11 +52,11 @@
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
       GENERATOR: "Visual Studio 16 2019"
       PLATFORM: Win32
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
       GENERATOR: "Visual Studio 16 2019"
       PLATFORM: x64
-      SDK: npcap-sdk-1.07
+      SDK: npcap-sdk-1.12
 
 build_script:
   #
diff --git a/.travis-coverity-scan-build.sh b/.ci-coverity-scan-build.sh
similarity index 79%
rename from .travis-coverity-scan-build.sh
rename to .ci-coverity-scan-build.sh
index 7ea1dac..686806a 100755
--- a/.travis-coverity-scan-build.sh
+++ b/.ci-coverity-scan-build.sh
@@ -6,7 +6,6 @@
 printf "\033[33;1mNote: COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN are available on Project Settings page on scan.coverity.com\033[0m\n"
 [ -z "$COVERITY_SCAN_PROJECT_NAME" ] && echo "ERROR: COVERITY_SCAN_PROJECT_NAME must be set" && exit 1
 #[ -z "$COVERITY_SCAN_NOTIFICATION_EMAIL" ] && echo "ERROR: COVERITY_SCAN_NOTIFICATION_EMAIL must be set" && exit 1
-[ -z "$COVERITY_SCAN_BRANCH_PATTERN" ] && echo "ERROR: COVERITY_SCAN_BRANCH_PATTERN must be set" && exit 1
 [ -z "$COVERITY_SCAN_BUILD_COMMAND" ] && echo "ERROR: COVERITY_SCAN_BUILD_COMMAND must be set" && exit 1
 [ -z "$COVERITY_SCAN_TOKEN" ] && echo "ERROR: COVERITY_SCAN_TOKEN must be set" && exit 1
 
@@ -17,31 +16,6 @@
 UPLOAD_URL="https://scan.coverity.com/builds"
 SCAN_URL="https://scan.coverity.com"
 
-# Verify Coverity Scan run condition
-COVERITY_SCAN_RUN_CONDITION=${coverity_scan_run_condition:-true}
-printf "\033[33;1mTesting '%s' condition... " "$COVERITY_SCAN_RUN_CONDITION"
-if eval [ "$COVERITY_SCAN_RUN_CONDITION" ]; then
-  printf "True.\033[0m\n"
-else
-  printf "False. Exit.\033[0m\n"
-  exit 0
-fi
-
-# Do not run on pull requests
-if [ "${TRAVIS_PULL_REQUEST}" = "true" ]; then
-  printf "\033[33;1mINFO: Skipping Coverity Analysis: branch is a pull request.\033[0m\n"
-  exit 0
-fi
-
-# Verify this branch should run
-IS_COVERITY_SCAN_BRANCH=$(ruby -e "puts '${TRAVIS_BRANCH}' =~ /\\A$COVERITY_SCAN_BRANCH_PATTERN\\z/ ? 1 : 0")
-if [ "$IS_COVERITY_SCAN_BRANCH" = "1" ]; then
-  printf "\033[33;1mCoverity Scan configured to run on branch %s\033[0m\n" "$TRAVIS_BRANCH"
-else
-  printf "\033[33;1mCoverity Scan NOT configured to run on branch %s\033[0m\n" "$TRAVIS_BRANCH"
-  exit 1
-fi
-
 # Verify upload is permitted
 AUTH_RES=$(curl -s --form project="$COVERITY_SCAN_PROJECT_NAME" --form token="$COVERITY_SCAN_TOKEN" $SCAN_URL/api/upload_permitted)
 if [ "$AUTH_RES" = "Access denied" ]; then
@@ -82,6 +56,7 @@
 eval "${COVERITY_SCAN_BUILD_COMMAND_PREPEND}"
 # Do not quote COV_BUILD_OPTIONS so it collapses when it is empty and expands
 # when it is not.
+# shellcheck disable=SC2086
 COVERITY_UNSUPPORTED=1 cov-build --dir "$RESULTS_DIR" $COV_BUILD_OPTIONS "$COVERITY_SCAN_BUILD_COMMAND"
 cov-import-scm --dir $RESULTS_DIR --scm git --log $RESULTS_DIR/scm_log.txt 2>&1
 
diff --git a/.cirrus.yml b/.cirrus.yml
index 657f947..5b63400 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -7,25 +7,23 @@
   only_if: $CIRRUS_BRANCH != 'coverity_scan'
   freebsd_instance:
     # FreeBSD fails to start with 1 GB. 8 CPUs max concurrency.
+    # The number of CPU cores must be either 1 or a multiple of 2.
     matrix:
-      - image_family: freebsd-11-4
+      - image_family: freebsd-12-3
         cpu: 2
         memory: 2G
-      - image_family: freebsd-12-2
+      - image_family: freebsd-13-1
         cpu: 2
         memory: 2G
-      - image_family: freebsd-13-0
-        # This one is much slower than the others.
-        cpu: 4
-        memory: 4G
   env:
     IGNORE_OSVERSION: yes
-    MAKEFLAGS: -j 4
-    MATRIX_CC: clang gcc10
+    MAKEFLAGS: -j 3
+    MATRIX_CC: clang14 gcc12
   script:
-    - pkg install -qy git autoconf gcc10
-    - pkg install -qy bash cmake # for build_matrix.sh and build.sh
+    - pkg install -qy git autoconf gcc12 llvm14
+    - pkg install -qy cmake # for build_matrix.sh and build.sh
     - pkg install -qy pkgconf # for cmake, replaces pkg-config
+    - pkg install -qy sudo # for some tcpdump commands
     - echo '$ git clone [...] libpcap.git'
     - git -C .. clone --depth ${CIRRUS_CLONE_DEPTH} --branch=master --quiet ${LIBPCAP_GIT}
     - ./build_matrix.sh
@@ -35,33 +33,34 @@
   only_if: $CIRRUS_BRANCH != 'coverity_scan'
   container:
     # Linux works just fine with 1 GB. 16 CPUs max concurrency.
+    # The number of CPU cores must be either 1 or a multiple of 2.
     cpu: 4
     memory: 1G
-    image: ubuntu:20.04
+    image: ubuntu:22.04
   env:
     DEBIAN_FRONTEND: noninteractive
     MAKEFLAGS: -j 5
-    matrix:
-      - MATRIX_CC: gcc
-      - MATRIX_CC: clang
   script:
-    - apt-get -qy update
-    - apt-get -qy install git autoconf make cmake clang gcc
-    - apt-get -qy install flex bison libdbus-1-dev libbluetooth-dev libnl-genl-3-dev libibverbs-dev # for libpcap
-    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev
+    - apt-get -qy update >/dev/null
+    - apt-get -qy install git autoconf make cmake clang gcc bc >/dev/null
+    - apt-get -qy install flex bison libdbus-1-dev libbluetooth-dev libnl-genl-3-dev libibverbs-dev >/dev/null # for libpcap
+    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev >/dev/null
+    - apt-get -qy install sudo >/dev/null # for some tcpdump commands
     - apt list --installed 'lib*-dev'
     - echo '$ git clone [...] libpcap.git'
     - git -C .. clone --depth ${CIRRUS_CLONE_DEPTH} --branch=master --quiet ${LIBPCAP_GIT}
+    - ./configure --quiet # build the Makefile
+    - make releasecheck
+    - make whitespacecheck
     - ./build_matrix.sh
 
 macos_task:
-  name: macos-amd64
+  name: macos-aarch64
   only_if: $CIRRUS_BRANCH != 'coverity_scan'
   macos_instance:
-    image: big-sur-xcode
-    # "cpu" and "memory" are invalid keywords for macOS tasks now
+    image: ghcr.io/cirruslabs/macos-ventura-xcode:14.1 # macOS 13 with Xcode 14.1
   env:
-    MAKEFLAGS: '-j 12'
+    MAKEFLAGS: '-j 4'
   script:
     - brew update >/dev/null
     - brew install libsmi | grep -v '%'
@@ -75,7 +74,7 @@
   container:
     cpu: 4
     memory: 2G
-    image: ubuntu:20.04
+    image: ubuntu:22.04
   env:
     DEBIAN_FRONTEND: noninteractive
     MAKEFLAGS: -j 5
@@ -83,13 +82,10 @@
     COVERITY_SCAN_TOKEN: ENCRYPTED[1b6f994cabfe74267ce2dce81fd9e49f694e9cfe69fb99f7d1580907bec1266efd7b38df3a47ccab53d5af98636f8e9c]
     COVERITY_SCAN_BUILD_COMMAND_PREPEND: ./configure
     COVERITY_SCAN_BUILD_COMMAND: make
-    COVERITY_SCAN_BRANCH_PATTERN: $CIRRUS_BRANCH
-    TRAVIS_BRANCH: $CIRRUS_BRANCH
-    TRAVIS_PULL_REQUEST: ${CIRRUS_BASE_BRANCH:+true}
   script:
-    - apt-get -qy update
-    - apt-get -qy install autoconf make gcc
-    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev
-    - apt-get -qy install git curl wget ruby rubygems ruby-json # for the coverity script
+    - apt-get -qy update >/dev/null
+    - apt-get -qy install autoconf make gcc >/dev/null
+    - apt-get -qy install libssl-dev libsmi2-dev libcap-ng-dev libpcap-dev >/dev/null
+    - apt-get -qy install git curl wget ruby rubygems ruby-json >/dev/null # for the coverity script
     - apt list --installed 'lib*-dev'
-    - ./.travis-coverity-scan-build.sh
+    - ./.ci-coverity-scan-build.sh
diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE
new file mode 100644
index 0000000..e543fcb
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE
@@ -0,0 +1,11 @@
+To report a security issue please send an e-mail to security@tcpdump.org.
+
+To report bugs and other problems, contribute patches, request a
+feature, provide generic feedback etc please see the file
+CONTRIBUTING.md in the tcpdump source tree root.
+
+When reporting bugs and other problems, give tcpdump and libpcap version
+with 'tcpdump --version' or './tcpdump --version'
+
+If needed, you can attach to a comment a POC pcap file as a gzip compressed
+file or in a zip archive.
diff --git a/.gitignore b/.gitignore
index c89b86c..84a0f7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,6 @@
 tcpdump
 tcpdump.1
 tcpdump-*.tar.gz
-version.c
 failure-outputs.txt
 autom4te.cache/
 *.VC.db
diff --git a/Android.bp b/Android.bp
index 5f0abb9..af9f6cb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,8 +16,9 @@
     ],
 }
 
-cc_binary {
-    name: "tcpdump",
+cc_defaults {
+    name: "tcpdump_defaults",
+
     host_supported: false,
 
     cflags: [
@@ -53,168 +54,12 @@
         "oui.c",
         "parsenfsfh.c",
         "print.c",
-        "print-802_11.c",
-        "print-802_15_4.c",
-        "print-ah.c",
-        "print-ahcp.c",
-        "print-aodv.c",
-        "print-aoe.c",
-        "print-ap1394.c",
-        "print-arcnet.c",
-        "print-arista.c",
-        "print-arp.c",
-        "print-ascii.c",
-        "print-atalk.c",
-        "print-atm.c",
-        "print-babel.c",
-        "print-bcm-li.c",
-        "print-beep.c",
-        "print-bfd.c",
-        "print-bgp.c",
-        "print-bootp.c",
-        "print-brcmtag.c",
-        "print-bt.c",
-        "print-calm-fast.c",
-        "print-carp.c",
-        "print-cdp.c",
-        "print-cfm.c",
-        "print-chdlc.c",
-        "print-cip.c",
-        "print-cnfp.c",
-        "print-dccp.c",
-        "print-decnet.c",
-        "print-dhcp6.c",
-        "print-domain.c",
-        "print-dsa.c",
-        "print-dtp.c",
-        "print-dvmrp.c",
-        "print-eap.c",
-        "print-egp.c",
-        "print-eigrp.c",
-        "print-enc.c",
-        "print-esp.c",
-        "print-ether.c",
-        "print-fddi.c",
-        "print-forces.c",
-        "print-fr.c",
-        "print-frag6.c",
-        "print-ftp.c",
-        "print-geneve.c",
-        "print-geonet.c",
-        "print-gre.c",
-        "print-hncp.c",
-        "print-hsrp.c",
-        "print-http.c",
-        "print-icmp.c",
-        "print-icmp6.c",
-        "print-igmp.c",
-        "print-igrp.c",
-        "print-ip.c",
-        "print-ip6.c",
-        "print-ip6opts.c",
-        "print-ipcomp.c",
-        "print-ipfc.c",
-        "print-ipnet.c",
-        "print-ipoib.c",
-        "print-ipx.c",
-        "print-ip-demux.c",
-        "print-isakmp.c",
-        "print-isoclns.c",
-        "print-juniper.c",
-        "print-krb.c",
-        "print-l2tp.c",
-        "print-lane.c",
-        "print-ldp.c",
-        "print-lisp.c",
-        "print-llc.c",
-        "print-lldp.c",
-        "print-lmp.c",
-        "print-loopback.c",
-        "print-lspping.c",
-        "print-lwapp.c",
-        "print-lwres.c",
-        "print-m3ua.c",
-        "print-macsec.c",
-        "print-mobile.c",
-        "print-mobility.c",
-        "print-mpcp.c",
-        "print-mpls.c",
-        "print-mptcp.c",
-        "print-msdp.c",
-        "print-msnlb.c",
-        "print-nflog.c",
-        "print-nfs.c",
-        "print-nsh.c",
-        "print-ntp.c",
-        "print-null.c",
-        "print-olsr.c",
-        "print-openflow-1.0.c",
-        "print-openflow-1.3.c",
-        "print-openflow.c",
-        "print-ospf.c",
-        "print-ospf6.c",
-        "print-otv.c",
-        "print-pgm.c",
-        "print-pim.c",
-        "print-pktap.c",
-        "print-ppi.c",
-        "print-ppp.c",
-        "print-pppoe.c",
-        "print-pptp.c",
-        "print-ptp.c",
-        "print-radius.c",
-        "print-raw.c",
-        "print-resp.c",
-        "print-rip.c",
-        "print-ripng.c",
-        "print-rpki-rtr.c",
-        "print-rrcp.c",
-        "print-rsvp.c",
-        "print-rt6.c",
-        "print-rtsp.c",
-        "print-rx.c",
-        "print-sctp.c",
-        "print-sflow.c",
-        "print-sip.c",
-        "print-sl.c",
-        "print-sll.c",
-        "print-slow.c",
-        "print-smtp.c",
-        "print-snmp.c",
-        "print-someip.c",
-        "print-ssh.c",
-        "print-stp.c",
-        "print-sunatm.c",
-        "print-sunrpc.c",
-        "print-symantec.c",
-        "print-syslog.c",
-        "print-tcp.c",
-        "print-telnet.c",
-        "print-tftp.c",
-        "print-timed.c",
-        "print-tipc.c",
-        "print-token.c",
-        "print-udld.c",
-        "print-udp.c",
-        "print-unsupported.c",
-        "print-usb.c",
-        "print-vjc.c",
-        "print-vqp.c",
-        "print-vrrp.c",
-        "print-vsock.c",
-        "print-vtp.c",
-        "print-vxlan.c",
-        "print-vxlan-gpe.c",
-        "print-wb.c",
-        "print-zep.c",
-        "print-zephyr.c",
-        "print-zeromq.c",
+        "print-*.c",
         "netdissect.c",
         "signature.c",
         "strtoaddr.c",
         "util-print.c",
         // LOCALSRC
-        "print-smb.c",
         "smbutil.c",
     ],
 
@@ -224,3 +69,15 @@
         "libpcap",
     ],
 }
+
+cc_binary {
+    name: "tcpdump",
+    defaults: ["tcpdump_defaults"],
+}
+
+cc_binary {
+    name: "tcpdump_vendor",
+    stem: "tcpdump",
+    defaults: ["tcpdump_defaults"],
+    vendor: true,
+}
diff --git a/CHANGES b/CHANGES
index bdd7b8b..410b033 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,146 @@
+Thursday, January 12, 2023 / The Tcpdump Group
+  Summary for 4.99.3 tcpdump release
+    Updated printers:
+      PTP: Use the proper values for the control field and print un-allocated
+        values for the message field as "Reserved" instead of "none".
+    Source code:
+      smbutil.c: Replace obsolete function call (asctime)
+    Building and testing:
+      cmake: Update the minimum required version to 2.8.12 (except Windows).
+      CI: Introduce and use TCPDUMP_CMAKE_TAINTED.
+      Makefile.in: Add the releasecheck target.
+      Makefile.in: Add "make -s install" in the releasecheck target.
+      Cirrus CI: Run the "make releasecheck" command in the Linux task.
+      Makefile.in: Add the whitespacecheck target.
+      Cirrus CI: Run the "make whitespacecheck" command in the Linux task.
+      Address all shellcheck warnings in update-test.sh.
+      Makefile.in: Get rid of a remain of gnuc.h.
+    Documentation:
+      Reformat the installation notes (INSTALL.txt) in Markdown.
+      Convert CONTRIBUTING to Markdown.
+      CONTRIBUTING.md: Document the use of "protocol: " in a commit summary.
+      Add a README file for NetBSD.
+      Fix CMake build to set man page section numbers in tcpdump.1
+
+Saturday, December 31, 2022 / The Tcpdump Group
+  Summary for 4.99.2 tcpdump release
+    Updated printers:
+      BGP: Update cease notification decoding to RFC 9003.
+      BGP: decode BGP link-bandwidth extended community properly.
+      BGP: Fix parsing the AIGP attribute
+      BGP: make sure the path attributes don't go past the end of the packet.
+      BGP: Shutdown message can be up to 255 bytes length according to rfc9003
+      DSA: correctly determine VID.
+      EAP: fix some length checks and output issues.
+      802.11: Fix the misleading comment regarding "From DS", "To DS" Frame
+        Control Flags.
+      802.11: Fetch the CF and TIM IEs a field at a time.
+      802.15.4, BGP, LISP: fix some length checks, compiler warnings,
+        and undefined behavior warnings.
+      PFLOG: handle LINKTYPE_PFLOG/DLT_PFLOG files from all OSes on all
+        OSes.
+      RRCP: support more Realtek protocols than just RRCP.
+      MPLS: show the EXP field as TC, as per RFC 5462.
+      ICMP: redo MPLS Extension code as general ICMP Extension code.
+      VQP: Do not print unknown error codes twice.
+      Juniper: Add some bounds checks.
+      Juniper: Don't treat known DLT_ types as "Unknown".
+      lwres: Fix a length check, update a variable type.
+      EAP: Fix some undefined behaviors at runtime.
+      Ethernet: Rework the length checks, add a length check.
+      IPX: Add two length checks.
+      Zephyr: Avoid printing non-ASCII characters.
+      VRRP: Print the protocol name before any GET_().
+      DCCP: Get rid of trailing commas in lists.
+      Juniper: Report invalid packets as invalid, not truncated.
+      IPv6: Remove an obsolete code in an always-false #if wrapper.
+      ISAKMP: Use GET_U_1() to replace a direct dereference.
+      RADIUS: Use GET_U_1() to replace a direct dereference.
+      TCP: Fix an invalid check.
+      RESP: Fix an invalid check.
+      RESP: Remove an unnecessary test.
+      Arista: Refine the output format and print HwInfo.
+      sFlow: add support for IPv6 agent, add a length check.
+      VRRP: add support for IPv6.
+      OSPF: Update to match the Router Properties registry.
+      OSPF: Remove two unnecessary dereferences.
+      OSPF: Add support bit Nt RFC3101.
+      OSPFv3: Remove two unnecessary dereferences.
+      ICMPv6: Fix output for Router Renumbering messages.
+      ICMPv6: Fix the Node Information flags.
+      ICMPv6: Remove an unused macro and extra blank lines.
+      ICMPv6: Add a length check in the rpl_dio_print() function.
+      ICMPv6: Use GET_IP6ADDR_STRING() in the rpl_dio_print() function.
+      IPv6: Add some checks for the Hop-by-Hop Options header
+      IPv6: Add a check for the Jumbo Payload Hop-by-Hop option.
+      NFS: Fix the format for printing an unsigned int
+      PTP: fix printing of the correction fields
+      PTP: Use ND_LCHECK_U for checking invalid length.
+      WHOIS: Add its own printer source file and printer function
+      MPTCP: print length before subtype inside MPTCP options
+      ESP: Add a workaround to a "use-of-uninitialized-value".
+      PPP: Add tests to avoid incorrectly re-entering ppp_hdlc().
+      PPP: Don't process further if protocol is unknown (-e option).
+      PPP: Change the pointer to packet data.
+      ZEP: Add three length checks.
+      Add some const qualifiers.
+    Building and testing:
+      Update config.guess and config.sub.
+      Use AS_HELP_STRING macro instead of AC_HELP_STRING.
+      Handle some Autoconf/make errors better.
+      Fix an error when cross-compiling.
+      Use "git archive" for the "make releasetar" process.
+      Remove the release candidate rcX targets.
+      Mend "make check" on Solaris 9 with Autoconf.
+      Address assorted compiler warnings.
+      Fix auto-enabling of Capsicum on FreeBSD with Autoconf.
+      Treat "msys" as Windows for test exit statuses.
+      Clean up some help messages in configure.
+      Use unified diff by default.
+      Remove awk code from mkdep.
+      Fix configure test errors with Clang 15
+      CMake: Prevent stripping of the RPATH on installation.
+      AppVeyor CI: update Npcap site, update to 1.12 SDK.
+      Cirrus CI: Use the same configuration as for the main branch.
+      CI: Add back running tcpdump -J/-L and capture, now with Cirrus VMs.
+      Remove four test files (They are now in the libpcap tests directory).
+      On Solaris, for 64-bit builds, use the 64-bit pcap-config.
+      Tell CMake not to check for a C++ compiler.
+      CMake: Add a way to request -Werror and equivalents.
+      configure: Special-case macOS /usr/bin/pcap-config as we do in CMake.
+      configure: Use pcap-config --static-pcap-only if available.
+      configure: Use ac_c_werror_flag to force unknown compiler flags to fail.
+      configure: Use AC_COMPILE_IFELSE() and AC_LANG_SOURCE() for testing
+        flags.
+      Run the test that fails on OpenBSD only if we're not on OpenBSD.
+    Source code:
+      Fix some snapend-changing routines to protect against pointer
+        underflow.
+      Use __func__ from C99 in some function calls.
+      Memory allocator: Update nd_add_alloc_list() to a static function.
+      addrtoname.c: Fix two invalid tests.
+      Use more S_SUCCESS and S_ERR_HOST_PROGRAM in main().
+      Add some comments about "don't use GET_IP6ADDR_STRING()".
+      Assign ndo->ndo_packetp in pretty_print_packet().
+      Add ND_LCHECKMSG_U, ND_LCHECK_U, ND_LCHECKMSG_ZU and ND_LCHECK_ZU macros.
+      Update tok2strbuf() to a static function.
+      netdissect.h: Keep the link-layer dissectors names sorted.
+      setsignal(): Set SA_RESTART on non-lethal signals (REQ_INFO, FLUSH_PCAP)
+        to avoid corrupting binary pcap output.
+      Use __builtin_unreachable().
+      Fail if nd_push_buffer() or nd_push_snaplen() fails.
+      Improve code style and fix many typos.
+    Documentation:
+      Some man page cleanups.
+      Update the print interface for the packet count to stdout.
+      Note that we require compilers to support at least some of C99.
+      Update AIX and Solaris-related specifics.
+      INSTALL.txt: Add doc/README.*, delete the deleted win32 directory.
+      Update README.md and README.Win32.md.
+      Update some comments with new RFC numbers.
+
 Wednesday, June 9, 2021 by gharris
-  Summary for 4.99.1 tcpdump release:
+  Summary for 4.99.1 tcpdump release
     Source code:
       Squelch some compiler warnings
       ICMP: Update the snapend for some nested IP packets.
@@ -33,6 +174,7 @@
 
 Wednesday, December 30, 2020, by mcr@sandelman.ca, denis and fxl.
   Summary for 4.99.0 tcpdump release
+    CVE-2018-16301: For the -F option handle large input files safely.
     Improve the contents, wording and formatting of the man page.
     Print unsupported link-layer protocol packets in hex.
     Add support for new network protocols and DLTs: Arista, Autosar SOME/IP,
@@ -123,7 +265,6 @@
       CVE-2018-14882 (RPL)
       CVE-2018-16227 (802.11)
       CVE-2018-16229 (DCCP)
-      CVE-2018-16301 (was fixed in libpcap)
       CVE-2018-16230 (BGP)
       CVE-2018-16452 (SMB)
       CVE-2018-16300 (BGP)
@@ -815,7 +956,7 @@
 		including improved 64bit support
 	Many new testcases
 	Support for sending packets
-	Many compliation fixes on most platforms
+	Many compilation fixes on most platforms
 	Fixes for recent version of GCC to eliminate warnings
 	Improved Unicode support
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73acc75..73f32ea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@
     # environment variable when running pkg-config, to make sure
     # it finds any .pc file from there.
     #
-    cmake_minimum_required(VERSION 2.8.6)
+    cmake_minimum_required(VERSION 2.8.12)
 endif(WIN32)
 
 #
@@ -28,9 +28,93 @@
     cmake_policy(SET CMP0074 NEW)
 endif()
 
+#
+# OK, this is a pain.
+#
+# When building on NetBSD, with a libpcap installed from pkgsrc,
+# a -Wl,-rpath,/usr/pkg/lib option is added to the options when
+# linking tcpdump.  This puts /usr/pkg/lib into the run-time path.
+#
+# However, by default, CMake adds a rule to the install CMake script
+# a CMake command (using an undocumented subcommand of file()) that
+# strips /usr/pkg/lib *out* of the run-time path; the message in the
+# output for the "install" target is
+#
+#    -- Set runtime path of "{target-directory}/tcpdump" to ""
+#
+# I am not certain what the rationale is for doing this, but a
+# *consequence* of this is that, when you run the installed tcpdump,
+# it fails to find libpcap.so:
+#
+#    $ {target-directory}/tcpdump -h
+#    {target-directory}/tcpdump: Shared object "libpcap.so.0" not found
+#
+# It also appears to be the case that, on Ubuntu 22.04, FreeBSD 12,
+# DragonFly BSD 5.8, OpenBSD 6.6, and Solaris 11.4,
+#
+# On Ubuntu and Solaris, even if you have a libpcap in /usr/local, you
+# have to provide not only -I/usr/local/include and -L/usr/local/lib,
+# you also must provide -Wl,-rpath,/usr/local/lib in order to have
+# the run-time linker look in /usr/local/lib for libpcap.  If it's not
+# specified, then, if the shared library major version number of the
+# libpcap in /usr/lib is the same as the shared major version number
+# of the libpcap in /usr/local/lib, the run-time linker will find the
+# libpcap in /usr/lib; if the versions are different, the run-time
+# linker will fail to find the libpcap in /usr/lib, so the program will
+# fail to run.
+#
+# We suppress this by setting CMAKE_INSTALL_RPATH_USE_LINK_PATH to TRUE;
+# as the documentation for that variable says:
+#
+#    Add paths to linker search and installed rpath.
+#
+#    CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to True
+#    will append to the runtime search path (rpath) of installed
+#    binaries any directories outside the project that are in the linker
+#    search path or contain linked library files. The directories are
+#    appended after the value of the INSTALL_RPATH target property.
+#
+# If, for whatever reason, directories in which we search for external
+# libraries, other than the standard system library directories, are
+# added to the executable's rpath in the build process, we most
+# defintely want them in the installed image's rpath if they are
+# necessary in order to find the libraries at run time.
+#
+set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 
-project(tcpdump)
+#
+# OK, this is a royal pain.
+#
+# CMake will try to determine the sizes of some data types, including
+# void *, early in the process of configuration; apparently, it's done
+# as part of processing the project() command.
+#
+# At least as of CMake 2.8.6, it does so by checking the size of
+# "void *" in C, setting CMAKE_C_SIZEOF_DATA_PTR based on that,
+# setting CMAKE_SIZEOF_VOID_P to that, and then checking the size
+# of "void *" in C++, setting CMAKE_CXX_SIZEOF_DATA_PTR based on
+# that, and then setting CMAKE_SIZEOF_VOID_P to *that*.
+#
+# The compile tests include whatever C flags may have been provided
+# to CMake in the CFLAGS and CXXFLAGS environment variables.
+#
+# If you set an architecture flag such as -m32 or -m64 in CFLAGS
+# but *not* in CXXFLAGS, the size for C++ will win, and hilarity
+# will ensue.
+#
+# Or if, at least on Solaris, you have a newer version of GCC
+# installed, but *not* a newer version of G++, and you have Oracle
+# Studio installed, it will find GCC, which will default to building
+# 64-bit, and Oracle Studio's C++ compiler, which will default to
+# building 32-bit, the size for C++ will win, and, again, hilarity
+# will ensue.
+#
+# So we *explicitly* state that only C is used; there is currently no
+# C++ code in tcpdump.
+#
+project(tcpdump C)
 
 #
 # For checking if a compiler flag works and adding it if it does.
@@ -245,15 +329,6 @@
 if(HAVE_RPC_RPC_H)
     check_include_files("rpc/rpc.h;rpc/rpcent.h" HAVE_RPC_RPCENT_H)
 endif(HAVE_RPC_RPC_H)
-if(NOT WIN32)
-    check_include_files("sys/types.h;sys/socket.h;net/if.h;net/pfvar.h" HAVE_NET_PFVAR_H)
-    if(HAVE_NET_PFVAR_H)
-        check_include_files("sys/types.h;sys/socket.h;net/if.h;net/pfvar.h;net/if_pflog.h" HAVE_NET_IF_PFLOG_H)
-        if(HAVE_NET_IF_PFLOG_H)
-            set(LOCALSRC print-pflog.c ${LOCALSRC})
-        endif(HAVE_NET_IF_PFLOG_H)
-    endif(HAVE_NET_PFVAR_H)
-endif(NOT WIN32)
 
 #
 # Functions.
@@ -917,6 +992,19 @@
     endif()
 endif()
 
+#
+# Extra compiler options for the build matrix scripts to request -Werror or
+# its equivalent if required.  The CMake variable name cannot be CFLAGS
+# because that is already used for a different purpose in CMake.  Example
+# usage: cmake -DEXTRA_CFLAGS='-Wall -Wextra -Werror' ...
+#
+if(NOT "${EXTRA_CFLAGS}" STREQUAL "")
+    foreach(_extra_cflag ${EXTRA_CFLAGS})
+        check_and_add_compiler_option("${_extra_cflag}")
+    endforeach(_extra_cflag)
+    message(STATUS "Added extra compile options (${EXTRA_CFLAGS})")
+endif()
+
 ######################################
 # Input files
 ######################################
@@ -1050,6 +1138,7 @@
     print-ospf.c
     print-ospf6.c
     print-otv.c
+    print-pflog.c
     print-pgm.c
     print-pim.c
     print-pktap.c
@@ -1060,11 +1149,11 @@
     print-ptp.c
     print-radius.c
     print-raw.c
+    print-realtek.c
     print-resp.c
     print-rip.c
     print-ripng.c
     print-rpki-rtr.c
-    print-rrcp.c
     print-rsvp.c
     print-rt6.c
     print-rtsp.c
@@ -1102,6 +1191,7 @@
     print-vxlan-gpe.c
     print-vxlan.c
     print-wb.c
+    print-whois.c
     print-zep.c
     print-zephyr.c
     print-zeromq.c
@@ -1152,6 +1242,55 @@
     *.h
 )
 
+#
+# Assume, by default, no support for shared libraries and V7/BSD
+# convention for man pages (devices in section 4, file formats in
+# section 5, miscellaneous info in section 7, administrative commands
+# and daemons in section 8).  Individual cases can override this.
+# Individual cases can override this.
+#
+set(MAN_FILE_FORMATS 5)
+set(MAN_MISC_INFO 7)
+if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
+    # Workaround to enable certain features
+    set(_SUN TRUE)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "HP-UX")
+    #
+    # Use System V conventions for man pages.
+    #
+    set(MAN_FILE_FORMATS 4)
+    set(MAN_MISC_INFO 5)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "IRIX" OR CMAKE_SYSTEM_NAME STREQUAL "IRIX64")
+    #
+    # Use IRIX conventions for man pages; they're the same as the
+    # System V conventions, except that they use section 8 for
+    # administrative commands and daemons.
+    #
+    set(MAN_FILE_FORMATS 4)
+    set(MAN_MISC_INFO 5)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "OSF1")
+    #
+    # DEC OSF/1, a/k/a Digital UNIX, a/k/a Tru64 UNIX.
+    # Use Tru64 UNIX conventions for man pages; they're the same as the
+    # System V conventions except that they use section 8 for
+    # administrative commands and daemons.
+    #
+    set(MAN_FILE_FORMATS 4)
+    set(MAN_MISC_INFO 5)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION MATCHES "5[.][0-9.]*")
+    #
+    # SunOS 5.x.
+    #
+    if(CMAKE_SYSTEM_VERSION STREQUAL "5.12")
+    else()
+        #
+        # Use System V conventions for man pages.
+        #
+        set(MAN_FILE_FORMATS 4)
+        set(MAN_MISC_INFO 5)
+    endif()
+endif()
+
 source_group("Source Files" FILES ${PROJECT_SOURCE_LIST_C})
 source_group("Header Files" FILES ${PROJECT_SOURCE_LIST_H})
 
diff --git a/CONTRIBUTING b/CONTRIBUTING
deleted file mode 100644
index 26fb1ec..0000000
--- a/CONTRIBUTING
+++ /dev/null
@@ -1,170 +0,0 @@
-Some Information for Contributors
----------------------------------
-Thank you for considering to make a contribution to tcpdump! Please use the
-guidelines below to achieve the best results and experience for everyone.
-
-
-How to report bugs and other problems
--------------------------------------
-To report a security issue (segfault, buffer overflow, infinite loop, arbitrary
-code execution etc) please send an e-mail to security@tcpdump.org, do not use
-the bug tracker!
-
-To report a non-security problem (failure to compile, incorrect output in the
-protocol printout, missing support for a particular protocol etc) please check
-first that it reproduces with the latest stable release of tcpdump and the latest
-stable release of libpcap. If it does, please check that the problem reproduces
-with the current git master branch of tcpdump and the current git master branch of
-libpcap. If it does (and it is not a security-related problem, otherwise see
-above), please navigate to https://github.com/the-tcpdump-group/tcpdump/issues
-and check if the problem has already been reported. If it has not, please open
-a new issue and provide the following details:
-
-* tcpdump and libpcap version (tcpdump --version)
-* operating system name and version and any other details that may be relevant
-  (uname -a, compiler name and version, CPU type etc.)
-* custom configure/CMake flags, if any
-* statement of the problem
-* steps to reproduce
-
-Please note that if you know exactly how to solve the problem and the solution
-would not be too intrusive, it would be best to contribute some development time
-and to open a pull request instead as discussed below.
-
-Still not sure how to do? Feel free to [subscribe](https://www.tcpdump.org/#mailing-lists)
-to the mailing list tcpdump-workers@lists.tcpdump.org and ask!
-
-
-How to add new code and to update existing code
------------------------------------------------
-
-0) Check that there isn't a pull request already opened for the changes you
-   intend to make.
-
-1) Fork the Tcpdump repository on GitHub from
-   https://github.com/the-tcpdump-group/tcpdump
-   (See https://help.github.com/articles/fork-a-repo/)
-
-2) The easiest way to test your changes on multiple operating systems and
-   architectures is to let the upstream CI test your pull request (more on
-   this below).
-
-3) Setup your git working copy
-   git clone https://github.com/<username>/tcpdump.git
-   cd tcpdump
-   git remote add upstream https://github.com/the-tcpdump-group/tcpdump
-   git fetch upstream
-
-4) Do a 'touch .devel' in your working directory.
-   Currently, the effect is
-   a) add (via configure, in Makefile) some warnings options ( -Wall
-   -Wmissing-prototypes -Wstrict-prototypes, ...) to the compiler if it
-   supports these options,
-   b) have the Makefile support "make depend" and the configure script run it.
-
-5) Configure and build
-   ./configure && make -s && make check
-
-6) Add/update tests
-   The tests directory contains regression tests of the dissection of captured
-   packets.  Those captured packets were saved running tcpdump with option "-w
-   sample.pcap".  Additional options, such as "-n", are used to create relevant
-   and reproducible output; "-#" is used to indicate which particular packets
-   have output that differs.  The tests are run with the TZ environment
-   variable set to GMT0, so that UTC, rather than the local time where the
-   tests are being run, is used when "local time" values are printed.  The
-   actual test compares the current text output with the expected result
-   (sample.out) saved from a previous version.
-
-   Any new/updated fields in a dissector must be present in a sample.pcap file
-   and the corresponding output file.
-
-   Configuration is set in tests/TESTLIST.
-   Each line in this file has the following format:
-   test-name   sample.pcap   sample.out   tcpdump-options
-
-   The sample.out file can be produced as follows:
-   (cd tests && TZ=GMT0 ../tcpdump -# -n -r sample.pcap tcpdump-options > sample.out)
-
-   Or, for convenience, use "./update-test.sh test-name"
-
-   It is often useful to have test outputs with different verbosity levels
-   (none, -v, -vv, -vvv, etc.) depending on the code.
-
-7) Test with 'make check'
-   Don't send a pull request if 'make check' gives failed tests.
-
-8) Try to rebase your commits to keep the history simple.
-   git rebase upstream/master
-   (If the rebase fails and you cannot resolve, issue "git rebase --abort"
-   and ask for help in the pull request comment.)
-
-9) Once 100% happy, put your work into your forked repository.
-   git push
-
-10) Initiate and send a pull request
-    (See https://help.github.com/articles/using-pull-requests/)
-    This will trigger the upstream repository CI tests.
-
-
-Code style and generic remarks
-------------------------------
-a) A thorough reading of some other printers code is useful.
-
-b) Put the normative reference if any as comments (RFC, etc.).
-
-c) Put the format of packets/headers/options as comments if there is no
-   published normative reference.
-
-d) The printer may receive incomplete packet in the buffer, truncated at any
-   random position, for example by capturing with '-s size' option.
-   If your code reads and decodes every byte of the protocol packet, then to
-   ensure proper and complete bounds checks it would be sufficient to read all
-   packet data using the GET_*() macros, typically:
-    GET_U_1(p)
-    GET_S_1(p)
-    GET_BE_U_n(p), n in { 2, 3, 4, 5, 6, 7, 8 }
-    GET_BE_S_n(p), n in { 2, 3, 4, 5, 6, 7, 8 }
-   If your code uses the macros above only on some packet data, then the gaps
-   would have to be bounds-checked using the ND_TCHECK_*() macros:
-    ND_TCHECK_n(p), n in { 1, 2, 3, 4, 5, 6, 7, 8, 16 }
-    ND_TCHECK_SIZE(p)
-    ND_TCHECK_LEN(p, l)
-   For the ND_TCHECK_* macros (if not already done):
-     Assign: ndo->ndo_protocol = "protocol";
-     Define: ND_LONGJMP_FROM_TCHECK before including netdissect.h
-     Make sure that the intersection of GET_*() and ND_TCHECK_*() is minimal,
-     but at the same time their union covers all packet data in all cases.
-   You can test the code via:
-     sudo ./tcpdump -s snaplen [-v][v][...] -i lo # in a terminal
-     sudo tcpreplay -i lo sample.pcap             # in another terminal
-   You should try several values for snaplen to do various truncation.
-
-e) Do invalid packet checks in code: Think that your code can receive in input
-   not only a valid packet but any arbitrary random sequence of octets (packet
-   - built malformed originally by the sender or by a fuzz tester,
-   - became corrupted in transit or for some other reason).
-   Print with: nd_print_invalid(ndo);	/* to print " (invalid)" */
-
-f) Use 'struct tok' for indexed strings and print them with
-   tok2str() or bittok2str() (for flags).
-
-g) Avoid empty lines in output of printers.
-
-h) A commit message must have:
-   First line: Capitalized short summary in the imperative (70 chars or less)
-
-   Body: Detailed explanatory text, if necessary. Fold it to approximately
-   72 characters. There must be an empty line separating the summary from
-   the body.
-
-i) Avoid non-ASCII characters in code and commit messages.
-
-j) Use the style of the modified sources.
-
-k) Don't mix declarations and code
-
-l) Don't use // for comments
-   Not all C compilers accept C++/C99 comments by default.
-
-m) Avoid trailing tabs/spaces
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..26f226e
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,191 @@
+# Some Information for Contributors
+Thank you for considering to make a contribution to tcpdump! Please use the
+guidelines below to achieve the best results and experience for everyone.
+
+## How to report bugs and other problems
+**To report a security issue (segfault, buffer overflow, infinite loop, arbitrary
+code execution etc) please send an e-mail to security@tcpdump.org, do not use
+the bug tracker!**
+
+To report a non-security problem (failure to compile, incorrect output in the
+protocol printout, missing support for a particular protocol etc) please check
+first that it reproduces with the latest stable release of tcpdump and the latest
+stable release of libpcap. If it does, please check that the problem reproduces
+with the current git master branch of tcpdump and the current git master branch of
+libpcap. If it does (and it is not a security-related problem, otherwise see
+above), please navigate to the
+[bug tracker](https://github.com/the-tcpdump-group/tcpdump/issues)
+and check if the problem has already been reported. If it has not, please open
+a new issue and provide the following details:
+
+* tcpdump and libpcap version (`tcpdump --version`)
+* operating system name and version and any other details that may be relevant
+  (`uname -a`, compiler name and version, CPU type etc.)
+* custom `configure`/`cmake` flags, if any
+* statement of the problem
+* steps to reproduce
+
+Please note that if you know exactly how to solve the problem and the solution
+would not be too intrusive, it would be best to contribute some development time
+and to open a pull request instead as discussed below.
+
+Still not sure how to do? Feel free to
+[subscribe to the mailing list](https://www.tcpdump.org/#mailing-lists)
+and ask!
+
+
+## How to add new code and to update existing code
+
+0) Check that there isn't a pull request already opened for the changes you
+   intend to make.
+
+1) [Fork](https://help.github.com/articles/fork-a-repo/) the Tcpdump
+   [repository](https://github.com/the-tcpdump-group/tcpdump).
+
+2) The easiest way to test your changes on multiple operating systems and
+   architectures is to let the upstream CI test your pull request (more on
+   this below).
+
+3) Setup your git working copy
+   ```
+   git clone https://github.com/<username>/tcpdump.git
+   cd tcpdump
+   git remote add upstream https://github.com/the-tcpdump-group/tcpdump
+   git fetch upstream
+   ```
+
+4) Do a `touch .devel` in your working directory.
+   Currently, the effect is
+   * add (via `configure`, in `Makefile`) some warnings options (`-Wall`,
+     `-Wmissing-prototypes`, `-Wstrict-prototypes`, ...) to the compiler if it
+     supports these options,
+   * have the `Makefile` support `make depend` and the `configure` script run it.
+
+5) Configure and build
+   ```
+   ./configure && make -s && make check
+   ```
+
+6) Add/update tests
+   The `tests` directory contains regression tests of the dissection of captured
+   packets.  Those captured packets were saved running tcpdump with option
+   `-w sample.pcap`.  Additional options, such as `-n`, are used to create relevant
+   and reproducible output; `-#` is used to indicate which particular packets
+   have output that differs.  The tests are run with the `TZ` environment
+   variable set to `GMT0`, so that UTC, rather than the local time where the
+   tests are being run, is used when "local time" values are printed.  The
+   actual test compares the current text output with the expected result
+   (`sample.out`) saved from a previous version.
+
+   Any new/updated fields in a dissector must be present in a `sample.pcap` file
+   and the corresponding output file.
+
+   Configuration is set in `tests/TESTLIST`.
+   Each line in this file has the following format:
+   ```
+   test-name   sample.pcap   sample.out   tcpdump-options
+   ```
+
+   The `sample.out` file can be produced as follows:
+   ```
+   (cd tests && TZ=GMT0 ../tcpdump -# -n -r sample.pcap tcpdump-options > sample.out)
+   ```
+
+   Or, for convenience, use `./update-test.sh test-name`
+
+   It is often useful to have test outputs with different verbosity levels
+   (none, `-v`, `-vv`, `-vvv`, etc.) depending on the code.
+
+7) Test using `make check` (current build options) and `./build_matrix.sh`
+   (a multitude of build options, build systems and compilers). If you can,
+   test on more than one operating system. Don't send a pull request until
+   all tests pass.
+
+8) Try to rebase your commits to keep the history simple.
+   ```
+   git fetch upstream
+   git rebase upstream/master
+   ```
+   (If the rebase fails and you cannot resolve, issue `git rebase --abort`
+   and ask for help in the pull request comment.)
+
+9) Once 100% happy, put your work into your forked repository using `git push`.
+
+10) [Initiate and send](https://help.github.com/articles/using-pull-requests/)
+    a pull request.
+    This will trigger the upstream repository CI tests.
+
+
+## Code style and generic remarks
+*  A thorough reading of some other printers code is useful.
+
+*  Put the normative reference if any as comments (RFC, etc.).
+
+*  Put the format of packets/headers/options as comments if there is no
+   published normative reference.
+
+*  The printer may receive incomplete packet in the buffer, truncated at any
+   random position, for example by capturing with `-s size` option.
+   If your code reads and decodes every byte of the protocol packet, then to
+   ensure proper and complete bounds checks it would be sufficient to read all
+   packet data using the `GET_*()` macros, typically:
+   ```
+   GET_U_1(p)
+   GET_S_1(p)
+   GET_BE_U_n(p), n in { 2, 3, 4, 5, 6, 7, 8 }
+   GET_BE_S_n(p), n in { 2, 3, 4, 5, 6, 7, 8 }
+   ```
+   If your code uses the macros above only on some packet data, then the gaps
+   would have to be bounds-checked using the `ND_TCHECK_*()` macros:
+   ```
+   ND_TCHECK_n(p), n in { 1, 2, 3, 4, 5, 6, 7, 8, 16 }
+   ND_TCHECK_SIZE(p)
+   ND_TCHECK_LEN(p, l)
+   ```
+   For the `ND_TCHECK_*` macros (if not already done):
+   * Assign: `ndo->ndo_protocol = "protocol";`
+   * Define: `ND_LONGJMP_FROM_TCHECK` before including `netdissect.h`
+   * Make sure that the intersection of `GET_*()` and `ND_TCHECK_*()` is minimal,
+     but at the same time their union covers all packet data in all cases.
+
+   You can test the code via:
+   ```
+   sudo ./tcpdump -s snaplen [-v][v][...] -i lo # in a terminal
+   sudo tcpreplay -i lo sample.pcap             # in another terminal
+   ```
+   You should try several values for snaplen to do various truncation.
+
+*  Do invalid packet checks in code: Think that your code can receive in input
+   not only a valid packet but any arbitrary random sequence of octets (packet
+   * built malformed originally by the sender or by a fuzz tester,
+   * became corrupted in transit or for some other reason).
+
+   Print with: `nd_print_invalid(ndo);	/* to print " (invalid)" */`
+
+*  Use `struct tok` for indexed strings and print them with
+   `tok2str()` or `bittok2str()` (for flags).
+
+*  Avoid empty lines in output of printers.
+
+*  A commit message must have:
+   ```
+   First line: Capitalized short summary in the imperative (50 chars or less)
+
+   If the commit concerns a protocol, the summary line must start with
+   "protocol: ".
+
+   Body: Detailed explanatory text, if necessary. Fold it to approximately
+   72 characters. There must be an empty line separating the summary from
+   the body.
+   ```
+
+*  Avoid non-ASCII characters in code and commit messages.
+
+*  Use the style of the modified sources.
+
+*  Don't mix declarations and code.
+
+*  Don't use `//` for comments.
+   Not all C compilers accept C++/C99 comments by default.
+
+*  Avoid trailing tabs/spaces
diff --git a/CREDITS b/CREDITS
index 4496fac..b6862cc 100644
--- a/CREDITS
+++ b/CREDITS
@@ -9,11 +9,15 @@
 Additional people who have contributed patches (in alphabetical order):
     Aaron Campbell                <aaron at arbor dot net>
     A Costa                       <agcosta at gis dot net>
+    ABHIMANYU                     <agupta07 at sourceforge dot net>
     Adam Sampson                  <ats at offog dot org>
     Ahmed Abdelsalam              <ahabdels at gmail dot com>
+    Ajith Adapa                   <adapa dot ajith at gmail dot com>
     Albert Chin                   <china at thewrittenword dot com>
     Alexandra Kossovsky           <alexandra1975 at sourceforge dot net>
     Alexandr Nedvedicky           <alexandr dot nedvedicky at oracle dot com>
+    Alexandre Ferrieux            <alexandre dot ferrieux at orange dot com>
+    Alexis La Goutte              <alexis dot lagoutte at gmail dot com>
     Alfredo Andres                <aandres at s21sec dot com>
     Ali Abdulkadir                <autostart dot ini at gmail dot com>
     Ananth Suryanarayana          <anantha at juniper dot net>
@@ -41,6 +45,7 @@
     Ben Byer                      <bushing at sourceforge dot net>
     Ben Smithurst                 <ben at scientia dot demon dot co dot uk>
     Bert Vermeulen                <bert at biot dot com>
+    Bill Fenner                   <fenner at gmail dot com>
     Bill Parker                   <wp02855 at gmail dot com>
     Bjoern A. Zeeb                <bzeeb at Zabbadoz dot NeT>
     Bram                          <tcpdump at mail dot wizbit dot be>
@@ -53,6 +58,7 @@
     bugyo                         <bugyo at users dot noreply dot github dot com>
     Carles Kishimoto Bisbe        <ckishimo at ac dot upc dot es>
     Casey Deccio                  <casey at deccio dot net>
+    Charles (Chas) Williams       <chwillia at ciena dot com>
     Charles M. Hannum             <mycroft at netbsd dot org>
     Charlie Lenahan               <clenahan at fortresstech dot com>
     Chris Cogdon                  <chris at cogdon dot org>
@@ -65,6 +71,7 @@
     Craig Leres                   <leres at xse dot com>
     Craig Rodrigues               <rodrigc at mediaone dot net>
     Crist J. Clark                <cjclark at alum dot mit dot edu>
+    Dagobert Michelsen            <dam at opencsw dot org>
     Daniel Hagerty                <hag at ai dot mit dot edu>
     Daniel Lee                    <Longinus00 at gmail dot com>
     Daniel Miller                 <dmiller at nmap dot org>
@@ -80,10 +87,12 @@
     Dmitrij Tejblum               <tejblum at yandex-team dot ru>
     Dmitry Eremin-Solenikov       <dbaryshkov at gmail dot com>
     Don Ebright                   <Don dot Ebright at compuware dot com>
+    Donatas Abraitis              <donatas dot abraitis at gmail dot com>
     d simonov                     <simonov-d at yandex-team dot ru>
     Duane Wessels                 <dwessels at verisign dot com>
     Eamon Doyle                   <eamonjd at arista dot com>
     Eddie Kohler                  <xexd at sourceforge dot net>
+    Ege Cetin                     <egecetin at hotmail dot com dot tr>
     Eliot Lear                    <lear at upstairs dot ofcourseimright dot com>
     Elmar Kirchner                <elmar at juniper dot net>
     Eric S. Raymond               <esr at thyrsus dot com>
@@ -102,11 +111,15 @@
     George Bakos                  <gbakos at ists dot dartmouth dot edu>
     Gerald Combs                  <gerald at ethereal dot com>
     Gerard Garcia                 <ggarcia at deic dot uab dot cat>
+    George Neville-Neil           <gnn at freebsd dot org>
+    Gerald Combs                  <gerald at wireshark dot org>
     Gerrit Renker                 <gerrit at erg dot abdn dot ac dot uk>
     Gert Doering                  <gert at greenie dot muc dot de>
+    Gianluca Varenni              <gianluca dot varenni at gmail dot com>
     Gilbert Ramirez Jr.           <gram at xiexie dot org>
     Gisle Vanem                   <gvanem at yahoo dot no>
     Gleb Smirnoff                 <glebius at FreeBSD dot org>
+    Gokul Sivakumar               <gokulkumar792 at gmail dot com>
     Greg Minshall                 <minshall at acm dot org>
     Grégoire Henry                <henry at pps dot jussieu dot fr>
     Gregory Detal                 <gregory dot detal at uclouvain dot be>
@@ -114,6 +127,7 @@
     Greg Steinbrecher             <steinbrecher at alum dot mit dot edu>
     Guy Lewin                     <guy at lewin dot co dot il>
     Hank Leininger                <tcpdump-workers at progressive-comp dot com>
+    Hannes Gredler                <hannes at gredler dot at>
     Hannes Viertel                <hviertel at juniper dot net>
     Hanno Böck                    <hanno at hboeck dot de>
     Harry Raaymakers              <harryr at connect dot com dot au>
@@ -122,9 +136,11 @@
     Herwin Weststrate             <herwin at quarantainenet dot nl>
     Ian McDonald                  <imcdnzl at gmail dot com>
     Ilpo Järvinen                 <ilpo dot jarvinen at helsinki dot fi>
+    ishaangandhi                  <ishaangandhi at gmail dot com>
     Jacek Tobiasz                 <Jacek dot Tobiasz at atm dot com dot pl>
     Jacob Davis                   <jacobgb24 at yahoo dot com>
     Jakob Schlyter                <jakob at openbsd dot org>
+    Jakub Zawadzki                <darkjames at darkjames dot pl>
     Jamal Hadi Salim              <hadi at cyberus dot ca>
     James Ko                      <jck at exegin dot com>
     Jamie Bainbridge              <jamie dot bainbridge at gmail dot com>
@@ -153,10 +169,12 @@
     Karl Norby                    <karl-norby at sourceforge dot net>
     Kazushi Sugyo                 <sugyo at pb dot jp dot nec dot com>
     Kelly Carmichael              <kcarmich at ipapp dot com>
+    Ken Bantoft                   <ken at xelerance dot com>
     Ken Hornstein                 <kenh at cmf dot nrl dot navy dot mil>
     Kenichi Maehashi              <webmaster at kenichimaehashi dot com>
     Kevin Steves                  <stevesk at pobox dot com>
     Klaus Klein                   <kleink at reziprozitaet dot de>
+    Kovarththanan Rajaratnam      <kovarththanan dot rajaratnam at gmail dot com>
     Kris Kennaway                 <kris at freebsd dot org>
     Krzysztof Halasa              <khc at pm dot waw dot pl>
     Larry Lile                    <lile at stdio dot com>
@@ -183,6 +201,7 @@
     Martin Husemann               <martin at netbsd dot org>
     Martin Sehnoutka              <msehnout at redhat dot com>
     Matt Eaton                    <agnosticdev at gmail dot com>
+    Matthew Luckie                <matthewluckie at sourceforge dot net>
     Matthieu Boutier              <boutier at pps dot univ-paris-diderot dot fr>
     Max Laier                     <max at love2party dot net>
     Michael A. Meffie III         <meffie at sourceforge dot net>
@@ -193,22 +212,29 @@
     Michael Shalayeff             <mickey at openbsd dot org>
     Michael Shields               <shields at msrl dot com>
     Michael T. Stolarchuk         <mts at off dot to>
+    Michal Ruprich                <michalruprich at gmail dot com>
     Michal Sekletar               <msekleta at redhat dot com>
     Michele "mydecay" Marchetto   <smarchetto1 at tin dot it>
     Mike Frysinger                <vapier at gmail dot com>
+    Mingrui                       <972931182 at qq dot com>
     Minto Jeyananth               <minto at juniper dot net>
     Miroslav Lichvar              <mlichvar at redhat dot com>
     Mister X                      <3520734+Mister-X- at users dot noreply dot github dot com>
     Mitsunori Komatsu             <komamitsu at gmail dot com>
     Monroe Williams               <monroe at pobox dot com>
+    Monthadar Al Jaberi           <monthadar at gmail dot com>
     Moses Devadason               <mosesdevadason at gmail dot com>
     Motonori Shindo               <mshindo at mshindo dot net>
     Nan Xiao                      <nan at chinadtrace dot org>
     Nathaniel Couper-Noles        <Nathaniel at isi1 dot tccisi dot com>
     Nathan J. Williams            <nathanw at MIT dot EDU>
+    Neelabh                       <neelabhsahay at gmail dot com>
     Neil T. Spring                <bluehal at users dot sourceforge dot net>
+    Nicholas Reilly               <nreilly at blackberry dot com>
     Nickolai Zeldovich            <kolya at MIT dot EDU>
+    Nikolay Edigaryev             <edigaryev at gmail dot com>
     Nicolas Ferrero               <toorop at babylo dot net>
+    niks3089                      <niks3089 at gmail dot com>
     Niels Provos                  <provos at openbsd dot org>
     Nikhil AP                     <nikhilap at arista dot com>
     Noritoshi Demizu              <demizu at users dot sourceforge dot net>
@@ -228,6 +254,7 @@
     Pawel Worach                  <pawel dot worach at gmail dot com>
     Pedro Monreal                 <pmgdeb at gmail dot com>
     Pekka Savola                  <pekkas at netcore dot fi>
+    peppe                         <g1pi at libero dot it>
     Petar Alilovic                <petar dot alilovic at gmail dot com>
     Peter Fales                   <peter at fales-lorenz dot net>
     Peter Jeremy                  <peter dot jeremy at alcatel dot com dot au>
@@ -237,6 +264,7 @@
                                   <pfhunt at users dot sourceforge dot net>
     Phil Wood                     <cpw at lanl dot gov>
     Pier Carlo Chiodi             <pierky at pierky dot com>
+    Quentin Armitage              <quentin at armitage dot org dot uk>
     Rafal Maszkowski              <rzm at icm dot edu dot pl>
     Randy Sofia                   <rsofia at users dot sourceforge dot net>
     Raphael Raimbault             <raphael dot raimbault at netasq dot com>
@@ -257,7 +285,9 @@
     Rui Paulo                     <rpaulo at FreeBSD dot org>
     Sabrina Dubroca               <sd at queasysnail dot net>
     Sagun Shakya                  <sagun dot shakya at sun dot com>
+    Sam James                     <sam at gentoo dot org>
     Sami Farin                    <safari at iki dot fi>
+    Sascha Wildner                <swildner at sourceforge dot net>
     Sawssen Hadded                <saw dot hadded at gmail dot com>
     Scott Mcmillan                <scott dot a dot mcmillan at intel dot com>
     Scott Rose                    <syberpunk at users dot sourceforge dot net>
@@ -274,6 +304,7 @@
     Steinar Haug                  <sthaug at nethelp dot no>
     Stephane Bortzmeyer           <stephane+github at bortzmeyer dot org>
     Steve Kay                     <stevekay at gmail dot com>
+    Steve-o                       <fnjordy at sourceforge dot net>
     Steven H. Wang                <wang dot steven dot h at gmail dot com>
     Swaathi Vetrivel              <swaathiv at juniper dot net>
     Swaminathan Chandrasekaran    <chander at juniper dot net>
@@ -281,8 +312,11 @@
     Tatuya Jinmei                 <jinmei at kame dot net>
     Tero Kivinen                  <kivinen at iki dot fi>
     Terry Kennedy                 <terry at tmk dot com>
+    test2                         <test2 at safs64 dot (none)>
     Thomas Jacob                  <jacob at internet24 dot de>
+    Tillmann Karras               <tilkax at gmail dot com>
     Timo Koskiahde
+    Tobias Waldekranz             <tobias at waldekranz dot com>
     Tom Jones                     <thj at freebsd dot org>
     Tommy Beadle                  <tbeadle at arbor dot net>
     Tony Li                       <tli at procket dot com>
@@ -306,8 +340,11 @@
     William J. Hulley             <bill dot hulley at gmail dot com>
     Wim Torfs                     <wtorfs at gmail dot com>
     Wolfgang Karall               <office at karall-edv dot at>
+    Xin Li                        <delphij at FreeBSD dot org>
+    yekm                          <yekm at h0me>
     Yen Yen Lim
     Yoshifumi Nishida
+    zilog80a                      <zilog80a at sourceforge dot net>
     zolf                          <flos at xs4all dot nl>
 
 The original LBL crew:
@@ -316,7 +353,7 @@
     Van Jacobson
 
 Past maintainers (in alphabetical order):
-    Bill Fenner                   <fenner at research dot att dot com>
+    Bill Fenner                   <fenner at gmail dot com>
     Fulvio Risso                  <risso at polito dot it>
     Hannes Gredler                <hannes at gredler dot at>
     Jun-ichiro itojun Hagino      <itojun at iijlab dot net>		Also see: http://www.wide.ad.jp/itojun-award/
diff --git a/INSTALL.txt b/INSTALL.md
similarity index 73%
rename from INSTALL.txt
rename to INSTALL.md
index 0885404..b3fbf42 100644
--- a/INSTALL.txt
+++ b/INSTALL.md
@@ -1,49 +1,55 @@
+# tcpdump installation notes
 If you have not built libpcap, and your system does not have libpcap
 installed, install libpcap first.  Your system might provide a version
 of libpcap that can be installed; if so, to compile tcpdump you might
 need to install a "developer" version of libpcap as well as the
 "run-time" version.  You can also install tcpdump.org's version of
-libpcap; see the README.md file in this directory for the location.
+libpcap; see [this file](README.md) for the location.
 
-You will need an ANSI C compiler to build tcpdump. The configure script
-will abort if your compiler is not ANSI compliant. If this happens, use
-the generally available GNU C compiler (GCC).
+You will need a C99 compiler to build tcpdump.  The build system
+will abort if your compiler is not C99 compliant.  If this happens, use
+the generally available GNU C compiler (GCC) or Clang.
 
-After libpcap has been built (either install it with "make install" or
+After libpcap has been built (either install it with `make install` or
 make sure both the libpcap and tcpdump source trees are in the same
-directory), run ./configure (a shell script).  "configure" will
-determine your system attributes and generate an appropriate Makefile
-from Makefile.in.  Now build tcpdump by running "make".
+directory), run `./configure` (a shell script). `configure` will
+determine your system attributes and generate an appropriate `Makefile`
+from `Makefile.in`.  Now build tcpdump by running `make`.
 
-If everything builds ok, su and type "make install".  This will install
+If everything builds ok, `su` and type `make install`.  This will install
 tcpdump and the manual entry.  Any user will be able to use tcpdump to
 read saved captures.  Whether a user will be able to capture traffic
-depends on the OS and the configuration of the system; see the tcpdump
-man page for details.  DO NOT give untrusted users the ability to
+depends on the OS and the configuration of the system; see the
+[tcpdump man page](https://www.tcpdump.org/manpages/tcpdump.1.html)
+for details.  DO NOT give untrusted users the ability to
 capture traffic.  If a user can capture traffic, he or she could use
 utilities such as tcpdump to capture any traffic on your net, including
 passwords.
 
 Note that most systems ship tcpdump, but usually an older version.
-Remember to remove or rename the installed binary when upgrading.
+Building tcpdump from source as explained above will usually install the
+binary as `/usr/local/bin/tcpdump`.  If your system has other tcpdump
+binaries, you might need to deinstall these or to set the PATH environment
+variable if you need the `tcpdump` command to run the new binary
+(`tcpdump --version` can be used to tell different versions apart).
 
 If your system is not one which we have tested tcpdump on, you may have
-to modify the configure script and Makefile.in. Please send us patches
+to modify the `configure` script and `Makefile.in`. Please
+[send us patches](https://www.tcpdump.org/index.html#patches)
 for any modifications you need to make.
 
-Please see "README.md" for notes about tested platforms.
+Please see [this file](README.md) for notes about tested platforms.
 
 
-FILES
------
+## Description of files
+```
 CHANGES		- description of differences between releases
-CONTRIBUTING	- guidelines for contributing
+CONTRIBUTING.md	- guidelines for contributing
 CREDITS		- people that have helped tcpdump along
-INSTALL.txt	- this file
+INSTALL.md	- this file
 LICENSE		- the license under which tcpdump is distributed
 Makefile.in	- compilation rules (input to the configure script)
 README.md	- description of distribution
-Readme.Win32	- notes on building tcpdump on Win32 systems (with WinPcap)
 VERSION		- version of this release
 aclocal.m4	- autoconf macros
 addrtoname.c	- address to hostname routines
@@ -66,6 +72,7 @@
 config.sub	- autoconf support
 configure	- configure script (run this first)
 configure.ac	- configure script source
+doc/README.*	- some building documentation
 ethertype.h	- Ethernet type value definitions
 extract.h	- alignment definitions
 gmpls.c		- GMPLS definitions
@@ -116,4 +123,4 @@
 timeval-operations.h - timeval operations macros
 udp.h		- UDP definitions
 util-print.c	- utility routines for protocol printers
-win32		- headers and routines for building on Win32 systems
+```
diff --git a/METADATA b/METADATA
index 51bcfd9..63caf89 100644
--- a/METADATA
+++ b/METADATA
@@ -1,3 +1,7 @@
+# This project was upgraded with external_updater.
+# Usage: tools/external_updater/updater.sh update tcpdump
+# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
+
 name: "tcpdump"
 description: "the TCPdump network dissector"
 third_party {
@@ -6,15 +10,15 @@
     value: "https://www.tcpdump.org/"
   }
   url {
-    type: ARCHIVE
-    value: "https://github.com/the-tcpdump-group/tcpdump/archive/tcpdump-4.99.1.tar.gz"
+    type: GIT
+    value: "https://github.com/the-tcpdump-group/tcpdump.git"
   }
-  version: "tcpdump-4.99.1"
+  version: "tcpdump-4.99.3"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2021
-    month: 8
-    day: 20
+    year: 2023
+    month: 1
+    day: 24
   }
   security {
       tag: "NVD-CPE2.3:cpe:/a:tcpdump:tcpdump:4.9.3"
diff --git a/Makefile.in b/Makefile.in
index 4ffca81..ad513ec 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -193,6 +193,7 @@
 	print-ospf.c \
 	print-ospf6.c \
 	print-otv.c \
+	print-pflog.c \
 	print-pgm.c \
 	print-pim.c \
 	print-pktap.c \
@@ -203,11 +204,11 @@
 	print-ptp.c \
 	print-radius.c \
 	print-raw.c \
+	print-realtek.c \
 	print-resp.c \
 	print-rip.c \
 	print-ripng.c \
 	print-rpki-rtr.c \
-	print-rrcp.c \
 	print-rsvp.c \
 	print-rt6.c \
 	print-rtsp.c \
@@ -245,6 +246,7 @@
 	print-vxlan-gpe.c \
 	print-vxlan.c \
 	print-wb.c \
+	print-whois.c \
 	print-zep.c \
 	print-zephyr.c \
 	print-zeromq.c \
@@ -275,6 +277,7 @@
 	chdlc.h \
 	compiler-tests.h \
 	cpack.h \
+	diag-control.h \
 	ethertype.h \
 	extract.h \
 	fptype.h \
@@ -304,6 +307,7 @@
 	ospf.h \
 	oui.h \
 	pcap-missing.h \
+	pflog.h \
 	ppp.h \
 	print.h \
 	rpc_auth.h \
@@ -329,28 +333,31 @@
 
 EXTRA_DIST = \
 	CHANGES \
-	CONTRIBUTING \
-	CREDITS \
 	CMakeLists.txt \
-	INSTALL.txt \
+	CONTRIBUTING.md \
+	CREDITS \
+	INSTALL.md \
 	LICENSE \
-	Makefile.in \
 	Makefile-devel-adds \
+	Makefile.in \
 	README.md \
 	VERSION \
 	aclocal.m4 \
 	atime.awk \
 	bpf_dump.c \
-	cmake_uninstall.cmake.in \
-	cmakeconfig.h.in \
 	cmake/Modules/FindCRYPTO.cmake \
 	cmake/Modules/FindPCAP.cmake \
 	cmake/Modules/FindSMI.cmake \
+	cmake_uninstall.cmake.in \
+	cmakeconfig.h.in \
 	config.guess \
 	config.h.in \
 	config.sub \
 	configure \
 	configure.ac \
+	doc/README.aix.md \
+	doc/README.NetBSD.md \
+	doc/README.solaris.md \
 	doc/README.Win32.md \
 	install-sh \
 	lbl/os-osf4.h \
@@ -358,10 +365,10 @@
 	lbl/os-sunos4.h \
 	lbl/os-ultrix4.h \
 	makemib \
-	missing/dlnames.c \
 	missing/datalinks.c \
-	missing/getopt_long.h \
+	missing/dlnames.c \
 	missing/getopt_long.c \
+	missing/getopt_long.h \
 	missing/getservent.c \
 	missing/pcap_dump_ftell.c \
 	missing/snprintf.c \
@@ -369,8 +376,6 @@
 	missing/strlcat.c \
 	missing/strlcpy.c \
 	missing/strsep.c \
-	missing/win_ether_ntohost.c \
-	missing/win_ether_ntohost.h \
 	mkdep \
 	packetdat.awk \
 	print-pflog.c \
@@ -382,6 +387,8 @@
 
 TEST_DIST= `git ls-files tests | grep -v 'tests/\..*'`
 
+RELEASE_FILES = $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST)
+
 all: $(PROG)
 
 $(PROG): $(OBJ) @V_PCAPDEP@ $(LIBNETDISSECT)
@@ -438,7 +445,7 @@
 
 distclean:
 	rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
-	    config.h gnuc.h os-proto.h stamp-h stamp-h.in $(PROG).1 \
+	    config.h os-proto.h stamp-h stamp-h.in $(PROG).1 \
 	    libnetdissect.a tests/.failed tests/.passed \
 	    tests/failure-outputs.txt
 	rm -rf autom4te.cache tests/DIFF tests/NEW
@@ -456,18 +463,67 @@
 	etags $(TAGFILES)
 
 releasetar:
-	@autoreconf -f; \
-	name=$(PROG)-`cat VERSION` ; \
-	   mkdir $$name; \
-	   tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST) | (cd $$name; tar xf -); \
-	   tar -c -z -f $$name.tar.gz $$name; \
-	   rm -rf $$name
+	@TAG=$(PROG)-`cat VERSION` && \
+	if git show-ref --tags --quiet --verify -- "refs/tags/$$TAG"; then \
+	    git archive --prefix="$$TAG"/ -o "$$TAG".tar.gz "$$TAG" \
+	    $(RELEASE_FILES) && \
+	    echo "Archive build from tag $$TAG."; \
+	else \
+	    git archive --prefix="$$TAG"/ -o "$$TAG".tar.gz HEAD \
+	    $(RELEASE_FILES) && \
+	    echo "No $$TAG tag. Archive build from HEAD."; \
+	fi
 
-rc1 rc2 rc3 rc4 rc5:
-	@VER=`cat $(srcdir)/VERSION`; \
-	sed -i "s/$$VER/$${VER}$@/" VERSION ; \
-	make releasetar; \
-	git checkout VERSION configure
+releasecheck: releasetar
+	@TAG=$(PROG)-`cat VERSION` && \
+	INSTALL_DIR=/tmp/install_"$$TAG"_$$$$ && \
+	DIR=`pwd` && \
+	cd /tmp && \
+	rm -rf "$$TAG" && \
+	rm -rf "$$INSTALL_DIR" && \
+	tar xf "$$DIR"/"$$TAG".tar.gz && \
+	cd "$$TAG" && \
+	echo "[$@] $$ ./configure --enable-smb --quiet --prefix=$$INSTALL_DIR" && \
+	./configure --enable-smb --quiet --prefix="$$INSTALL_DIR" && \
+	echo '[$@] $$ make -s all check' && \
+	make -s all check >/dev/null && \
+	echo '[$@] $$ make -s install' && \
+	make -s install && \
+	cd .. && \
+	rm -rf "$$TAG" && \
+	rm -rf "$$INSTALL_DIR" && \
+	tar xf "$$DIR"/"$$TAG".tar.gz && \
+	cd "$$TAG" && \
+	mkdir build && \
+	cd build && \
+	echo '[$@] $$ cmake -DENABLE_SMB=yes [...] ..' && \
+	cmake -DENABLE_SMB=yes \
+	    -DCMAKE_INSTALL_PREFIX="$$INSTALL_DIR" \
+	    -DCMAKE_MESSAGE_LOG_LEVEL=NOTICE \
+	    -DCMAKE_RULE_MESSAGES=OFF \
+	    -DCMAKE_INSTALL_MESSAGE=NEVER \
+	    .. && \
+	echo '[$@] $$ make -s all check' && \
+	make -s all check >/dev/null && \
+	echo '[$@] $$ make -s install' && \
+	make -s install && \
+	cd ../.. && \
+	rm -rf "$$TAG" && \
+	rm -rf "$$INSTALL_DIR" && \
+	echo '[$@] Done.'
+
+whitespacecheck:
+	@# trailing space(s)?
+	@if git grep -I -n ' $$' $$(git ls-files|grep -v '^tests/'); then \
+	    echo 'Error: Trailing space(s).'; \
+	    exit 1; \
+	fi
+	@# trailing tab(s)?
+	@# install-sh has a tab at the end of one line
+	@if git grep -I -n '	$$' $$(git ls-files|grep -vE '^(tests/|install-sh$$)'); then \
+	    echo 'Error: Trailing tabs(s).'; \
+	    exit 1; \
+	fi
 
 testlist:
 	echo $(TEST_DIST)
@@ -476,4 +532,4 @@
 	$(MKDEP) -c "$(CC)" -m "$(DEPENDENCY_CFLAG)" -s "$(srcdir)" $(DEFS) $(INCLS) $(SRC) $(LIBNETDISSECT_SRC)
 
 shellcheck:
-	shellcheck -f gcc build.sh build_matrix.sh
+	shellcheck -f gcc -e SC2006 build.sh build_matrix.sh build_common.sh
diff --git a/README.md b/README.md
index 48445ae..a1f2ee6 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 
 To report bugs and other problems, contribute patches, request a
 feature, provide generic feedback etc please see the
-[guidelines for contributing](CONTRIBUTING) in the tcpdump source tree root.
+[guidelines for contributing](CONTRIBUTING.md) in the tcpdump source tree root.
 
 Anonymous Git is available via
 
@@ -30,6 +30,7 @@
 * FreeBSD
 * Haiku
 * HP-UX 11i
+* illumos (OmniOS, OpenIndiana)
 * GNU/Linux
 * {Mac} OS X / macOS
 * NetBSD
@@ -45,7 +46,7 @@
 
 Once libpcap is built (either install it or make sure it's in
 `../libpcap`), you can build tcpdump using the procedure in the
-[installation guide](INSTALL.txt).
+[installation notes](INSTALL.md).
 
 ### Origins of tcpdump
 The program is loosely based on SMI's "etherfind" although none of the
diff --git a/VERSION b/VERSION
index 6cda521..d7ba2fe 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.99.1
+4.99.3
diff --git a/aclocal.m4 b/aclocal.m4
index ef5efe0..c67e572 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -211,36 +211,6 @@
 ])
 
 dnl
-dnl Check whether, if you pass an unknown warning option to the
-dnl compiler, it fails or just prints a warning message and succeeds.
-dnl Set ac_lbl_unknown_warning_option_error to the appropriate flag
-dnl to force an error if it would otherwise just print a warning message
-dnl and succeed.
-dnl
-AC_DEFUN(AC_LBL_CHECK_UNKNOWN_WARNING_OPTION_ERROR,
-    [
-	AC_MSG_CHECKING([whether the compiler fails when given an unknown warning option])
-	save_CFLAGS="$CFLAGS"
-	CFLAGS="$CFLAGS -Wxyzzy-this-will-never-succeed-xyzzy"
-	AC_TRY_COMPILE(
-	    [],
-	    [return 0],
-	    [
-		AC_MSG_RESULT([no])
-		#
-		# We're assuming this is clang, where
-		# -Werror=unknown-warning-option is the appropriate
-		# option to force the compiler to fail.
-		#
-		ac_lbl_unknown_warning_option_error="-Werror=unknown-warning-option"
-	    ],
-	    [
-		AC_MSG_RESULT([yes])
-	    ])
-	CFLAGS="$save_CFLAGS"
-    ])
-
-dnl
 dnl Check whether the compiler option specified as the second argument
 dnl is supported by the compiler and, if so, add it to the macro
 dnl specified as the first argument
@@ -249,21 +219,35 @@
     [
 	AC_MSG_CHECKING([whether the compiler supports the $2 option])
 	save_CFLAGS="$CFLAGS"
-	if expr "x$2" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error $2"
-	elif expr "x$2" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror $2"
-	elif expr "x$2" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror $2"
-	else
-	    CFLAGS="$CFLAGS $2"
-	fi
-	AC_TRY_COMPILE(
-	    [],
-	    [return 0],
+	CFLAGS="$CFLAGS $2"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
+	AC_COMPILE_IFELSE(
+	    [AC_LANG_SOURCE([[int main(void) { return 0; }]])],
 	    [
 		AC_MSG_RESULT([yes])
 		CFLAGS="$save_CFLAGS"
@@ -273,6 +257,7 @@
 		AC_MSG_RESULT([no])
 		CFLAGS="$save_CFLAGS"
 	    ])
+	ac_c_werror_flag="$save_ac_c_werror_flag"
     ])
 
 dnl
@@ -590,6 +575,66 @@
                 # Found - use it to get the include flags for
                 # libpcap and the flags to link with libpcap.
                 #
+                # If this is a vendor-supplied pcap-config, which
+                # we define as being "a pcap-config in /usr/bin
+                # or /usr/ccs/bin" (the latter is for Solaris and
+                # Sun/Oracle Studio), there are some issues.  Work
+                # around them.
+                #
+                if test \( "$PCAP_CONFIG" = "/usr/bin/pcap-config" \) -o \
+                        \( "$PCAP_CONFIG" = "/usr/ccs/bin/pcap-config" \) ; then
+                    #
+                    # It's vendor-supplied.
+                    #
+                    case "$host_os" in
+
+                    darwin*)
+                        #
+                        # This is macOS or another Darwin-based OS.
+                        #
+                        # That means that /usr/bin/pcap-config it
+                        # may provide -I/usr/local/include with --cflags
+                        # and -L/usr/local/lib with --libs, rather than
+                        # pointing to the OS-supplied library and
+                        # Xcode-supplied headers.  Remember that, so we
+                        # ignore those values.
+                        #
+                        _broken_apple_pcap_config=yes
+                        ;;
+
+                    solaris*)
+                        #
+                        # This is Solaris 2 or later, i.e. SunOS 5.x.
+                        #
+                        # At least on Solaris 11; there's /usr/bin/pcap-config,
+                        # which reports -L/usr/lib with --libs, causing
+                        # the 32-bit libraries to be found, and there's
+                        # /usr/bin/{64bitarch}/pcap-config, where {64bitarch}
+                        # is a name for the 64-bit version of the instruction
+                        # set, which reports -L /usr/lib/{64bitarch}, causing
+                        # the 64-bit libraries to be found.
+                        #
+                        # So if we're building 64-bit targets, we replace
+                        # PCAP_CONFIG with /usr/bin/{64bitarch}; we get
+                        # {64bitarch} as the output of "isainfo -n".
+                        #
+                        # Are we building 32-bit or 64-bit?  Get the
+                        # size of void *, and check that.
+                        #
+                        AC_CHECK_SIZEOF([void *])
+                        if test ac_cv_sizeof_void_p -eq 8 ; then
+                            isainfo_output=`isainfo -n`
+                            if test ! -z "$isainfo_output" ; then
+                                #
+                                # Success - change PCAP_CONFIG.
+                                #
+                                PCAP_CONFIG=`echo $PCAP_CONFIG | sed "s;/bin/;/bin/$isainfo_output/;"`
+                            fi
+                        fi
+                        ;;
+                    esac
+                fi
+                #
                 # Please read section 11.6 "Shell Substitutions"
                 # in the autoconf manual before doing anything
                 # to this that involves quoting.  Especially note
@@ -598,8 +643,30 @@
                 # expressions (pfew!)."
                 #
                 cflags=`"$PCAP_CONFIG" --cflags`
+                #
+                # Work around macOS (and probably other Darwin) brokenness,
+                # by not adding /usr/local/include if it's from the broken
+                # Apple pcap-config.
+                #
+                if test "$_broken_apple_pcap_config" = "yes" ; then
+                    #
+                    # Strip -I/usr/local/include with sed.
+                    #
+                    cflags=`echo $cflags | sed 's;-I/usr/local/include;;'`
+                fi
                 $2="$cflags $$2"
                 libpcap=`"$PCAP_CONFIG" --libs`
+                #
+                # Work around macOS (and probably other Darwin) brokenness,
+                # by not adding /usr/local/lib if it's from the broken
+                # Apple pcap-config.
+                #
+                if test "$_broken_apple_pcap_config" = "yes" ; then
+                    #
+                    # Strip -L/usr/local/lib with sed.
+                    #
+                    libpcap=`echo $libpcap | sed 's;-L/usr/local/lib;;'`
+                fi
             else
                 #
                 # Not found; look for an installed pcap.
@@ -668,8 +735,44 @@
             # routines in those libraries, so we'll need to link with
             # them, because we'll be linking statically with it.
             #
+            # If it supports --static-pcap-only. use that, as we will be
+            # linking with a static libpcap but won't be linking
+            # statically with any of the libraries on which it depends;
+            # those libraries might not even have static versions
+            # installed.
+            #
+            # That means we need to find out the libraries on which
+            # libpcap directly depends, so we can link with them, but we
+            # don't need to link with the libraries on which those
+            # libraries depend as, on all UN*Xes with which I'm
+            # familiar, the libraries on which a shared library depends
+            # are stored in the library and are automatically loaded by
+            # the run-time linker, without the executable having to be
+            # linked with those libraries.  (This allows a library to be
+            # changed to depend on more libraries without breaking that
+            # library's ABI.)
+            #
+            # The only way to test for that support is to see if the
+            # script contains the string "static-pcap-only"; we can't
+            # try using that flag and checking for errors, as the
+            # versions of the script that didn't have that flag wouldn't
+            # report or return an error for an unsupported command-line
+            # flag.  Those older versions provided, with --static, only
+            # the libraries on which libpcap depends, not the
+            # dependencies of those libraries; the versions with
+            # --static-pcap-only provide all the dependencies with
+            # --static, for the benefit of programs that are completely
+            # statically linked, and provide only the direct
+            # dependencies with --static-pcap-only.
+            #
+            if grep -s -q "static-pcap-only" "$PCAP_CONFIG"
+            then
+                static_opt="--static-pcap-only"
+            else
+                static_opt="--static"
+            fi
             $2="-I$local_pcap_dir $$2"
-            additional_libs=`"$PCAP_CONFIG" --static --additional-libs`
+            additional_libs=`"$PCAP_CONFIG" $static_opt --additional-libs`
             libpcap="$libpcap $additional_libs"
         else
             #
@@ -754,7 +857,7 @@
     AC_CHECK_FUNC(pcap_loop,,
     [
         AC_MSG_ERROR(
-[This is a bug, please follow the guidelines in CONTRIBUTING and include the
+[This is a bug, please follow the guidelines in CONTRIBUTING.md and include the
 config.log file in your report.  If you have downloaded libpcap from
 tcpdump.org, and built it yourself, please also include the config.log
 file from the libpcap source directory, the Makefile from the libpcap
@@ -922,7 +1025,6 @@
 	    # Skip all the warning option stuff on some compilers.
 	    #
 	    if test "$ac_lbl_cc_dont_try_gcc_dashW" != yes; then
-		    AC_LBL_CHECK_UNKNOWN_WARNING_OPTION_ERROR()
 		    AC_LBL_CHECK_COMPILER_OPT($1, -W)
 		    AC_LBL_CHECK_COMPILER_OPT($1, -Wall)
 		    AC_LBL_CHECK_COMPILER_OPT($1, -Wassign-enum)
diff --git a/addrtoname.c b/addrtoname.c
index 58ced4f..914665c 100644
--- a/addrtoname.c
+++ b/addrtoname.c
@@ -33,70 +33,67 @@
 
 #include "netdissect-stdinc.h"
 
-#ifdef _WIN32
-  /*
-   * We have our own ether_ntohost(), reading from the system's
-   * Ethernet address file.
-   */
-  #include "missing/win_ether_ntohost.h"
-#else
-  #ifdef USE_ETHER_NTOHOST
-    #if defined(NET_ETHERNET_H_DECLARES_ETHER_NTOHOST)
-      /*
-       * OK, just include <net/ethernet.h>.
-       */
-      #include <net/ethernet.h>
-    #elif defined(NETINET_ETHER_H_DECLARES_ETHER_NTOHOST)
-      /*
-       * OK, just include <netinet/ether.h>
-       */
-      #include <netinet/ether.h>
-    #elif defined(SYS_ETHERNET_H_DECLARES_ETHER_NTOHOST)
-      /*
-       * OK, just include <sys/ethernet.h>
-       */
-      #include <sys/ethernet.h>
-    #elif defined(ARPA_INET_H_DECLARES_ETHER_NTOHOST)
-      /*
-       * OK, just include <arpa/inet.h>
-       */
-      #include <arpa/inet.h>
-    #elif defined(NETINET_IF_ETHER_H_DECLARES_ETHER_NTOHOST)
-      /*
-       * OK, include <netinet/if_ether.h>, after all the other stuff we
-       * need to include or define for its benefit.
-       */
+#ifdef USE_ETHER_NTOHOST
+  #if defined(NET_ETHERNET_H_DECLARES_ETHER_NTOHOST)
+    /*
+     * OK, just include <net/ethernet.h>.
+     */
+    #include <net/ethernet.h>
+  #elif defined(NETINET_ETHER_H_DECLARES_ETHER_NTOHOST)
+    /*
+     * OK, just include <netinet/ether.h>
+     */
+    #include <netinet/ether.h>
+  #elif defined(SYS_ETHERNET_H_DECLARES_ETHER_NTOHOST)
+    /*
+     * OK, just include <sys/ethernet.h>
+     */
+    #include <sys/ethernet.h>
+  #elif defined(ARPA_INET_H_DECLARES_ETHER_NTOHOST)
+    /*
+     * OK, just include <arpa/inet.h>
+     */
+    #include <arpa/inet.h>
+  #elif defined(NETINET_IF_ETHER_H_DECLARES_ETHER_NTOHOST)
+    /*
+     * OK, include <netinet/if_ether.h>, after all the other stuff we
+     * need to include or define for its benefit.
+     */
+    #define NEED_NETINET_IF_ETHER_H
+  #else
+    /*
+     * We'll have to declare it ourselves.
+     * If <netinet/if_ether.h> defines struct ether_addr, include
+     * it.  Otherwise, define it ourselves.
+     */
+    #ifdef HAVE_STRUCT_ETHER_ADDR
       #define NEED_NETINET_IF_ETHER_H
-    #else
-      /*
-       * We'll have to declare it ourselves.
-       * If <netinet/if_ether.h> defines struct ether_addr, include
-       * it.  Otherwise, define it ourselves.
-       */
-      #ifdef HAVE_STRUCT_ETHER_ADDR
-        #define NEED_NETINET_IF_ETHER_H
-      #else /* HAVE_STRUCT_ETHER_ADDR */
+    #else /* HAVE_STRUCT_ETHER_ADDR */
 	struct ether_addr {
 		/* Beware FreeBSD calls this "octet". */
 		unsigned char ether_addr_octet[MAC_ADDR_LEN];
 	};
-      #endif /* HAVE_STRUCT_ETHER_ADDR */
-    #endif /* what declares ether_ntohost() */
+    #endif /* HAVE_STRUCT_ETHER_ADDR */
+  #endif /* what declares ether_ntohost() */
 
-    #ifdef NEED_NETINET_IF_ETHER_H
-      #include <net/if.h>	/* Needed on some platforms */
-      #include <netinet/in.h>	/* Needed on some platforms */
-      #include <netinet/if_ether.h>
-    #endif /* NEED_NETINET_IF_ETHER_H */
+  #ifdef NEED_NETINET_IF_ETHER_H
+    /*
+     * Include diag-control.h before <net/if.h>, which too defines a macro
+     * named ND_UNREACHABLE.
+     */
+    #include "diag-control.h"
+    #include <net/if.h>		/* Needed on some platforms */
+    #include <netinet/in.h>	/* Needed on some platforms */
+    #include <netinet/if_ether.h>
+  #endif /* NEED_NETINET_IF_ETHER_H */
 
-    #ifndef HAVE_DECL_ETHER_NTOHOST
-      /*
-       * No header declares it, so declare it ourselves.
-       */
-      extern int ether_ntohost(char *, const struct ether_addr *);
-    #endif /* !defined(HAVE_DECL_ETHER_NTOHOST) */
-  #endif /* USE_ETHER_NTOHOST */
-#endif /* _WIN32 */
+  #ifndef HAVE_DECL_ETHER_NTOHOST
+    /*
+     * No header declares it, so declare it ourselves.
+     */
+    extern int ether_ntohost(char *, const struct ether_addr *);
+  #endif /* !defined(HAVE_DECL_ETHER_NTOHOST) */
+#endif /* USE_ETHER_NTOHOST */
 
 #include <pcap.h>
 #include <pcap-namedb.h>
@@ -254,7 +251,7 @@
 static uint32_t f_netmask;
 static uint32_t f_localnet;
 #ifdef HAVE_CASPER
-extern cap_channel_t *capdns;
+cap_channel_t *capdns;
 #endif
 
 /*
@@ -1288,7 +1285,7 @@
 	static struct hnamemem *ptr = NULL;
 	static u_int num = 0;
 
-	if (num  <= 0) {
+	if (num  == 0) {
 		num = 64;
 		ptr = (struct hnamemem *)calloc(num, sizeof (*ptr));
 		if (ptr == NULL)
@@ -1308,7 +1305,7 @@
 	static struct h6namemem *ptr = NULL;
 	static u_int num = 0;
 
-	if (num  <= 0) {
+	if (num  == 0) {
 		num = 64;
 		ptr = (struct h6namemem *)calloc(num, sizeof (*ptr));
 		if (ptr == NULL)
diff --git a/addrtoname.h b/addrtoname.h
index 94b41d7..597f4e1 100644
--- a/addrtoname.h
+++ b/addrtoname.h
@@ -21,6 +21,11 @@
 
 #include "extract.h"
 
+#ifdef HAVE_CASPER
+#include <libcasper.h>
+extern cap_channel_t *capdns;
+#endif
+
 /*
  * Definition to let us compile most of the IPv6 code even on systems
  * without IPv6 support.
diff --git a/build.sh b/build.sh
index 5d3592e..db34527 100755
--- a/build.sh
+++ b/build.sh
@@ -1,137 +1,123 @@
-#!/usr/bin/env bash
+#!/bin/sh -e
 
 # This script runs one build with setup environment variables: BUILD_LIBPCAP,
-# REMOTE, CC, CMAKE, CRYPTO and SMB
-# (default: BUILD_LIBPCAP=no, REMOTE=no, CC=gcc, CMAKE=no, CRYPTO=no, SMB=no).
+# REMOTE, CC, CMAKE, CRYPTO and SMB.
 
-set -e
+: "${BUILD_LIBPCAP:=no}"
+: "${REMOTE:=no}"
+: "${CC:=gcc}"
+: "${CMAKE:=no}"
+: "${CRYPTO:=no}"
+: "${SMB:=no}"
+: "${TCPDUMP_TAINTED:=no}"
+: "${TCPDUMP_CMAKE_TAINTED:=no}"
+: "${MAKE_BIN:=make}"
 
-# BUILD_LIBPCAP: no or yes
-BUILD_LIBPCAP=${BUILD_LIBPCAP:-no}
-# REMOTE: no or yes
-REMOTE=${REMOTE:-no}
-# CC: gcc or clang
-CC=${CC:-gcc}
-# GCC and Clang recognize --version and print to stdout. Sun compilers
-# recognize -V and print to stderr.
-"$CC" --version 2>/dev/null || "$CC" -V || :
-# CMAKE: no or yes
-CMAKE=${CMAKE:-no}
-# CRYPTO: no or yes
-CRYPTO=${CRYPTO:-no}
-# SMB: no or yes
-SMB=${SMB:-no}
+. ./build_common.sh
 # Install directory prefix
 if [ -z "$PREFIX" ]; then
-    PREFIX=$(mktemp -d -t tcpdump_build_XXXXXXXX)
+    PREFIX=`mktempdir tcpdump_build`
     echo "PREFIX set to '$PREFIX'"
 fi
+TCPDUMP_BIN="$PREFIX/bin/tcpdump"
 # For TESTrun
-export TCPDUMP_BIN="$PREFIX/bin/tcpdump"
+export TCPDUMP_BIN
 
-travis_fold() {
-    local action=${1:?}
-    local name=${2:?}
-    if [ "$TRAVIS" != true ]; then return; fi
-    echo -ne "travis_fold:$action:$LABEL.script.$name\\r"
-    sleep 1
-}
+print_cc_version
 
-# Run a command after displaying it
-run_after_echo() {
-    echo -n '$ '
-    echo "$@"
-    # shellcheck disable=SC2068
-    $@
-}
+# The norm is to compile without any warnings, but tcpdump builds on some OSes
+# are not warning-free for one or another reason.  If you manage to fix one of
+# these cases, please remember to remove respective exemption below to help any
+# later warnings in the same matrix subset trigger an error.
 
-# LABEL is needed to build the travis fold labels
-LABEL="$BUILD_LIBPCAP.$REMOTE.$CC.$CMAKE.$CRYPTO.$SMB"
+case `cc_id`/`os_id` in
+clang-*/SunOS-5.11)
+    # (Clang 9 on OpenIndiana, Clang 11 on OmniOS)
+    # tcpdump.c:2312:51: warning: this function declaration is not a prototype
+    #   [-Wstrict-prototypes]
+    # tcpdump.c:2737:11: warning: this function declaration is not a prototype
+    #   [-Wstrict-prototypes]
+    [ "`uname -o`" = illumos ] && TCPDUMP_TAINTED=yes
+    ;;
+esac
+
+[ "$TCPDUMP_TAINTED" != yes ] && CFLAGS=`cc_werr_cflags`
+
+# If necessary, set TCPDUMP_CMAKE_TAINTED here to exempt particular cmake from
+# warnings. Use as specific terms as possible (e.g. some specific version and
+# some specific OS).
+
+[ "$TCPDUMP_CMAKE_TAINTED" != yes ] && CMAKE_OPTIONS='-Werror=dev'
+
 if [ "$CMAKE" = no ]; then
-    echo '$ ./configure [...]'
-    travis_fold start configure
     if [ "$BUILD_LIBPCAP" = yes ]; then
         echo "Using PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
-        ./configure --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
-        export LD_LIBRARY_PATH="$PREFIX/lib"
+        run_after_echo ./configure --with-crypto="$CRYPTO" \
+            --enable-smb="$SMB" --prefix="$PREFIX"
+        LD_LIBRARY_PATH="$PREFIX/lib"
+        export LD_LIBRARY_PATH
     else
-        ./configure --disable-local-libpcap --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
+        run_after_echo ./configure --with-crypto="$CRYPTO" \
+            --enable-smb="$SMB" --prefix="$PREFIX" --disable-local-libpcap
     fi
-    travis_fold end configure
 else
-    rm -rf build
-    mkdir build
-    cd build
-    echo '$ cmake [...]'
-    travis_fold start cmake
+    # See libpcap build.sh for the rationale.
+    run_after_echo rm -rf CMakeFiles/ CMakeCache.txt build/
+    run_after_echo mkdir build
+    run_after_echo cd build
     if [ "$BUILD_LIBPCAP" = yes ]; then
-        cmake -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_PREFIX_PATH="$PREFIX" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
-        export LD_LIBRARY_PATH="$PREFIX/lib"
+        run_after_echo cmake "$CMAKE_OPTIONS" \
+            -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" \
+            ${CFLAGS:+-DEXTRA_CFLAGS="$CFLAGS"} \
+            -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_PREFIX_PATH="$PREFIX" ..
+        LD_LIBRARY_PATH="$PREFIX/lib"
+        export LD_LIBRARY_PATH
     else
-        cmake -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
+        run_after_echo cmake "$CMAKE_OPTIONS" \
+            -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" \
+             ${CFLAGS:+-DEXTRA_CFLAGS="$CFLAGS"} \
+            -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
     fi
-    travis_fold end cmake
 fi
-run_after_echo "make -s clean"
-run_after_echo "make -s CFLAGS=-Werror"
-echo '$ make install'
-travis_fold start make_install
-make install
-travis_fold end make_install
-run_after_echo "$TCPDUMP_BIN --version"
-run_after_echo "$TCPDUMP_BIN -h"
-run_after_echo "$TCPDUMP_BIN -D"
-system=$(uname -s)
-if [ "$system" = Linux ]; then
-    run_after_echo "ldd $TCPDUMP_BIN"
+run_after_echo "$MAKE_BIN" -s clean
+if [ "$CMAKE" = no ]; then
+    run_after_echo "$MAKE_BIN" -s ${CFLAGS:+CFLAGS="$CFLAGS"}
+else
+    # The "-s" flag is a no-op and CFLAGS is set using -DEXTRA_CFLAGS above.
+    run_after_echo "$MAKE_BIN"
 fi
-if [ "$TRAVIS" = true ]; then
-    if [ -n "$LD_LIBRARY_PATH" ]; then
-        run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -J"
-        run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -L"
-    else
-        run_after_echo "sudo $TCPDUMP_BIN -J"
-        run_after_echo "sudo $TCPDUMP_BIN -L"
-    fi
+run_after_echo "$MAKE_BIN" install
+print_so_deps "$TCPDUMP_BIN"
+run_after_echo "$TCPDUMP_BIN" -h
+# The "-D" flag depends on HAVE_PCAP_FINDALLDEVS and it would not be difficult
+# to run the command below only if the macro is defined.  That said, it seems
+# more useful to run it anyway: every system that currently runs this script
+# has pcap_findalldevs(), thus if the macro isn't defined, it means something
+# went wrong in the build process (as was observed with GCC, CMake and the
+# system libpcap on Solaris 11).
+run_after_echo "$TCPDUMP_BIN" -D
+if [ "$CIRRUS_CI" = true ]; then
+    # Likewise for the "-J" flag and HAVE_PCAP_SET_TSTAMP_TYPE.
+    run_after_echo sudo \
+        ${LD_LIBRARY_PATH:+LD_LIBRARY_PATH="$LD_LIBRARY_PATH"} \
+        "$TCPDUMP_BIN" -J
+    run_after_echo sudo \
+        ${LD_LIBRARY_PATH:+LD_LIBRARY_PATH="$LD_LIBRARY_PATH"} \
+        "$TCPDUMP_BIN" -L
 fi
 if [ "$BUILD_LIBPCAP" = yes ]; then
-    run_after_echo "make check"
+    run_after_echo "$MAKE_BIN" check
 fi
 if [ "$CMAKE" = no ]; then
-    system=$(uname -s)
-    if [ "$system" = Darwin ] || [ "$system" = Linux ]; then
-        run_after_echo "make releasetar"
-    fi
+    run_after_echo "$MAKE_BIN" releasetar
 fi
-if [ "$TRAVIS" = true ]; then
-    if [ "$TRAVIS_OS_NAME" = linux ] && [ "$TRAVIS_CPU_ARCH" != ppc64le ] && [ "$TRAVIS_CPU_ARCH" != s390x ] && [ "$TRAVIS_CPU_ARCH" != arm64 ]; then
-        if [ -n "$LD_LIBRARY_PATH" ]; then
-            run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -#n -c 10"
-        else
-            run_after_echo "sudo $TCPDUMP_BIN -#n -c 10"
-        fi
-    fi
+if [ "$CIRRUS_CI" = true ]; then
+    run_after_echo sudo \
+        ${LD_LIBRARY_PATH:+LD_LIBRARY_PATH="$LD_LIBRARY_PATH"} \
+        "$TCPDUMP_BIN" -#n -c 10
 fi
-# The DEBUG_BUILD variable is not set by default to avoid Travis error message:
-# "The job exceeded the maximum log length, and has been terminated."
-# Setting it needs to reduce the matrix cases.
-if [ "$TRAVIS" = true ] && [ -n "$DEBUG_BUILD" ] ; then
-    echo '$ cat Makefile [...]'
-    travis_fold start cat_makefile
-    sed '/DO NOT DELETE THIS LINE -- mkdep uses it/q' < Makefile
-    travis_fold end cat_makefile
-    echo '$ cat config.h'
-    travis_fold start cat_config_h
-    cat config.h
-    travis_fold end cat_config_h
-    if [ "$CMAKE" = no ]; then
-        echo '$ cat config.log'
-        travis_fold start cat_config_log
-        cat config.log
-        travis_fold end cat_config_log
-    fi
-fi
+handle_matrix_debug
 if [ "$DELETE_PREFIX" = yes ]; then
-    rm -rf "$PREFIX"
+    run_after_echo rm -rf "$PREFIX"
 fi
 # vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :
diff --git a/build_common.sh b/build_common.sh
new file mode 100644
index 0000000..b5fa66b
--- /dev/null
+++ b/build_common.sh
@@ -0,0 +1,287 @@
+#!/bin/sh -e
+
+# The only purpose of the above shebang is to orient shellcheck right.
+# To make CI scripts maintenance simpler, copies of this file in the
+# libpcap, tcpdump and tcpslice git repositories should be identical.
+# Please mind that Solaris /bin/sh before 11 does not support the $()
+# command substitution syntax, hence the "-e SC2006" flag in Makefile.
+
+# A poor man's mktemp(1) for OSes that don't have one (e.g. AIX 7, Solaris 9).
+mktempdir_diy() {
+    while true; do
+        # /bin/sh implements $RANDOM in AIX 7, but not in Solaris before 11,
+        # thus use dd and od instead.
+        mktempdir_diy_suffix=`dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -t x -A n | head -1 | tr -d '\t '`
+        [ -z "$mktempdir_diy_suffix" ] && return 1
+        mktempdir_diy_path="${TMPDIR:-/tmp}/${1:?}.${mktempdir_diy_suffix}"
+        # "test -e" would be more appropriate, but it is not available in
+        # Solaris /bin/sh before 11.
+        if [ ! -d "$mktempdir_diy_path" ]; then
+            mkdir "$mktempdir_diy_path"
+            chmod go= "$mktempdir_diy_path"
+            echo "$mktempdir_diy_path"
+            break
+        fi
+        # Try again (very unlikely, just in case).
+    done
+}
+
+mktempdir() {
+    mktempdir_prefix=${1:-tmp}
+    case `os_id` in
+    Darwin-*|FreeBSD-*|NetBSD-*)
+        # In these operating systems mktemp(1) always appends an implicit
+        # ".XXXXXXXX" suffix to the requested template when creating a
+        # temporary directory.
+        mktemp -d -t "$mktempdir_prefix"
+        ;;
+    SunOS-5.10|SunOS-5.11)
+        # Although the suffix is optional, specify it for consistent results.
+        mktemp -d -t "${mktempdir_prefix}.XXXXXXXX"
+        ;;
+    SunOS-*|AIX-*)
+        mktempdir_diy "$mktempdir_prefix"
+        ;;
+    *)
+        # At least Haiku, Linux and OpenBSD implementations require explicit
+        # trailing X'es in the template, so make it the same suffix as above.
+        mktemp -d -t "${mktempdir_prefix}.XXXXXXXX"
+        ;;
+    esac
+}
+
+print_sysinfo() {
+    uname -a
+    printf 'OS identification: '
+    os_id
+    date
+}
+
+# Try to make the current C compiler print its version information (usually
+# multi-line) to stdout.
+cc_version_nocache() {
+    : "${CC:?}"
+    case `basename "$CC"` in
+    gcc*|egcc*|clang*)
+        # GCC and Clang recognize --version, print to stdout and exit with 0.
+        "$CC" --version
+        ;;
+    xl*)
+        # XL C 12.1 and 13.1 recognize "-qversion", print to stdout and exit
+        # with 0. XL C 12.1 on an unknown command-line flag displays its man
+        # page and waits.
+        # XL C 16.1 recognizes "-qversion" and "--version", prints to stdout
+        # and exits with 0. Community Edition also prints a banner to stderr.
+        "$CC" -qversion 2>/dev/null
+        ;;
+    sun*)
+        # Sun compilers recognize -V, print to stderr and exit with an error.
+        "$CC" -V 2>&1 || :
+        ;;
+    cc)
+        case `os_id` in
+        SunOS-*)
+            # Most likely Sun C.
+            "$CC" -V 2>&1 || :
+            ;;
+        Darwin-*)
+            # Most likely Clang.
+            "$CC" --version
+            ;;
+        Linux-*|FreeBSD-*|NetBSD-*|OpenBSD-*)
+            # Most likely Clang or GCC.
+            "$CC" --version
+            ;;
+        esac
+        ;;
+    *)
+        "$CC" --version || "$CC" -V || :
+        ;;
+    esac
+}
+
+cc_version() {
+    echo "${cc_version_cached:=`cc_version_nocache`}"
+}
+
+print_cc_version() {
+    cc_version
+    printf 'Compiler identification: '
+    cc_id
+}
+
+# For the current C compiler try to print a short and uniform identification
+# string (such as "gcc-9.3.0") that is convenient to use in a case statement.
+cc_id_nocache() {
+    cc_id_firstline=`cc_version | head -1`
+    : "${cc_id_firstline:?}"
+
+    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.*clang version \([0-9\.]*\).*$/clang-\1/'`
+    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
+        echo "$cc_id_guessed"
+        return
+    fi
+
+    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^IBM XL C.*, V\([0-9\.]*\).*$/xlc-\1/'`
+    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
+        echo "$cc_id_guessed"
+        return
+    fi
+
+    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.* Sun C \([0-9\.]*\) .*$/suncc-\1/'`
+    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
+        echo "$cc_id_guessed"
+        return
+    fi
+
+    # OpenBSD default GCC:
+    # "gcc (GCC) 4.2.1 20070719"
+    # RedHat GCC:
+    # "gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)"
+    # "gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1)"
+    # other GCC packages:
+    # "sparc-sun-solaris2.9-gcc (GCC) 4.2.0 (gccfss)"
+    # "gcc (GCC) 5.5.0"
+    # "gcc (nb4 20200810) 7.5.0"
+    # "gcc (OpenIndiana 7.5.0-il-0) 7.5.0"
+    # "gcc (Debian 8.3.0-6) 8.3.0"
+    # "gcc (Raspbian 8.3.0-6+rpi1) 8.3.0"
+    # "egcc (GCC) 8.4.0"
+    # "gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
+    # "gcc (FreeBSD Ports Collection) 10.3.0"
+    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.* (.*) \([0-9\.]*\).*$/gcc-\1/'`
+    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
+        echo "$cc_id_guessed"
+        return
+    fi
+}
+
+cc_id() {
+    echo "${cc_id_cached:=`cc_id_nocache`}"
+}
+
+# Call this function each time CC has changed.
+discard_cc_cache() {
+    cc_version_cached=
+    cc_id_cached=
+}
+
+# For the current C compiler try to print CFLAGS value that tells to treat
+# warnings as errors.
+cc_werr_cflags() {
+    case `cc_id` in
+    gcc-*|clang-*)
+        echo '-Werror'
+        ;;
+    xlc-*)
+        # XL C 12.1 and 13.1 recognize "-qhalt=w". XL C 16.1 recognizes that
+        # and "-Werror".
+        echo '-qhalt=w'
+        ;;
+    suncc-*)
+        echo '-errwarn=%all'
+        ;;
+    esac
+}
+
+# Tell whether "gcc" is a symlink to Clang (this is the case on macOS).
+gcc_is_clang_in_disguise() {
+    case `cc_id`/`basename "${CC:?}"` in
+    clang-*/gcc)
+        return 0
+        ;;
+    esac
+    return 1
+}
+
+os_id() {
+    # OS does not change between builds or in the middle of a build, so it is
+    # fine to cache uname output.
+    : "${os_id_sysname:=`uname -s`}"
+    printf '%s-' "$os_id_sysname"
+    : "${os_id_release:=`uname -r`}"
+    case "$os_id_sysname" in
+    AIX)
+        : "${os_id_version:=`uname -v`}"
+        echo "${os_id_version}.${os_id_release}"
+        ;;
+    Darwin|NetBSD|OpenBSD|SunOS)
+        echo "$os_id_release"
+        ;;
+    FreeBSD|Linux)
+        # Meaningful version is usually the substring before the first dash.
+        echo "$os_id_release" | sed 's/^\([0-9\.]*\).*$/\1/'
+        ;;
+    Haiku)
+        # Meaningful version is the substring before the plus sign.
+        # "hrev55181" stands for "R1/beta3".
+        # "hrev54154" stands for "R1/beta2".
+        : "${os_id_version:=`uname -v`}"
+        echo "$os_id_version" | sed 's/^\(hrev.*\)+.*$/\1/'
+        ;;
+    *)
+        echo 'UNKNOWN'
+        ;;
+    esac
+}
+
+increment() {
+    # No arithmetic expansion in Solaris /bin/sh before 11.
+    echo "${1:?} + 1" | bc
+}
+
+# Display text in magenta.
+echo_magenta() {
+    # ANSI magenta, the imploded text, ANSI reset, newline.
+    printf '\033[35;1m%s\033[0m\n' "$*"
+}
+
+# Run a command after displaying it.
+run_after_echo() {
+    : "${1:?}" # Require at least one argument.
+    printf '$ %s\n' "$*"
+    "$@"
+}
+
+print_so_deps() {
+    case `os_id` in
+    Darwin-*)
+        run_after_echo otool -L "${1:?}"
+        ;;
+    *)
+        run_after_echo ldd "${1:?}"
+        ;;
+    esac
+}
+
+# Beware that setting MATRIX_DEBUG for tcpdump or tcpslice will produce A LOT
+# of additional output there and in any nested libpcap builds. Multiplied by
+# the matrix size, the full output log size might exceed limits of some CI
+# systems (as it had previously happened with Travis CI). Use with caution on
+# a reduced matrix.
+handle_matrix_debug() {
+    [ "$MATRIX_DEBUG" != yes ] && return
+    echo '$ cat Makefile [...]'
+    sed '/^# DO NOT DELETE THIS LINE -- mkdep uses it.$/q' <Makefile
+    run_after_echo cat config.h
+    [ "$CMAKE" = yes ] || run_after_echo cat config.log
+}
+
+purge_directory() {
+    if [ "`os_id`" = SunOS-5.11 ]; then
+        # In Solaris 11 /bin/sh the pathname expansion of "*" always includes
+        # "." and "..", so the straightforward rm would always fail.
+        (
+            cd "${1:?}"
+            for pd_each in *; do
+                if [ "$pd_each" != . ] && [ "$pd_each" != .. ]; then
+                    rm -rf "$pd_each"
+                fi
+            done
+        )
+    else
+        rm -rf "${1:?}"/*
+    fi
+}
+
+# vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :
diff --git a/build_matrix.sh b/build_matrix.sh
index c00a39d..3089bad 100755
--- a/build_matrix.sh
+++ b/build_matrix.sh
@@ -1,104 +1,108 @@
-#!/usr/bin/env bash
+#!/bin/sh -e
 
 # This script executes the matrix loops, exclude tests and cleaning.
 # It calls the build.sh script which runs one build with setup environment
-# variables: BUILD_LIBPCAP, REMOTE, CC, CMAKE, CRYPTO and SMB
-# (default: BUILD_LIBPCAP=no, REMOTE=no, CC=gcc, CMAKE=no, CRYPTO=no, SMB=no).
+# variables: BUILD_LIBPCAP, REMOTE, CC, CMAKE, CRYPTO and SMB.
 # The matrix can be configured with environment variables
 # MATRIX_BUILD_LIBPCAP, MATRIX_REMOTE, MATRIX_CC, MATRIX_CMAKE, MATRIX_CRYPTO
-# and MATRIX_SMB
-# (default: MATRIX_BUILD_LIBPCAP='no yes', MATRIX_REMOTE='no yes',
-# MATRIX_CC='gcc clang', MATRIX_CMAKE='no yes', MATRIX_CRYPTO='no yes',
-# MATRIX_SMB='no yes').
+# and MATRIX_SMB.
 
-set -e
+: "${MATRIX_BUILD_LIBPCAP:=no yes}"
+: "${MATRIX_REMOTE:=no}"
+: "${MATRIX_CC:=gcc clang}"
+: "${MATRIX_CMAKE:=no yes}"
+: "${MATRIX_CRYPTO:=no yes}"
+: "${MATRIX_SMB:=no yes}"
+# Set this variable to "yes" before calling this script to disregard all cmake
+# warnings in a particular environment (CI or a local working copy).  Set it
+# to "yes" in this script or in build.sh when a matrix subset is known to be
+# not cmake warning-free because of the version or whatever other factor
+# that the scripts can detect both in and out of CI.
+: "${TCPDUMP_CMAKE_TAINTED:=no}"
+# Set this variable to "yes" before calling this script to disregard all
+# warnings in a particular environment (CI or a local working copy).  Set it
+# to "yes" in this script or in build.sh when a matrix subset is known to be
+# not warning-free because of the OS, the compiler or whatever other factor
+# that the scripts can detect both in and out of CI.
+: "${TCPDUMP_TAINTED:=no}"
+# Some OSes have native make without parallel jobs support and sometimes have
+# GNU Make available as "gmake".
+: "${MAKE_BIN:=make}"
 
-# ANSI color escape sequences
-ANSI_MAGENTA="\\033[35;1m"
-ANSI_RESET="\\033[0m"
-uname -a
-date
+. ./build_common.sh
+print_sysinfo
 # Install directory prefix
 if [ -z "$PREFIX" ]; then
-    PREFIX=$(mktemp -d -t tcpdump_build_matrix_XXXXXXXX)
+    PREFIX=`mktempdir tcpdump_build_matrix`
     echo "PREFIX set to '$PREFIX'"
     export PREFIX
 fi
 COUNT=0
-
-travis_fold() {
-    local action=${1:?}
-    local name=${2:?}
-    if [ "$TRAVIS" != true ]; then return; fi
-    echo -ne "travis_fold:$action:$LABEL.script.$name\\r"
-    sleep 1
-}
-
-# Display text in magenta
-echo_magenta() {
-    echo -ne "$ANSI_MAGENTA"
-    echo "$@"
-    echo -ne "$ANSI_RESET"
-}
+export TCPDUMP_TAINTED
+export TCPDUMP_CMAKE_TAINTED
+export MAKE_BIN
 
 build_tcpdump() {
-    for CC in ${MATRIX_CC:-gcc clang}; do
-        export CC
-        # Exclude gcc on macOS (it is just an alias for clang).
-        if [ "$CC" = gcc ] && [ "$(uname -s)" = Darwin ]; then
-            echo '(skipped)'
-            continue
-        fi
-        for CMAKE in ${MATRIX_CMAKE:-no yes}; do
-            export CMAKE
-            for CRYPTO in ${MATRIX_CRYPTO:-no yes}; do
-                export CRYPTO
-                for SMB in ${MATRIX_SMB:-no yes}; do
-                    export SMB
-                    COUNT=$((COUNT+1))
-                    echo_magenta "===== SETUP $COUNT: BUILD_LIBPCAP=$BUILD_LIBPCAP REMOTE=${REMOTE:-?} CC=$CC CMAKE=$CMAKE CRYPTO=$CRYPTO SMB=$SMB ====="
-                    # LABEL is needed to build the travis fold labels
-                    LABEL="$BUILD_LIBPCAP.$REMOTE.$CC.$CMAKE.$CRYPTO.$SMB"
-                    # Run one build with setup environment variables:
-                    # BUILD_LIBPCAP, REMOTE, CC, CMAKE, CRYPTO and SMB
-                    ./build.sh
-                    echo 'Cleaning...'
-                    travis_fold start cleaning
-                    if [ "$CMAKE" = yes ]; then rm -rf build; else make distclean; fi
-                    rm -rf "$PREFIX"/bin/tcpdump*
-                    git status -suall
-                    # Cancel changes in configure
-                    git checkout configure
-                    travis_fold end cleaning
-                done
+    for CMAKE in $MATRIX_CMAKE; do
+        export CMAKE
+        for CRYPTO in $MATRIX_CRYPTO; do
+            export CRYPTO
+            for SMB in $MATRIX_SMB; do
+                export SMB
+                COUNT=`increment $COUNT`
+                echo_magenta "===== SETUP $COUNT: BUILD_LIBPCAP=$BUILD_LIBPCAP REMOTE=${REMOTE:-?} CC=$CC CMAKE=$CMAKE CRYPTO=$CRYPTO SMB=$SMB =====" >&2
+                # Run one build with setup environment variables:
+                # BUILD_LIBPCAP, REMOTE, CC, CMAKE, CRYPTO and SMB
+                run_after_echo ./build.sh
+                echo 'Cleaning...'
+                if [ "$CMAKE" = yes ]; then
+                    run_after_echo rm -rf build
+                else
+                    run_after_echo "$MAKE_BIN" distclean
+                fi
+                run_after_echo rm -rf "$PREFIX"/bin/tcpdump*
+                run_after_echo git status -suall
+                # Cancel changes in configure
+                run_after_echo git checkout configure
             done
         done
     done
 }
 
 touch .devel configure
-for BUILD_LIBPCAP in ${MATRIX_BUILD_LIBPCAP:-no yes}; do
-    export BUILD_LIBPCAP
-    if [ "$BUILD_LIBPCAP" = yes ]; then
-        for REMOTE in ${MATRIX_REMOTE:-no}; do
-            export REMOTE
-            # Build libpcap with Autoconf.
-            echo_magenta "Build libpcap (CMAKE=no REMOTE=$REMOTE)"
-            (cd ../libpcap && CMAKE=no ./build.sh)
-            # Set PKG_CONFIG_PATH for configure when building libpcap
-            if [ "$CMAKE" != no ]; then
-                export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
+for CC in $MATRIX_CC; do
+    export CC
+    discard_cc_cache
+    if gcc_is_clang_in_disguise; then
+        echo '(skipped)'
+        continue
+    fi
+    for BUILD_LIBPCAP in $MATRIX_BUILD_LIBPCAP; do
+        export BUILD_LIBPCAP
+        if [ "$BUILD_LIBPCAP" = yes ]; then
+            for REMOTE in $MATRIX_REMOTE; do
+                export REMOTE
+                # Build libpcap with Autoconf.
+                echo_magenta "Build libpcap (CMAKE=no REMOTE=$REMOTE)" >&2
+                (cd ../libpcap && CMAKE=no ./build.sh)
+                # Set PKG_CONFIG_PATH for configure when building libpcap
+                if [ "$CMAKE" != no ]; then
+                    PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
+                    export PKG_CONFIG_PATH
+                fi
+                build_tcpdump
+            done
+        else
+            echo_magenta 'Use system libpcap' >&2
+            purge_directory "$PREFIX"
+            if [ -d ../libpcap ]; then
+                (cd ../libpcap; "$MAKE_BIN" distclean || echo '(Ignoring the make error.)')
             fi
             build_tcpdump
-        done
-    else
-        echo_magenta 'Use system libpcap'
-        rm -rf "${PREFIX:?}"/*
-        make -C ../libpcap distclean || :
-        build_tcpdump
-    fi
+        fi
+    done
 done
 
-rm -rf "$PREFIX"
-echo_magenta "Tested setup count: $COUNT"
+run_after_echo rm -rf "$PREFIX"
+echo_magenta "Tested setup count: $COUNT" >&2
 # vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :
diff --git a/buildem b/buildem
deleted file mode 100755
index 2408953..0000000
--- a/buildem
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-# this script builds libpcap and tcpdump using the matrix of compilers and architectures
-# that travis also buildsd.
-
-if [ -f Makefile.in ]; then cd ..; fi
-here=`pwd`
-mkdir -p builds
-cd builds
-
-export CFLAGS='-fno-omit-frame-pointer -fsanitize=address -fno-optimize-sibling-calls -fPIC -Wextra -g3 -ggdb3 -O0 -Werror'
-for arch in i386 x86_64
-do
-        case $arch in
-        i386) CFLAGS="-m32 $CFLAGS"; export LDFLAGS="-m32"; export CXXFLAGS=-m32; target="i686-pc-linux-gnu" ;;
-        esac
-        (
-        for compiler in clang-6.0 gcc
-        do
-                mkdir -p $arch/$compiler
-                set -x
-                (cd $arch/$compiler && mkdir -p libpcap tcpdump &&
-                  (cd libpcap && CC=$compiler $here/libpcap/configure --target=$target && make ) &&
-                  (cd tcpdump && CC=$compiler $here/tcpdump/configure --target=$target && make && make check))
-        done
-        )
-done
-
diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake
index 44a994e..1107465 100644
--- a/cmake/Modules/FindPCAP.cmake
+++ b/cmake/Modules/FindPCAP.cmake
@@ -86,7 +86,7 @@
   # pkg_search_module() would do this for us, but, for now,
   # we're not doing that, in case somebody's building with
   # CMake on some "long-term support" version, predating
-  # CMake 3.1, of an OS that that supplies an earlier
+  # CMake 3.1, of an OS that supplies an earlier
   # version as a package.
   #
   # If we ever set a minimum of 3.1 or later on UN*X, we should
@@ -194,17 +194,57 @@
       endif()
 
       #
-      # if this is macOS or some other Darwin-based OS, check whether
-      # it's the system-supplied one.
+      # If this is a vendor-supplied pcap-config, which we define as
+      # being "a pcap-config in /usr/bin or /usr/ccs/bin" (the latter
+      # is for Solaris and Sun/Oracle Studio), there are some issues.
+      # Work around them.
       #
-      if(APPLE AND "${PCAP_CONFIG}" STREQUAL /usr/bin/pcap-config)
+      if("${PCAP_CONFIG}" STREQUAL /usr/bin/pcap-config OR
+         "${PCAP_CONFIG}" STREQUAL /usr/ccs/bin/pcap-config)
         #
-        # It is - remember that, so that if it provides -I/usr/local/include
-        # with --cflags, or -L/usr/local/lib with --libs, we ignore it;
-        # the macOS pcap-config does that even though the headers aren't
-        # under /usr/local/include and the library isn't in /usr/local/lib.
+        # It's vendor-supplied.
         #
-        set(_broken_apple_pcap_config TRUE)
+        if(APPLE)
+          #
+          # This is macOS or another Darwin-based OS.
+          #
+          # That means that /usr/bin/pcap-config it may provide
+          # -I/usr/local/include with --cflags and -L/usr/local/lib
+          # with --libs; if there's no pcap installed under /usr/local,
+          # that will cause the build to fail, and if there is a pcap
+          # installed there, you'll get that pcap even if you don't
+          # want it.  Remember that, so we ignore those values.
+          #
+          set(_broken_apple_pcap_config TRUE)
+        elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_VERSION MATCHES "5[.][0-9.]*")
+          #
+          # This is Solaris 2 or later, i.e. SunOS 5.x.
+          #
+          # At least on Solaris 11; there's /usr/bin/pcap-config, which
+          # reports -L/usr/lib with --libs, causing the 32-bit libraries
+          # to be found, and there's /usr/bin/{64bitarch}/pcap-config,
+          # where {64bitarch} is a name for the 64-bit version of the
+          # instruction set, which reports -L /usr/lib/{64bitarch},
+          # causing the 64-bit libraries to be found.
+          #
+          # So if we're building 64-bit targets, we replace PCAP_CONFIG
+          # with /usr/bin/{64bitarch}; we get {64bitarch} as the
+          # output of "isainfo -n".
+          #
+          if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+            execute_process(COMMAND "isainfo" "-n"
+              RESULT_VARIABLE ISAINFO_RESULT
+              OUTPUT_VARIABLE ISAINFO_OUTPUT
+              OUTPUT_STRIP_TRAILING_WHITESPACE
+            )
+            if(ISAINFO_RESULT EQUAL 0)
+              #
+              # Success - change PCAP_CONFIG.
+              #
+              string(REPLACE "/bin/" "/bin/${ISAINFO_OUTPUT}/" PCAP_CONFIG "${PCAP_CONFIG}")
+            endif()
+          endif()
+        endif()
       endif()
 
       #
diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in
index 852d151..370d396 100644
--- a/cmakeconfig.h.in
+++ b/cmakeconfig.h.in
@@ -72,12 +72,6 @@
 /* Define to 1 if you have the <net/if.h> header file. */
 #cmakedefine HAVE_NET_IF_H 1
 
-/* Define to 1 if you have the <net/if_pflog.h> header file. */
-#cmakedefine HAVE_NET_IF_PFLOG_H 1
-
-/* Define to 1 if you have the <net/pfvar.h> header file. */
-#cmakedefine HAVE_NET_PFVAR_H 1
-
 /* Define to 1 if you have the `openat' function. */
 #cmakedefine HAVE_OPENAT 1
 
diff --git a/compiler-tests.h b/compiler-tests.h
index 4793b71..d4fe177 100644
--- a/compiler-tests.h
+++ b/compiler-tests.h
@@ -80,14 +80,30 @@
  */
 
 #if ! defined(__GNUC__)
-#define ND_IS_AT_LEAST_GNUC_VERSION(major, minor) 0
+  /* Not GCC and not "just like GCC" */
+  #define ND_IS_AT_LEAST_GNUC_VERSION(major, minor) 0
 #else
-#define ND_IS_AT_LEAST_GNUC_VERSION(major, minor) \
+  /* GCC or "just like GCC" */
+  #define ND_IS_AT_LEAST_GNUC_VERSION(major, minor) \
 	(__GNUC__ > (major) || \
 	 (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
 #endif
 
 /*
+ * Check whether this is Clang major.minor or a later release.
+ */
+
+#if !defined(__clang__)
+  /* Not Clang */
+  #define ND_IS_AT_LEAST_CLANG_VERSION(major, minor) 0
+#else
+  /* Clang */
+  #define ND_IS_AT_LEAST_CLANG_VERSION(major, minor) \
+	(__clang_major__ > (major) || \
+	 (__clang_major__ == (major) && __clang_minor__ >= (minor)))
+#endif
+
+/*
  * Check whether this is Sun C/SunPro C/Oracle Studio major.minor
  * or a later release.
  *
@@ -106,13 +122,15 @@
  */
 
 #if ! defined(__SUNPRO_C)
-#define ND_IS_AT_LEAST_SUNC_VERSION(major,minor) 0
+  /* Not Sun/Oracle C */
+  #define ND_IS_AT_LEAST_SUNC_VERSION(major,minor) 0
 #else
-#define ND_SUNPRO_VERSION_TO_BCD(major, minor) \
+  /* Sun/Oracle C */
+  #define ND_SUNPRO_VERSION_TO_BCD(major, minor) \
 	(((minor) >= 10) ? \
 	    (((major) << 12) | (((minor)/10) << 8) | (((minor)%10) << 4)) : \
 	    (((major) << 8) | ((minor) << 4)))
-#define ND_IS_AT_LEAST_SUNC_VERSION(major,minor) \
+  #define ND_IS_AT_LEAST_SUNC_VERSION(major,minor) \
 	(__SUNPRO_C >= ND_SUNPRO_VERSION_TO_BCD((major), (minor)))
 #endif
 
@@ -121,13 +139,38 @@
  *
  * The version number in __xlC__ has the major version in the
  * upper 8 bits and the minor version in the lower 8 bits.
+ * On AIX __xlC__ is always defined, __ibmxl__ becomes defined in XL C 16.1.
+ * On Linux since XL C 13.1.6 __xlC__ is not defined by default anymore, but
+ * __ibmxl__ is defined since at least XL C 13.1.1.
  */
 
-#if ! defined(__xlC__)
-#define ND_IS_AT_LEAST_XL_C_VERSION(major,minor) 0
+#if ! defined(__xlC__) && ! defined(__ibmxl__)
+  /* Not XL C */
+  #define ND_IS_AT_LEAST_XL_C_VERSION(major,minor) 0
+  #define ND_IS_AT_LEAST_XL_C_MODFIX(modification, fixlevel) 0
 #else
-#define ND_IS_AT_LEAST_XL_C_VERSION(major, minor) \
+  /* XL C */
+  #if defined(__ibmxl__)
+    /*
+     * Later Linux version of XL C; use __ibmxl_version__ to test
+     * the version.
+     */
+    #define ND_IS_AT_LEAST_XL_C_VERSION(major, minor) \
+	(__ibmxl_version__ > (major) || \
+	 (__ibmxl_version__ == (major) && __ibmxl_release__ >= (minor)))
+    #define ND_IS_AT_LEAST_XL_C_MODFIX(modification, fixlevel) \
+	(__ibmxl_modification__ > (modification) || \
+	 (__ibmxl_modification__ == (modification) && \
+	  __ibmxl_ptf_fix_level__ >= (fixlevel)))
+  #else /* __ibmxl__ */
+    /*
+     * __ibmxl__ not defined; use __xlC__ to test the version.
+     */
+    #define ND_IS_AT_LEAST_XL_C_VERSION(major, minor) \
 	(__xlC__ >= (((major) << 8) | (minor)))
+    #define ND_IS_AT_LEAST_XL_C_MODFIX(modification, fixlevel) \
+	((((modification) << 8) | (fixlevel)) >= __xlC_ver__)
+  #endif /* __ibmxl__ */
 #endif
 
 /*
@@ -142,9 +185,11 @@
  */
 
 #if ! defined(__HP_aCC)
-#define ND_IS_AT_LEAST_HP_C_VERSION(major,minor) 0
+  /* Not HP C */
+  #define ND_IS_AT_LEAST_HP_C_VERSION(major,minor) 0
 #else
-#define ND_IS_AT_LEAST_HP_C_VERSION(major,minor) \
+  /* HP C */
+  #define ND_IS_AT_LEAST_HP_C_VERSION(major,minor) \
 	(__HP_aCC >= ((major)*10000 + (minor)*100))
 #endif
 
diff --git a/config.guess b/config.guess
index 1972fda..a419d86 100755
--- a/config.guess
+++ b/config.guess
@@ -1,12 +1,14 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2021 Free Software Foundation, Inc.
+#   Copyright 1992-2022 Free Software Foundation, Inc.
 
-timestamp='2021-01-25'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-08-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -32,7 +34,15 @@
 # Please send patches to <config-patches@gnu.org>.
 
 
-me=$(echo "$0" | sed -e 's,.*/,,')
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
 Usage: $0 [OPTION]
@@ -50,7 +60,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2022 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,6 +94,9 @@
   exit 1
 fi
 
+# Just in case it came from the environment.
+GUESS=
+
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
 # temporary files to be created and, as you can see below, it is a
@@ -102,8 +115,8 @@
     # prevent multiple calls if $tmp is already set
     test "$tmp" && return 0
     : "${TMPDIR=/tmp}"
-    # shellcheck disable=SC2039
-    { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } ||
+    # shellcheck disable=SC2039,SC3028
+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
 	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
 	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
 	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
@@ -112,7 +125,7 @@
 	,,)    echo "int x;" > "$dummy.c"
 	       for driver in cc gcc c89 c99 ; do
 		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
-		       CC_FOR_BUILD="$driver"
+		       CC_FOR_BUILD=$driver
 		       break
 		   fi
 	       done
@@ -131,12 +144,12 @@
 	PATH=$PATH:/.attbin ; export PATH
 fi
 
-UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
-UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown
-UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown
-UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
 Linux|GNU|GNU/*)
 	LIBC=unknown
 
@@ -157,7 +170,8 @@
 	#endif
 	#endif
 	EOF
-	eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
+	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	eval "$cc_set_libc"
 
 	# Second heuristic to detect musl libc.
 	if [ "$LIBC" = unknown ] &&
@@ -176,7 +190,7 @@
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
     *:NetBSD:*:*)
 	# NetBSD (nbsd) targets should (where applicable) match one or
 	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -188,11 +202,11 @@
 	#
 	# Note: NetBSD doesn't particularly care about the vendor
 	# portion of the name.  We always set it to "unknown".
-	UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
+	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
 	    /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
 	    /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
-	    echo unknown))
-	case "$UNAME_MACHINE_ARCH" in
+	    echo unknown)`
+	case $UNAME_MACHINE_ARCH in
 	    aarch64eb) machine=aarch64_be-unknown ;;
 	    armeb) machine=armeb-unknown ;;
 	    arm*) machine=arm-unknown ;;
@@ -200,15 +214,15 @@
 	    sh3eb) machine=sh-unknown ;;
 	    sh5el) machine=sh5le-unknown ;;
 	    earmv*)
-		arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,')
-		endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p')
-		machine="${arch}${endian}"-unknown
+		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+		machine=${arch}${endian}-unknown
 		;;
-	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+	    *) machine=$UNAME_MACHINE_ARCH-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
 	# to ELF recently (or will in the future) and ABI.
-	case "$UNAME_MACHINE_ARCH" in
+	case $UNAME_MACHINE_ARCH in
 	    earm*)
 		os=netbsdelf
 		;;
@@ -229,10 +243,10 @@
 		;;
 	esac
 	# Determine ABI tags.
-	case "$UNAME_MACHINE_ARCH" in
+	case $UNAME_MACHINE_ARCH in
 	    earm*)
 		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
-		abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr")
+		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
 		;;
 	esac
 	# The OS release
@@ -240,76 +254,82 @@
 	# thus, need a distinct triplet. However, they do not need
 	# kernel version information, so it can be replaced with a
 	# suitable tag, in the style of linux-gnu.
-	case "$UNAME_VERSION" in
+	case $UNAME_VERSION in
 	    Debian*)
 		release='-gnu'
 		;;
 	    *)
-		release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2)
+		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
 		;;
 	esac
 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "$machine-${os}${release}${abi-}"
-	exit ;;
+	GUESS=$machine-${os}${release}${abi-}
+	;;
     *:Bitrig:*:*)
-	UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
-	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
-	exit ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+	;;
     *:OpenBSD:*:*)
-	UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
-	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
-	exit ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+	;;
+    *:SecBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+	GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+	;;
     *:LibertyBSD:*:*)
-	UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
-	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
-	exit ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+	;;
     *:MidnightBSD:*:*)
-	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+	;;
     *:ekkoBSD:*:*)
-	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+	;;
     *:SolidBSD:*:*)
-	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+	;;
     *:OS108:*:*)
-	echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+	;;
     macppc:MirBSD:*:*)
-	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
-	exit ;;
+	GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+	;;
     *:MirBSD:*:*)
-	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+	;;
     *:Sortix:*:*)
-	echo "$UNAME_MACHINE"-unknown-sortix
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-sortix
+	;;
     *:Twizzler:*:*)
-	echo "$UNAME_MACHINE"-unknown-twizzler
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-twizzler
+	;;
     *:Redox:*:*)
-	echo "$UNAME_MACHINE"-unknown-redox
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-redox
+	;;
     mips:OSF1:*.*)
-	echo mips-dec-osf1
-	exit ;;
+	GUESS=mips-dec-osf1
+	;;
     alpha:OSF1:*:*)
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	trap '' 0
 	case $UNAME_RELEASE in
 	*4.0)
-		UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
 		;;
 	*5.*)
-		UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
 		;;
 	esac
 	# According to Compaq, /usr/sbin/psrinfo has been available on
 	# OSF/1 and Tru64 systems produced since 1995.  I hope that
 	# covers most systems running today.  This code pipes the CPU
 	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1)
-	case "$ALPHA_CPU_TYPE" in
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case $ALPHA_CPU_TYPE in
 	    "EV4 (21064)")
 		UNAME_MACHINE=alpha ;;
 	    "EV4.5 (21064)")
@@ -346,68 +366,69 @@
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
-	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-	exitcode=$?
-	trap '' 0
-	exit $exitcode ;;
+	OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+	;;
     Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit ;;
+	GUESS=m68k-unknown-sysv4
+	;;
     *:[Aa]miga[Oo][Ss]:*:*)
-	echo "$UNAME_MACHINE"-unknown-amigaos
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-amigaos
+	;;
     *:[Mm]orph[Oo][Ss]:*:*)
-	echo "$UNAME_MACHINE"-unknown-morphos
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-morphos
+	;;
     *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit ;;
+	GUESS=i370-ibm-openedition
+	;;
     *:z/VM:*:*)
-	echo s390-ibm-zvmoe
-	exit ;;
+	GUESS=s390-ibm-zvmoe
+	;;
     *:OS400:*:*)
-	echo powerpc-ibm-os400
-	exit ;;
+	GUESS=powerpc-ibm-os400
+	;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix"$UNAME_RELEASE"
-	exit ;;
+	GUESS=arm-acorn-riscix$UNAME_RELEASE
+	;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
-	echo arm-unknown-riscos
-	exit ;;
+	GUESS=arm-unknown-riscos
+	;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit ;;
+	GUESS=hppa1.1-hitachi-hiuxmpp
+	;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "$( (/bin/universe) 2>/dev/null)" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit ;;
+	case `(/bin/universe) 2>/dev/null` in
+	    att) GUESS=pyramid-pyramid-sysv3 ;;
+	    *)   GUESS=pyramid-pyramid-bsd   ;;
+	esac
+	;;
     NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit ;;
+	GUESS=pyramid-pyramid-svr4
+	;;
     DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit ;;
+	GUESS=sparc-icl-nx6
+	;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-	case $(/usr/bin/uname -p) in
-	    sparc) echo sparc-icl-nx7; exit ;;
-	esac ;;
+	case `/usr/bin/uname -p` in
+	    sparc) GUESS=sparc-icl-nx7 ;;
+	esac
+	;;
     s390x:SunOS:*:*)
-	echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+	;;
     sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=sparc-hal-solaris2$SUN_REL
+	;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=sparc-sun-solaris2$SUN_REL
+	;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-	echo i386-pc-auroraux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=i386-pc-auroraux$UNAME_RELEASE
+	;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	set_cc_for_build
 	SUN_ARCH=i386
@@ -416,47 +437,50 @@
 	# This test works for both compilers.
 	if test "$CC_FOR_BUILD" != no_compiler_found; then
 	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
 		grep IS_64BIT_ARCH >/dev/null
 	    then
 		SUN_ARCH=x86_64
 	    fi
 	fi
-	echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+	;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=sparc-sun-solaris3$SUN_REL
+	;;
     sun4*:SunOS:*:*)
-	case "$(/usr/bin/arch -k)" in
+	case `/usr/bin/arch -k` in
 	    Series*|S4*)
-		UNAME_RELEASE=$(uname -v)
+		UNAME_RELEASE=`uname -v`
 		;;
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+	GUESS=sparc-sun-sunos$SUN_REL
+	;;
     sun3*:SunOS:*:*)
-	echo m68k-sun-sunos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-sun-sunos$UNAME_RELEASE
+	;;
     sun*:*:4.2BSD:*)
-	UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
-	case "$(/bin/arch)" in
+	case `/bin/arch` in
 	    sun3)
-		echo m68k-sun-sunos"$UNAME_RELEASE"
+		GUESS=m68k-sun-sunos$UNAME_RELEASE
 		;;
 	    sun4)
-		echo sparc-sun-sunos"$UNAME_RELEASE"
+		GUESS=sparc-sun-sunos$UNAME_RELEASE
 		;;
 	esac
-	exit ;;
+	;;
     aushp:SunOS:*:*)
-	echo sparc-auspex-sunos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sparc-auspex-sunos$UNAME_RELEASE
+	;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -466,41 +490,41 @@
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-atari-mint$UNAME_RELEASE
+	;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-atari-mint$UNAME_RELEASE
+	;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-	echo m68k-atari-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-atari-mint$UNAME_RELEASE
+	;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-	echo m68k-milan-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-milan-mint$UNAME_RELEASE
+	;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-	echo m68k-hades-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-hades-mint$UNAME_RELEASE
+	;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-	echo m68k-unknown-mint"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-unknown-mint$UNAME_RELEASE
+	;;
     m68k:machten:*:*)
-	echo m68k-apple-machten"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-apple-machten$UNAME_RELEASE
+	;;
     powerpc:machten:*:*)
-	echo powerpc-apple-machten"$UNAME_RELEASE"
-	exit ;;
+	GUESS=powerpc-apple-machten$UNAME_RELEASE
+	;;
     RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit ;;
+	GUESS=mips-dec-mach_bsd4.3
+	;;
     RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix"$UNAME_RELEASE"
-	exit ;;
+	GUESS=mips-dec-ultrix$UNAME_RELEASE
+	;;
     VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix"$UNAME_RELEASE"
-	exit ;;
+	GUESS=vax-dec-ultrix$UNAME_RELEASE
+	;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix"$UNAME_RELEASE"
-	exit ;;
+	GUESS=clipper-intergraph-clix$UNAME_RELEASE
+	;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
 	set_cc_for_build
 	sed 's/^	//' << EOF > "$dummy.c"
@@ -525,78 +549,79 @@
 	}
 EOF
 	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
-	  dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') &&
-	  SYSTEM_NAME=$("$dummy" "$dummyarg") &&
+	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
 	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=mips-mips-riscos$UNAME_RELEASE
+	;;
     Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit ;;
+	GUESS=powerpc-motorola-powermax
+	;;
     Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit ;;
+	GUESS=powerpc-harris-powermax
+	;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit ;;
+	GUESS=powerpc-harris-powermax
+	;;
     Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit ;;
+	GUESS=powerpc-harris-powerunix
+	;;
     m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit ;;
+	GUESS=m88k-harris-cxux7
+	;;
     m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit ;;
+	GUESS=m88k-motorola-sysv4
+	;;
     m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit ;;
+	GUESS=m88k-motorola-sysv3
+	;;
     AViiON:dgux:*:*)
 	# DG/UX returns AViiON for all architectures
-	UNAME_PROCESSOR=$(/usr/bin/uname -p)
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
 	then
 	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
 	       test "$TARGET_BINARY_INTERFACE"x = x
 	    then
-		echo m88k-dg-dgux"$UNAME_RELEASE"
+		GUESS=m88k-dg-dgux$UNAME_RELEASE
 	    else
-		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+		GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
 	    fi
 	else
-	    echo i586-dg-dgux"$UNAME_RELEASE"
+	    GUESS=i586-dg-dgux$UNAME_RELEASE
 	fi
-	exit ;;
+	;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit ;;
+	GUESS=m88k-dolphin-sysv3
+	;;
     M88*:*:R3*:*)
 	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit ;;
+	GUESS=m88k-motorola-sysv3
+	;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit ;;
+	GUESS=m88k-tektronix-sysv3
+	;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit ;;
+	GUESS=m68k-tektronix-bsd
+	;;
     *:IRIX*:*:*)
-	echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')"
-	exit ;;
+	IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+	GUESS=mips-sgi-irix$IRIX_REL
+	;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-	exit ;;               # Note that: echo "'$(uname -s)'" gives 'AIX '
+	GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
+	;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit ;;
+	GUESS=i386-ibm-aix
+	;;
     ia64:AIX:*:*)
 	if test -x /usr/bin/oslevel ; then
-		IBM_REV=$(/usr/bin/oslevel)
+		IBM_REV=`/usr/bin/oslevel`
 	else
-		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
 	fi
-	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
-	exit ;;
+	GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+	;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 		set_cc_for_build
@@ -611,68 +636,68 @@
 			exit(0);
 			}
 EOF
-		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy")
+		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
 		then
-			echo "$SYSTEM_NAME"
+			GUESS=$SYSTEM_NAME
 		else
-			echo rs6000-ibm-aix3.2.5
+			GUESS=rs6000-ibm-aix3.2.5
 		fi
 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
+		GUESS=rs6000-ibm-aix3.2.4
 	else
-		echo rs6000-ibm-aix3.2
+		GUESS=rs6000-ibm-aix3.2
 	fi
-	exit ;;
+	;;
     *:AIX:*:[4567])
-	IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }')
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
 	else
 		IBM_ARCH=powerpc
 	fi
 	if test -x /usr/bin/lslpp ; then
-		IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc |
-			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/)
+		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
+			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
 	else
-		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
 	fi
-	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
-	exit ;;
+	GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+	;;
     *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit ;;
+	GUESS=rs6000-ibm-aix
+	;;
     ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
-	echo romp-ibm-bsd4.4
-	exit ;;
+	GUESS=romp-ibm-bsd4.4
+	;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
-	exit ;;                             # report: romp-ibm BSD 4.3
+	GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
+	;;                                  # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit ;;
+	GUESS=rs6000-bull-bosx
+	;;
     DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit ;;
+	GUESS=m68k-bull-sysv3
+	;;
     9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit ;;
+	GUESS=m68k-hp-bsd
+	;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit ;;
+	GUESS=m68k-hp-bsd4.4
+	;;
     9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
-	case "$UNAME_MACHINE" in
+	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+	case $UNAME_MACHINE in
 	    9000/31?)            HP_ARCH=m68000 ;;
 	    9000/[34]??)         HP_ARCH=m68k ;;
 	    9000/[678][0-9][0-9])
 		if test -x /usr/bin/getconf; then
-		    sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null)
-		    sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null)
-		    case "$sc_cpu_version" in
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case $sc_cpu_version in
 		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
 		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
 		      532)                      # CPU_PA_RISC2_0
-			case "$sc_kernel_bits" in
+			case $sc_kernel_bits in
 			  32) HP_ARCH=hppa2.0n ;;
 			  64) HP_ARCH=hppa2.0w ;;
 			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
@@ -714,7 +739,7 @@
 		    exit (0);
 		}
 EOF
-		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy")
+		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
 		fi ;;
 	esac
@@ -739,12 +764,12 @@
 		HP_ARCH=hppa64
 	    fi
 	fi
-	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
-	exit ;;
+	GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+	;;
     ia64:HP-UX:*:*)
-	HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
-	echo ia64-hp-hpux"$HPUX_REV"
-	exit ;;
+	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+	GUESS=ia64-hp-hpux$HPUX_REV
+	;;
     3050*:HI-UX:*:*)
 	set_cc_for_build
 	sed 's/^	//' << EOF > "$dummy.c"
@@ -772,38 +797,38 @@
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") &&
+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
 		{ echo "$SYSTEM_NAME"; exit; }
-	echo unknown-hitachi-hiuxwe2
-	exit ;;
+	GUESS=unknown-hitachi-hiuxwe2
+	;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
-	echo hppa1.1-hp-bsd
-	exit ;;
+	GUESS=hppa1.1-hp-bsd
+	;;
     9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit ;;
+	GUESS=hppa1.0-hp-bsd
+	;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit ;;
+	GUESS=hppa1.0-hp-mpeix
+	;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
-	echo hppa1.1-hp-osf
-	exit ;;
+	GUESS=hppa1.1-hp-osf
+	;;
     hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit ;;
+	GUESS=hppa1.0-hp-osf
+	;;
     i*86:OSF1:*:*)
 	if test -x /usr/sbin/sysversion ; then
-	    echo "$UNAME_MACHINE"-unknown-osf1mk
+	    GUESS=$UNAME_MACHINE-unknown-osf1mk
 	else
-	    echo "$UNAME_MACHINE"-unknown-osf1
+	    GUESS=$UNAME_MACHINE-unknown-osf1
 	fi
-	exit ;;
+	;;
     parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit ;;
+	GUESS=hppa1.1-hp-lites
+	;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-	exit ;;
+	GUESS=c1-convex-bsd
+	;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
@@ -811,17 +836,18 @@
 	fi
 	exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-	exit ;;
+	GUESS=c34-convex-bsd
+	;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-	exit ;;
+	GUESS=c38-convex-bsd
+	;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-	exit ;;
+	GUESS=c4-convex-bsd
+	;;
     CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
+	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+	GUESS=ymp-cray-unicos$CRAY_REL
+	;;
     CRAY*[A-Z]90:*:*:*)
 	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -829,114 +855,129 @@
 	      -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*TS:*:*:*)
-	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
+	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+	GUESS=t90-cray-unicos$CRAY_REL
+	;;
     CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
+	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+	GUESS=alphaev5-cray-unicosmk$CRAY_REL
+	;;
     CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
+	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+	GUESS=sv1-cray-unicos$CRAY_REL
+	;;
     *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
+	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+	GUESS=craynv-cray-unicosmp$CRAY_REL
+	;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)
-	FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
-	FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/')
-	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+	GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+	;;
     5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
-	FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/')
-	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+	GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+	;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+	;;
     sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+	;;
     *:BSD/OS:*:*)
-	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+	;;
     arm:FreeBSD:*:*)
-	UNAME_PROCESSOR=$(uname -p)
+	UNAME_PROCESSOR=`uname -p`
 	set_cc_for_build
 	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_PCS_VFP
 	then
-	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
+	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
 	else
-	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
+	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
 	fi
-	exit ;;
+	;;
     *:FreeBSD:*:*)
-	UNAME_PROCESSOR=$(/usr/bin/uname -p)
-	case "$UNAME_PROCESSOR" in
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case $UNAME_PROCESSOR in
 	    amd64)
 		UNAME_PROCESSOR=x86_64 ;;
 	    i386)
 		UNAME_PROCESSOR=i586 ;;
 	esac
-	echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
-	exit ;;
+	FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+	GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+	;;
     i*:CYGWIN*:*)
-	echo "$UNAME_MACHINE"-pc-cygwin
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-cygwin
+	;;
     *:MINGW64*:*)
-	echo "$UNAME_MACHINE"-pc-mingw64
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-mingw64
+	;;
     *:MINGW*:*)
-	echo "$UNAME_MACHINE"-pc-mingw32
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-mingw32
+	;;
     *:MSYS*:*)
-	echo "$UNAME_MACHINE"-pc-msys
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-msys
+	;;
     i*:PW*:*)
-	echo "$UNAME_MACHINE"-pc-pw32
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-pw32
+	;;
+    *:SerenityOS:*:*)
+        GUESS=$UNAME_MACHINE-pc-serenity
+        ;;
     *:Interix*:*)
-	case "$UNAME_MACHINE" in
+	case $UNAME_MACHINE in
 	    x86)
-		echo i586-pc-interix"$UNAME_RELEASE"
-		exit ;;
+		GUESS=i586-pc-interix$UNAME_RELEASE
+		;;
 	    authenticamd | genuineintel | EM64T)
-		echo x86_64-unknown-interix"$UNAME_RELEASE"
-		exit ;;
+		GUESS=x86_64-unknown-interix$UNAME_RELEASE
+		;;
 	    IA64)
-		echo ia64-unknown-interix"$UNAME_RELEASE"
-		exit ;;
+		GUESS=ia64-unknown-interix$UNAME_RELEASE
+		;;
 	esac ;;
     i*:UWIN*:*)
-	echo "$UNAME_MACHINE"-pc-uwin
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-uwin
+	;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-	echo x86_64-pc-cygwin
-	exit ;;
+	GUESS=x86_64-pc-cygwin
+	;;
     prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
-	exit ;;
+	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+	GUESS=powerpcle-unknown-solaris2$SUN_REL
+	;;
     *:GNU:*:*)
 	# the GNU system
-	echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')"
-	exit ;;
+	GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+	GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+	;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC"
-	exit ;;
+	GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+	;;
     *:Minix:*:*)
-	echo "$UNAME_MACHINE"-unknown-minix
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-minix
+	;;
     aarch64:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     alpha:Linux:*:*)
-	case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
 	  EV5)   UNAME_MACHINE=alphaev5 ;;
 	  EV56)  UNAME_MACHINE=alphaev56 ;;
 	  PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -947,63 +988,63 @@
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
 	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
-    arc:Linux:*:* | arceb:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
+    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     arm*:Linux:*:*)
 	set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	    GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
 	    else
-		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
-	exit ;;
+	;;
     avr32*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     cris:Linux:*:*)
-	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+	;;
     crisv32:Linux:*:*)
-	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+	;;
     e2k:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     frv:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     hexagon:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     i*86:Linux:*:*)
-	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+	;;
     ia64:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     k1om:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
-    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
+    loongarch32:Linux:*:* | loongarch64:Linux:*:*)
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     m32r*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     m68*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	set_cc_for_build
 	IS_GLIBC=0
@@ -1048,138 +1089,150 @@
 	#endif
 	#endif
 EOF
-	eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')"
+	cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+	eval "$cc_set_vars"
 	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
 	;;
     mips64el:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     openrisc*:Linux:*:*)
-	echo or1k-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=or1k-unknown-linux-$LIBC
+	;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=sparc-unknown-linux-$LIBC
+	;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=hppa64-unknown-linux-$LIBC
+	;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
-	case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in
-	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
-	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
-	  *)    echo hppa-unknown-linux-"$LIBC" ;;
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+	  PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+	  *)    GUESS=hppa-unknown-linux-$LIBC ;;
 	esac
-	exit ;;
+	;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=powerpc64-unknown-linux-$LIBC
+	;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=powerpc-unknown-linux-$LIBC
+	;;
     ppc64le:Linux:*:*)
-	echo powerpc64le-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=powerpc64le-unknown-linux-$LIBC
+	;;
     ppcle:Linux:*:*)
-	echo powerpcle-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=powerpcle-unknown-linux-$LIBC
+	;;
     riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+	;;
     sh64*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     sh*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     tile*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     vax:Linux:*:*)
-	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+	;;
     x86_64:Linux:*:*)
 	set_cc_for_build
+	CPU=$UNAME_MACHINE
 	LIBCABI=$LIBC
 	if test "$CC_FOR_BUILD" != no_compiler_found; then
-	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
-		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_X32 >/dev/null
-	    then
-		LIBCABI="$LIBC"x32
-	    fi
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __i386__
+	    ABI=x86
+	    #else
+	    #ifdef __ILP32__
+	    ABI=x32
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		x86) CPU=i686 ;;
+		x32) LIBCABI=${LIBC}x32 ;;
+	    esac
 	fi
-	echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
-	exit ;;
+	GUESS=$CPU-pc-linux-$LIBCABI
+	;;
     xtensa*:Linux:*:*)
-	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
 	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit ;;
+	GUESS=i386-sequent-sysv4
+	;;
     i*86:UNIX_SV:4.2MP:2.*)
 	# Unixware is an offshoot of SVR4, but it has its own version
 	# number series starting with 2...
 	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
 	# Use sysv4.2uw... so that sysv4* matches it.
-	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+	;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
-	echo "$UNAME_MACHINE"-pc-os2-emx
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-os2-emx
+	;;
     i*86:XTS-300:*:STOP)
-	echo "$UNAME_MACHINE"-unknown-stop
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-stop
+	;;
     i*86:atheos:*:*)
-	echo "$UNAME_MACHINE"-unknown-atheos
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-atheos
+	;;
     i*86:syllable:*:*)
-	echo "$UNAME_MACHINE"-pc-syllable
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-syllable
+	;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-	echo i386-unknown-lynxos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=i386-unknown-lynxos$UNAME_RELEASE
+	;;
     i*86:*DOS:*:*)
-	echo "$UNAME_MACHINE"-pc-msdosdjgpp
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+	;;
     i*86:*:4.*:*)
-	UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//')
+	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+		GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
 	else
-		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+		GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
 	fi
-	exit ;;
+	;;
     i*86:*:5:[678]*)
 	# UnixWare 7.x, OpenUNIX and OpenServer 6.
-	case $(/bin/uname -X | grep "^Machine") in
+	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
-	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
-		UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
-		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
 		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
 			&& UNAME_MACHINE=i586
@@ -1187,11 +1240,11 @@
 			&& UNAME_MACHINE=i686
 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
 			&& UNAME_MACHINE=i686
-		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+		GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
 	else
-		echo "$UNAME_MACHINE"-pc-sysv32
+		GUESS=$UNAME_MACHINE-pc-sysv32
 	fi
-	exit ;;
+	;;
     pc:*:*:*)
 	# Left here for compatibility:
 	# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1199,37 +1252,37 @@
 	# Note: whatever this is, it MUST be the same as what config.sub
 	# prints for the "djgpp" host, or else GDB configure will decide that
 	# this is a cross-build.
-	echo i586-pc-msdosdjgpp
-	exit ;;
+	GUESS=i586-pc-msdosdjgpp
+	;;
     Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit ;;
+	GUESS=i386-pc-mach3
+	;;
     paragon:*:*:*)
-	echo i860-intel-osf1
-	exit ;;
+	GUESS=i860-intel-osf1
+	;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+	  GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
+	  GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
 	fi
-	exit ;;
+	;;
     mini*:CTIX:SYS*5:*)
 	# "miniframe"
-	echo m68010-convergent-sysv
-	exit ;;
+	GUESS=m68010-convergent-sysv
+	;;
     mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit ;;
+	GUESS=m68k-convergent-sysv
+	;;
     M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit ;;
+	GUESS=m68k-diab-dnix
+	;;
     M68*:*:R3V[5678]*:*)
 	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 	OS_REL=''
 	test -r /etc/.relid \
-	&& OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1240,7 +1293,7 @@
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
 	OS_REL='.3'
 	test -r /etc/.relid \
-	    && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1248,118 +1301,121 @@
 	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
 	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+	;;
     mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit ;;
+	GUESS=m68k-atari-sysv4
+	;;
     TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+	;;
     rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+	;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
-	exit ;;
+	GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+	;;
     SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv"$UNAME_RELEASE"
-	exit ;;
+	GUESS=mips-dde-sysv$UNAME_RELEASE
+	;;
     RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
+	GUESS=mips-sni-sysv4
+	;;
     RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
+	GUESS=mips-sni-sysv4
+	;;
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=$( (uname -p) 2>/dev/null)
-		echo "$UNAME_MACHINE"-sni-sysv4
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		GUESS=$UNAME_MACHINE-sni-sysv4
 	else
-		echo ns32k-sni-sysv
+		GUESS=ns32k-sni-sysv
 	fi
-	exit ;;
+	;;
     PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
 			# says <Richard.M.Bartel@ccMail.Census.GOV>
-	echo i586-unisys-sysv4
-	exit ;;
+	GUESS=i586-unisys-sysv4
+	;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes@openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit ;;
+	GUESS=hppa1.1-stratus-sysv4
+	;;
     *:*:*:FTX*)
 	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit ;;
+	GUESS=i860-stratus-sysv4
+	;;
     i*86:VOS:*:*)
 	# From Paul.Green@stratus.com.
-	echo "$UNAME_MACHINE"-stratus-vos
-	exit ;;
+	GUESS=$UNAME_MACHINE-stratus-vos
+	;;
     *:VOS:*:*)
 	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit ;;
+	GUESS=hppa1.1-stratus-vos
+	;;
     mc68*:A/UX:*:*)
-	echo m68k-apple-aux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=m68k-apple-aux$UNAME_RELEASE
+	;;
     news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit ;;
+	GUESS=mips-sony-newsos6
+	;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if test -d /usr/nec; then
-		echo mips-nec-sysv"$UNAME_RELEASE"
+		GUESS=mips-nec-sysv$UNAME_RELEASE
 	else
-		echo mips-unknown-sysv"$UNAME_RELEASE"
+		GUESS=mips-unknown-sysv$UNAME_RELEASE
 	fi
-	exit ;;
+	;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
+	GUESS=powerpc-be-beos
+	;;
     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
+	GUESS=powerpc-apple-beos
+	;;
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
+	GUESS=i586-pc-beos
+	;;
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-	echo i586-pc-haiku
-	exit ;;
-    x86_64:Haiku:*:*)
-	echo x86_64-unknown-haiku
-	exit ;;
+	GUESS=i586-pc-haiku
+	;;
+    ppc:Haiku:*:*)	# Haiku running on Apple PowerPC
+	GUESS=powerpc-apple-haiku
+	;;
+    *:Haiku:*:*)	# Haiku modern gcc (not bound by BeOS compat)
+	GUESS=$UNAME_MACHINE-unknown-haiku
+	;;
     SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx4-nec-superux$UNAME_RELEASE
+	;;
     SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx5-nec-superux$UNAME_RELEASE
+	;;
     SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx6-nec-superux$UNAME_RELEASE
+	;;
     SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx7-nec-superux$UNAME_RELEASE
+	;;
     SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx8-nec-superux$UNAME_RELEASE
+	;;
     SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sx8r-nec-superux$UNAME_RELEASE
+	;;
     SX-ACE:SUPER-UX:*:*)
-	echo sxace-nec-superux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=sxace-nec-superux$UNAME_RELEASE
+	;;
     Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
-	exit ;;
+	GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+	;;
     *:Rhapsody:*:*)
-	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+	;;
     arm64:Darwin:*:*)
-	echo aarch64-apple-darwin"$UNAME_RELEASE"
-	exit ;;
+	GUESS=aarch64-apple-darwin$UNAME_RELEASE
+	;;
     *:Darwin:*:*)
-	UNAME_PROCESSOR=$(uname -p)
+	UNAME_PROCESSOR=`uname -p`
 	case $UNAME_PROCESSOR in
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
@@ -1393,109 +1449,119 @@
 	    # uname -m returns i386 or x86_64
 	    UNAME_PROCESSOR=$UNAME_MACHINE
 	fi
-	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+	;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=$(uname -p)
+	UNAME_PROCESSOR=`uname -p`
 	if test "$UNAME_PROCESSOR" = x86; then
 		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
-	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+	;;
     *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit ;;
+	GUESS=i386-pc-qnx
+	;;
     NEO-*:NONSTOP_KERNEL:*:*)
-	echo neo-tandem-nsk"$UNAME_RELEASE"
-	exit ;;
+	GUESS=neo-tandem-nsk$UNAME_RELEASE
+	;;
     NSE-*:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk"$UNAME_RELEASE"
-	exit ;;
+	GUESS=nse-tandem-nsk$UNAME_RELEASE
+	;;
     NSR-*:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk"$UNAME_RELEASE"
-	exit ;;
+	GUESS=nsr-tandem-nsk$UNAME_RELEASE
+	;;
     NSV-*:NONSTOP_KERNEL:*:*)
-	echo nsv-tandem-nsk"$UNAME_RELEASE"
-	exit ;;
+	GUESS=nsv-tandem-nsk$UNAME_RELEASE
+	;;
     NSX-*:NONSTOP_KERNEL:*:*)
-	echo nsx-tandem-nsk"$UNAME_RELEASE"
-	exit ;;
+	GUESS=nsx-tandem-nsk$UNAME_RELEASE
+	;;
     *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit ;;
+	GUESS=mips-compaq-nonstopux
+	;;
     BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit ;;
+	GUESS=bs2000-siemens-sysv
+	;;
     DS/*:UNIX_System_V:*:*)
-	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+	;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
-	# shellcheck disable=SC2154
-	if test "$cputype" = 386; then
+	if test "${cputype-}" = 386; then
 	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
+	elif test "x${cputype-}" != x; then
+	    UNAME_MACHINE=$cputype
 	fi
-	echo "$UNAME_MACHINE"-unknown-plan9
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-plan9
+	;;
     *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit ;;
+	GUESS=pdp10-unknown-tops10
+	;;
     *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit ;;
+	GUESS=pdp10-unknown-tenex
+	;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit ;;
+	GUESS=pdp10-dec-tops20
+	;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit ;;
+	GUESS=pdp10-xkl-tops20
+	;;
     *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit ;;
+	GUESS=pdp10-unknown-tops20
+	;;
     *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit ;;
+	GUESS=pdp10-unknown-its
+	;;
     SEI:*:*:SEIUX)
-	echo mips-sei-seiux"$UNAME_RELEASE"
-	exit ;;
+	GUESS=mips-sei-seiux$UNAME_RELEASE
+	;;
     *:DragonFly:*:*)
-	echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
-	exit ;;
+	DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+	GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+	;;
     *:*VMS:*:*)
-	UNAME_MACHINE=$( (uname -p) 2>/dev/null)
-	case "$UNAME_MACHINE" in
-	    A*) echo alpha-dec-vms ; exit ;;
-	    I*) echo ia64-dec-vms ; exit ;;
-	    V*) echo vax-dec-vms ; exit ;;
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case $UNAME_MACHINE in
+	    A*) GUESS=alpha-dec-vms ;;
+	    I*) GUESS=ia64-dec-vms ;;
+	    V*) GUESS=vax-dec-vms ;;
 	esac ;;
     *:XENIX:*:SysV)
-	echo i386-pc-xenix
-	exit ;;
+	GUESS=i386-pc-xenix
+	;;
     i*86:skyos:*:*)
-	echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')"
-	exit ;;
+	SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+	GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+	;;
     i*86:rdos:*:*)
-	echo "$UNAME_MACHINE"-pc-rdos
-	exit ;;
+	GUESS=$UNAME_MACHINE-pc-rdos
+	;;
+    i*86:Fiwix:*:*)
+	GUESS=$UNAME_MACHINE-pc-fiwix
+	;;
     *:AROS:*:*)
-	echo "$UNAME_MACHINE"-unknown-aros
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-aros
+	;;
     x86_64:VMkernel:*:*)
-	echo "$UNAME_MACHINE"-unknown-esx
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-esx
+	;;
     amd64:Isilon\ OneFS:*:*)
-	echo x86_64-unknown-onefs
-	exit ;;
+	GUESS=x86_64-unknown-onefs
+	;;
     *:Unleashed:*:*)
-	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
-	exit ;;
+	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+	;;
 esac
 
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+    echo "$GUESS"
+    exit
+fi
+
 # No uname command or uname output not recognized.
 set_cc_for_build
 cat > "$dummy.c" <<EOF
@@ -1535,7 +1601,7 @@
 #define __ARCHITECTURE__ "m68k"
 #endif
   int version;
-  version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null);
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
   if (version < 4)
     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
   else
@@ -1627,7 +1693,7 @@
 }
 EOF
 
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
 	{ echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
@@ -1635,7 +1701,7 @@
 
 echo "$0: unable to guess system type" >&2
 
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
     mips:Linux | mips64:Linux)
 	# If we got here on MIPS GNU/Linux, output extra information.
 	cat >&2 <<EOF
@@ -1657,9 +1723,11 @@
   https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
 EOF
 
-year=$(echo $timestamp | sed 's,-.*,,')
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
 # shellcheck disable=SC2003
-if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
    cat >&2 <<EOF
 
 If $0 has already been updated, send the following data and any
@@ -1668,20 +1736,20 @@
 
 config.guess timestamp = $timestamp
 
-uname -m = $( (uname -m) 2>/dev/null || echo unknown)
-uname -r = $( (uname -r) 2>/dev/null || echo unknown)
-uname -s = $( (uname -s) 2>/dev/null || echo unknown)
-uname -v = $( (uname -v) 2>/dev/null || echo unknown)
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
 
-/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
-/bin/uname -X     = $( (/bin/uname -X) 2>/dev/null)
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
 
-hostinfo               = $( (hostinfo) 2>/dev/null)
-/bin/universe          = $( (/bin/universe) 2>/dev/null)
-/usr/bin/arch -k       = $( (/usr/bin/arch -k) 2>/dev/null)
-/bin/arch              = $( (/bin/arch) 2>/dev/null)
-/usr/bin/oslevel       = $( (/usr/bin/oslevel) 2>/dev/null)
-/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null)
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
 
 UNAME_MACHINE = "$UNAME_MACHINE"
 UNAME_RELEASE = "$UNAME_RELEASE"
diff --git a/config.h b/config.h
index b56aa74..414bfff 100644
--- a/config.h
+++ b/config.h
@@ -73,11 +73,8 @@
 /* Define to 1 if you have the <net/if.h> header file. */
 #define HAVE_NET_IF_H 1
 
-/* Define to 1 if you have the <net/if_pflog.h> header file. */
-/* #undef HAVE_NET_IF_PFLOG_H */
-
-/* Define to 1 if you have the <net/pfvar.h> header file. */
-/* #undef HAVE_NET_PFVAR_H */
+/* Define to 1 if printf(3) does not support the z length modifier. */
+/* #undef HAVE_NO_PRINTF_Z */
 
 /* Define to 1 if you have the `openat' function. */
 /* #undef HAVE_OPENAT */
@@ -239,7 +236,7 @@
 #define PACKAGE_NAME "tcpdump"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "tcpdump 4.99.1"
+#define PACKAGE_STRING "tcpdump 4.99.3"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "tcpdump"
@@ -248,7 +245,10 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "4.99.1"
+#define PACKAGE_VERSION "4.99.3"
+
+/* The size of `void *', as computed by sizeof. */
+/* #undef SIZEOF_VOID_P */
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
diff --git a/config.h.in b/config.h.in
index 365651f..439038a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -72,11 +72,8 @@
 /* Define to 1 if you have the <net/if.h> header file. */
 #undef HAVE_NET_IF_H
 
-/* Define to 1 if you have the <net/if_pflog.h> header file. */
-#undef HAVE_NET_IF_PFLOG_H
-
-/* Define to 1 if you have the <net/pfvar.h> header file. */
-#undef HAVE_NET_PFVAR_H
+/* Define to 1 if printf(3) does not support the z length modifier. */
+#undef HAVE_NO_PRINTF_Z
 
 /* Define to 1 if you have the `openat' function. */
 #undef HAVE_OPENAT
@@ -249,6 +246,9 @@
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
+/* The size of `void *', as computed by sizeof. */
+#undef SIZEOF_VOID_P
+
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
diff --git a/config.sub b/config.sub
index 7f7d0b0..fbaa37f 100755
--- a/config.sub
+++ b/config.sub
@@ -1,12 +1,14 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2021 Free Software Foundation, Inc.
+#   Copyright 1992-2022 Free Software Foundation, Inc.
 
-timestamp='2021-03-10'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-08-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -50,7 +52,14 @@
 #	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
-me=$(echo "$0" | sed -e 's,.*/,,')
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
 Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
@@ -67,7 +76,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2022 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -112,9 +121,11 @@
 
 # Split fields of configuration type
 # shellcheck disable=SC2162
+saved_IFS=$IFS
 IFS="-" read field1 field2 field3 field4 <<EOF
 $1
 EOF
+IFS=$saved_IFS
 
 # Separate into logical components for further validation
 case $1 in
@@ -163,6 +174,10 @@
 						basic_machine=$field1
 						basic_os=$field2
 						;;
+					zephyr*)
+						basic_machine=$field1-unknown
+						basic_os=$field2
+						;;
 					# Manufacturers
 					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
 					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -769,22 +784,22 @@
 		vendor=hp
 		;;
 	i*86v32)
-		cpu=$(echo "$1" | sed -e 's/86.*/86/')
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
 		vendor=pc
 		basic_os=sysv32
 		;;
 	i*86v4*)
-		cpu=$(echo "$1" | sed -e 's/86.*/86/')
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
 		vendor=pc
 		basic_os=sysv4
 		;;
 	i*86v)
-		cpu=$(echo "$1" | sed -e 's/86.*/86/')
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
 		vendor=pc
 		basic_os=sysv
 		;;
 	i*86sol2)
-		cpu=$(echo "$1" | sed -e 's/86.*/86/')
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
 		vendor=pc
 		basic_os=solaris2
 		;;
@@ -917,14 +932,16 @@
 		;;
 	leon-*|leon[3-9]-*)
 		cpu=sparc
-		vendor=$(echo "$basic_machine" | sed 's/-.*//')
+		vendor=`echo "$basic_machine" | sed 's/-.*//'`
 		;;
 
 	*-*)
 		# shellcheck disable=SC2162
+		saved_IFS=$IFS
 		IFS="-" read cpu vendor <<EOF
 $basic_machine
 EOF
+		IFS=$saved_IFS
 		;;
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -1003,6 +1020,11 @@
 		;;
 
 	# Here we normalize CPU types with a missing or matching vendor
+	armh-unknown | armh-alt)
+		cpu=armv7l
+		vendor=alt
+		basic_os=${basic_os:-linux-gnueabihf}
+		;;
 	dpx20-unknown | dpx20-bull)
 		cpu=rs6000
 		vendor=bull
@@ -1084,7 +1106,7 @@
 		cpu=mipsisa64sb1el
 		;;
 	sh5e[lb]-*)
-		cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
+		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
 		;;
 	spur-*)
 		cpu=spur
@@ -1102,9 +1124,9 @@
 		cpu=x86_64
 		;;
 	xscale-* | xscalee[bl]-*)
-		cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
+		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
 		;;
-	arm64-*)
+	arm64-* | aarch64le-*)
 		cpu=aarch64
 		;;
 
@@ -1165,7 +1187,7 @@
 			| alphapca5[67] | alpha64pca5[67] \
 			| am33_2.0 \
 			| amdgcn \
-			| arc | arceb \
+			| arc | arceb | arc32 | arc64 \
 			| arm | arm[lb]e | arme[lb] | armv* \
 			| avr | avr32 \
 			| asmjs \
@@ -1185,7 +1207,7 @@
 			| k1om \
 			| le32 | le64 \
 			| lm32 \
-			| loongarch32 | loongarch64 | loongarchx32 \
+			| loongarch32 | loongarch64 \
 			| m32c | m32r | m32rle \
 			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
 			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
@@ -1204,9 +1226,13 @@
 			| mips64vr5900 | mips64vr5900el \
 			| mipsisa32 | mipsisa32el \
 			| mipsisa32r2 | mipsisa32r2el \
+			| mipsisa32r3 | mipsisa32r3el \
+			| mipsisa32r5 | mipsisa32r5el \
 			| mipsisa32r6 | mipsisa32r6el \
 			| mipsisa64 | mipsisa64el \
 			| mipsisa64r2 | mipsisa64r2el \
+			| mipsisa64r3 | mipsisa64r3el \
+			| mipsisa64r5 | mipsisa64r5el \
 			| mipsisa64r6 | mipsisa64r6el \
 			| mipsisa64sb1 | mipsisa64sb1el \
 			| mipsisa64sr71k | mipsisa64sr71kel \
@@ -1283,35 +1309,37 @@
 if test x$basic_os != x
 then
 
-# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
 # set os.
 case $basic_os in
 	gnu/linux*)
 		kernel=linux
-		os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
+		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
 		;;
 	os2-emx)
 		kernel=os2
-		os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
+		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
 		;;
 	nto-qnx*)
 		kernel=nto
-		os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
+		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
 		;;
 	*-*)
 		# shellcheck disable=SC2162
+		saved_IFS=$IFS
 		IFS="-" read kernel os <<EOF
 $basic_os
 EOF
+		IFS=$saved_IFS
 		;;
 	# Default OS when just kernel was specified
 	nto*)
 		kernel=nto
-		os=$(echo $basic_os | sed -e 's|nto|qnx|')
+		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
 		;;
 	linux*)
 		kernel=linux
-		os=$(echo $basic_os | sed -e 's|linux|gnu|')
+		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
 		;;
 	*)
 		kernel=
@@ -1332,7 +1360,7 @@
 		os=cnk
 		;;
 	solaris1 | solaris1.*)
-		os=$(echo $os | sed -e 's|solaris1|sunos4|')
+		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
 		;;
 	solaris)
 		os=solaris2
@@ -1361,7 +1389,7 @@
 		os=sco3.2v4
 		;;
 	sco3.2.[4-9]*)
-		os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
+		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
 		;;
 	sco*v* | scout)
 		# Don't match below
@@ -1391,7 +1419,7 @@
 		os=lynxos
 		;;
 	mac[0-9]*)
-		os=$(echo "$os" | sed -e 's|mac|macos|')
+		os=`echo "$os" | sed -e 's|mac|macos|'`
 		;;
 	opened*)
 		os=openedition
@@ -1400,10 +1428,10 @@
 		os=os400
 		;;
 	sunos5*)
-		os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
+		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
 		;;
 	sunos6*)
-		os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
+		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
 		;;
 	wince*)
 		os=wince
@@ -1437,7 +1465,7 @@
 		;;
 	# Preserve the version number of sinix5.
 	sinix5.*)
-		os=$(echo $os | sed -e 's|sinix|sysv|')
+		os=`echo "$os" | sed -e 's|sinix|sysv|'`
 		;;
 	sinix*)
 		os=sysv4
@@ -1684,7 +1712,7 @@
 # Now, validate our (potentially fixed-up) OS.
 case $os in
 	# Sometimes we do "kernel-libc", so those need to count as OSes.
-	musl* | newlib* | uclibc*)
+	musl* | newlib* | relibc* | uclibc*)
 		;;
 	# Likewise for "kernel-abi"
 	eabi* | gnueabi*)
@@ -1707,7 +1735,7 @@
 	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
 	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
 	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
-	     | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
+	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
 	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
 	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
 	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
@@ -1725,7 +1753,8 @@
 	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+	     | fiwix* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1742,11 +1771,12 @@
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
-	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+		   | linux-musl* | linux-relibc* | linux-uclibc* )
 		;;
 	uclinux-uclibc* )
 		;;
-	-dietlibc* | -newlib* | -musl* | -uclibc* )
+	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
 		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
diff --git a/configure b/configure
index 736dfef..20854a4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for tcpdump 4.99.1.
+# Generated by GNU Autoconf 2.69 for tcpdump 4.99.3.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='tcpdump'
 PACKAGE_TARNAME='tcpdump'
-PACKAGE_VERSION='4.99.1'
-PACKAGE_STRING='tcpdump 4.99.1'
+PACKAGE_VERSION='4.99.3'
+PACKAGE_STRING='tcpdump 4.99.3'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -676,7 +676,6 @@
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -757,7 +756,6 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1010,15 +1008,6 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1156,7 +1145,7 @@
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1269,7 +1258,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures tcpdump 4.99.1 to adapt to many kinds of systems.
+\`configure' configures tcpdump 4.99.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1309,7 +1298,6 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1335,7 +1323,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of tcpdump 4.99.1:";;
+     short | recursive ) echo "Configuration of tcpdump 4.99.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1344,8 +1332,7 @@
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-universal     don't build universal on macOS
-  --enable-smb            enable possibly-buggy SMB printer default=no
-  --disable-smb           disable possibly-buggy SMB printer
+  --enable-smb            enable possibly-buggy SMB printer [default=no]
   --disable-local-libpcap don't look for a local libpcap [default=check for a
                           local libpcap]
 
@@ -1353,8 +1340,8 @@
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --without-gcc           don't use gcc
-  --with-smi              link with libsmi (allows to load MIBs on the fly to decode SNMP packets. default=yes
-  --without-smi           don't link with libsmi
+  --with-smi              link with libsmi (allows to load MIBs on the fly to
+                          decode SNMP packets) [default=yes, if available]
   --with-user=USERNAME    drop privileges by default to USERNAME
   --with-chroot=DIRECTORY when dropping privileges, chroot to DIRECTORY
   --with-sandbox-capsicum use Capsicum security functions [default=yes, if
@@ -1439,7 +1426,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-tcpdump configure 4.99.1
+tcpdump configure 4.99.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1801,6 +1788,189 @@
 
 } # ac_fn_c_check_func
 
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
 # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
 # ---------------------------------------------
 # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -1904,7 +2074,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by tcpdump $as_me 4.99.1, which was
+It was created by tcpdump $as_me 4.99.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4010,42 +4180,6 @@
 
 done
 
-for ac_header in net/pfvar.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "net/pfvar.h" "ac_cv_header_net_pfvar_h" "#include <sys/types.h>
-#include <sys/socket.h>
-#include <net/if.h>
-"
-if test "x$ac_cv_header_net_pfvar_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NET_PFVAR_H 1
-_ACEOF
-
-fi
-
-done
-
-if test "$ac_cv_header_net_pfvar_h" = yes; then
-	for ac_header in net/if_pflog.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "net/if_pflog.h" "ac_cv_header_net_if_pflog_h" "#include <sys/types.h>
-	#include <sys/socket.h>
-	#include <net/if.h>
-	#include <net/pfvar.h>
-"
-if test "x$ac_cv_header_net_if_pflog_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NET_IF_PFLOG_H 1
-_ACEOF
-
-fi
-
-done
-
-	if test "$ac_cv_header_net_if_pflog_h" = yes; then
-		LOCALSRC="print-pflog.c $LOCALSRC"
-	fi
-fi
 
 case "$host_os" in
 
@@ -4154,8 +4288,11 @@
 /* end confdefs.h.  */
 
 /* libsmi available check */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <smi.h>
-main()
+int main()
 {
   int current, revision, age, n;
   const int required = 2;
@@ -4295,7 +4432,7 @@
 # XXX - do we need to check for all of them, or are there some that, if
 # present, imply others are present?
 #
-if test ! -z "$with_sandbox_capsicum" && test "$with_sandbox_capsicum" != "no" ; then
+if test -z "$with_sandbox_capsicum" || test "$with_sandbox_capsicum" != "no" ; then
 	#
 	# First, make sure we have the required header.
 	#
@@ -4708,6 +4845,7 @@
 /* end confdefs.h.  */
 
 
+#include <string.h>
 /* AF_INET6 available check */
 #include <sys/types.h>
 #ifdef _WIN32
@@ -5011,6 +5149,54 @@
 fi
 
 
+#
+# Define HAVE_NO_PRINTF_Z to make it possible to disable test cases that
+# depend on %zu.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf(3) supports the z length modifier" >&5
+$as_echo_n "checking whether printf(3) supports the z length modifier... " >&6; }
+if test "$cross_compiling" = yes; then :
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not while cross-compiling" >&5
+$as_echo "not while cross-compiling" >&6; }
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+#include <stdio.h>
+#include <string.h>
+
+int main()
+{
+  char buf[100];
+  snprintf(buf, sizeof(buf), "%zu", sizeof(buf));
+  return strncmp(buf, "100", sizeof(buf)) ? 1 : 0;
+}
+
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "#define HAVE_NO_PRINTF_Z 1" >>confdefs.h
+
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lrpc" >&5
 $as_echo_n "checking for main in -lrpc... " >&6; }
 if ${ac_cv_lib_rpc_main+:} false; then :
@@ -5453,6 +5639,98 @@
                 # Found - use it to get the include flags for
                 # libpcap and the flags to link with libpcap.
                 #
+                # If this is a vendor-supplied pcap-config, which
+                # we define as being "a pcap-config in /usr/bin
+                # or /usr/ccs/bin" (the latter is for Solaris and
+                # Sun/Oracle Studio), there are some issues.  Work
+                # around them.
+                #
+                if test \( "$PCAP_CONFIG" = "/usr/bin/pcap-config" \) -o \
+                        \( "$PCAP_CONFIG" = "/usr/ccs/bin/pcap-config" \) ; then
+                    #
+                    # It's vendor-supplied.
+                    #
+                    case "$host_os" in
+
+                    darwin*)
+                        #
+                        # This is macOS or another Darwin-based OS.
+                        #
+                        # That means that /usr/bin/pcap-config it
+                        # may provide -I/usr/local/include with --cflags
+                        # and -L/usr/local/lib with --libs, rather than
+                        # pointing to the OS-supplied library and
+                        # Xcode-supplied headers.  Remember that, so we
+                        # ignore those values.
+                        #
+                        _broken_apple_pcap_config=yes
+                        ;;
+
+                    solaris*)
+                        #
+                        # This is Solaris 2 or later, i.e. SunOS 5.x.
+                        #
+                        # At least on Solaris 11; there's /usr/bin/pcap-config,
+                        # which reports -L/usr/lib with --libs, causing
+                        # the 32-bit libraries to be found, and there's
+                        # /usr/bin/{64bitarch}/pcap-config, where {64bitarch}
+                        # is a name for the 64-bit version of the instruction
+                        # set, which reports -L /usr/lib/{64bitarch}, causing
+                        # the 64-bit libraries to be found.
+                        #
+                        # So if we're building 64-bit targets, we replace
+                        # PCAP_CONFIG with /usr/bin/{64bitarch}; we get
+                        # {64bitarch} as the output of "isainfo -n".
+                        #
+                        # Are we building 32-bit or 64-bit?  Get the
+                        # size of void *, and check that.
+                        #
+                        # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if ${ac_cv_sizeof_void_p+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_void_p" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (void *)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_void_p=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+
+                        if test ac_cv_sizeof_void_p -eq 8 ; then
+                            isainfo_output=`isainfo -n`
+                            if test ! -z "$isainfo_output" ; then
+                                #
+                                # Success - change PCAP_CONFIG.
+                                #
+                                PCAP_CONFIG=`echo $PCAP_CONFIG | sed "s;/bin/;/bin/$isainfo_output/;"`
+                            fi
+                        fi
+                        ;;
+                    esac
+                fi
+                #
                 # Please read section 11.6 "Shell Substitutions"
                 # in the autoconf manual before doing anything
                 # to this that involves quoting.  Especially note
@@ -5461,8 +5739,30 @@
                 # expressions (pfew!)."
                 #
                 cflags=`"$PCAP_CONFIG" --cflags`
+                #
+                # Work around macOS (and probably other Darwin) brokenness,
+                # by not adding /usr/local/include if it's from the broken
+                # Apple pcap-config.
+                #
+                if test "$_broken_apple_pcap_config" = "yes" ; then
+                    #
+                    # Strip -I/usr/local/include with sed.
+                    #
+                    cflags=`echo $cflags | sed 's;-I/usr/local/include;;'`
+                fi
                 V_INCLS="$cflags $V_INCLS"
                 libpcap=`"$PCAP_CONFIG" --libs`
+                #
+                # Work around macOS (and probably other Darwin) brokenness,
+                # by not adding /usr/local/lib if it's from the broken
+                # Apple pcap-config.
+                #
+                if test "$_broken_apple_pcap_config" = "yes" ; then
+                    #
+                    # Strip -L/usr/local/lib with sed.
+                    #
+                    libpcap=`echo $libpcap | sed 's;-L/usr/local/lib;;'`
+                fi
             else
                 #
                 # Not found; look for an installed pcap.
@@ -5587,8 +5887,44 @@
             # routines in those libraries, so we'll need to link with
             # them, because we'll be linking statically with it.
             #
+            # If it supports --static-pcap-only. use that, as we will be
+            # linking with a static libpcap but won't be linking
+            # statically with any of the libraries on which it depends;
+            # those libraries might not even have static versions
+            # installed.
+            #
+            # That means we need to find out the libraries on which
+            # libpcap directly depends, so we can link with them, but we
+            # don't need to link with the libraries on which those
+            # libraries depend as, on all UN*Xes with which I'm
+            # familiar, the libraries on which a shared library depends
+            # are stored in the library and are automatically loaded by
+            # the run-time linker, without the executable having to be
+            # linked with those libraries.  (This allows a library to be
+            # changed to depend on more libraries without breaking that
+            # library's ABI.)
+            #
+            # The only way to test for that support is to see if the
+            # script contains the string "static-pcap-only"; we can't
+            # try using that flag and checking for errors, as the
+            # versions of the script that didn't have that flag wouldn't
+            # report or return an error for an unsupported command-line
+            # flag.  Those older versions provided, with --static, only
+            # the libraries on which libpcap depends, not the
+            # dependencies of those libraries; the versions with
+            # --static-pcap-only provide all the dependencies with
+            # --static, for the benefit of programs that are completely
+            # statically linked, and provide only the direct
+            # dependencies with --static-pcap-only.
+            #
+            if grep -s -q "static-pcap-only" "$PCAP_CONFIG"
+            then
+                static_opt="--static-pcap-only"
+            else
+                static_opt="--static"
+            fi
             V_INCLS="-I$local_pcap_dir $V_INCLS"
-            additional_libs=`"$PCAP_CONFIG" --static --additional-libs`
+            additional_libs=`"$PCAP_CONFIG" $static_opt --additional-libs`
             libpcap="$libpcap $additional_libs"
         else
             #
@@ -5708,7 +6044,7 @@
 
 else
 
-        as_fn_error $? "This is a bug, please follow the guidelines in CONTRIBUTING and include the
+        as_fn_error $? "This is a bug, please follow the guidelines in CONTRIBUTING.md and include the
 config.log file in your report.  If you have downloaded libpcap from
 tcpdump.org, and built it yourself, please also include the config.log
 file from the libpcap source directory, the Makefile from the libpcap
@@ -5758,6 +6094,8 @@
 /* end confdefs.h.  */
 
 		#include <netdb.h>
+		#include <netinet/ether.h>
+		#include <stdlib.h>
 		#include <sys/types.h>
 		#include <sys/param.h>
 		#include <sys/socket.h>
@@ -6717,67 +7055,39 @@
 	    #
 	    if test "$ac_lbl_cc_dont_try_gcc_dashW" != yes; then
 
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler fails when given an unknown warning option" >&5
-$as_echo_n "checking whether the compiler fails when given an unknown warning option... " >&6; }
-	save_CFLAGS="$CFLAGS"
-	CFLAGS="$CFLAGS -Wxyzzy-this-will-never-succeed-xyzzy"
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-		#
-		# We're assuming this is clang, where
-		# -Werror=unknown-warning-option is the appropriate
-		# option to force the compiler to fail.
-		#
-		ac_lbl_unknown_warning_option_error="-Werror=unknown-warning-option"
-
-else
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-	CFLAGS="$save_CFLAGS"
-
-
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -W option" >&5
 $as_echo_n "checking whether the compiler supports the -W option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-W" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -W"
-	elif expr "x-W" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -W"
-	elif expr "x-W" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -W"
-	else
-	    CFLAGS="$CFLAGS -W"
-	fi
+	CFLAGS="$CFLAGS -W"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -6794,33 +7104,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wall option" >&5
 $as_echo_n "checking whether the compiler supports the -Wall option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wall" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wall"
-	elif expr "x-Wall" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wall"
-	elif expr "x-Wall" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wall"
-	else
-	    CFLAGS="$CFLAGS -Wall"
-	fi
+	CFLAGS="$CFLAGS -Wall"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -6837,33 +7156,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wassign-enum option" >&5
 $as_echo_n "checking whether the compiler supports the -Wassign-enum option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wassign-enum" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wassign-enum"
-	elif expr "x-Wassign-enum" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wassign-enum"
-	elif expr "x-Wassign-enum" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wassign-enum"
-	else
-	    CFLAGS="$CFLAGS -Wassign-enum"
-	fi
+	CFLAGS="$CFLAGS -Wassign-enum"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -6880,33 +7208,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wcast-qual option" >&5
 $as_echo_n "checking whether the compiler supports the -Wcast-qual option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wcast-qual" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wcast-qual"
-	elif expr "x-Wcast-qual" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wcast-qual"
-	elif expr "x-Wcast-qual" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wcast-qual"
-	else
-	    CFLAGS="$CFLAGS -Wcast-qual"
-	fi
+	CFLAGS="$CFLAGS -Wcast-qual"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -6923,33 +7260,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wmissing-prototypes option" >&5
 $as_echo_n "checking whether the compiler supports the -Wmissing-prototypes option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wmissing-prototypes" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wmissing-prototypes"
-	elif expr "x-Wmissing-prototypes" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wmissing-prototypes"
-	elif expr "x-Wmissing-prototypes" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wmissing-prototypes"
-	else
-	    CFLAGS="$CFLAGS -Wmissing-prototypes"
-	fi
+	CFLAGS="$CFLAGS -Wmissing-prototypes"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -6966,33 +7312,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wmissing-variable-declarations option" >&5
 $as_echo_n "checking whether the compiler supports the -Wmissing-variable-declarations option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wmissing-variable-declarations" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wmissing-variable-declarations"
-	elif expr "x-Wmissing-variable-declarations" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wmissing-variable-declarations"
-	elif expr "x-Wmissing-variable-declarations" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wmissing-variable-declarations"
-	else
-	    CFLAGS="$CFLAGS -Wmissing-variable-declarations"
-	fi
+	CFLAGS="$CFLAGS -Wmissing-variable-declarations"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7009,33 +7364,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wold-style-definition option" >&5
 $as_echo_n "checking whether the compiler supports the -Wold-style-definition option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wold-style-definition" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wold-style-definition"
-	elif expr "x-Wold-style-definition" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wold-style-definition"
-	elif expr "x-Wold-style-definition" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wold-style-definition"
-	else
-	    CFLAGS="$CFLAGS -Wold-style-definition"
-	fi
+	CFLAGS="$CFLAGS -Wold-style-definition"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7052,33 +7416,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wpedantic option" >&5
 $as_echo_n "checking whether the compiler supports the -Wpedantic option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wpedantic" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wpedantic"
-	elif expr "x-Wpedantic" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpedantic"
-	elif expr "x-Wpedantic" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpedantic"
-	else
-	    CFLAGS="$CFLAGS -Wpedantic"
-	fi
+	CFLAGS="$CFLAGS -Wpedantic"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7095,33 +7468,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wpointer-arith option" >&5
 $as_echo_n "checking whether the compiler supports the -Wpointer-arith option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wpointer-arith" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wpointer-arith"
-	elif expr "x-Wpointer-arith" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpointer-arith"
-	elif expr "x-Wpointer-arith" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpointer-arith"
-	else
-	    CFLAGS="$CFLAGS -Wpointer-arith"
-	fi
+	CFLAGS="$CFLAGS -Wpointer-arith"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7138,33 +7520,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wpointer-sign option" >&5
 $as_echo_n "checking whether the compiler supports the -Wpointer-sign option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wpointer-sign" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wpointer-sign"
-	elif expr "x-Wpointer-sign" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpointer-sign"
-	elif expr "x-Wpointer-sign" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wpointer-sign"
-	else
-	    CFLAGS="$CFLAGS -Wpointer-sign"
-	fi
+	CFLAGS="$CFLAGS -Wpointer-sign"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7181,33 +7572,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wshadow option" >&5
 $as_echo_n "checking whether the compiler supports the -Wshadow option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wshadow" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wshadow"
-	elif expr "x-Wshadow" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wshadow"
-	elif expr "x-Wshadow" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wshadow"
-	else
-	    CFLAGS="$CFLAGS -Wshadow"
-	fi
+	CFLAGS="$CFLAGS -Wshadow"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7224,33 +7624,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wsign-compare option" >&5
 $as_echo_n "checking whether the compiler supports the -Wsign-compare option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wsign-compare" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wsign-compare"
-	elif expr "x-Wsign-compare" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wsign-compare"
-	elif expr "x-Wsign-compare" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wsign-compare"
-	else
-	    CFLAGS="$CFLAGS -Wsign-compare"
-	fi
+	CFLAGS="$CFLAGS -Wsign-compare"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7267,33 +7676,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wstrict-prototypes option" >&5
 $as_echo_n "checking whether the compiler supports the -Wstrict-prototypes option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wstrict-prototypes" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wstrict-prototypes"
-	elif expr "x-Wstrict-prototypes" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wstrict-prototypes"
-	elif expr "x-Wstrict-prototypes" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wstrict-prototypes"
-	else
-	    CFLAGS="$CFLAGS -Wstrict-prototypes"
-	fi
+	CFLAGS="$CFLAGS -Wstrict-prototypes"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7310,33 +7728,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wunreachable-code-return option" >&5
 $as_echo_n "checking whether the compiler supports the -Wunreachable-code-return option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wunreachable-code-return" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wunreachable-code-return"
-	elif expr "x-Wunreachable-code-return" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wunreachable-code-return"
-	elif expr "x-Wunreachable-code-return" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wunreachable-code-return"
-	else
-	    CFLAGS="$CFLAGS -Wunreachable-code-return"
-	fi
+	CFLAGS="$CFLAGS -Wunreachable-code-return"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7353,33 +7780,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wused-but-marked-unused option" >&5
 $as_echo_n "checking whether the compiler supports the -Wused-but-marked-unused option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wused-but-marked-unused" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wused-but-marked-unused"
-	elif expr "x-Wused-but-marked-unused" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wused-but-marked-unused"
-	elif expr "x-Wused-but-marked-unused" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wused-but-marked-unused"
-	else
-	    CFLAGS="$CFLAGS -Wused-but-marked-unused"
-	fi
+	CFLAGS="$CFLAGS -Wused-but-marked-unused"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7396,33 +7832,42 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the -Wwrite-strings option" >&5
 $as_echo_n "checking whether the compiler supports the -Wwrite-strings option... " >&6; }
 	save_CFLAGS="$CFLAGS"
-	if expr "x-Wwrite-strings" : "x-W.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error -Wwrite-strings"
-	elif expr "x-Wwrite-strings" : "x-f.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wwrite-strings"
-	elif expr "x-Wwrite-strings" : "x-m.*" >/dev/null
-	then
-	    CFLAGS="$CFLAGS -Werror -Wwrite-strings"
-	else
-	    CFLAGS="$CFLAGS -Wwrite-strings"
-	fi
+	CFLAGS="$CFLAGS -Wwrite-strings"
+	#
+	# XXX - yes, this depends on the way AC_LANG_WERROR works,
+	# but no mechanism is provided to turn AC_LANG_WERROR on
+	# *and then turn it back off*, so that we *only* do it when
+	# testing compiler options - 15 years after somebody asked
+	# for it:
+	#
+	#     https://autoconf.gnu.narkive.com/gTAVmfKD/how-to-cancel-flags-set-by-ac-lang-werror
+	#
+	save_ac_c_werror_flag="$ac_c_werror_flag"
+	ac_c_werror_flag=yes
+	#
+	# We use AC_LANG_SOURCE() so that we can control the complete
+	# content of the program being compiled.  We do not, for example,
+	# want the default "int main()" that AC_LANG_PROGRAM() generates,
+	# as it will generate a warning with -Wold-style-definition, meaning
+	# that we would treat it as not working, as the test will fail if
+	# *any* error output, including a warning due to the flag we're
+	# testing, is generated; see
+	#
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#    https://www.postgresql.org/message-id/2192993.1591682589%40sss.pgh.pa.us
+	#
+	# This may, as per those two messages, be fixed in autoconf 2.70,
+	# but we only require 2.64 or newer for now.
+	#
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-int
-main ()
-{
-return 0
-  ;
-  return 0;
-}
+int main(void) { return 0; }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
@@ -7439,6 +7884,7 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	ac_c_werror_flag="$save_ac_c_werror_flag"
 
 	    fi
 
@@ -8437,7 +8883,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by tcpdump $as_me 4.99.1, which was
+This file was extended by tcpdump $as_me 4.99.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8503,7 +8949,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-tcpdump config.status 4.99.1
+tcpdump config.status 4.99.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -9192,7 +9638,7 @@
     "default-1":C) if test -f .devel; then
 	echo timestamp > stamp-h
 	cat $srcdir/Makefile-devel-adds >> Makefile
-	make depend
+	make depend || exit 1
 fi ;;
 
   esac
diff --git a/configure.ac b/configure.ac
index 48f4dc9..fddc6ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,24 +32,12 @@
 AC_LBL_C_INLINE
 
 AC_CHECK_HEADERS(fcntl.h rpc/rpc.h rpc/rpcent.h net/if.h)
-AC_CHECK_HEADERS(net/pfvar.h, , , [#include <sys/types.h>
-#include <sys/socket.h>
-#include <net/if.h>])
-if test "$ac_cv_header_net_pfvar_h" = yes; then
-	AC_CHECK_HEADERS(net/if_pflog.h, , , [#include <sys/types.h>
-	#include <sys/socket.h>
-	#include <net/if.h>
-	#include <net/pfvar.h>])
-	if test "$ac_cv_header_net_if_pflog_h" = yes; then
-		LOCALSRC="print-pflog.c $LOCALSRC"
-	fi
-fi
 
 case "$host_os" in
 
 darwin*)
 	AC_ARG_ENABLE(universal,
-	AC_HELP_STRING([--disable-universal],[don't build universal on macOS]))
+	AS_HELP_STRING([--disable-universal],[don't build universal on macOS]))
 	if test "$enable_universal" != "no"; then
 		case "$host_os" in
 
@@ -76,10 +64,11 @@
 esac
 
 
-AC_ARG_WITH(smi,
-[  --with-smi              link with libsmi (allows to load MIBs on the fly to decode SNMP packets. [default=yes]
-  --without-smi           don't link with libsmi],,
-   with_smi=yes)
+AC_ARG_WITH([smi],
+   [AS_HELP_STRING([--with-smi],
+     [link with libsmi (allows to load MIBs on the fly to decode SNMP packets) [default=yes, if available]])],
+   [],
+   [with_smi=yes])
 
 if test "x$with_smi" != "xno" ; then
 	AC_CHECK_HEADER(smi.h,
@@ -98,8 +87,11 @@
 			AC_TRY_RUN(
 				[
 /* libsmi available check */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <smi.h>
-main()
+int main()
 {
   int current, revision, age, n;
   const int required = 2;
@@ -146,10 +138,11 @@
 fi
 
 AC_MSG_CHECKING([whether to enable the possibly-buggy SMB printer])
-AC_ARG_ENABLE(smb,
-[  --enable-smb            enable possibly-buggy SMB printer [default=no]
-  --disable-smb           disable possibly-buggy SMB printer],,
-   enableval=no)
+AC_ARG_ENABLE([smb],
+   [AS_HELP_STRING([--enable-smb],
+     [enable possibly-buggy SMB printer [default=no]])],
+   [],
+   [enableval=no])
 case "$enableval" in
 yes)	AC_MSG_RESULT(yes)
 	AC_DEFINE(ENABLE_SMB, 1,
@@ -198,7 +191,7 @@
 # XXX - do we need to check for all of them, or are there some that, if
 # present, imply others are present?
 #
-if test ! -z "$with_sandbox_capsicum" && test "$with_sandbox_capsicum" != "no" ; then
+if test -z "$with_sandbox_capsicum" || test "$with_sandbox_capsicum" != "no" ; then
 	#
 	# First, make sure we have the required header.
 	#
@@ -247,6 +240,7 @@
     [
       AC_LANG_SOURCE(
 	[[
+#include <string.h>
 /* AF_INET6 available check */
 #include <sys/types.h>
 #ifdef _WIN32
@@ -397,6 +391,38 @@
 AC_CHECK_FUNC(snprintf,,
     AC_MSG_ERROR([snprintf() is required but wasn't found]))
 
+#
+# Define HAVE_NO_PRINTF_Z to make it possible to disable test cases that
+# depend on %zu.
+#
+AC_MSG_CHECKING([whether printf(3) supports the z length modifier])
+AC_RUN_IFELSE(
+    [
+        AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+
+int main()
+{
+  char buf[100];
+  snprintf(buf, sizeof(buf), "%zu", sizeof(buf));
+  return strncmp(buf, "100", sizeof(buf)) ? 1 : 0;
+}
+        ]])
+    ],
+    [
+        AC_MSG_RESULT(yes)
+    ],
+    [
+        AC_MSG_RESULT(no)
+        AC_DEFINE(HAVE_NO_PRINTF_Z, 1,
+            [Define to 1 if printf(3) does not support the z length modifier.])
+    ],
+    [
+        AC_MSG_RESULT(not while cross-compiling)
+    ]
+)
+
 AC_CHECK_LIB(rpc, main)		dnl It's unclear why we might need -lrpc
 
 dnl Some platforms may need -lnsl for getrpcbynumber.
@@ -424,6 +450,8 @@
     AC_CACHE_CHECK(for buggy ether_ntohost, ac_cv_buggy_ether_ntohost, [
 	AC_TRY_RUN([
 		#include <netdb.h>
+		#include <netinet/ether.h>
+		#include <stdlib.h>
 		#include <sys/types.h>
 		#include <sys/param.h>
 		#include <sys/socket.h>
@@ -993,7 +1021,7 @@
 AC_OUTPUT_COMMANDS([if test -f .devel; then
 	echo timestamp > stamp-h
 	cat $srcdir/Makefile-devel-adds >> Makefile
-	make depend
+	make depend || exit 1
 fi])
 AC_OUTPUT(Makefile tcpdump.1)
 exit 0
diff --git a/diag-control.h b/diag-control.h
new file mode 100644
index 0000000..3eb6bca
--- /dev/null
+++ b/diag-control.h
@@ -0,0 +1,186 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996, 1997
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * 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. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the Computer Systems
+ *	Engineering Group at Lawrence Berkeley Laboratory.
+ * 4. Neither the name of the University nor of the Laboratory may be used
+ *    to endorse or promote products derived from this software without
+ *    specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _diag_control_h
+#define _diag_control_h
+
+#include "compiler-tests.h"
+
+#ifndef _MSC_VER
+  /*
+   * Clang and GCC both support this way of putting pragmas into #defines.
+   * We don't use it unless we have a compiler that supports it; the
+   * warning-suppressing pragmas differ between Clang and GCC, so we test
+   * for both of those separately.
+   */
+  #define DIAG_DO_PRAGMA(x) _Pragma (#x)
+#endif
+
+/*
+ * XL C 12.1 and 13.1 for AIX require no attention in this department.
+ * XL C 16.1 defines both __GNUC__ and __clang__, so has to be tested first.
+ */
+#if ND_IS_AT_LEAST_XL_C_VERSION(16,1)
+  /*
+   * See respective Clang note below.
+   */
+  #define DIAG_OFF_ASSIGN_ENUM \
+    DIAG_DO_PRAGMA(clang diagnostic push) \
+    DIAG_DO_PRAGMA(clang diagnostic ignored "-Wassign-enum")
+  #define DIAG_ON_ASSIGN_ENUM \
+    DIAG_DO_PRAGMA(clang diagnostic pop)
+
+  #define DIAG_OFF_CAST_QUAL
+  #define DIAG_ON_CAST_QUAL
+  #define DIAG_OFF_DEPRECATION
+  #define DIAG_ON_DEPRECATION
+/*
+ * The current clang compilers also define __GNUC__ and __GNUC_MINOR__
+ * thus we need to test the clang case before the GCC one
+ */
+#elif ND_IS_AT_LEAST_CLANG_VERSION(2,8)
+  /*
+   * Clang complains if you OR together multiple enum values of a
+   * given enum type and them pass it as an argument of that enum
+   * type.  Some libcap-ng routines use enums to define bit flags;
+   * we want to squelch the warnings that produces.
+   */
+  #define DIAG_OFF_ASSIGN_ENUM \
+    DIAG_DO_PRAGMA(clang diagnostic push) \
+    DIAG_DO_PRAGMA(clang diagnostic ignored "-Wassign-enum")
+  #define DIAG_ON_ASSIGN_ENUM \
+    DIAG_DO_PRAGMA(clang diagnostic pop)
+
+  /*
+   * It also legitimately complains about some code in the BSD
+   * getopt_long() - that code explicitly and deliberately
+   * violates the contract by permuting the argument vector
+   * (declared as char const *argv[], meaning "I won't change
+   * the vector by changing any of its elements), as do the
+   * GNU and Solaris getopt_long().  This is documented in the
+   * man pages for all versions; it can be suppressed by setting
+   * the environment variable POSIXLY_CORRECT or by putting a "+"
+   * at the beginning of the option string.
+   *
+   * We suppress the warning.
+   */
+  #define DIAG_OFF_CAST_QUAL \
+    DIAG_DO_PRAGMA(clang diagnostic push) \
+    DIAG_DO_PRAGMA(clang diagnostic ignored "-Wcast-qual")
+  #define DIAG_ON_CAST_QUAL \
+    DIAG_DO_PRAGMA(clang diagnostic pop)
+
+  /*
+   * Suppress deprecation warnings.
+   */
+  #define DIAG_OFF_DEPRECATION \
+    DIAG_DO_PRAGMA(clang diagnostic push) \
+    DIAG_DO_PRAGMA(clang diagnostic ignored "-Wdeprecated-declarations")
+  #define DIAG_ON_DEPRECATION \
+    DIAG_DO_PRAGMA(clang diagnostic pop)
+
+  /*
+   * Clang supports the generic C11 extension even if run with the -std=gnu99
+   * flag, which leads FreeBSD <sys/cdefs.h> to use the extension, which
+   * results in Clang emitting a -Wc11-extensions warning. The warning is not
+   * documented in the user manual, but it happens with Clang 10.0.1 on
+   * FreeBSD 12.2, so let's use that as a reference.
+   */
+  #if ND_IS_AT_LEAST_CLANG_VERSION(10,0)
+    #define DIAG_OFF_C11_EXTENSIONS \
+      DIAG_DO_PRAGMA(clang diagnostic push) \
+      DIAG_DO_PRAGMA(clang diagnostic ignored "-Wc11-extensions")
+    #define DIAG_ON_C11_EXTENSIONS \
+      DIAG_DO_PRAGMA(clang diagnostic pop)
+  #endif
+#elif ND_IS_AT_LEAST_GNUC_VERSION(4,2)
+  /* GCC apparently doesn't complain about ORing enums together. */
+  #define DIAG_OFF_ASSIGN_ENUM
+  #define DIAG_ON_ASSIGN_ENUM
+
+  /*
+   * It does, however, complain about casting away constness in
+   * missing/getopt_long.c.
+   */
+  #define DIAG_OFF_CAST_QUAL \
+    DIAG_DO_PRAGMA(GCC diagnostic push) \
+    DIAG_DO_PRAGMA(GCC diagnostic ignored "-Wcast-qual")
+  #define DIAG_ON_CAST_QUAL \
+    DIAG_DO_PRAGMA(GCC diagnostic pop)
+
+  /*
+   * Suppress deprecation warnings.
+   */
+  #define DIAG_OFF_DEPRECATION \
+    DIAG_DO_PRAGMA(GCC diagnostic push) \
+    DIAG_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")
+  #define DIAG_ON_DEPRECATION \
+    DIAG_DO_PRAGMA(GCC diagnostic pop)
+  /*
+   * GCC supports -Wc99-c11-compat since version 5.1.0, but the warning does
+   * not trigger for now, so let's just leave it be.
+   */
+#else
+  #define DIAG_OFF_ASSIGN_ENUM
+  #define DIAG_ON_ASSIGN_ENUM
+  #define DIAG_OFF_CAST_QUAL
+  #define DIAG_ON_CAST_QUAL
+  #define DIAG_OFF_DEPRECATION
+  #define DIAG_ON_DEPRECATION
+#endif
+
+#ifndef DIAG_OFF_C11_EXTENSIONS
+#define DIAG_OFF_C11_EXTENSIONS
+#endif
+#ifndef DIAG_ON_C11_EXTENSIONS
+#define DIAG_ON_C11_EXTENSIONS
+#endif
+
+/*
+ * GCC needs this on AIX for longjmp().
+ */
+#if ND_IS_AT_LEAST_GNUC_VERSION(5,1)
+  /*
+   * Beware that the effect of this builtin is more than just squelching the
+   * warning! GCC trusts it enough for the process to segfault if the control
+   * flow reaches the builtin (an infinite empty loop in the same context would
+   * squelch the warning and ruin the process too, albeit in a different way).
+   * So please remember to use this very carefully.
+   */
+  #define ND_UNREACHABLE __builtin_unreachable();
+#else
+  #define ND_UNREACHABLE
+#endif
+
+#endif /* _diag_control_h */
diff --git a/doc/README.NetBSD.md b/doc/README.NetBSD.md
new file mode 100644
index 0000000..b49be0e
--- /dev/null
+++ b/doc/README.NetBSD.md
@@ -0,0 +1,22 @@
+# Compiling tcpdump on NetBSD
+
+NetBSD has two libpcap libraries: one that is always installed as a part of the
+OS and another that can be installed as a package from pkgsrc.  Also the usual
+method of compiling with the upstream libpcap in `../libpcap` is available.
+
+GCC, Clang, Autoconf and CMake are presumed to work, if this is not the case,
+please report a bug as explained in the
+[guidelines for contributing](../CONTRIBUTING.md).
+
+## NetBSD 9.3
+
+* Upstream libpcap works.
+* OS libpcap works.
+* pkgsrc libpcap works.
+
+## NetBSD 9.2, 9.1 and 9.0
+
+* Upstream libpcap works.
+* OS libpcap cannot be used due to
+  [this bug](https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=55901).
+
diff --git a/doc/README.Win32.md b/doc/README.Win32.md
index f500aec..b7e81d1 100644
--- a/doc/README.Win32.md
+++ b/doc/README.Win32.md
@@ -26,48 +26,43 @@
 such as a requirement to support versions of Windows earlier than
 Windows Vista, which is the earliest version supported by Npcap.
 
-Npcap and its SDK can be downloaded from its home page:
-
-  https://npcap.org
-
-The SDK is a ZIP archive; create a folder on your C: drive, e.g.
-C:\npcap-sdk, and put the contents of the ZIP archive into that folder.
+Npcap and its SDK can be downloaded from its [home page](https://npcap.com).
+The SDK is a ZIP archive; create a folder on your `C:` drive, e.g.
+`C:\npcap-sdk`, and put the contents of the ZIP archive into that folder.
 
 The WinPcap installer can be downloaded from
-
-  https://www.winpcap.org/install/default.htm
-
+[here](https://www.winpcap.org/install/default.htm)
 and the WinPcap Developer's Kit can be downloaded from
-
-  https://www.winpcap.org/devel.htm
+[here](https://www.winpcap.org/devel.htm).
 
 Required build tools
 --------------------
 
 The Developer's Kit is a ZIP archive; it contains a folder named
-WpdPack, which you should place on your C: drive, e.g. C:\WpdPack.
+`WpdPack`, which you should place on your `C:` drive, e.g. `C:\WpdPack`.
 
 Building tcpdump on Windows requires Visual Studio 2015 or later.  The
 Community Edition of Visual Studio can be downloaded at no cost from
-
-  https://visualstudio.microsoft.com
+[here](https://visualstudio.microsoft.com).
 
 Additional tools are also required.  Chocolatey is a package manager for
 Windows with which those tools, and other tools, can be installed; it
-can be downloaded from
-
-  https://chocolatey.org
+can be downloaded from [here](https://chocolatey.org).
 
 It is a command-line tool; a GUI tool, Chocolatey GUI, is provided as a
 Chocolatey package, which can be installed from the command line:
 
-	choco install chocolateygui
+```
+choco install chocolateygui
+```
 
-For convenience, the "choco install" command can be run with the "-y"
+For convenience, the `choco install` command can be run with the `-y`
 flag, forcing it to automatically answer all questions asked of the user
 with "yes":
 
-	choco install -y chocolateygui
+```
+choco install -y chocolateygui
+```
 
 The required tools are:
 
@@ -77,31 +72,30 @@
 (there are currently unsupported project files provided, but we do not
 guarantee that they will work or that we will continue to provide them).
 It does provide files for CMake, which is a cross-platform tool that
-runs on UN*Xes and on Windows and that can generate project files for
-UN*X Make, the Ninja build system, and Visual Studio, among other build
+runs on UN\*Xes and on Windows and that can generate project files for
+UN\*X Make, the Ninja build system, and Visual Studio, among other build
 systems.
 
 Visual Studio 2015 does not provide CMake; an installer can be
-downloaded from
-
-  https://cmake.org/download/
+downloaded from [here](https://cmake.org/download/).
 
 When you run the installer, you should choose to add CMake to the system
-PATH for all users and to create the desktop icon.
+`PATH` for all users and to create the desktop icon.
 
-CMake can also be installed as the Chocolatey package "cmake":
+CMake can also be installed as the Chocolatey package `cmake`:
 
-	choco install -y cmake
+```
+choco install -y cmake
+```
 
 Visual Studio 2017 and later provide CMake, so you will not need to
 install CMake if you have installed Visual Studio 2017 or later.  They
-include built-in support for CMake-based projects:
-
-  https://devblogs.microsoft.com/cppblog/cmake-support-in-visual-studio/
+include built-in support for CMake-based projects as described
+[here](https://devblogs.microsoft.com/cppblog/cmake-support-in-visual-studio/).
 
 For Visual Studio 2017, make sure "Visual C++ tools for CMake" is
 installed; for Visual Studio 2019, make sure "C++ CMake tools for
-Windows" is intalled.
+Windows" is installed.
 
 Git
 ---
@@ -127,14 +121,16 @@
 
 In the CMakeSettings.json tab, change cmakeCommandArgs to include
 
-	-DPacket_ROOT={path-to-sdk}
+```
+-DPacket_ROOT={path-to-sdk}
+```
 
-where {path-to-sdk} is the path of the directory containing the Npcap or
+where `{path-to-sdk}` is the path of the directory containing the Npcap or
 WinPcap SDK.  Note that backslashes in the path must be specified as two
 backslashes.
 
 Save the configuration changes with File > "Save CMakeSettings.json" or
-with control-S.
+with Control-S.
 
 Visual Studio will then re-run CMake.  If that completes without errors,
 you can build with CMake > "Build All".
@@ -156,7 +152,7 @@
 button to browse for that directory.
 
 Save the configuration changes with File > "Save CMakeSettings.json" or
-with control-S.
+with Control-S.
 
 Visual Studio will then re-run CMake.  If that completes without errors,
 you can build with Build > "Build All".
@@ -172,27 +168,31 @@
 
 Run the command
 
-    cmake "-DPacket_ROOT={path-to-sdk}" -G {generator} {path-to-tcpdump-source}
+```
+cmake "-DPacket_ROOT={path-to-sdk}" -G {generator} {path-to-tcpdump-source}
+```
 
-{path-to-sdk} is the path of the directory containing the Npcap or
+`{path-to-sdk}` is the path of the directory containing the Npcap or
 WinPcap SDK.
 
-{generator} is the string "Visual Studio N YYYY", where "N" is the
-version of Visual Studio and "YYYY" is the year number for that version;
-if you are building a 64-bit version of tcpdump, YYYY must be followed
+`{generator}` is the string "Visual Studio N YYYY", where `N` is the
+version of Visual Studio and `YYYY` is the year number for that version;
+if you are building a 64-bit version of tcpdump, `YYYY` must be followed
 by a space and "Win64".  For example, to build a 32-bit version of
-tcpdump with Visual Studio 2017, "{generator}" would be "Visual Studio
+tcpdump with Visual Studio 2017, `{generator}` would be "Visual Studio
 15 2017" and to build a 64-bit version of tcpdump with Visual Studio
-2017, "{generator}" would be "Visual Studio 15 2017 Win64".
+2017, `{generator}` would be "Visual Studio 15 2017 Win64".
 
-{path-to-tcpdump-source} is the pathname of the top-level source
+`{path-to-tcpdump-source}` is the pathname of the top-level source
 directory for tcpdump.
 
 Run the command
 
-    msbuild /m /nologo /p:Configuration={configuration} tcpdump.sln
+```
+msbuild /m /nologo /p:Configuration={configuration} tcpdump.sln
+```
 
-where {configuration} can be "Release", "Debug", or "RelWithDebInfo".
+where `{configuration}` can be "Release", "Debug", or "RelWithDebInfo".
 
 Building with MinGW
 -------------------
diff --git a/doc/README.aix.md b/doc/README.aix.md
new file mode 100644
index 0000000..3bfa550
--- /dev/null
+++ b/doc/README.aix.md
@@ -0,0 +1,17 @@
+# Compiling tcpdump on AIX
+
+* Autoconf works everywhere.
+
+## AIX 7.1/POWER7
+
+* Only local libpcap is suitable.
+* CMake 3.16.0 does not work.
+* GCC 8.3.0 and XL C 12.1.0.0 work.
+* System m4 does not work, GNU m4 1.4.17 works.
+
+## AIX 7.2/POWER8
+
+* Only local libpcap is suitable.
+* GCC 7.2.0 and XL C 13.1.3.6 work.
+* System m4 does not work, GNU m4 1.4.17 works.
+
diff --git a/doc/README.solaris.md b/doc/README.solaris.md
new file mode 100644
index 0000000..afdd8f7
--- /dev/null
+++ b/doc/README.solaris.md
@@ -0,0 +1,41 @@
+# Compiling tcpdump on Solaris and related OSes
+
+* Autoconf works everywhere.
+
+## OmniOS r151042/AMD64
+
+* Both system and local libpcap are suitable.
+* CMake 3.23.1 works.
+* GCC 11.2.0 and Clang 14.0.3 work.
+
+## OpenIndiana 2021.04/AMD64
+
+* Both system and local libpcap are suitable.
+* CMake 3.21.1 works.
+* GCC 7.5.0 and GCC 10.3.0 work, Clang 9.0.1 works.
+
+For reference, the tests were done using a system installed from
+`OI-hipster-text-20210430.iso` plus the following packages:
+```shell
+xargs -L1 pkg install <<ENDOFTEXT
+developer/build/autoconf
+developer/build/cmake
+developer/gcc-10
+developer/clang-90
+ENDOFTEXT
+```
+
+## Oracle Solaris 11.4.42/AMD64
+
+* Both system and local libpcap are suitable.
+* GCC 11.2 and Clang 11.0 work.
+
+For reference, the tests were done on a VM booted from `sol-11_4-vbox.ova`
+and updated to 11.4.42.111.0 plus the following packages:
+```shell
+xargs -L1 pkg install <<ENDOFTEXT
+developer/build/autoconf
+developer/gcc
+developer/llvm/clang
+ENDOFTEXT
+```
diff --git a/ethertype.h b/ethertype.h
index a757a39..8f8acff 100644
--- a/ethertype.h
+++ b/ethertype.h
@@ -176,8 +176,8 @@
 #ifndef ETHERTYPE_EAPOL
 #define ETHERTYPE_EAPOL  	0x888e
 #endif
-#ifndef ETHERTYPE_RRCP
-#define ETHERTYPE_RRCP  	0x8899
+#ifndef ETHERTYPE_REALTEK
+#define ETHERTYPE_REALTEK  	0x8899	/* Realtek layer 2 protocols and switch tags */
 #endif
 #ifndef ETHERTYPE_AOE
 #define ETHERTYPE_AOE  		0x88a2
diff --git a/extract.h b/extract.h
index 2ea7763..d7d803d 100644
--- a/extract.h
+++ b/extract.h
@@ -37,6 +37,7 @@
  */
 #include "funcattrs.h"
 #include "netdissect.h"
+#include "diag-control.h"
 
 /*
  * If we have versions of GCC or Clang that support an __attribute__
@@ -148,7 +149,7 @@
  * cast the pointer to point to one of those, and fetch through it;
  * the GCC manual doesn't appear to explicitly say that
  * __attribute__((packed)) causes the compiler to generate unaligned-safe
- * code, but it apppears to do so.
+ * code, but it appears to do so.
  *
  * We do this in case the compiler can generate code using those
  * instructions to do an unaligned load and pass stuff to "ntohs()" or
@@ -575,12 +576,6 @@
 #define ND_TTEST_16(p) ND_TTEST_LEN((p), 16)
 #define ND_TCHECK_16(p) ND_TCHECK_LEN((p), 16)
 
-static inline NORETURN void
-nd_trunc_longjmp(netdissect_options *ndo)
-{
-	longjmp(ndo->ndo_early_end, ND_TRUNCATED);
-}
-
 /* get_u_1 and get_s_1 */
 
 static inline uint8_t
diff --git a/ftmacros.h b/ftmacros.h
index 3cd7505..7975463 100644
--- a/ftmacros.h
+++ b/ftmacros.h
@@ -45,7 +45,12 @@
  * namespace to the maximum extent possible"?
  */
 #if defined(sun) || defined(__sun)
-  #define __EXTENSIONS__
+  /*
+   * On Solaris Clang defines __EXTENSIONS__ automatically.
+   */
+  #ifndef __EXTENSIONS__
+    #define __EXTENSIONS__
+  #endif
 
   /*
    * We also need to define _XPG4_2 in order to get
diff --git a/funcattrs.h b/funcattrs.h
index f37e07e..21f3cc1 100644
--- a/funcattrs.h
+++ b/funcattrs.h
@@ -43,24 +43,6 @@
  */
 
 /*
- * This was introduced by Clang:
- *
- *     https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute
- *
- * in some version (which version?); it has been picked up by GCC 5.0.
- */
-#ifndef __has_attribute
-  /*
-   * It's a macro, so you can check whether it's defined to check
-   * whether it's supported.
-   *
-   * If it's not, define it to always return 0, so that we move on to
-   * the fallback checks.
-   */
-  #define __has_attribute(x) 0
-#endif
-
-/*
  * NORETURN, before a function declaration, means "this function
  * never returns".  (It must go before the function declaration, e.g.
  * "extern NORETURN func(...)" rather than after the function
@@ -73,9 +55,10 @@
     || ND_IS_AT_LEAST_HP_C_VERSION(6,10)
   /*
    * Compiler with support for __attribute((noreturn)), or GCC 2.5 and
+   * later, or some compiler asserting compatibility with GCC 2.5 and
    * later, or Solaris Studio 12 (Sun C 5.9) and later, or IBM XL C 10.1
-   * and later (do any earlier versions of XL C support this?), or
-   * HP aCC A.06.10 and later.
+   * and later (do any earlier versions of XL C support this?), or HP aCC
+   * A.06.10 and later.
    */
   #define NORETURN __attribute((noreturn))
 
@@ -105,6 +88,19 @@
 #endif
 
 /*
+ * WARN_UNUSED_RESULT, before a function declaration, means "the caller
+ * should use the result of this function" (even if it's just a success/
+ * failure indication).
+ */
+#if __has_attribute(warn_unused_result) \
+    || ND_IS_AT_LEAST_GNUC_VERSION(3,4) \
+    || ND_IS_AT_LEAST_HP_C_VERSION(6,25)
+  #define WARN_UNUSED_RESULT __attribute((warn_unused_result))
+#else
+  #define WARN_UNUSED_RESULT
+#endif
+
+/*
  * PRINTFLIKE(x,y), after a function declaration, means "this function
  * does printf-style formatting, with the xth argument being the format
  * string and the yth argument being the first argument for the format
@@ -115,7 +111,8 @@
     || ND_IS_AT_LEAST_XL_C_VERSION(10,1) \
     || ND_IS_AT_LEAST_HP_C_VERSION(6,10)
   /*
-   * Compiler with support for it, or GCC 2.3 and later, or IBM XL C 10.1
+   * Compiler with support for it, or GCC 2.3 and later, or some compiler
+   * asserting compatibility with GCC 2.3 and later, or IBM XL C 10.1
    * and later (do any earlier versions of XL C support this?),
    * or HP aCC A.06.10 and later.
    */
@@ -124,15 +121,30 @@
   /*
    * However, GCC didn't support that for function *pointers* until GCC
    * 4.1.0; see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3481.
+   * XL C 16.1 (and possibly some earlier versions, but not 12.1 or 13.1) has
+   * a similar bug, the bugfix for which was made in:
+   * * version 16.1.1.8 for Linux (25 June 2020), which fixes
+   *   https://www.ibm.com/support/pages/apar/LI81402
+   * * version 16.1.0.5 for AIX (5 May 2020), which fixes
+   *   https://www.ibm.com/support/pages/apar/IJ24678
+   *
+   * When testing versions, keep in mind that XL C 16.1 pretends to be both
+   * GCC 4.2 and Clang 4.0 at once.
    */
-  #if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) < 401))
-    #define PRINTFLIKE_FUNCPTR(x,y)
-  #else
+  #if (ND_IS_AT_LEAST_GNUC_VERSION(4,1) \
+       && !ND_IS_AT_LEAST_XL_C_VERSION(10,1)) \
+      || (ND_IS_AT_LEAST_XL_C_VERSION(16,1) \
+          && (ND_IS_AT_LEAST_XL_C_MODFIX(1, 8) && defined(__linux__)) \
+              || (ND_IS_AT_LEAST_XL_C_MODFIX(0, 5) && defined(_AIX)))
     #define PRINTFLIKE_FUNCPTR(x,y) __attribute__((__format__(__printf__,x,y)))
   #endif
-#else
-  #define PRINTFLIKE(x,y)
-  #define PRINTFLIKE_FUNCPTR(x,y)
+#endif
+
+#if !defined(PRINTFLIKE)
+#define PRINTFLIKE(x,y)
+#endif
+#if !defined(PRINTFLIKE_FUNCPTR)
+#define PRINTFLIKE_FUNCPTR(x,y)
 #endif
 
 /*
diff --git a/interface.h b/interface.h
index d54172e..58e5ab3 100644
--- a/interface.h
+++ b/interface.h
@@ -57,7 +57,13 @@
 
 #ifndef HAVE_BPF_DUMP
 struct bpf_program;
+#endif
 
+/*
+ * With Capsicum bpf_dump() may be not declared even if HAVE_BPF_DUMP is set.
+ */
+#if !defined(HAVE_BPF_DUMP) || \
+    (defined(HAVE_BPF_DUMP) && HAVE_CAPSICUM && !defined(bpf_dump))
 extern void bpf_dump(const struct bpf_program *, int);
 
 #endif
diff --git a/missing/getopt_long.c b/missing/getopt_long.c
index 8085736..927028f 100644
--- a/missing/getopt_long.c
+++ b/missing/getopt_long.c
@@ -57,6 +57,8 @@
 #include <string.h>
 #include <stdarg.h>
 
+#include "diag-control.h"
+
 #define GNU_COMPATIBLE		/* Be more compatible, configure's use us! */
 
 #define PRINT_ERROR	((opterr) && (*options != ':'))
@@ -158,11 +160,29 @@
 				pos -= nnonopts;
 			else
 				pos += nopts;
+			/*
+			 * This is annoying - I guess the
+			 * "char * const argv[]" in the declaration
+			 * of getopt() - and thus getopt_long() -
+			 * means that it makes a promise not to
+			 * shuffle the arguments, but here we are,
+			 * shuffling the arguments.
+			 *
+			 * (No, it's not a promise that it won't
+			 * modify any of the argument strings.
+			 * It's a promise that it won't modify
+			 * the array of pointers to the argument
+			 * strings.)
+			 *
+			 * So squelch the cast warnings.
+			 */
 			swap = nargv[pos];
+DIAG_OFF_CAST_QUAL
 			/* LINTED const cast */
 			((char **) nargv)[pos] = nargv[cstart];
 			/* LINTED const cast */
 			((char **)nargv)[cstart] = swap;
+DIAG_ON_CAST_QUAL
 		}
 	}
 }
@@ -291,6 +311,7 @@
 		}
 		if (long_options[match].has_arg == required_argument ||
 		    long_options[match].has_arg == optional_argument) {
+DIAG_OFF_CAST_QUAL
 			if (has_equal)
 				optarg = (char *)has_equal;
 			else if (long_options[match].has_arg ==
@@ -300,6 +321,7 @@
 				 */
 				optarg = nargv[optind++];
 			}
+DIAG_ON_CAST_QUAL
 		}
 		if ((long_options[match].has_arg == required_argument)
 		    && (optarg == NULL)) {
@@ -543,9 +565,11 @@
 			++optind;
 	} else {				/* takes (optional) argument */
 		optarg = NULL;
-		if (*place)			/* no white space */
+		if (*place) {			/* no white space */
+DIAG_OFF_CAST_QUAL
 			optarg = (char *)place;
-		else if (oli[1] != ':') {	/* arg not optional */
+DIAG_ON_CAST_QUAL
+		} else if (oli[1] != ':') {	/* arg not optional */
 			if (++optind >= nargc) {	/* no arg */
 				place = EMSG;
 				if (PRINT_ERROR)
diff --git a/missing/snprintf.c b/missing/snprintf.c
index 2f12cf1..dfff6ee 100644
--- a/missing/snprintf.c
+++ b/missing/snprintf.c
@@ -411,7 +411,7 @@
 	break;
       }
       case 'n' : {
-	int *arg = va_arg(ap, int*);
+	int *arg = va_arg(ap, int *);
 	*arg = state->s - state->str;
 	break;
       }
diff --git a/missing/win_ether_ntohost.c b/missing/win_ether_ntohost.c
deleted file mode 100644
index 0593092..0000000
--- a/missing/win_ether_ntohost.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may 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.
- *
- * tcpdump/Win32 functions for reading and parsing system's Ethernet
- * address file:
- *    '%SystemRoot%/drivers/etc/ethers'  (Win-NT+)
- * or '%Windir%/etc/ethers'              (Win-9x/ME)
- *
- * G. Vanem <gvanem@yahoo.no> 2012.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <netdissect-stdinc.h>
-
-#include "missing/win_ether_ntohost.h"
-
-#include "netdissect.h"
-#include "addrtoname.h"
-
-typedef struct ether_entry {
-        ether_address      eth_addr;  /* MAC address */
-        char               *name;     /* name of MAC-address */
-        struct ether_entry *next;
-      } ether_entry;
-
-static struct ether_entry *eth0 = NULL;
-
-/*
- * The reason to avoid using 'pcap_next_etherent()' in addrtoname.c
- * are several:
- *   1) wpcap.dll and 'pcap_next_etherent()' could have been built in
- *      debug-mode (-MDd) or release-mode (-MD) and tcpdump in
- *      the opposite model.
- *   2) If this is built by MSVC, wpcap.dll could have been built by
- *      MingW. It has no debug-model.
- *   3) It may not have been exported from wpcap.dll (present in wpcap.def).
- *
- * So we shoe-horn the building of tcpdump with '-DUSE_ETHER_NTOHOST' to
- * make 'init_etherarray()' call the below 'ether_ntohost()' instead.
- */
-#if !defined(USE_ETHER_NTOHOST)
-#error "'-DUSE_ETHER_NTOHOST' must be set"
-#endif
-
-/*
- * Return TRUE if running under Win-95/98/ME.
- */
-static BOOL is_win9x (void)
-{
-  OSVERSIONINFO ovi;
-  DWORD os_ver = GetVersion();
-  DWORD major_ver = LOBYTE (LOWORD(os_ver));
-
-  return (os_ver >= 0x80000000 && major_ver >= 4);
-}
-
-/*
- * Return path to "%SystemRoot%/drivers/etc/<file>"  (Win-NT+)
- *          or to "%Windir%/etc/<file>"              (Win-9x/ME)
- */
-const char *etc_path (const char *file)
-{
-  BOOL win9x = is_win9x();
-  const char *env = win9x ? getenv("WinDir") : getenv("SystemRoot");
-  static char path[MAX_PATH];
-
-  if (!env)
-    return (file);
-
-  if (win9x)
-    snprintf (path, sizeof(path), "%s\\etc\\%s", env, file);
-  else
-    snprintf (path, sizeof(path), "%s\\system32\\drivers\\etc\\%s", env, file);
-
-  return (path);
-}
-
-/*
- * Parse a string-buf containing an MAC address and name.
- * Accepts MAC addresses on both "xx:xx:xx.." and "xx-xx-xx.." forms.
- *
- * We could have used pcap_ether_aton(), but problem 3) above could apply.
- * or we could have cut & pasted 'pcap_next_etherent(FILE *fp)' below.
- */
-#define MIN_LEN  sizeof("0:0:0:0:0:0 X")
-
-static
-int parse_ether_buf (const char *buf, char **result, struct ether_addr *e)
-{
-  const char *fmt;
-  char       *name;
-  char       *str = (char*)buf;
-  unsigned    eth [sizeof(*e)];
-  int         i;
-
-  /* Find first non-blank in 'buf' */
-  while (str[0] && str[1] && isspace((int)str[0]))
-       str++;
-
-  if (*str == '#' || *str == ';' || *str == '\n' || strlen(str) < MIN_LEN)
-     return (0);
-
-  if (str[2] == ':')
-    fmt = "%02x:%02x:%02x:%02x:%02x:%02x";
-  else
-    fmt = "%02x-%02x-%02x-%02x-%02x-%02x";
-
-  if (sscanf(str, fmt, &eth[0], &eth[1], &eth[2], &eth[3], &eth[4], &eth[5]) != MAC_ADDR_LEN)
-     return (0);
-
-  str  = strtok (str, " \t");
-  name = strtok (NULL, " #\t\n");
-
-  if (!str || !name || strlen(name) < 1)
-     return (0);
-
-  *result = name;
-
-  for (i = 0; i < MAC_ADDR_LEN; i++)
-      e->octet[i] = eth[i];
-
-  return (1);
-}
-
-static void free_ethers (void)
-{
-  struct ether_entry *e, *next;
-
-  for (e = eth0; e; e = next) {
-    next = e->next;
-    free(e->name);
-    free(e);
-  }
-  eth0 = NULL;
-}
-
-static int init_ethers (void)
-{
-  char  buf[BUFSIZE];
-  FILE *fp = fopen (etc_path("ethers"), "r");
-
-  if (!fp)
-     return (0);
-
-  while (fgets(buf,sizeof(buf),fp))
-  {
-    struct ether_entry *e;
-    char  *name;
-    ether_address eth;
-
-    if (!parse_ether_buf(buf,&name,&eth))
-       continue;
-
-    e = calloc (sizeof(*e), 1);
-    if (!e)
-       break;
-
-    memcpy(&e->eth_addr, &eth, MAC_ADDR_LEN);
-    e->name = strdup(name);
-    if (!e->name) {
-      free(e);
-      break;
-    }
-
-    e->next = eth0;
-    eth0 = e;
-  }
-  fclose(fp);
-  atexit(free_ethers);
-  return (1);
-}
-
-/*
- * Map an ethernet address 'e' to a 'name'.
- * Returns 0 on success.
- *
- * This function is called at startup by init_etherarray() and then
- * by etheraddr_string() as needed. To avoid doing an expensive fopen()
- * on each call, the contents of 'etc_path("ethers")' is cached here in
- * a linked-list 'eth0'.
- */
-int ether_ntohost (char *name, struct ether_addr *e)
-{
-  const struct ether_entry *cache;
-  static int init = 0;
-
-  if (!init) {
-    init_ethers();
-    init = 1;
-  }
-
-  for (cache = eth0; cache; cache = cache->next)
-     if (!memcmp(&e->octet, &cache->eth_addr, MAC_ADDR_LEN)) {
-       strcpy (name,cache->name);
-       return (0);
-     }
-  return (1);
-}
-
diff --git a/missing/win_ether_ntohost.h b/missing/win_ether_ntohost.h
deleted file mode 100644
index f5c1198..0000000
--- a/missing/win_ether_ntohost.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may 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.
- *
- * tcpdump/Win32 functions for reading and parsing system's Ethernet
- * address file:
- *    '%SystemRoot%/drivers/etc/ethers'  (Win-NT+)
- * or '%Windir%/etc/ethers'              (Win-9x/ME)
- *
- * G. Vanem <gvanem@yahoo.no> 2012.
- */
-
-/*
- * The number of bytes in an ethernet (MAC) address.
- */
-#define ETHER_ADDR_LEN		6
-
-typedef struct ether_addr {
-        unsigned char octet[ETHER_ADDR_LEN];
-      } ether_address;
diff --git a/mkdep b/mkdep
index 656ca09..6496b83 100755
--- a/mkdep
+++ b/mkdep
@@ -103,26 +103,7 @@
 $CC $DEPENDENCY_CFLAG $flags $sources |
 sed "
 	s; \./; ;g
-	$SED" |
-awk '{
-	if ($1 != prev) {
-		if (rec != "")
-			print rec;
-		rec = $0;
-		prev = $1;
-	}
-	else {
-		if (length(rec $2) > 78) {
-			print rec;
-			rec = $0;
-		}
-		else
-			rec = rec " " $2
-	}
-}
-END {
-	print rec
-}' >> $TMP
+	$SED" >> $TMP
 
 cat << _EOF_ >> $TMP
 
diff --git a/mpls.h b/mpls.h
index 03cb4bf..d7e8fc1 100644
--- a/mpls.h
+++ b/mpls.h
@@ -28,14 +28,14 @@
 
 #define LABEL_MASK	0xfffff000
 #define LABEL_SHIFT	12
-#define	EXP_MASK	0x00000e00
-#define EXP_SHIFT	9
+#define	TC_MASK		0x00000e00
+#define TC_SHIFT	9
 #define	STACK_MASK	0x00000100
 #define STACK_SHIFT	8
 #define TTL_MASK	0x000000ff
 #define TTL_SHIFT	0
 
 #define MPLS_LABEL(x)	(((x) & LABEL_MASK) >> LABEL_SHIFT)
-#define MPLS_EXP(x)	(((x) & EXP_MASK) >> EXP_SHIFT)
+#define MPLS_TC(x)	(((x) & TC_MASK) >> TC_SHIFT)
 #define MPLS_STACK(x)	(((x) & STACK_MASK) >> STACK_SHIFT)
 #define MPLS_TTL(x)	(((x) & TTL_MASK) >> TTL_SHIFT)
diff --git a/netdissect-alloc.c b/netdissect-alloc.c
index bbae56e..c625d34 100644
--- a/netdissect-alloc.c
+++ b/netdissect-alloc.c
@@ -21,12 +21,14 @@
 #include <stdlib.h>
 #include "netdissect-alloc.h"
 
+static void nd_add_alloc_list(netdissect_options *, nd_mem_chunk_t *);
+
 /*
  * nd_free_all() is intended to be used after a packet printing
  */
 
 /* Add a memory chunk in allocation linked list */
-void
+static void
 nd_add_alloc_list(netdissect_options *ndo, nd_mem_chunk_t *chunkp)
 {
 	if (ndo->ndo_last_mem_p == NULL)	/* first memory allocation */
diff --git a/netdissect-alloc.h b/netdissect-alloc.h
index aa28a36..862c900 100644
--- a/netdissect-alloc.h
+++ b/netdissect-alloc.h
@@ -26,7 +26,6 @@
 	/* variable size data */
 } nd_mem_chunk_t;
 
-void nd_add_alloc_list(netdissect_options *, nd_mem_chunk_t *);
 void * nd_malloc(netdissect_options *, size_t);
 void nd_free_all(netdissect_options *);
 
diff --git a/netdissect-ctype.h b/netdissect-ctype.h
index ae4a3ce..9f82200 100644
--- a/netdissect-ctype.h
+++ b/netdissect-ctype.h
@@ -42,7 +42,7 @@
 #define ND_TOASCII(c)		((c) & 0x7F)
 
 /*
- * Locale-independent macros for coverting to upper or lower case.
+ * Locale-independent macros for converting to upper or lower case.
  *
  * Byte values outside the ASCII range are not converted.  Byte values
  * *in* the ASCII range are converted to byte values in the ASCII range;
diff --git a/netdissect-stdinc.h b/netdissect-stdinc.h
index 0523620..e81c90b 100644
--- a/netdissect-stdinc.h
+++ b/netdissect-stdinc.h
@@ -217,7 +217,7 @@
 #endif
 
 #ifndef caddr_t
-typedef char* caddr_t;
+typedef char *caddr_t;
 #endif /* caddr_t */
 
 #define MAXHOSTNAMELEN	64
@@ -358,70 +358,6 @@
 #endif
 
 /*
- * The Apple deprecation workaround macros below were adopted from the
- * FreeRADIUS server code under permission of Alan DeKok and Arran Cudbard-Bell.
- */
-
-#define XSTRINGIFY(x) #x
-
-/*
- *	Macros for controlling warnings in GCC >= 4.2 and clang >= 2.8
- */
-#define DIAG_JOINSTR(x,y) XSTRINGIFY(x ## y)
-#define DIAG_DO_PRAGMA(x) _Pragma (#x)
-
-/*
- * The current clang compilers also define __GNUC__ and __GNUC_MINOR__
- * thus we need to test the clang case before the GCC one
- */
-#if defined(__clang__)
-#  if (__clang_major__ * 100) + __clang_minor__ >= 208
-#    define DIAG_PRAGMA(x) DIAG_DO_PRAGMA(clang diagnostic x)
-#    define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x))
-#    define DIAG_ON(x) DIAG_PRAGMA(pop)
-#  else
-#    define DIAG_OFF(x)
-#    define DIAG_ON(x)
-#  endif
-#elif defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 402
-#  define DIAG_PRAGMA(x) DIAG_DO_PRAGMA(GCC diagnostic x)
-#  if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406
-#    define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x))
-#    define DIAG_ON(x) DIAG_PRAGMA(pop)
-#  else
-#    define DIAG_OFF(x) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x))
-#    define DIAG_ON(x)  DIAG_PRAGMA(warning DIAG_JOINSTR(-W,x))
-#  endif
-#else
-#  define DIAG_OFF(x)
-#  define DIAG_ON(x)
-#endif
-
-/* Use for clang specific warnings */
-#ifdef __clang__
-#  define DIAG_OFF_CLANG(x) DIAG_OFF(x)
-#  define DIAG_ON_CLANG(x)  DIAG_ON(x)
-#else
-#  define DIAG_OFF_CLANG(x)
-#  define DIAG_ON_CLANG(x)
-#endif
-
-/*
- *	For dealing with APIs which are only deprecated in OSX (like the OpenSSL API)
- */
-#ifdef __APPLE__
-#  define USES_APPLE_DEPRECATED_API DIAG_OFF(deprecated-declarations)
-#  define USES_APPLE_RST DIAG_ON(deprecated-declarations)
-#else
-#  define USES_APPLE_DEPRECATED_API
-#  define USES_APPLE_RST
-#endif
-
-/*
- * end of Apple deprecation workaround macros
- */
-
-/*
  * Statement attributes, for various compilers.
  *
  * This was introduced sufficiently recently that compilers implementing
diff --git a/netdissect.c b/netdissect.c
index 7e46d6a..000d1ff 100644
--- a/netdissect.c
+++ b/netdissect.c
@@ -149,7 +149,7 @@
 
 int
 nd_push_buffer(netdissect_options *ndo, u_char *new_buffer,
-    const u_char *new_packetp, const u_char *new_snapend)
+	       const u_char *new_packetp, const u_int newlen)
 {
 	struct netdissect_saved_packet_info *ndspi;
 
@@ -162,20 +162,30 @@
 	ndspi->ndspi_prev = ndo->ndo_packet_info_stack;
 
 	ndo->ndo_packetp = new_packetp;
-	ndo->ndo_snapend = new_snapend;
+	ndo->ndo_snapend = new_packetp + newlen;
 	ndo->ndo_packet_info_stack = ndspi;
 
 	return (1);	/* success */
 }
 
+
 /*
- * Set a new snapshot end to the minimum of the existing snapshot end
- * and the new snapshot end.
+ * In a given netdissect_options structure:
+ *
+ *    push the current packet information onto the packet information
+ *    stack;
+ *
+ *    given a pointer into the packet and a length past that point in
+ *    the packet, calculate a new snapshot end that's at the lower
+ *    of the current snapshot end and that point in the packet;
+ *
+ *    set the snapshot end to that new value.
  */
 int
-nd_push_snapend(netdissect_options *ndo, const u_char *new_snapend)
+nd_push_snaplen(netdissect_options *ndo, const u_char *bp, const u_int newlen)
 {
 	struct netdissect_saved_packet_info *ndspi;
+	u_int snaplen_remaining;
 
 	ndspi = (struct netdissect_saved_packet_info *)malloc(sizeof(struct netdissect_saved_packet_info));
 	if (ndspi == NULL)
@@ -185,32 +195,87 @@
 	ndspi->ndspi_snapend = ndo->ndo_snapend;
 	ndspi->ndspi_prev = ndo->ndo_packet_info_stack;
 
-	/* No new packet pointer, either */
-	if (new_snapend < ndo->ndo_snapend)
-		ndo->ndo_snapend = new_snapend;
+	/*
+	 * Push the saved previous data onto the stack.
+	 */
 	ndo->ndo_packet_info_stack = ndspi;
 
+	/*
+	 * Find out how many bytes remain after the current snapend.
+	 *
+	 * We're restricted to packets with at most UINT_MAX bytes;
+	 * cast the result to u_int, so that we don't get truncation
+	 * warnings on LP64 and LLP64 platforms.  (ptrdiff_t is
+	 * signed and we want an unsigned difference; the pointer
+	 * should at most be equal to snapend, and must *never*
+	 * be past snapend.)
+	 */
+	snaplen_remaining = (u_int)(ndo->ndo_snapend - bp);
+
+	/*
+	 * If the new snapend is smaller than the one calculated
+	 * above, set the snapend to that value, otherwise leave
+	 * it unchanged.
+	 */
+	if (newlen <= snaplen_remaining) {
+		/* Snapend isn't past the previous snapend */
+		ndo->ndo_snapend = bp + newlen;
+	}
+
 	return (1);	/* success */
 }
 
 /*
- * Change an already-pushed snapshot end.  This may increase the
+ * In a given netdissect_options structure:
+ *
+ *    given a pointer into the packet and a length past that point in
+ *    the packet, calculate a new snapshot end that's at the lower
+ *    of the previous snapshot end - or, if there is no previous
+ *    snapshot end, the current snapshot end - and that point in the
+ *    packet;
+ *
+ *    set the snapshot end to that new value.
+ *
+ * This is to change the current snapshot end.  This may increase the
  * snapshot end, as it may be used, for example, for a Jumbo Payload
  * option in IPv6.  It must not increase it past the snapshot length
  * atop which the current one was pushed, however.
  */
 void
-nd_change_snapend(netdissect_options *ndo, const u_char *new_snapend)
+nd_change_snaplen(netdissect_options *ndo, const u_char *bp, const u_int newlen)
 {
 	struct netdissect_saved_packet_info *ndspi;
+	const u_char *previous_snapend;
+	u_int snaplen_remaining;
 
 	ndspi = ndo->ndo_packet_info_stack;
-	if (ndspi->ndspi_prev != NULL) {
-		if (new_snapend <= ndspi->ndspi_prev->ndspi_snapend)
-			ndo->ndo_snapend = new_snapend;
-	} else {
-		if (new_snapend < ndo->ndo_snapend)
-			ndo->ndo_snapend = new_snapend;
+	if (ndspi->ndspi_prev != NULL)
+		previous_snapend = ndspi->ndspi_prev->ndspi_snapend;
+	else
+		previous_snapend = ndo->ndo_snapend;
+
+	/*
+	 * Find out how many bytes remain after the previous
+	 * snapend - or, if there is no previous snapend, after
+	 * the current snapend.
+	 *
+	 * We're restricted to packets with at most UINT_MAX bytes;
+	 * cast the result to u_int, so that we don't get truncation
+	 * warnings on LP64 and LLP64 platforms.  (ptrdiff_t is
+	 * signed and we want an unsigned difference; the pointer
+	 * should at most be equal to snapend, and must *never*
+	 * be past snapend.)
+	 */
+	snaplen_remaining = (u_int)(previous_snapend - bp);
+
+	/*
+	 * If the new snapend is smaller than the one calculated
+	 * above, set the snapend to that value, otherwise leave
+	 * it unchanged.
+	 */
+	if (newlen <= snaplen_remaining) {
+		/* Snapend isn't past the previous snapend */
+		ndo->ndo_snapend = bp + newlen;
 	}
 }
 
diff --git a/netdissect.h b/netdissect.h
index 0e6557f..5c16be6 100644
--- a/netdissect.h
+++ b/netdissect.h
@@ -31,6 +31,8 @@
 #include <sys/types.h>
 #include <setjmp.h>
 #include "status-exit-codes.h"
+#include "funcattrs.h" /* for PRINTFLIKE_FUNCPTR() */
+#include "diag-control.h" /* for ND_UNREACHABLE */
 
 /*
  * Data types corresponding to multi-byte integral values within data
@@ -140,9 +142,6 @@
 	const char *s;		/* string */
 };
 
-extern const char *tok2strbuf(const struct tok *, const char *, u_int,
-			      char *buf, size_t bufsize);
-
 /* tok2str is deprecated */
 extern const char *tok2str(const struct tok *, const char *, u_int);
 extern char *bittok2str(const struct tok *, const char *, u_int);
@@ -178,7 +177,7 @@
  * buffer, we free the current buffer and pop the previous one off the
  * stack.
  *
- * A buffer has a beginnning and end pointer, and a link to the previous
+ * A buffer has a beginning and end pointer, and a link to the previous
  * buffer on the stack.
  *
  * In other cases, we temporarily adjust the snapshot end to reflect a
@@ -263,13 +262,26 @@
 		      PRINTFLIKE_FUNCPTR(2, 3);
 };
 
-extern int nd_push_buffer(netdissect_options *, u_char *, const u_char *,
-    const u_char *);
-extern int nd_push_snapend(netdissect_options *, const u_char *);
-extern void nd_change_snapend(netdissect_options *, const u_char *);
+extern WARN_UNUSED_RESULT int nd_push_buffer(netdissect_options *, u_char *, const u_char *, const u_int);
+extern WARN_UNUSED_RESULT int nd_push_snaplen(netdissect_options *, const u_char *, const u_int);
+extern void nd_change_snaplen(netdissect_options *, const u_char *, const u_int);
 extern void nd_pop_packet_info(netdissect_options *);
 extern void nd_pop_all_packet_info(netdissect_options *);
 
+static inline NORETURN void
+nd_trunc_longjmp(netdissect_options *ndo)
+{
+	longjmp(ndo->ndo_early_end, ND_TRUNCATED);
+#ifdef _AIX
+	/*
+	 * In AIX <setjmp.h> decorates longjmp() with "#pragma leaves", which tells
+	 * XL C that the function is noreturn, but GCC remains unaware of that and
+	 * yields a "'noreturn' function does return" warning.
+	 */
+	ND_UNREACHABLE
+#endif /* _AIX */
+}
+
 #define PT_VAT		1	/* Visual Audio Tool */
 #define PT_WB		2	/* distributed White Board */
 #define PT_RPC		3	/* Remote Procedure Call */
@@ -382,6 +394,28 @@
  */
 #define ND_BYTES_AVAILABLE_AFTER(p) ND_BYTES_BETWEEN(ndo->ndo_snapend, (p))
 
+/* Check length < minimum for invalid packet with a custom message, format %u */
+#define ND_LCHECKMSG_U(length, minimum, what) \
+if ((length) < (minimum)) { \
+ND_PRINT(" [%s %u < %u]", (what), (length), (minimum)); \
+goto invalid; \
+}
+
+/* Check length < minimum for invalid packet with #length message, format %u */
+#define ND_LCHECK_U(length, minimum) \
+ND_LCHECKMSG_U((length), (minimum), (#length))
+
+/* Check length < minimum for invalid packet with a custom message, format %zu */
+#define ND_LCHECKMSG_ZU(length, minimum, what) \
+if ((length) < (minimum)) { \
+ND_PRINT(" [%s %u < %zu]", (what), (length), (minimum)); \
+goto invalid; \
+}
+
+/* Check length < minimum for invalid packet with #length message, format %zu */
+#define ND_LCHECK_ZU(length, minimum) \
+ND_LCHECKMSG_ZU((length), (minimum), (#length))
+
 #define ND_PRINT(...) (ndo->ndo_printf)(ndo, __VA_ARGS__)
 #define ND_DEFAULTPRINT(ap, length) (*ndo->ndo_default_print)(ndo, ap, length)
 
@@ -410,7 +444,7 @@
     (defined(__s390__) || defined(__s390x__) || defined(__zarch__)) || \
     defined(__vax__)
 /*
- * The procesor natively handles unaligned loads, so just use memcpy()
+ * The processor natively handles unaligned loads, so just use memcpy()
  * and memcmp(), to enable those optimizations.
  *
  * XXX - are those all the x86 tests we need?
@@ -469,9 +503,9 @@
 extern void arcnet_if_print IF_PRINTER_ARGS;
 extern void arcnet_linux_if_print IF_PRINTER_ARGS;
 extern void atm_if_print IF_PRINTER_ARGS;
-extern void bt_if_print IF_PRINTER_ARGS;
 extern void brcm_tag_if_print IF_PRINTER_ARGS;
 extern void brcm_tag_prepend_if_print IF_PRINTER_ARGS;
+extern void bt_if_print IF_PRINTER_ARGS;
 extern void chdlc_if_print IF_PRINTER_ARGS;
 extern void cip_if_print IF_PRINTER_ARGS;
 extern void dsa_if_print IF_PRINTER_ARGS;
@@ -486,8 +520,8 @@
 extern void ieee802_15_4_if_print IF_PRINTER_ARGS;
 extern void ieee802_15_4_tap_if_print IF_PRINTER_ARGS;
 extern void ipfc_if_print IF_PRINTER_ARGS;
-extern void ipoib_if_print IF_PRINTER_ARGS;
 extern void ipnet_if_print IF_PRINTER_ARGS;
+extern void ipoib_if_print IF_PRINTER_ARGS;
 extern void juniper_atm1_if_print IF_PRINTER_ARGS;
 extern void juniper_atm2_if_print IF_PRINTER_ARGS;
 extern void juniper_chdlc_if_print IF_PRINTER_ARGS;
@@ -520,8 +554,8 @@
 extern void raw_if_print IF_PRINTER_ARGS;
 extern void sl_bsdos_if_print IF_PRINTER_ARGS;
 extern void sl_if_print IF_PRINTER_ARGS;
-extern void sll_if_print IF_PRINTER_ARGS;
 extern void sll2_if_print IF_PRINTER_ARGS;
+extern void sll_if_print IF_PRINTER_ARGS;
 extern void sunatm_if_print IF_PRINTER_ARGS;
 extern void symantec_if_print IF_PRINTER_ARGS;
 extern void token_if_print IF_PRINTER_ARGS;
@@ -675,9 +709,9 @@
 extern void rip_print(netdissect_options *, const u_char *, u_int);
 extern void ripng_print(netdissect_options *, const u_char *, unsigned int);
 extern void rpki_rtr_print(netdissect_options *, const u_char *, u_int);
-extern void rrcp_print(netdissect_options *, const u_char *, u_int, const struct lladdr_info *, const struct lladdr_info *);
 extern void rsvp_print(netdissect_options *, const u_char *, u_int);
 extern int rt6_print(netdissect_options *, const u_char *, const u_char *);
+extern void rtl_print(netdissect_options *, const u_char *, u_int, const struct lladdr_info *, const struct lladdr_info *);
 extern void rtsp_print(netdissect_options *, const u_char *, u_int);
 extern void rx_print(netdissect_options *, const u_char *, u_int, uint16_t, uint16_t, const u_char *);
 extern void sctp_print(netdissect_options *, const u_char *, const u_char *, u_int);
@@ -702,11 +736,12 @@
 extern void udp_print(netdissect_options *, const u_char *, u_int, const u_char *, int, u_int);
 extern int vjc_print(netdissect_options *, const u_char *, u_short);
 extern void vqp_print(netdissect_options *, const u_char *, u_int);
-extern void vrrp_print(netdissect_options *, const u_char *, u_int, const u_char *, int);
+extern void vrrp_print(netdissect_options *, const u_char *, u_int, const u_char *, int, int);
 extern void vtp_print(netdissect_options *, const u_char *, const u_int);
 extern void vxlan_gpe_print(netdissect_options *, const u_char *, u_int);
 extern void vxlan_print(netdissect_options *, const u_char *, u_int);
 extern void wb_print(netdissect_options *, const u_char *, u_int);
+extern void whois_print(netdissect_options *, const u_char *, u_int);
 extern void zep_print(netdissect_options *, const u_char *, u_int);
 extern void zephyr_print(netdissect_options *, const u_char *, u_int);
 extern void zmtp1_print(netdissect_options *, const u_char *, u_int);
diff --git a/ospf.h b/ospf.h
index a4e90c8..97e2384 100644
--- a/ospf.h
+++ b/ospf.h
@@ -115,8 +115,10 @@
 /* rla_flags	*/
 #define	RLA_FLAG_B	0x01
 #define	RLA_FLAG_E	0x02
-#define	RLA_FLAG_W1	0x04
-#define	RLA_FLAG_W2	0x08
+#define	RLA_FLAG_V	0x04
+#define	RLA_FLAG_W	0x08
+#define	RLA_FLAG_NT	0x10 /* RFC3101 Appendix B */
+#define	RLA_FLAG_H	0x80
 
 /* sla_tosmetric breakdown	*/
 #define	SLA_MASK_TOS		0x7f000000
diff --git a/pflog.h b/pflog.h
new file mode 100644
index 0000000..a629eba
--- /dev/null
+++ b/pflog.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * 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. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * pflog headers, at least as they exist now.
+ */
+#define PFLOG_IFNAMSIZ		16
+#define PFLOG_RULESET_NAME_SIZE	16
+
+/*
+ * Direction values.
+ */
+#define PF_INOUT	0
+#define PF_IN		1
+#define PF_OUT		2
+#if defined(__OpenBSD__)
+#define PF_FWD		3
+#endif
+
+/*
+ * Reason values.
+ */
+#define PFRES_MATCH	0
+#define PFRES_BADOFF	1
+#define PFRES_FRAG	2
+#define PFRES_SHORT	3
+#define PFRES_NORM	4
+#define PFRES_MEMORY	5
+#define PFRES_TS	6
+#define PFRES_CONGEST	7
+#define PFRES_IPOPTIONS 8
+#define PFRES_PROTCKSUM 9
+#define PFRES_BADSTATE	10
+#define PFRES_STATEINS	11
+#define PFRES_MAXSTATES	12
+#define PFRES_SRCLIMIT	13
+#define PFRES_SYNPROXY	14
+#if defined(__FreeBSD__)
+#define PFRES_MAPFAILED	15
+#elif defined(__NetBSD__)
+#define PFRES_STATELOCKED 15
+#elif defined(__OpenBSD__)
+#define PFRES_TRANSLATE	15
+#define PFRES_NOROUTE	16
+#elif defined(__APPLE__)
+#define PFRES_DUMMYNET  15
+#endif
+
+/*
+ * Action values.
+ */
+#define PF_PASS			0
+#define PF_DROP			1
+#define PF_SCRUB		2
+#define PF_NOSCRUB		3
+#define PF_NAT			4
+#define PF_NONAT		5
+#define PF_BINAT		6
+#define PF_NOBINAT		7
+#define PF_RDR			8
+#define PF_NORDR		9
+#define PF_SYNPROXY_DROP	10
+#if defined(__FreeBSD__)
+#define PF_DEFER		11
+#elif defined(__OpenBSD__)
+#define PF_DEFER		11
+#define PF_MATCH		12
+#define PF_DIVERT		13
+#define PF_RT			14
+#define PF_AFRT			15
+#elif defined(__APPLE__)
+#define PF_DUMMYNET		11
+#define PF_NODUMMYNET		12
+#define PF_NAT64		13
+#define PF_NONAT64		14
+#endif
+
+struct pf_addr {
+	union {
+		nd_ipv4		v4;
+		nd_ipv6		v6;
+	} pfa;		    /* 128-bit address */
+#define v4	pfa.v4
+#define v6	pfa.v6
+};
+
+struct pfloghdr {
+	uint8_t		length;
+	uint8_t		af;
+	uint8_t		action;
+	uint8_t		reason;
+	char		ifname[PFLOG_IFNAMSIZ];
+	char		ruleset[PFLOG_RULESET_NAME_SIZE];
+	uint32_t	rulenr;
+	uint32_t	subrulenr;
+	uint32_t	uid;
+	int32_t		pid;
+	uint32_t	rule_uid;
+	int32_t		rule_pid;
+	uint8_t		dir;
+#if defined(__OpenBSD__)
+	uint8_t		rewritten;
+	uint8_t		naf;
+	uint8_t		pad[1];
+#else
+	uint8_t		pad[3];
+#endif
+#if defined(__FreeBSD__)
+	uint32_t	ridentifier;
+	uint8_t		reserve;
+	uint8_t		pad2[3];
+#elif defined(__OpenBSD__)
+	struct pf_addr	saddr;
+	struct pf_addr	daddr;
+	uint16_t	sport;
+	uint16_t	dport;
+#endif
+};
+
+
+
diff --git a/print-802_11.c b/print-802_11.c
index e901752..dc8953a 100644
--- a/print-802_11.c
+++ b/print-802_11.c
@@ -1284,9 +1284,18 @@
 				length -= cf.length;
 				break;
 			}
-			memcpy(&cf.count, p + offset, 6);
-			offset += 6;
-			length -= 6;
+			cf.count = GET_U_1(p + offset);
+			offset += 1;
+			length -= 1;
+			cf.period = GET_U_1(p + offset);
+			offset += 1;
+			length -= 1;
+			cf.max_duration = GET_LE_U_2(p + offset);
+			offset += 2;
+			length -= 2;
+			cf.dur_remaining = GET_LE_U_2(p + offset);
+			offset += 2;
+			length -= 2;
 			/*
 			 * Present and not truncated.
 			 *
@@ -1310,10 +1319,15 @@
 			}
 			if (tim.length - 3U > sizeof(tim.bitmap))
 				return 0;
-			memcpy(&tim.count, p + offset, 3);
-			offset += 3;
-			length -= 3;
-
+			tim.count = GET_U_1(p + offset);
+			offset += 1;
+			length -= 1;
+			tim.period = GET_U_1(p + offset);
+			offset += 1;
+			length -= 1;
+			tim.bitmap_control = GET_U_1(p + offset);
+			offset += 1;
+			length -= 1;
 			memcpy(tim.bitmap, p + offset, tim.length - 3);
 			offset += tim.length - 3;
 			length -= tim.length - 3;
@@ -1899,7 +1913,7 @@
 		}
 	} else {
 		if (!FC_FROM_DS(fc)) {
-			/* From DS and not To DS */
+			/* To DS and not From DS */
 			*srcp = ADDR2;
 			*dstp = ADDR3;
 		} else {
diff --git a/print-802_15_4.c b/print-802_15_4.c
index 5687d45..1895be7 100644
--- a/print-802_15_4.c
+++ b/print-802_15_4.c
@@ -420,7 +420,7 @@
 /*
  * IEEE 802.15.4 CRC 16 function. This is using CCITT polynomical of 0x1021,
  * but the initial value is 0, and the bits are reversed for both in and out.
- * See secton 7.2.10 of 802.15.4-2015 for more information.
+ * See section 7.2.10 of 802.15.4-2015 for more information.
  */
 static uint16_t
 ieee802_15_4_crc16(netdissect_options *ndo, const u_char *p,
@@ -472,7 +472,7 @@
 /*
  * IEEE 802.15.4 CRC 32 function. This is using ANSI X3.66-1979 polynomical of
  * 0x04C11DB7, but the initial value is 0, and the bits are reversed for both
- * in and out. See secton 7.2.10 of 802.15.4-2015 for more information.
+ * in and out. See section 7.2.10 of 802.15.4-2015 for more information.
  */
 static uint32_t
 ieee802_15_4_crc32(netdissect_options *ndo, const u_char *p,
@@ -891,7 +891,7 @@
 			ND_PRINT("Ack time correction = %d, ", timecorr);
 		}
 		break;
-	case 0x22: /* Frament Sequence Content Description IE */
+	case 0x22: /* Fragment Sequence Content Description IE */
 		/* XXX Not implemented */
 	case 0x23: /* Simplified Superframe Specification IE */
 		/* XXX Not implemented */
@@ -959,7 +959,7 @@
 					 h_ie_names[element_id], ie_len);
 			}
 		}
-		if (caplen < ie_len) {
+		if (caplen < 2U + ie_len) {
 			ND_PRINT("[ERROR: Truncated IE data]");
 			return -1;
 		}
@@ -989,7 +989,7 @@
 		if (element_id == 0x7f) {
 			break;
 		}
-	} while (caplen > 0);
+	} while (caplen != 0);
 	return len;
 }
 
@@ -1282,7 +1282,7 @@
 				 p_mlme_long_names[sub_id], sub_ie_len);
 		}
 
-		if (ie_len < sub_ie_len) {
+		if (ie_len < 2 + sub_ie_len) {
 			ND_PRINT("[ERROR: Truncated IE data]");
 			return;
 		}
@@ -1441,7 +1441,7 @@
 			ND_PRINT("\n\t%s [ length = %d, ",
 				 p_ie_names[group_id], ie_len);
 		}
-		if (caplen < ie_len) {
+		if (caplen < 2U + ie_len) {
 			ND_PRINT("[ERROR: Truncated IE data]");
 			return -1;
 		}
@@ -1798,7 +1798,8 @@
 	int len, frame_version, pan_id_comp;
 	int frame_type;
 	int src_pan, dst_pan, src_addr_len, dst_addr_len;
-	int security_level, miclen = 0;
+	int security_level;
+	u_int miclen = 0;
 	int payload_ie_present;
 	uint8_t seq;
 	uint32_t fcs, crc_check;
@@ -1857,14 +1858,22 @@
 		}
 		if (ndo->ndo_vflag)
 			ND_PRINT("seq suppressed ");
+		if (caplen < 2) {
+			nd_print_trunc(ndo);
+			return 0;
+		}
 		p += 2;
 		caplen -= 2;
 	} else {
 		seq = GET_U_1(p + 2);
-		p += 3;
-		caplen -= 3;
 		if (ndo->ndo_vflag)
 			ND_PRINT("seq %02x ", seq);
+		if (caplen < 3) {
+			nd_print_trunc(ndo);
+			return 0;
+		}
+		p += 3;
+		caplen -= 3;
 	}
 
 	/* See which parts of addresses we have. */
@@ -2048,8 +2057,8 @@
 	}
 
 	/* Remove MIC */
-	if (miclen > 0) {
-		if (caplen < (u_int) miclen) {
+	if (miclen != 0) {
+		if (caplen < miclen) {
 			ND_PRINT("[ERROR: Truncated before MIC]");
 			return 0;
 		}
@@ -2086,8 +2095,8 @@
 	if (ndo->ndo_vflag > 2 && miclen != 0) {
 		ND_PRINT("\n\tMIC ");
 
-		for(len = 0; len < miclen; len++) {
-			ND_PRINT("%02x", GET_U_1(mic_start + len));
+		for (u_int micoffset = 0; micoffset < miclen; micoffset++) {
+			ND_PRINT("%02x", GET_U_1(mic_start + micoffset));
 		}
 		ND_PRINT(" ");
 	}
@@ -2197,7 +2206,8 @@
 {
 	int len, frame_version, pan_id_present;
 	int src_addr_len, dst_addr_len;
-	int security_level, miclen = 0;
+	int security_level;
+	u_int miclen = 0;
 	int ie_present, payload_ie_present, security_enabled;
 	uint8_t seq;
 	uint32_t fcs, crc_check;
@@ -2265,14 +2275,22 @@
 		/* Check for the sequence number suppression. */
 		if (CHECK_BIT(fc, 10)) {
 			/* Sequence number is suppressed, but long version. */
+			if (caplen < 2) {
+				nd_print_trunc(ndo);
+				return 0;
+			}
 			p += 2;
 			caplen -= 2;
 		} else {
 			seq = GET_U_1(p + 2);
-			p += 3;
-			caplen -= 3;
 			if (ndo->ndo_vflag)
 				ND_PRINT("seq %02x ", seq);
+			if (caplen < 3) {
+				nd_print_trunc(ndo);
+				return 0;
+			}
+			p += 3;
+			caplen -= 3;
 		}
 	} else {
 		/* Short format of header, but with seq no */
@@ -2361,8 +2379,8 @@
 	}
 
 	/* Remove MIC */
-	if (miclen > 0) {
-		if (caplen < (u_int) miclen) {
+	if (miclen != 0) {
+		if (caplen < miclen) {
 			ND_PRINT("[ERROR: Truncated before MIC]");
 			return 0;
 		}
@@ -2400,8 +2418,8 @@
 	if (ndo->ndo_vflag > 2 && miclen != 0) {
 		ND_PRINT("\n\tMIC ");
 
-		for(len = 0; len < miclen; len++) {
-			ND_PRINT("%02x", GET_U_1(mic_start + len));
+		for (u_int micoffset = 0; micoffset < miclen; micoffset++) {
+			ND_PRINT("%02x", GET_U_1(mic_start + micoffset));
 		}
 		ND_PRINT(" ");
 	}
diff --git a/print-arista.c b/print-arista.c
index 0d1d5d9..039a1ff 100644
--- a/print-arista.c
+++ b/print-arista.c
@@ -12,18 +12,79 @@
 #include "extract.h"
 #include "addrtoname.h"
 
-#define ARISTA_SUBTYPE_TIMESTAMP 0x01
+/*
 
-#define ARISTA_TIMESTAMP_64_TAI 0x0010
-#define ARISTA_TIMESTAMP_64_UTC 0x0110
-#define ARISTA_TIMESTAMP_48_TAI 0x0020
-#define ARISTA_TIMESTAMP_48_UTC 0x0120
+From Bill Fenner:
 
-static const struct tok ts_version_name[] = {
-	{ ARISTA_TIMESTAMP_64_TAI, "TAI(64-bit)" },
-	{ ARISTA_TIMESTAMP_64_UTC, "UTC(64-bit)" },
-	{ ARISTA_TIMESTAMP_48_TAI, "TAI(48-bit)" },
-	{ ARISTA_TIMESTAMP_48_UTC, "UTC(48-bit)" },
+The Arista timestamp header consists of the following fields:
+1. The Arista ethertype (0xd28b)
+2. A 2-byte subtype field; 0x01 indicates the timestamp header
+3. A 2-byte version field, described below.
+4. A 48-bit or 64-bit timestamp field, depending on the contents of the version field
+
+This header is then followed by the original ethertype and the remainder of the original packet.
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|                            dst mac                            |
++                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|                               |                               |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
+|                            src mac                            |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|        ethertype 0xd28b       |          subtype 0x1          |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|            version            |                               |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
+|                          timestamp...                         |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+The two-byte version value is split into 3 fields:
+1. The timescale in use.  Currently assigned values include:
+    0 = TAI
+    1 = UTC
+2. The timestamp format and length.  Currently assigned values include:
+    1 = 64-bit timestamp
+    2 = 48-bit timestamp
+3. The hardware info
+    0 = R/R2 series
+    1 = R3 series
+
+ 0                   1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|   timescale   | format|hw info|
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+See also: https://www.arista.com/assets/data/pdf/Whitepapers/Overview_Arista_Timestamps.pdf
+
+*/
+
+#define ARISTA_SUBTYPE_TIMESTAMP 0x0001
+static const struct tok subtype_str[] = {
+	{ ARISTA_SUBTYPE_TIMESTAMP, "Timestamp" },
+	{ 0, NULL }
+};
+
+static const struct tok ts_timescale_str[] = {
+	{ 0, "TAI" },
+	{ 1, "UTC" },
+	{ 0, NULL }
+};
+
+#define FORMAT_64BIT 0x1
+#define FORMAT_48BIT 0x2
+static const struct tok ts_format_str[] = {
+	{ FORMAT_64BIT, "64-bit" },
+	{ FORMAT_48BIT, "48-bit" },
+	{ 0, NULL }
+};
+
+static const struct tok hw_info_str[] = {
+	{ 0, "R/R2" },
+	{ 1, "R3" },
 	{ 0, NULL }
 };
 
@@ -36,51 +97,67 @@
 	char buf[BUFSIZE];
 
 	ts = seconds + (nanoseconds / 1000000000);
+	nanoseconds %= 1000000000;
 	if (NULL == (tm = gmtime(&ts)))
-		ND_PRINT(": gmtime() error");
+		ND_PRINT("gmtime() error");
 	else if (0 == strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm))
-		ND_PRINT(": strftime() error");
+		ND_PRINT("strftime() error");
 	else
-		ND_PRINT(": %s, %09u ns, ", buf, nanoseconds);
+		ND_PRINT("%s.%09u", buf, nanoseconds);
 }
 
 int
 arista_ethertype_print(netdissect_options *ndo, const u_char *bp, u_int len _U_)
 {
 	uint16_t subTypeId;
-	uint16_t version;
 	u_short bytesConsumed = 0;
-	u_short size = 0;
-	uint32_t seconds, nanoseconds;
 
 	ndo->ndo_protocol = "arista";
 
 	subTypeId = GET_BE_U_2(bp);
 	bp += 2;
-	version = GET_BE_U_2(bp);
-	bp += 2;
-	bytesConsumed += 4;
+	bytesConsumed += 2;
 
-	ND_PRINT("SubType: 0x%1x, Version: 0x%04x, ", subTypeId, version);
+	ND_PRINT("SubType %s (0x%04x), ",
+	         tok2str(subtype_str, "Unknown", subTypeId),
+	         subTypeId);
 
 	// TapAgg Header Timestamping
 	if (subTypeId == ARISTA_SUBTYPE_TIMESTAMP) {
+		uint64_t seconds;
+		uint32_t nanoseconds;
+		uint8_t ts_timescale = GET_U_1(bp);
+		bp += 1;
+		bytesConsumed += 1;
+		ND_PRINT("Timescale %s (%u), ",
+		         tok2str(ts_timescale_str, "Unknown", ts_timescale),
+		         ts_timescale);
+
+		uint8_t ts_format = GET_U_1(bp) >> 4;
+		uint8_t hw_info = GET_U_1(bp) & 0x0f;
+		bp += 1;
+		bytesConsumed += 1;
+
 		// Timestamp has 32-bit lsb in nanosec and remaining msb in sec
-		ND_PRINT("Timestamp %s", tok2str(ts_version_name,
-					"Unknown timestamp Version 0x%04x ", version));
-		switch (version) {
-		case ARISTA_TIMESTAMP_64_TAI:
-		case ARISTA_TIMESTAMP_64_UTC:
+		ND_PRINT("Format %s (%u), HwInfo %s (%u), Timestamp ",
+		         tok2str(ts_format_str, "Unknown", ts_format),
+		         ts_format,
+		         tok2str(hw_info_str, "Unknown", hw_info),
+		         hw_info);
+		switch (ts_format) {
+		case FORMAT_64BIT:
 			seconds = GET_BE_U_4(bp);
 			nanoseconds = GET_BE_U_4(bp + 4);
 			arista_print_date_hms_time(ndo, seconds, nanoseconds);
-			bytesConsumed += size + 8;
+			bytesConsumed += 8;
 			break;
-		case ARISTA_TIMESTAMP_48_TAI:
-		case ARISTA_TIMESTAMP_48_UTC:
-			ND_PRINT(": Seconds %u,", GET_BE_U_2(bp));
-			ND_PRINT(" Nanoseconds %u, ", GET_BE_U_4(bp + 2));
-			bytesConsumed += size + 6;
+		case FORMAT_48BIT:
+			seconds = GET_BE_U_2(bp);
+			nanoseconds = GET_BE_U_4(bp + 2);
+			seconds += nanoseconds / 1000000000;
+			nanoseconds %= 1000000000;
+			ND_PRINT("%" PRIu64 ".%09u", seconds, nanoseconds);
+			bytesConsumed += 6;
 			break;
 		default:
 			return -1;
@@ -88,5 +165,6 @@
 	} else {
 		return -1;
 	}
+	ND_PRINT(": ");
 	return bytesConsumed;
 }
diff --git a/print-arp.c b/print-arp.c
index 7d3efe7..9c08502 100644
--- a/print-arp.c
+++ b/print-arp.c
@@ -64,7 +64,7 @@
 #define ARPOP_REVREPLY  4       /* response giving protocol address */
 #define ARPOP_INVREQUEST 8      /* request to identify peer */
 #define ARPOP_INVREPLY  9       /* response identifying peer */
-#define ARPOP_NAK       10      /* NAK - only valif for ATM ARP */
+#define ARPOP_NAK       10      /* NAK - only valid for ATM ARP */
 
 /*
  * The remaining fields are variable in size,
diff --git a/print-bgp.c b/print-bgp.c
index c905107..e13fdd9 100644
--- a/print-bgp.c
+++ b/print-bgp.c
@@ -263,12 +263,10 @@
     { 0, NULL}
 };
 
-/* draft-ietf-idr-cease-subcode-02 */
+/* RFC 4486 */
 #define BGP_NOTIFY_MINOR_CEASE_MAXPRFX  1
-/* draft-ietf-idr-shutdown-07 */
 #define BGP_NOTIFY_MINOR_CEASE_SHUT     2
 #define BGP_NOTIFY_MINOR_CEASE_RESET    4
-#define BGP_NOTIFY_MINOR_CEASE_ADMIN_SHUTDOWN_LEN   128
 static const struct tok bgp_notify_minor_cease_values[] = {
     { BGP_NOTIFY_MINOR_CEASE_MAXPRFX, "Maximum Number of Prefixes Reached"},
     { BGP_NOTIFY_MINOR_CEASE_SHUT,    "Administrative Shutdown"},
@@ -842,7 +840,7 @@
             break;
 
     case BGP_EXT_COM_LINKBAND:
-            bw.i = GET_BE_U_4(pptr + 2);
+            bw.i = GET_BE_U_4(pptr + 4);
             ND_PRINT("bandwidth: %.3f Mbps",
                      bw.f*8/1000000);
             break;
@@ -915,7 +913,7 @@
                     u_int plen)
 {
     /* allocate space for the largest possible string */
-    char rtc_prefix_in_hex[20] = "";
+    char rtc_prefix_in_hex[sizeof("0000 0000 0000 0000")] = "";
     u_int rtc_prefix_in_hex_len = 0;
     static char output[61]; /* max response string */
     /* allocate space for the largest possible string */
@@ -951,7 +949,7 @@
     /*
      * get the ext-comm type
      * Note: pptr references a static 8 octet buffer with unused bits set to 0,
-     * hense EXTRACT_*() macros are safe.
+     * hence EXTRACT_*() macros are safe.
      */
     ec_type = EXTRACT_BE_U_2(pptr);
     switch (ec_type) {
@@ -2379,7 +2377,6 @@
             /*
              * Check if we can read the TLV data.
              */
-            ND_TCHECK_LEN(tptr + 3, length);
             if (tlen < length)
                 goto trunc;
 
@@ -2804,6 +2801,9 @@
     }
 
     if (len) {
+        /* Make sure the path attributes don't go past the end of the packet */
+        if (length < len)
+            goto trunc;
         /* do something more useful!*/
         while (len) {
             uint8_t aflags, atype, alenlen;
@@ -2909,8 +2909,6 @@
     const struct bgp_notification *bgp_notification_header;
     const u_char *tptr;
     uint8_t bgpn_major, bgpn_minor;
-    uint8_t shutdown_comm_length;
-    uint8_t remainder_offset;
 
     ND_TCHECK_LEN(dat, BGP_NOTIFICATION_SIZE);
     if (length<BGP_NOTIFICATION_SIZE)
@@ -2963,7 +2961,7 @@
                           bgpn_minor),
                   bgpn_minor);
 
-        /* draft-ietf-idr-cease-subcode-02 mentions optionally 7 bytes
+        /* RFC 4486 mentions optionally 7 bytes
          * for the maxprefix subtype, which may contain AFI, SAFI and MAXPREFIXES
          */
         if(bgpn_minor == BGP_NOTIFY_MINOR_CEASE_MAXPRFX && length >= BGP_NOTIFICATION_SIZE + 7) {
@@ -2976,18 +2974,17 @@
                       GET_BE_U_4(tptr + 3));
         }
         /*
-         * draft-ietf-idr-shutdown describes a method to send a communication
+         * RFC 9003 describes a method to send a communication
          * intended for human consumption regarding the Administrative Shutdown
          */
         if ((bgpn_minor == BGP_NOTIFY_MINOR_CEASE_SHUT ||
              bgpn_minor == BGP_NOTIFY_MINOR_CEASE_RESET) &&
              length >= BGP_NOTIFICATION_SIZE + 1) {
             tptr = dat + BGP_NOTIFICATION_SIZE;
-            shutdown_comm_length = GET_U_1(tptr);
-            remainder_offset = 0;
+            uint8_t shutdown_comm_length = GET_U_1(tptr);
+            uint8_t remainder_offset = 0;
             /* garbage, hexdump it all */
-            if (shutdown_comm_length > BGP_NOTIFY_MINOR_CEASE_ADMIN_SHUTDOWN_LEN ||
-                shutdown_comm_length > length - (BGP_NOTIFICATION_SIZE + 1)) {
+            if (shutdown_comm_length > length - (BGP_NOTIFICATION_SIZE + 1)) {
                 ND_PRINT(", invalid Shutdown Communication length");
             }
             else if (shutdown_comm_length == 0) {
@@ -2996,7 +2993,6 @@
             }
             /* a proper shutdown communication */
             else {
-                ND_TCHECK_LEN(tptr + 1, shutdown_comm_length);
                 ND_PRINT(", Shutdown Communication (length: %u): \"", shutdown_comm_length);
                 (void)nd_printn(ndo, tptr+1, shutdown_comm_length, NULL);
                 ND_PRINT("\"");
diff --git a/print-bt.c b/print-bt.c
index 131bc71..46aa278 100644
--- a/print-bt.c
+++ b/print-bt.c
@@ -52,7 +52,7 @@
 {
 	u_int length = h->len;
 	u_int caplen = h->caplen;
-	const bluetooth_h4_header* hdr = (const bluetooth_h4_header*)p;
+	const bluetooth_h4_header *hdr = (const bluetooth_h4_header *)p;
 
 	ndo->ndo_protocol = "bluetooth";
 	nd_print_protocol(ndo);
diff --git a/print-dccp.c b/print-dccp.c
index 9714c3c..3923457 100644
--- a/print-dccp.c
+++ b/print-dccp.c
@@ -189,7 +189,7 @@
 
 static u_int
 dccp_csum_coverage(netdissect_options *ndo,
-		   const struct dccp_hdr* dh, u_int len)
+		   const struct dccp_hdr *dh, u_int len)
 {
 	u_int cov;
 
@@ -333,7 +333,7 @@
 
 	/* other variables in generic header */
 	if (ndo->ndo_vflag) {
-		ND_PRINT(" (CCVal %u, CsCov %u, ", DCCPH_CCVAL(dh), DCCPH_CSCOV(dh));
+		ND_PRINT(" (CCVal %u, CsCov %u", DCCPH_CCVAL(dh), DCCPH_CSCOV(dh));
 	}
 
 	/* checksum calculation */
@@ -341,7 +341,7 @@
 		uint16_t sum = 0, dccp_sum;
 
 		dccp_sum = GET_BE_U_2(dh->dccph_checksum);
-		ND_PRINT("cksum 0x%04x ", dccp_sum);
+		ND_PRINT(", cksum 0x%04x ", dccp_sum);
 		if (IP_V(ip) == 4)
 			sum = dccp_cksum(ndo, ip, dh, len);
 		else if (IP_V(ip) == 6)
diff --git a/print-dsa.c b/print-dsa.c
index e45dc53..1ed9acf 100644
--- a/print-dsa.c
+++ b/print-dsa.c
@@ -83,7 +83,7 @@
 #define DSA_RX_SNIFF(tag) TOK(tag, 1, 0x04, 2)
 #define DSA_CFI(tag) TOK(tag, 1, 0x01, 0)
 #define DSA_PRI(tag) TOK(tag, 2, 0xe0, 5)
-#define DSA_VID(tag) ((u_short)((TOK(tag, 2, 0xe0, 5) << 8) | (TOK(tag, 3, 0xff, 0))))
+#define DSA_VID(tag) ((u_short)((TOK(tag, 2, 0x0f, 0) << 8) | (TOK(tag, 3, 0xff, 0))))
 #define DSA_CODE(tag) ((TOK(tag, 1, 0x06, 1) << 1) | TOK(tag, 2, 0x10, 4))
 
 #define EDSA_LEN 8
diff --git a/print-eap.c b/print-eap.c
index b0542ad..e154165 100644
--- a/print-eap.c
+++ b/print-eap.c
@@ -77,9 +77,9 @@
 #define		EAP_TYPE_MD5_CHALLENGE	4
 #define		EAP_TYPE_OTP		5
 #define		EAP_TYPE_GTC		6
-#define		EAP_TYPE_TLS		13		/* RFC 2716 */
+#define		EAP_TYPE_TLS		13		/* RFC 5216 */
 #define		EAP_TYPE_SIM		18		/* RFC 4186 */
-#define		EAP_TYPE_TTLS		21		/* draft-funk-eap-ttls-v0-01.txt */
+#define		EAP_TYPE_TTLS		21		/* RFC 5281, draft-funk-eap-ttls-v0-01.txt */
 #define		EAP_TYPE_AKA		23		/* RFC 4187 */
 #define		EAP_TYPE_FAST		43		/* RFC 4851 */
 #define		EAP_TYPE_EXPANDED_TYPES	254
@@ -105,7 +105,7 @@
 
 #define EAP_TLS_EXTRACT_BIT_L(x) 	(((x)&0x80)>>7)
 
-/* RFC 2716 - EAP TLS bits */
+/* RFC 5216 - EAP TLS bits */
 #define EAP_TLS_FLAGS_LEN_INCLUDED		(1 << 7)
 #define EAP_TLS_FLAGS_MORE_FRAGMENTS		(1 << 6)
 #define EAP_TLS_FLAGS_START			(1 << 5)
@@ -152,23 +152,39 @@
           u_int length)
 {
     u_int type, subtype, len;
-    int count;
+    u_int count;
+    const char *sep;
 
     type = GET_U_1(cp);
     len = GET_BE_U_2(cp + 2);
-    if(len != length) {
-       goto trunc;
+    if (len != length) {
+        /*
+         * Probably a fragment; in some cases the fragmentation might
+         * not put an EAP header on every packet, if reassembly can
+         * be done without that (e.g., fragmentation to make a message
+         * fit in multiple TLVs in a RADIUS packet).
+         */
+        ND_PRINT("EAP fragment?");
+        return;
     }
     ND_PRINT("%s (%u), id %u, len %u",
             tok2str(eap_code_values, "unknown", type),
             type,
             GET_U_1((cp + 1)),
             len);
+    if (len < 4) {
+        ND_PRINT(" (too short for EAP header)");
+        return;
+    }
 
     ND_TCHECK_LEN(cp, len);
 
     if (type == EAP_REQUEST || type == EAP_RESPONSE) {
         /* RFC 3748 Section 4.1 */
+        if (len < 5) {
+            ND_PRINT(" (too short for EAP request/response)");
+            return;
+        }
         subtype = GET_U_1(cp + 4);
         ND_PRINT("\n\t\t Type %s (%u)",
                 tok2str(eap_type_values, "unknown", subtype),
@@ -176,58 +192,81 @@
 
         switch (subtype) {
             case EAP_TYPE_IDENTITY:
-                if (len - 5 > 0) {
+                /* According to RFC 3748, the message is optional */
+                if (len > 5) {
                     ND_PRINT(", Identity: ");
                     nd_printjnp(ndo, cp + 5, len - 5);
                 }
                 break;
 
             case EAP_TYPE_NOTIFICATION:
-                if (len - 5 > 0) {
-                    ND_PRINT(", Notification: ");
-                    nd_printjnp(ndo, cp + 5, len - 5);
+                /* According to RFC 3748, there must be at least one octet of message */
+                if (len < 6) {
+                    ND_PRINT(" (too short for EAP Notification request/response)");
+                    return;
                 }
+                ND_PRINT(", Notification: ");
+                nd_printjnp(ndo, cp + 5, len - 5);
                 break;
 
             case EAP_TYPE_NAK:
-                count = 5;
-
                 /*
                  * one or more octets indicating
                  * the desired authentication
                  * type one octet per type
                  */
-                while (count < (int)len) {
-                    ND_PRINT(" %s (%u),",
+                if (len < 6) {
+                    ND_PRINT(" (too short for EAP Legacy NAK request/response)");
+                    return;
+                }
+                sep = "";
+                for (count = 5; count < len; count++) {
+                    ND_PRINT("%s %s (%u)", sep,
                            tok2str(eap_type_values, "unknown", GET_U_1((cp + count))),
                            GET_U_1(cp + count));
-                    count++;
+                    sep = ",";
                 }
                 break;
 
             case EAP_TYPE_TTLS:
             case EAP_TYPE_TLS:
+                if (len < 6) {
+                    ND_PRINT(" (too short for EAP TLS/TTLS request/response)");
+                    return;
+                }
                 if (subtype == EAP_TYPE_TTLS)
                     ND_PRINT(" TTLSv%u",
                            EAP_TTLS_VERSION(GET_U_1((cp + 5))));
-                ND_PRINT(" flags [%s] 0x%02x,",
+                ND_PRINT(" flags [%s] 0x%02x",
                        bittok2str(eap_tls_flags_values, "none", GET_U_1((cp + 5))),
                        GET_U_1(cp + 5));
 
                 if (EAP_TLS_EXTRACT_BIT_L(GET_U_1(cp + 5))) {
-                    ND_PRINT(" len %u", GET_BE_U_4(cp + 6));
+                    if (len < 10) {
+                        ND_PRINT(" (too short for EAP TLS/TTLS request/response with length)");
+                        return;
+                    }
+                    ND_PRINT(", len %u", GET_BE_U_4(cp + 6));
                 }
                 break;
 
             case EAP_TYPE_FAST:
+                if (len < 6) {
+                    ND_PRINT(" (too short for EAP FAST request/response)");
+                    return;
+                }
                 ND_PRINT(" FASTv%u",
                        EAP_TTLS_VERSION(GET_U_1((cp + 5))));
-                ND_PRINT(" flags [%s] 0x%02x,",
+                ND_PRINT(" flags [%s] 0x%02x",
                        bittok2str(eap_tls_flags_values, "none", GET_U_1((cp + 5))),
                        GET_U_1(cp + 5));
 
                 if (EAP_TLS_EXTRACT_BIT_L(GET_U_1(cp + 5))) {
-                    ND_PRINT(" len %u", GET_BE_U_4(cp + 6));
+                    if (len < 10) {
+                        ND_PRINT(" (too short for EAP FAST request/response with length)");
+                        return;
+                    }
+                    ND_PRINT(", len %u", GET_BE_U_4(cp + 6));
                 }
 
                 /* FIXME - TLV attributes follow */
@@ -235,7 +274,11 @@
 
             case EAP_TYPE_AKA:
             case EAP_TYPE_SIM:
-                ND_PRINT(" subtype [%s] 0x%02x,",
+                if (len < 6) {
+                    ND_PRINT(" (too short for EAP SIM/AKA request/response)");
+                    return;
+                }
+                ND_PRINT(" subtype [%s] 0x%02x",
                        tok2str(eap_aka_subtype_values, "unknown", GET_U_1((cp + 5))),
                        GET_U_1(cp + 5));
 
diff --git a/print-egp.c b/print-egp.c
index d20e5be..cc9f44e 100644
--- a/print-egp.c
+++ b/print-egp.c
@@ -191,7 +191,7 @@
 		length--;
 		ND_PRINT(" %s %s ",
 		       gateways < intgw ? "int" : "ext",
-		       ipaddr_string(ndo, (const u_char *)&addr));
+		       ipaddr_string(ndo, (const u_char *)&addr)); /* local buffer, not packet data; don't use GET_IPADDR_STRING() */
 
 		comma = "";
 		ND_PRINT("(");
@@ -226,7 +226,7 @@
 					cp++;
 					length -= 2;
 				}
-				ND_PRINT(" %s", ipaddr_string(ndo, (const u_char *)&addr));
+				ND_PRINT(" %s", ipaddr_string(ndo, (const u_char *)&addr)); /* local buffer, not packet data; don't use GET_IPADDR_STRING() */
 				networks--;
 			}
 			distances--;
diff --git a/print-enc.c b/print-enc.c
index 9f541c3..928b02c 100644
--- a/print-enc.c
+++ b/print-enc.c
@@ -100,7 +100,6 @@
              const struct pcap_pkthdr *h, const u_char *p)
 {
 	u_int length = h->len;
-	u_int caplen = h->caplen;
 	u_int af, flags;
 	const struct enchdr *hdr;
 
@@ -144,7 +143,6 @@
 	ND_PRINT("SPI 0x%08x: ", GET_BE_U_4(hdr->spi));
 
 	length -= ENC_HDRLEN;
-	caplen -= ENC_HDRLEN;
 	p += ENC_HDRLEN;
 
 	switch (af) {
diff --git a/print-esp.c b/print-esp.c
index 61c3e13..2cee088 100644
--- a/print-esp.c
+++ b/print-esp.c
@@ -47,6 +47,8 @@
 #include "netdissect.h"
 #include "extract.h"
 
+#include "diag-control.h"
+
 #ifdef HAVE_LIBCRYPTO
 #include "strtoaddr.h"
 #include "ascii_strcasecmp.h"
@@ -236,7 +238,7 @@
 	 * we can't decrypt on top of the input buffer.
 	 */
 	ptlen = ctlen;
-	pt = (u_char *)malloc(ptlen);
+	pt = (u_char *)calloc(1, ptlen);
 	if (pt == NULL) {
 		EVP_CIPHER_CTX_free(ctx);
 		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
@@ -278,7 +280,7 @@
  * dissecting anything in it and before it does any dissection of
  * anything in the old buffer.  That will free the new buffer.
  */
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 int esp_decrypt_buffer_by_ikev2_print(netdissect_options *ndo,
 				      int initiator,
 				      const u_char spii[8],
@@ -317,7 +319,7 @@
 
 	if(end <= ct) return 0;
 
-	pt = do_decrypt(ndo, "esp_decrypt_buffer_by_ikev2_print", sa, iv,
+	pt = do_decrypt(ndo, __func__, sa, iv,
 	    ct, ctlen);
 	if (pt == NULL)
 		return 0;
@@ -327,17 +329,18 @@
 	 * on the buffer stack so it can be freed; our caller must
 	 * pop it when done.
 	 */
-	if (!nd_push_buffer(ndo, pt, pt, pt + ctlen)) {
+	if (!nd_push_buffer(ndo, pt, pt, ctlen)) {
 		free(pt);
-		return 0;
+		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+			"%s: can't push buffer on buffer stack", __func__);
 	}
 
 	return 1;
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 
 static void esp_print_addsa(netdissect_options *ndo,
-			    struct sa_list *sa, int sa_def)
+			    const struct sa_list *sa, int sa_def)
 {
 	/* copy the "sa" */
 
@@ -384,10 +387,9 @@
 /*
  * returns size of binary, 0 on failure.
  */
-static
-int espprint_decode_hex(netdissect_options *ndo,
-			u_char *binbuf, unsigned int binbuf_len,
-			char *hex)
+static int
+espprint_decode_hex(netdissect_options *ndo,
+		    u_char *binbuf, unsigned int binbuf_len, char *hex)
 {
 	unsigned int len;
 	int i;
@@ -413,7 +415,7 @@
  * decode the form:    SPINUM@IP <tab> ALGONAME:0xsecret
  */
 
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 static int
 espprint_decode_encalgo(netdissect_options *ndo,
 			char *decode, struct sa_list *sa)
@@ -478,7 +480,7 @@
 
 	return 1;
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 
 /*
  * for the moment, ignore the auth algorithm, just hard code the authenticator
@@ -670,7 +672,7 @@
 	esp_print_addsa(ndo, &sa1, sa_def);
 }
 
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 static void esp_init(netdissect_options *ndo _U_)
 {
 	/*
@@ -683,7 +685,7 @@
 #endif
 	EVP_add_cipher_alias(SN_des_ede3_cbc, "3des");
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 
 void esp_decodesecret_print(netdissect_options *ndo)
 {
@@ -720,7 +722,7 @@
 #endif
 
 #ifdef HAVE_LIBCRYPTO
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 #endif
 void
 esp_print(netdissect_options *ndo,
@@ -760,7 +762,7 @@
 	ND_PRINT(", length %u", length);
 
 #ifdef HAVE_LIBCRYPTO
-	/* initiailize SAs */
+	/* initialize SAs */
 	if (ndo->ndo_sa_list_head == NULL) {
 		if (!ndo->ndo_espsecret)
 			return;
@@ -868,7 +870,7 @@
 		return;
 	}
 
-	pt = do_decrypt(ndo, "esp_print", sa, iv, ct, payloadlen);
+	pt = do_decrypt(ndo, __func__, sa, iv, ct, payloadlen);
 	if (pt == NULL)
 		return;
 
@@ -876,8 +878,7 @@
 	 * Switch to the output buffer for dissection, and
 	 * save it on the buffer stack so it can be freed.
 	 */
-	ep = pt + payloadlen;
-	if (!nd_push_buffer(ndo, pt, pt, ep)) {
+	if (!nd_push_buffer(ndo, pt, pt, payloadlen)) {
 		free(pt);
 		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
 			"%s: can't push buffer on buffer stack", __func__);
@@ -892,14 +893,14 @@
 	 * it was not decrypted with the correct key, so that the
 	 * "plaintext" is not what was being sent.
 	 */
-	padlen = GET_U_1(ep - 2);
+	padlen = GET_U_1(pt + payloadlen - 2);
 	if (padlen + 2 > payloadlen) {
 		nd_print_trunc(ndo);
 		return;
 	}
 
 	/* Get the next header */
-	nh = GET_U_1(ep - 1);
+	nh = GET_U_1(pt + payloadlen - 1);
 
 	ND_PRINT(": ");
 
@@ -907,7 +908,10 @@
 	 * Don't put padding + padding length(1 byte) + next header(1 byte)
 	 * in the buffer because they are not part of the plaintext to decode.
 	 */
-	nd_push_snapend(ndo, ep - (padlen + 2));
+	if (!nd_push_snaplen(ndo, pt, payloadlen - (padlen + 2))) {
+		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+			"%s: can't push snaplen on buffer stack", __func__);
+	}
 
 	/* Now dissect the plaintext. */
 	ip_demux_print(ndo, pt, payloadlen - (padlen + 2), ver, fragmented,
@@ -915,10 +919,10 @@
 
 	/* Pop the buffer, freeing it. */
 	nd_pop_packet_info(ndo);
-	/* Pop the nd_push_snapend */
+	/* Pop the nd_push_snaplen */
 	nd_pop_packet_info(ndo);
 #endif
 }
 #ifdef HAVE_LIBCRYPTO
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 #endif
diff --git a/print-ether.c b/print-ether.c
index da95862..cd623f9 100644
--- a/print-ether.c
+++ b/print-ether.c
@@ -86,7 +86,7 @@
     { ETHERTYPE_PPPOED,         "PPPoE D" },
     { ETHERTYPE_PPPOES,         "PPPoE S" },
     { ETHERTYPE_EAPOL,          "EAPOL" },
-    { ETHERTYPE_RRCP,           "RRCP" },
+    { ETHERTYPE_REALTEK,        "Realtek protocols" },
     { ETHERTYPE_MS_NLB_HB,      "MS NLB heartbeat" },
     { ETHERTYPE_JUMBO,          "Jumbo" },
     { ETHERTYPE_NSH,            "NSH" },
@@ -150,14 +150,15 @@
 	int llc_hdrlen;
 	struct lladdr_info src, dst;
 
+	if (length < caplen) {
+		ND_PRINT("[length %u < caplen %u]", length, caplen);
+		nd_print_invalid(ndo);
+		return length;
+	}
 	if (caplen < ETHER_HDRLEN + switch_tag_len) {
 		nd_print_trunc(ndo);
 		return caplen;
 	}
-	if (length < ETHER_HDRLEN + switch_tag_len) {
-		nd_print_trunc(ndo);
-		return length;
-	}
 
 	if (print_encap_header != NULL)
 		(*print_encap_header)(ndo, encap_header_arg);
@@ -221,7 +222,7 @@
 		}
 
 		int ret = macsec_print(ndo, &p, &length, &caplen, &hdrlen,
-		    &src, &dst);
+				       &src, &dst);
 
 		if (ret == 0) {
 			/* Payload is encrypted; print it as raw data. */
@@ -237,6 +238,7 @@
 			 */
 			length_type = GET_BE_U_2(p);
 
+			ND_LCHECK_U(caplen, 2);
 			length -= 2;
 			caplen -= 2;
 			p += 2;
@@ -304,7 +306,10 @@
 		 * Cut off the snapshot length to the end of the
 		 * payload.
 		 */
-		nd_push_snapend(ndo, p + length);
+		if (!nd_push_snaplen(ndo, p, length)) {
+			(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+				"%s: can't push snaplen on buffer stack", __func__);
+		}
 
 		if (ndo->ndo_eflag) {
 			ND_PRINT("802.3");
@@ -402,6 +407,7 @@
 				ND_DEFAULTPRINT(p, caplen);
 		}
 	}
+invalid:
 	return hdrlen;
 }
 
@@ -581,8 +587,8 @@
 		eapol_print(ndo, p);
 		return (1);
 
-	case ETHERTYPE_RRCP:
-		rrcp_print(ndo, p, length, src, dst);
+	case ETHERTYPE_REALTEK:
+		rtl_print(ndo, p, length, src, dst);
 		return (1);
 
 	case ETHERTYPE_PPP:
diff --git a/print-hncp.c b/print-hncp.c
index b288160..37c13ec 100644
--- a/print-hncp.c
+++ b/print-hncp.c
@@ -226,7 +226,7 @@
 		((u_char *)&addr)[plenbytes - 1] &=
 			((0xff00 >> (plen % 8)) & 0xff);
 	}
-	snprintf(buf, sizeof(buf), "%s/%u", ipaddr_string(ndo, (const u_char *)&addr), plen);
+	snprintf(buf, sizeof(buf), "%s/%u", ipaddr_string(ndo, (const u_char *)&addr), plen); /* local buffer, not packet data; don't use GET_IPADDR_STRING() */
         plenbytes += 1 + IPV4_MAPPED_HEADING_LEN;
     } else {
         plenbytes = decode_prefix6(ndo, prefix, max_length, buf, sizeof(buf));
diff --git a/print-icmp.c b/print-icmp.c
index 7753922..54d215e 100644
--- a/print-icmp.c
+++ b/print-icmp.c
@@ -86,9 +86,6 @@
 #define	icmp_data	icmp_dun.id_data
 };
 
-#define ICMP_MPLS_EXT_EXTRACT_VERSION(x) (((x)&0xf0)>>4)
-#define ICMP_MPLS_EXT_VERSION 2
-
 /*
  * Lower bounds on packet lengths for various types.
  * For the error advice packets must first insure that the
@@ -150,7 +147,7 @@
 	((type) == ICMP_UNREACH || (type) == ICMP_SOURCEQUENCH || \
 	(type) == ICMP_REDIRECT || (type) == ICMP_TIMXCEED || \
 	(type) == ICMP_PARAMPROB)
-#define	ICMP_MPLS_EXT_TYPE(type) \
+#define	ICMP_MULTIPART_EXT_TYPE(type) \
 	((type) == ICMP_UNREACH || \
          (type) == ICMP_TIMXCEED || \
          (type) == ICMP_PARAMPROB)
@@ -221,13 +218,17 @@
 };
 
 /*
- * draft-bonica-internet-icmp-08
+ * RFC 4884 - Extended ICMP to Support Multi-Part Messages
+ *
+ * This is a general extension mechanism, based on the mechanism
+ * in draft-bonica-icmp-mpls-02 ICMP Extensions for MultiProtocol
+ * Label Switching.
  *
  * The Destination Unreachable, Time Exceeded
  * and Parameter Problem messages are slightly changed as per
- * the above draft. A new Length field gets added to give
+ * the above RFC. A new Length field gets added to give
  * the caller an idea about the length of the piggybacked
- * IP packet before the MPLS extension header starts.
+ * IP packet before the extension header starts.
  *
  * The Length field represents length of the padded "original datagram"
  * field  measured in 32-bit words.
@@ -259,15 +260,34 @@
     nd_byte     icmp_ext_data[1];
 };
 
-struct icmp_mpls_ext_object_header_t {
+/*
+ * Extract version from the first octet of icmp_ext_version_res.
+ */
+#define ICMP_EXT_EXTRACT_VERSION(x) (((x)&0xf0)>>4)
+
+/*
+ * Current version.
+ */
+#define ICMP_EXT_VERSION 2
+
+/*
+ * Extension object class numbers.
+ *
+ * Class 1 dates back to draft-bonica-icmp-mpls-02.
+ */
+
+/* rfc4950  */
+#define MPLS_STACK_ENTRY_OBJECT_CLASS            1
+
+struct icmp_multipart_ext_object_header_t {
     nd_uint16_t length;
     nd_uint8_t  class_num;
     nd_uint8_t  ctype;
 };
 
-static const struct tok icmp_mpls_ext_obj_values[] = {
+static const struct tok icmp_multipart_ext_obj_values[] = {
     { 1, "MPLS Stack Entry" },
-    { 2, "Extended Payload" },
+    { 2, "Interface Identification" },
     { 0, NULL}
 };
 
@@ -305,7 +325,7 @@
 	const struct udphdr *ouh;
         const uint8_t *obj_tptr;
         uint32_t raw_label;
-	const struct icmp_mpls_ext_object_header_t *icmp_mpls_ext_object_header;
+	const struct icmp_multipart_ext_object_header_t *icmp_multipart_ext_object_header;
 	u_int hlen, mtu, obj_tlen, obj_class_num, obj_ctype;
 	uint16_t dport;
 	char buf[MAXHOSTNAMELEN + 100];
@@ -675,14 +695,14 @@
 	ndo->ndo_protocol = "icmp";
 
         /*
-         * Attempt to decode the MPLS extensions only for some ICMP types.
+         * Attempt to decode multi-part message extensions (rfc4884) only for some ICMP types.
          */
-        if (ndo->ndo_vflag >= 1 && plen > ICMP_EXTD_MINLEN && ICMP_MPLS_EXT_TYPE(icmp_type)) {
+        if (ndo->ndo_vflag >= 1 && plen > ICMP_EXTD_MINLEN && ICMP_MULTIPART_EXT_TYPE(icmp_type)) {
 
             ND_TCHECK_SIZE(ext_dp);
 
             /*
-             * Check first if the mpls extension header shows a non-zero length.
+             * Check first if the multi-part extension header shows a non-zero length.
              * If the length field is not set then silently verify the checksum
              * to check if an extension header is present. This is expedient,
              * however not all implementations set the length field proper.
@@ -696,14 +716,14 @@
                 }
             }
 
-            ND_PRINT("\n\tMPLS extension v%u",
-                   ICMP_MPLS_EXT_EXTRACT_VERSION(*(ext_dp->icmp_ext_version_res)));
+            ND_PRINT("\n\tICMP Multi-Part extension v%u",
+                   ICMP_EXT_EXTRACT_VERSION(*(ext_dp->icmp_ext_version_res)));
 
             /*
              * Sanity checking of the header.
              */
-            if (ICMP_MPLS_EXT_EXTRACT_VERSION(*(ext_dp->icmp_ext_version_res)) !=
-                ICMP_MPLS_EXT_VERSION) {
+            if (ICMP_EXT_EXTRACT_VERSION(*(ext_dp->icmp_ext_version_res)) !=
+                ICMP_EXT_VERSION) {
                 ND_PRINT(" packet not supported");
                 return;
             }
@@ -721,36 +741,36 @@
             hlen -= 4; /* subtract common header size */
             obj_tptr = (const uint8_t *)ext_dp->icmp_ext_data;
 
-            while (hlen > sizeof(struct icmp_mpls_ext_object_header_t)) {
+            while (hlen > sizeof(struct icmp_multipart_ext_object_header_t)) {
 
-                icmp_mpls_ext_object_header = (const struct icmp_mpls_ext_object_header_t *)obj_tptr;
-                ND_TCHECK_SIZE(icmp_mpls_ext_object_header);
-                obj_tlen = GET_BE_U_2(icmp_mpls_ext_object_header->length);
-                obj_class_num = GET_U_1(icmp_mpls_ext_object_header->class_num);
-                obj_ctype = GET_U_1(icmp_mpls_ext_object_header->ctype);
-                obj_tptr += sizeof(struct icmp_mpls_ext_object_header_t);
+                icmp_multipart_ext_object_header = (const struct icmp_multipart_ext_object_header_t *)obj_tptr;
+                ND_TCHECK_SIZE(icmp_multipart_ext_object_header);
+                obj_tlen = GET_BE_U_2(icmp_multipart_ext_object_header->length);
+                obj_class_num = GET_U_1(icmp_multipart_ext_object_header->class_num);
+                obj_ctype = GET_U_1(icmp_multipart_ext_object_header->ctype);
+                obj_tptr += sizeof(struct icmp_multipart_ext_object_header_t);
 
                 ND_PRINT("\n\t  %s Object (%u), Class-Type: %u, length %u",
-                       tok2str(icmp_mpls_ext_obj_values,"unknown",obj_class_num),
+                       tok2str(icmp_multipart_ext_obj_values,"unknown",obj_class_num),
                        obj_class_num,
                        obj_ctype,
                        obj_tlen);
 
-                hlen-=sizeof(struct icmp_mpls_ext_object_header_t); /* length field includes tlv header */
+                hlen-=sizeof(struct icmp_multipart_ext_object_header_t); /* length field includes tlv header */
 
                 /* infinite loop protection */
                 if ((obj_class_num == 0) ||
-                    (obj_tlen < sizeof(struct icmp_mpls_ext_object_header_t))) {
+                    (obj_tlen < sizeof(struct icmp_multipart_ext_object_header_t))) {
                     return;
                 }
-                obj_tlen-=sizeof(struct icmp_mpls_ext_object_header_t);
+                obj_tlen-=sizeof(struct icmp_multipart_ext_object_header_t);
 
                 switch (obj_class_num) {
-                case 1:
+                case MPLS_STACK_ENTRY_OBJECT_CLASS:
                     switch(obj_ctype) {
                     case 1:
                         raw_label = GET_BE_U_4(obj_tptr);
-                        ND_PRINT("\n\t    label %u, exp %u", MPLS_LABEL(raw_label), MPLS_EXP(raw_label));
+                        ND_PRINT("\n\t    label %u, tc %u", MPLS_LABEL(raw_label), MPLS_TC(raw_label));
                         if (MPLS_STACK(raw_label))
                             ND_PRINT(", [S]");
                         ND_PRINT(", ttl %u", MPLS_TTL(raw_label));
@@ -760,11 +780,6 @@
                     }
                     break;
 
-               /*
-                *  FIXME those are the defined objects that lack a decoder
-                *  you are welcome to contribute code ;-)
-                */
-                case 2:
                 default:
                     print_unknown_data(ndo, obj_tptr, "\n\t    ", obj_tlen);
                     break;
diff --git a/print-icmp6.c b/print-icmp6.c
index f16c1fa..47690f5 100644
--- a/print-icmp6.c
+++ b/print-icmp6.c
@@ -394,18 +394,13 @@
 #define NI_QTYPE_NODEADDR	3 /* Node Addresses */
 #define NI_QTYPE_IPV4ADDR	4 /* IPv4 Addresses */
 
-/* network endian */
-#define NI_SUPTYPE_FLAG_COMPRESS	((uint16_t)htons(0x1))
-#define NI_FQDN_FLAG_VALIDTTL		((uint16_t)htons(0x1))
-
-/* network endian */
-#define NI_NODEADDR_FLAG_TRUNCATE	((uint16_t)htons(0x1))
-#define NI_NODEADDR_FLAG_ALL		((uint16_t)htons(0x2))
-#define NI_NODEADDR_FLAG_COMPAT		((uint16_t)htons(0x4))
-#define NI_NODEADDR_FLAG_LINKLOCAL	((uint16_t)htons(0x8))
-#define NI_NODEADDR_FLAG_SITELOCAL	((uint16_t)htons(0x10))
-#define NI_NODEADDR_FLAG_GLOBAL		((uint16_t)htons(0x20))
-#define NI_NODEADDR_FLAG_ANYCAST	((uint16_t)htons(0x40)) /* just experimental. not in spec */
+#define NI_NODEADDR_FLAG_TRUNCATE	0x0001
+#define NI_NODEADDR_FLAG_ALL		0x0002
+#define NI_NODEADDR_FLAG_COMPAT		0x0004
+#define NI_NODEADDR_FLAG_LINKLOCAL	0x0008
+#define NI_NODEADDR_FLAG_SITELOCAL	0x0010
+#define NI_NODEADDR_FLAG_GLOBAL		0x0020
+#define NI_NODEADDR_FLAG_ANYCAST	0x0040 /* just experimental. not in spec */
 
 struct ni_reply_fqdn {
 	nd_uint32_t ni_fqdn_ttl;	/* TTL */
@@ -490,10 +485,6 @@
 static void icmp6_nodeinfo_print(netdissect_options *ndo, u_int, const u_char *, const u_char *);
 static void icmp6_rrenum_print(netdissect_options *ndo, const u_char *, const u_char *);
 
-#ifndef abs
-#define abs(a)	((0 < (a)) ? (a) : -(a))
-#endif
-
 /*
  * DIO: Updated to RFC6550, as published in 2012: section 6. (page 30)
  */
@@ -711,7 +702,6 @@
     { 0,	NULL }
 };
 
-
 static const struct tok icmp6_opt_values[] = {
    { ND_OPT_SOURCE_LINKADDR, "source link-address"},
    { ND_OPT_TARGET_LINKADDR, "destination link-address"},
@@ -850,27 +840,25 @@
               const u_char *bp, u_int length)
 {
         const struct nd_rpl_dio *dio = (const struct nd_rpl_dio *)bp;
-        const char *dagid_str;
 
-        ND_TCHECK_SIZE(dio);
-        dagid_str = ip6addr_string (ndo, dio->rpl_dagid);
-
+        ND_LCHECK_ZU(length, sizeof(struct nd_rpl_dio));
         ND_PRINT(" [dagid:%s,seq:%u,instance:%u,rank:%u,%smop:%s,prf:%u]",
-                  dagid_str,
+                  GET_IP6ADDR_STRING(dio->rpl_dagid),
                   GET_U_1(dio->rpl_dtsn),
                   GET_U_1(dio->rpl_instanceid),
                   GET_BE_U_2(dio->rpl_dagrank),
                   RPL_DIO_GROUNDED(GET_U_1(dio->rpl_mopprf)) ? "grounded,":"",
-                  tok2str(rpl_mop_values, "mop%u", RPL_DIO_MOP(GET_U_1(dio->rpl_mopprf))),
+                  tok2str(rpl_mop_values, "mop%u",
+                          RPL_DIO_MOP(GET_U_1(dio->rpl_mopprf))),
                   RPL_DIO_PRF(GET_U_1(dio->rpl_mopprf)));
 
         if(ndo->ndo_vflag > 1) {
                 rpl_printopts(ndo, bp + sizeof(struct nd_rpl_dio),
                               length - sizeof(struct nd_rpl_dio));
         }
-	return;
-trunc:
-	nd_print_trunc(ndo);
+        return;
+invalid:
+        nd_print_invalid(ndo);
 }
 
 static void
@@ -1017,7 +1005,6 @@
 
 }
 
-
 void
 icmp6_print(netdissect_options *ndo,
             const u_char *bp, u_int length, const u_char *bp2, int fragmented)
@@ -1522,7 +1509,7 @@
 			default:
 				goto trunc;
 			}
-			ND_PRINT(" %s/%u", ip6addr_string(ndo, (const u_char *)&in6),
+			ND_PRINT(" %s/%u", ip6addr_string(ndo, (const u_char *)&in6), /* local buffer, not packet data; don't use GET_IP6ADDR_STRING() */
                                   GET_U_1(opri->nd_opt_rti_prefixlen));
 			ND_PRINT(", pref=%s",
 				 get_rtpref(GET_U_1(opri->nd_opt_rti_flags)));
@@ -1778,7 +1765,6 @@
 			break;
 		}
 
-
 		/* XXX backward compat, icmp-name-lookup-03 */
 		if (siz == sizeof(*ni6)) {
 			ND_PRINT(", 03 draft");
@@ -1973,16 +1959,16 @@
 	ND_TCHECK_4(rr6->rr_reserved);
 	switch (GET_U_1(rr6->rr_code)) {
 	case ICMP6_ROUTER_RENUMBERING_COMMAND:
-		ND_PRINT("router renum: command");
+		ND_PRINT(", command");
 		break;
 	case ICMP6_ROUTER_RENUMBERING_RESULT:
-		ND_PRINT("router renum: result");
+		ND_PRINT(", result");
 		break;
 	case ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET:
-		ND_PRINT("router renum: sequence number reset");
+		ND_PRINT(", sequence number reset");
 		break;
 	default:
-		ND_PRINT("router renum: code-#%u", GET_U_1(rr6->rr_code));
+		ND_PRINT(", code-#%u", GET_U_1(rr6->rr_code));
 		break;
 	}
 
diff --git a/print-igrp.c b/print-igrp.c
index 0efc78a..23dc1f5 100644
--- a/print-igrp.c
+++ b/print-igrp.c
@@ -44,7 +44,7 @@
 	nd_uint16_t ig_as;	/* autonomous system number */
 	nd_uint16_t ig_ni;	/* number of subnet in local net */
 	nd_uint16_t ig_ns;	/* number of networks in AS */
-	nd_uint16_t ig_nx;	/* number of networks ouside AS */
+	nd_uint16_t ig_nx;	/* number of networks outside AS */
 	nd_uint16_t ig_sum;	/* checksum of IGRP header & data */
 };
 
diff --git a/print-ip-demux.c b/print-ip-demux.c
index b111c6d..a0a6fbd 100644
--- a/print-ip-demux.c
+++ b/print-ip-demux.c
@@ -198,7 +198,7 @@
 		if (ndo->ndo_packettype == PT_CARP) {
 			carp_print(ndo, bp, length, ttl_hl);
 		} else {
-			vrrp_print(ndo, bp, length, iph, ttl_hl);
+			vrrp_print(ndo, bp, length, iph, ttl_hl, ver);
 		}
 		break;
 
diff --git a/print-ip.c b/print-ip.c
index a0df959..23ba99c 100644
--- a/print-ip.c
+++ b/print-ip.c
@@ -377,7 +377,10 @@
 	/*
 	 * Cut off the snapshot length to the end of the IP payload.
 	 */
-	nd_push_snapend(ndo, bp + len);
+	if (!nd_push_snaplen(ndo, bp, len)) {
+		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+			"%s: can't push snaplen on buffer stack", __func__);
+	}
 
 	len -= hlen;
 
diff --git a/print-ip6.c b/print-ip6.c
index 525a284..2f1183c 100644
--- a/print-ip6.c
+++ b/print-ip6.c
@@ -231,11 +231,12 @@
 	u_int total_advance;
 	const u_char *cp;
 	uint32_t payload_len;
-	uint8_t nh;
+	uint8_t ph, nh;
 	int fragmented = 0;
 	u_int flow;
 	int found_extension_header;
 	int found_jumbo;
+	int found_hbh;
 
 	ndo->ndo_protocol = "ip6";
 	ip6 = (const struct ip6_hdr *)bp;
@@ -246,12 +247,12 @@
 		return;
 	}
 
-        if (!ndo->ndo_eflag)
-            ND_PRINT("IP6 ");
+	if (!ndo->ndo_eflag)
+	    ND_PRINT("IP6 ");
 
 	if (IP6_VERSION(ip6) != 6) {
-          ND_PRINT("version error: %u != 6", IP6_VERSION(ip6));
-          return;
+	  ND_PRINT("version error: %u != 6", IP6_VERSION(ip6));
+	  return;
 	}
 
 	payload_len = GET_BE_U_2(ip6->ip6_plen);
@@ -285,35 +286,31 @@
 	} else
 		len = length + sizeof(struct ip6_hdr);
 
-        nh = GET_U_1(ip6->ip6_nxt);
-        if (ndo->ndo_vflag) {
-            flow = GET_BE_U_4(ip6->ip6_flow);
-            ND_PRINT("(");
-#if 0
-            /* rfc1883 */
-            if (flow & 0x0f000000)
-		ND_PRINT("pri 0x%02x, ", (flow & 0x0f000000) >> 24);
-            if (flow & 0x00ffffff)
-		ND_PRINT("flowlabel 0x%06x, ", flow & 0x00ffffff);
-#else
-            /* RFC 2460 */
-            if (flow & 0x0ff00000)
-		ND_PRINT("class 0x%02x, ", (flow & 0x0ff00000) >> 20);
-            if (flow & 0x000fffff)
-		ND_PRINT("flowlabel 0x%05x, ", flow & 0x000fffff);
-#endif
+	ph = 255;
+	nh = GET_U_1(ip6->ip6_nxt);
+	if (ndo->ndo_vflag) {
+	    flow = GET_BE_U_4(ip6->ip6_flow);
+	    ND_PRINT("(");
+	    /* RFC 2460 */
+	    if (flow & 0x0ff00000)
+	        ND_PRINT("class 0x%02x, ", (flow & 0x0ff00000) >> 20);
+	    if (flow & 0x000fffff)
+	        ND_PRINT("flowlabel 0x%05x, ", flow & 0x000fffff);
 
-            ND_PRINT("hlim %u, next-header %s (%u) payload length: %u) ",
-                         GET_U_1(ip6->ip6_hlim),
-                         tok2str(ipproto_values,"unknown",nh),
-                         nh,
-                         payload_len);
-        }
+	    ND_PRINT("hlim %u, next-header %s (%u) payload length: %u) ",
+	                 GET_U_1(ip6->ip6_hlim),
+	                 tok2str(ipproto_values,"unknown",nh),
+	                 nh,
+	                 payload_len);
+	}
 
 	/*
 	 * Cut off the snapshot length to the end of the IP payload.
 	 */
-	nd_push_snapend(ndo, bp + len);
+	if (!nd_push_snaplen(ndo, bp, len)) {
+		(*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+			"%s: can't push snaplen on buffer stack", __func__);
+	}
 
 	cp = (const u_char *)ip6;
 	advance = sizeof(struct ip6_hdr);
@@ -321,6 +318,7 @@
 	/* Process extension headers */
 	found_extension_header = 0;
 	found_jumbo = 0;
+	found_hbh = 0;
 	while (cp < ndo->ndo_snapend && advance > 0) {
 		if (len < (u_int)advance)
 			goto trunc;
@@ -338,12 +336,32 @@
 		switch (nh) {
 
 		case IPPROTO_HOPOPTS:
+			/*
+			 * The Hop-by-Hop Options header, when present,
+			 * must immediately follow the IPv6 header (RFC 8200)
+			 */
+			if (found_hbh == 1) {
+				ND_PRINT("[The Hop-by-Hop Options header was already found]");
+				nd_print_invalid(ndo);
+				return;
+			}
+			if (ph != 255) {
+				ND_PRINT("[The Hop-by-Hop Options header don't follow the IPv6 header]");
+				nd_print_invalid(ndo);
+				return;
+			}
 			advance = hbhopt_process(ndo, cp, &found_jumbo, &payload_len);
+			if (payload_len == 0 && found_jumbo == 0) {
+				ND_PRINT("[No valid Jumbo Payload Hop-by-Hop option found]");
+				nd_print_invalid(ndo);
+				return;
+			}
 			if (advance < 0) {
 				nd_pop_packet_info(ndo);
 				return;
 			}
 			found_extension_header = 1;
+			found_hbh = 1;
 			nh = GET_U_1(cp);
 			break;
 
@@ -421,7 +439,7 @@
 				if (length < len)
 					ND_PRINT("truncated-ip6 - %u bytes missing!",
 						len - length);
-				nd_change_snapend(ndo, bp + len);
+				nd_change_snaplen(ndo, bp, len);
 
 				/*
 				 * Now subtract the length of the IPv6
@@ -446,7 +464,7 @@
 						goto trunc;
 
 					/*
-					 * OK, we didn't see any extnesion
+					 * OK, we didn't see any extension
 					 * header, but that means we have
 					 * no payload, so set the length
 					 * to the IPv6 header length,
@@ -454,7 +472,7 @@
 					 * accordingly.
 					 */
 					len = sizeof(struct ip6_hdr);
-					nd_change_snapend(ndo, bp + len);
+					nd_change_snaplen(ndo, bp, len);
 
 					/*
 					 * Now subtract the length of
@@ -471,6 +489,7 @@
 			nd_pop_packet_info(ndo);
 			return;
 		}
+		ph = nh;
 
 		/* ndo_protocol reassignment after xxx_print() calls */
 		ndo->ndo_protocol = "ip6";
diff --git a/print-ipx.c b/print-ipx.c
index c16a867..f8c0ce7 100644
--- a/print-ipx.c
+++ b/print-ipx.c
@@ -156,6 +156,7 @@
     int command, i;
 
     command = GET_BE_U_2(ipx);
+    ND_LCHECK_U(length, 2);
     ipx += 2;
     length -= 2;
 
@@ -229,6 +230,7 @@
     int command, i;
 
     command = GET_BE_U_2(ipx);
+    ND_LCHECK_U(length, 2);
     ipx += 2;
     length -= 2;
 
diff --git a/print-isakmp.c b/print-isakmp.c
index 52bf1fd..c08bbc0 100644
--- a/print-isakmp.c
+++ b/print-isakmp.c
@@ -741,10 +741,10 @@
 		? npfunc[(x)] : NULL)
 
 static int
-iszero(const u_char *p, size_t l)
+iszero(netdissect_options *ndo, const u_char *p, size_t l)
 {
 	while (l != 0) {
-		if (*p)
+		if (GET_U_1(p))
 			return 0;
 		p++;
 		l--;
@@ -2309,7 +2309,7 @@
 	const struct ikev2_auth *p;
 	const char *v2_auth[]={ "invalid", "rsasig",
 				"shared-secret", "dsssig" };
-	const u_char *authdata = (const u_char*)ext + sizeof(struct ikev2_auth);
+	const u_char *authdata = (const u_char *)ext + sizeof(struct ikev2_auth);
 
 	ND_TCHECK_LEN(ext, sizeof(struct ikev2_auth));
 	p = (const struct ikev2_auth *)ext;
@@ -2841,7 +2841,7 @@
 
 	i = cookie_find(&base->i_ck);
 	if (i < 0) {
-		if (iszero((const u_char *)&base->r_ck, sizeof(base->r_ck))) {
+		if (iszero(ndo, base->r_ck, sizeof(base->r_ck))) {
 			/* the first packet */
 			ND_PRINT(" I");
 			if (bp2)
diff --git a/print-juniper.c b/print-juniper.c
index 7c3df49..2fc0b55 100644
--- a/print-juniper.c
+++ b/print-juniper.c
@@ -30,6 +30,7 @@
 
 #include <string.h>
 
+#define ND_LONGJMP_FROM_TCHECK
 #include "netdissect.h"
 #include "addrtoname.h"
 #include "extract.h"
@@ -494,13 +495,13 @@
         p+=l2info.header_len;
         gh = (struct juniper_ggsn_header *)&l2info.cookie;
 
-        ND_TCHECK_SIZE(gh);
-        proto = GET_U_1(gh->proto);
+        /* use EXTRACT_, not GET_ (not packet buffer pointer) */
+        proto = EXTRACT_U_1(gh->proto);
         if (ndo->ndo_eflag) {
             ND_PRINT("proto %s (%u), vlan %u: ",
                    tok2str(juniper_protocol_values,"Unknown",proto),
                    proto,
-                   GET_BE_U_2(gh->vlan_id));
+                   EXTRACT_BE_U_2(gh->vlan_id));
         }
 
         switch (proto) {
@@ -516,11 +517,6 @@
         }
 
         ndo->ndo_ll_hdr_len += l2info.header_len;
-        return;
-
-trunc:
-        nd_print_trunc(ndo);
-        ndo->ndo_ll_hdr_len += l2info.header_len;
 }
 #endif
 
@@ -599,11 +595,6 @@
 
         ip_print(ndo, p, l2info.length);
         ndo->ndo_ll_hdr_len += l2info.header_len;
-        return;
-
-trunc:
-        nd_print_trunc(ndo);
-        ndo->ndo_ll_hdr_len += l2info.header_len;
 }
 #endif
 
@@ -643,11 +634,6 @@
         ip_heuristic_guess (ndo, p, l2info.length);
 
         ndo->ndo_ll_hdr_len += l2info.header_len;
-        return;
-
-trunc:
-        nd_print_trunc(ndo);
-        ndo->ndo_ll_hdr_len += l2info.header_len;
 }
 #endif
 
@@ -689,11 +675,6 @@
         ip_heuristic_guess (ndo, p, l2info.length);
 
         ndo->ndo_ll_hdr_len += l2info.header_len;
-        return;
-
-trunc:
-        nd_print_trunc(ndo);
-        ndo->ndo_ll_hdr_len += l2info.header_len;
 }
 #endif
 
@@ -968,6 +949,8 @@
             ND_PRINT("Bundle-ID %u, ", l2info.bundle);
         switch (l2info.proto) {
         case (LLCSAP_ISONS<<8 | LLCSAP_ISONS):
+            /* At least one byte is required */
+            ND_TCHECK_LEN(p, 1);
             isoclns_print(ndo, p + 1, l2info.length - 1);
             break;
         case (LLC_UI<<8 | NLPID_Q933):
@@ -1068,6 +1051,8 @@
         }
 
         if (GET_U_1(p) == 0x03) { /* Cisco style NLPID encaps ? */
+            /* At least one byte is required */
+            ND_TCHECK_LEN(p, 1);
             isoclns_print(ndo, p + 1, l2info.length - 1);
             /* FIXME check if frame was recognized */
             ndo->ndo_ll_hdr_len += l2info.header_len;
@@ -1135,6 +1120,8 @@
         }
 
         if (GET_U_1(p) == 0x03) { /* Cisco style NLPID encaps ? */
+            /* At least one byte is required */
+            ND_TCHECK_LEN(p, 1);
             isoclns_print(ndo, p + 1, l2info.length - 1);
             /* FIXME check if frame was recognized */
             ndo->ndo_ll_hdr_len += l2info.header_len;
@@ -1280,8 +1267,8 @@
 juniper_parse_header(netdissect_options *ndo,
                      const u_char *p, const struct pcap_pkthdr *h, struct juniper_l2info_t *l2info)
 {
-    const struct juniper_cookie_table_t *lp = juniper_cookie_table;
-    u_int idx, jnx_ext_len, jnx_header_len = 0;
+    const struct juniper_cookie_table_t *lp;
+    u_int idx, extension_length, jnx_header_len = 0;
     uint8_t tlv_type,tlv_len;
 #ifdef DLT_JUNIPER_ATM2
     uint32_t control_word;
@@ -1321,20 +1308,20 @@
         tptr = p+jnx_header_len;
 
         /* ok to read extension length ? */
-        jnx_ext_len = GET_BE_U_2(tptr);
+        extension_length = GET_BE_U_2(tptr);
         jnx_header_len += 2;
         tptr +=2;
 
         /* nail up the total length -
          * just in case something goes wrong
          * with TLV parsing */
-        jnx_header_len += jnx_ext_len;
+        jnx_header_len += extension_length;
 
         if (ndo->ndo_vflag > 1)
-            ND_PRINT(", PCAP Extension(s) total length %u", jnx_ext_len);
+            ND_PRINT(", PCAP Extension(s) total length %u", extension_length);
 
-        ND_TCHECK_LEN(tptr, jnx_ext_len);
-        while (jnx_ext_len > JUNIPER_EXT_TLV_OVERHEAD) {
+        ND_TCHECK_LEN(tptr, extension_length);
+        while (extension_length > JUNIPER_EXT_TLV_OVERHEAD) {
             tlv_type = GET_U_1(tptr);
             tptr++;
             tlv_len = GET_U_1(tptr);
@@ -1344,8 +1331,7 @@
             /* sanity checks */
             if (tlv_type == 0 || tlv_len == 0)
                 break;
-            if (tlv_len+JUNIPER_EXT_TLV_OVERHEAD > jnx_ext_len)
-                goto trunc;
+            ND_LCHECK_U(extension_length, tlv_len + JUNIPER_EXT_TLV_OVERHEAD);
 
             if (ndo->ndo_vflag > 1)
                 ND_PRINT("\n\t  %s Extension TLV #%u, length %u, value ",
@@ -1388,7 +1374,7 @@
             }
 
             tptr+=tlv_len;
-            jnx_ext_len -= tlv_len+JUNIPER_EXT_TLV_OVERHEAD;
+            extension_length -= tlv_len+JUNIPER_EXT_TLV_OVERHEAD;
         }
 
         if (ndo->ndo_vflag > 1)
@@ -1417,68 +1403,72 @@
     l2info->length -= l2info->header_len;
     l2info->caplen -= l2info->header_len;
 
-    /* search through the cookie table and copy values matching for our PIC type */
-    ND_TCHECK_1(p);
-    while (lp->s != NULL) {
-        if (lp->pictype == l2info->pictype) {
+    /* search through the cookie table for one matching our PIC type */
+    lp = NULL;
+    for (const struct juniper_cookie_table_t *table_lp = juniper_cookie_table;
+         table_lp->s != NULL; table_lp++) {
+        if (table_lp->pictype == l2info->pictype) {
+            lp = table_lp;
+            break;
+        }
+    }
 
-            l2info->cookie_len += lp->cookie_len;
+    /* If we found one matching our PIC type, copy its values */
+    if (lp != NULL) {
+        l2info->cookie_len += lp->cookie_len;
 
-            switch (GET_U_1(p)) {
-            case LS_COOKIE_ID:
-                l2info->cookie_type = LS_COOKIE_ID;
-                l2info->cookie_len += 2;
-                break;
-            case AS_COOKIE_ID:
-                l2info->cookie_type = AS_COOKIE_ID;
-                l2info->cookie_len = 8;
-                break;
+        switch (GET_U_1(p)) {
+        case LS_COOKIE_ID:
+            l2info->cookie_type = LS_COOKIE_ID;
+            l2info->cookie_len += 2;
+            break;
+        case AS_COOKIE_ID:
+            l2info->cookie_type = AS_COOKIE_ID;
+            l2info->cookie_len = 8;
+            break;
 
-            default:
-                l2info->bundle = l2info->cookie[0];
-                break;
-            }
+        default:
+            l2info->bundle = l2info->cookie[0];
+            break;
+        }
 
 
 #ifdef DLT_JUNIPER_MFR
-            /* MFR child links don't carry cookies */
-            if (l2info->pictype == DLT_JUNIPER_MFR &&
-                (GET_U_1(p) & MFR_BE_MASK) == MFR_BE_MASK) {
-                l2info->cookie_len = 0;
-            }
+        /* MFR child links don't carry cookies */
+        if (l2info->pictype == DLT_JUNIPER_MFR &&
+            (GET_U_1(p) & MFR_BE_MASK) == MFR_BE_MASK) {
+            l2info->cookie_len = 0;
+        }
 #endif
 
-            l2info->header_len += l2info->cookie_len;
-            l2info->length -= l2info->cookie_len;
-            l2info->caplen -= l2info->cookie_len;
+        l2info->header_len += l2info->cookie_len;
+        l2info->length -= l2info->cookie_len;
+        l2info->caplen -= l2info->cookie_len;
 
-            if (ndo->ndo_eflag)
-                ND_PRINT("%s-PIC, cookie-len %u",
-                       lp->s,
-                       l2info->cookie_len);
+        if (ndo->ndo_eflag)
+            ND_PRINT("%s-PIC, cookie-len %u",
+                   lp->s,
+                   l2info->cookie_len);
 
-            if (l2info->cookie_len > 8) {
-                nd_print_invalid(ndo);
-                return 0;
-            }
-
-            if (l2info->cookie_len > 0) {
-                ND_TCHECK_LEN(p, l2info->cookie_len);
-                if (ndo->ndo_eflag)
-                    ND_PRINT(", cookie 0x");
-                for (idx = 0; idx < l2info->cookie_len; idx++) {
-                    l2info->cookie[idx] = GET_U_1(p + idx); /* copy cookie data */
-                    if (ndo->ndo_eflag) ND_PRINT("%02x", GET_U_1(p + idx));
-                }
-            }
-
-            if (ndo->ndo_eflag) ND_PRINT(": "); /* print demarc b/w L2/L3*/
-
-
-            l2info->proto = GET_BE_U_2(p + l2info->cookie_len);
-            break;
+        if (l2info->cookie_len > 8) {
+            nd_print_invalid(ndo);
+            return 0;
         }
-        ++lp;
+
+        if (l2info->cookie_len > 0) {
+            ND_TCHECK_LEN(p, l2info->cookie_len);
+            if (ndo->ndo_eflag)
+                ND_PRINT(", cookie 0x");
+            for (idx = 0; idx < l2info->cookie_len; idx++) {
+                l2info->cookie[idx] = GET_U_1(p + idx); /* copy cookie data */
+                if (ndo->ndo_eflag) ND_PRINT("%02x", GET_U_1(p + idx));
+            }
+        }
+
+        if (ndo->ndo_eflag) ND_PRINT(": "); /* print demarc b/w L2/L3*/
+
+
+        l2info->proto = GET_BE_U_2(p + l2info->cookie_len);
     }
     p+=l2info->cookie_len;
 
@@ -1568,10 +1558,18 @@
         }
         break;
 #endif
+#ifdef DLT_JUNIPER_ES
+    case DLT_JUNIPER_ES:
+        break;
+#endif
 #ifdef DLT_JUNIPER_GGSN
     case DLT_JUNIPER_GGSN:
         break;
 #endif
+#ifdef DLT_JUNIPER_SERVICES
+    case DLT_JUNIPER_SERVICES:
+        break;
+#endif
 #ifdef DLT_JUNIPER_ATM1
     case DLT_JUNIPER_ATM1:
         break;
@@ -1592,6 +1590,18 @@
     case DLT_JUNIPER_FRELAY:
         break;
 #endif
+#ifdef DLT_JUNIPER_MONITOR
+    case DLT_JUNIPER_MONITOR:
+        break;
+#endif
+#ifdef DLT_JUNIPER_PPPOE
+    case DLT_JUNIPER_PPPOE:
+        break;
+#endif
+#ifdef DLT_JUNIPER_PPPOE_ATM
+    case DLT_JUNIPER_PPPOE_ATM:
+        break;
+#endif
 
     default:
         ND_PRINT("Unknown Juniper DLT_ type %u: ", l2info->pictype);
@@ -1602,8 +1612,8 @@
         ND_PRINT("hlen %u, proto 0x%04x, ", l2info->header_len, l2info->proto);
 
     return 1; /* everything went ok so far. continue parsing */
-trunc:
-    nd_print_trunc(ndo);
+invalid:
+    nd_print_invalid(ndo);
     return 0;
 }
 #endif /* defined(DLT_JUNIPER_GGSN) || defined(DLT_JUNIPER_ES) || \
diff --git a/print-lisp.c b/print-lisp.c
index 0012e06..756fff0 100644
--- a/print-lisp.c
+++ b/print-lisp.c
@@ -283,8 +283,8 @@
 		goto invalid;
 
 	/* Print all the EID records */
-	while ((length > packet_offset) && (record_count--)) {
-
+	while ((length > packet_offset) && (record_count != 0)) {
+		record_count--;
 		ND_TCHECK_LEN(packet_iterator + packet_offset,
 			      MAP_REGISTER_EID_LEN);
 		ND_PRINT("\n");
@@ -326,7 +326,8 @@
 
 		ND_PRINT(" %u locator(s)", loc_count);
 
-		while (loc_count--) {
+		while (loc_count != 0) {
+			loc_count--;
 			ND_TCHECK_LEN(packet_iterator + packet_offset,
 				      MAP_REGISTER_LOC_LEN);
 			lisp_loc = (const lisp_map_register_loc *) (packet_iterator + packet_offset);
diff --git a/print-lwres.c b/print-lwres.c
index c237e48..b8fc623 100644
--- a/print-lwres.c
+++ b/print-lwres.c
@@ -191,7 +191,7 @@
 
 static unsigned
 lwres_printname(netdissect_options *ndo,
-                size_t l, const u_char *p0)
+                u_int l, const u_char *p0)
 {
 	ND_PRINT(" ");
 	(void)nd_printn(ndo, p0, l, NULL);
@@ -546,7 +546,7 @@
 		ND_PRINT(" [len: %u != %u]", GET_BE_U_4(np->length),
 			  length);
 	}
-	if (!unsupported && s < bp + GET_BE_U_4(np->length))
+	if (!unsupported && ND_BYTES_BETWEEN(s, bp) < GET_BE_U_4(np->length))
 		ND_PRINT("[extra]");
 	return;
 
diff --git a/print-mpls.c b/print-mpls.c
index b8820aa..43ea151 100644
--- a/print-mpls.c
+++ b/print-mpls.c
@@ -80,7 +80,7 @@
 		if (ndo->ndo_vflag &&
 		    MPLS_LABEL(label_entry) < sizeof(mpls_labelname) / sizeof(mpls_labelname[0]))
 			ND_PRINT(" (%s)", mpls_labelname[MPLS_LABEL(label_entry)]);
-		ND_PRINT(", exp %u", MPLS_EXP(label_entry));
+		ND_PRINT(", tc %u", MPLS_TC(label_entry));
 		if (MPLS_STACK(label_entry))
 			ND_PRINT(", [S]");
 		ND_PRINT(", ttl %u)", MPLS_TTL(label_entry));
diff --git a/print-mptcp.c b/print-mptcp.c
index aae78df..7ffb1f5 100644
--- a/print-mptcp.c
+++ b/print-mptcp.c
@@ -63,7 +63,7 @@
         nd_uint8_t     sub_etc;        /* subtype upper 4 bits, other stuff lower 4 bits */
 };
 
-#define MPTCP_OPT_SUBTYPE(sub_etc)      ((GET_U_1(sub_etc) >> 4) & 0xF)
+#define MPTCP_OPT_SUBTYPE(sub_etc)      (((sub_etc) >> 4) & 0xF)
 
 struct mp_capable {
         nd_uint8_t     kind;
@@ -74,7 +74,7 @@
         nd_uint64_t    receiver_key;
 };
 
-#define MP_CAPABLE_OPT_VERSION(sub_ver) ((GET_U_1(sub_ver) >> 0) & 0xF)
+#define MP_CAPABLE_OPT_VERSION(sub_ver) (((sub_ver) >> 0) & 0xF)
 #define MP_CAPABLE_C                    0x80
 #define MP_CAPABLE_S                    0x01
 
@@ -200,7 +200,7 @@
               TH_ACK))
                 return 0;
 
-        version = MP_CAPABLE_OPT_VERSION(mpc->sub_ver); /* uses GET_U_1() */
+        version = MP_CAPABLE_OPT_VERSION(GET_U_1(mpc->sub_ver));
         switch (version) {
                 case 0: /* fall through */
                 case 1:
@@ -310,7 +310,7 @@
                  * Data-Level Length present, and Checksum possibly present.
                  */
                 ND_PRINT(" seq ");
-		/*
+                /*
                  * If the m flag is set, we have an 8-byte NDS; if it's clear,
                  * we have a 4-byte DSN.
                  */
@@ -395,7 +395,7 @@
                   const u_char *opt, u_int opt_len, u_char flags _U_)
 {
         const struct mp_remove_addr *remove_addr = (const struct mp_remove_addr *) opt;
-	u_int i;
+        u_int i;
 
         if (opt_len < 4)
                 return 0;
@@ -452,7 +452,7 @@
         const char *name;
         int (*print)(netdissect_options *, const u_char *, u_int, u_char);
 } mptcp_options[] = {
-        { "capable", mp_capable_print},
+        { "capable",    mp_capable_print },
         { "join",       mp_join_print },
         { "dss",        mp_dss_print },
         { "add-addr",   add_addr_print },
@@ -470,14 +470,16 @@
         const struct mptcp_option *opt;
         u_int subtype;
 
-	ndo->ndo_protocol = "mptcp";
+        ndo->ndo_protocol = "mptcp";
         if (len < 3)
                 return 0;
 
         opt = (const struct mptcp_option *) cp;
-        subtype = MPTCP_OPT_SUBTYPE(opt->sub_etc); /* uses GET_U_1() */
+        subtype = MPTCP_OPT_SUBTYPE(GET_U_1(opt->sub_etc));
         subtype = ND_MIN(subtype, MPTCP_SUB_FCLOSE + 1);
 
+        ND_PRINT(" %u", len);
+
         ND_PRINT(" %s", mptcp_options[subtype].name);
         return mptcp_options[subtype].print(ndo, cp, len, flags);
 }
diff --git a/print-nfs.c b/print-nfs.c
index 20b0cfc..af1b274 100644
--- a/print-nfs.c
+++ b/print-nfs.c
@@ -906,7 +906,7 @@
 		/* Print the undecoded handle */
 		ND_PRINT("%s", fsid.Opaque_Handle);
 	else
-		ND_PRINT("%ld", (long) ino);
+		ND_PRINT("%u", ino);
 }
 
 /*
diff --git a/print-ospf.c b/print-ospf.c
index c370bda..e6bebed 100644
--- a/print-ospf.c
+++ b/print-ospf.c
@@ -59,8 +59,10 @@
 static const struct tok ospf_rla_flag_values[] = {
 	{ RLA_FLAG_B,		"ABR" },
 	{ RLA_FLAG_E,		"ASBR" },
-	{ RLA_FLAG_W1,		"Virtual" },
-	{ RLA_FLAG_W2,		"W2" },
+	{ RLA_FLAG_V,		"Virtual" },
+	{ RLA_FLAG_W,		"Wildcard" },
+	{ RLA_FLAG_NT,		"Nt" },
+	{ RLA_FLAG_H,		"Host" },
 	{ 0,			NULL }
 };
 
@@ -696,8 +698,7 @@
 		    GET_IPADDR_STRING(lsap->lsa_un.un_nla.nla_mask));
 		ap = lsap->lsa_un.un_nla.nla_router;
 		while ((const u_char *)ap < ls_end) {
-			ND_TCHECK_SIZE(ap);
-			ND_PRINT("\n\t      %s", GET_IPADDR_STRING(*ap));
+			ND_PRINT("\n\t      %s", GET_IPADDR_STRING(ap));
 			++ap;
 		}
 		break;
@@ -999,8 +1000,7 @@
 		if ((const u_char *)ap < dataend)
 			ND_PRINT("\n\t  Neighbor List:");
 		while ((const u_char *)ap < dataend) {
-			ND_TCHECK_SIZE(ap);
-			ND_PRINT("\n\t    %s", GET_IPADDR_STRING(*ap));
+			ND_PRINT("\n\t    %s", GET_IPADDR_STRING(ap));
 			++ap;
 		}
 		break;	/* HELLO */
diff --git a/print-ospf6.c b/print-ospf6.c
index 1bdcd68..4916795 100644
--- a/print-ospf6.c
+++ b/print-ospf6.c
@@ -381,7 +381,7 @@
                ls_type & LS_TYPE_MASK,
                tok2str(ospf6_ls_scope_values, "Unknown", ls_type & LS_SCOPE_MASK),
                ls_type &0x8000 ? ", transitive" : "", /* U-bit */
-               GET_IPADDR_STRING((const u_char *)ls_stateid));
+               GET_IPADDR_STRING(ls_stateid));
 }
 
 static int
@@ -552,8 +552,7 @@
 			if (lsa_length < sizeof (*ap))
 				return (1);
 			lsa_length -= sizeof (*ap);
-			ND_TCHECK_SIZE(ap);
-			ND_PRINT("\n\t\t%s", GET_IPADDR_STRING(*ap));
+			ND_PRINT("\n\t\t%s", GET_IPADDR_STRING(ap));
 			++ap;
 		}
 		break;
@@ -762,8 +761,7 @@
 			ND_PRINT("\n\t  Neighbor List:");
 			ap = hellop->hello_neighbor;
 			while ((const u_char *)ap < dataend) {
-				ND_TCHECK_SIZE(ap);
-				ND_PRINT("\n\t    %s", GET_IPADDR_STRING(*ap));
+				ND_PRINT("\n\t    %s", GET_IPADDR_STRING(ap));
 				++ap;
 			}
 		}
diff --git a/print-pflog.c b/print-pflog.c
index eb1b176..1cffbf6 100644
--- a/print-pflog.c
+++ b/print-pflog.c
@@ -19,43 +19,46 @@
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
-/* \summary: OpenBSD packet filter log file printer */
+/* \summary: *BSD/Darwin packet filter log file printer */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 
-#ifndef HAVE_NET_PFVAR_H
-#error "No pf headers available"
-#endif
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <net/pfvar.h>
-#include <net/if_pflog.h>
-
 #include "netdissect-stdinc.h"
 
 #include "netdissect.h"
 #include "extract.h"
+#include "af.h"
 
+#include "pflog.h"
 
 static const struct tok pf_reasons[] = {
-	{ 0,	"0(match)" },
-	{ 1,	"1(bad-offset)" },
-	{ 2,	"2(fragment)" },
-	{ 3,	"3(short)" },
-	{ 4,	"4(normalize)" },
-	{ 5,	"5(memory)" },
-	{ 6,	"6(bad-timestamp)" },
-	{ 7,	"7(congestion)" },
-	{ 8,	"8(ip-option)" },
-	{ 9,	"9(proto-cksum)" },
-	{ 10,	"10(state-mismatch)" },
-	{ 11,	"11(state-insert)" },
-	{ 12,	"12(state-limit)" },
-	{ 13,	"13(src-limit)" },
-	{ 14,	"14(synproxy)" },
+	{ PFRES_MATCH,		"0(match)" },
+	{ PFRES_BADOFF,		"1(bad-offset)" },
+	{ PFRES_FRAG,		"2(fragment)" },
+	{ PFRES_NORM,		"3(short)" },
+	{ PFRES_NORM,		"4(normalize)" },
+	{ PFRES_MEMORY,		"5(memory)" },
+	{ PFRES_TS,		"6(bad-timestamp)" },
+	{ PFRES_CONGEST,	"7(congestion)" },
+	{ PFRES_IPOPTIONS,	"8(ip-option)" },
+	{ PFRES_PROTCKSUM,	"9(proto-cksum)" },
+	{ PFRES_BADSTATE,	"10(state-mismatch)" },
+	{ PFRES_STATEINS,	"11(state-insert)" },
+	{ PFRES_MAXSTATES,	"12(state-limit)" },
+	{ PFRES_SRCLIMIT,	"13(src-limit)" },
+	{ PFRES_SYNPROXY,	"14(synproxy)" },
+#if defined(__FreeBSD__)
+	{ PFRES_MAPFAILED,	"15(map-failed)" },
+#elif defined(__NetBSD__)
+	{ PFRES_STATELOCKED,	"15(state-locked)" },
+#elif defined(__OpenBSD__)
+	{ PFRES_TRANSLATE,	"15(translate)" },
+	{ PFRES_NOROUTE,	"16(no-route)" },
+#elif defined(__APPLE__)
+	{ PFRES_DUMMYNET,	"15(dummynet)" },
+#endif
 	{ 0,	NULL }
 };
 
@@ -64,12 +67,26 @@
 	{ PF_DROP,		"block" },
 	{ PF_SCRUB,		"scrub" },
 	{ PF_NAT,		"nat" },
-	{ PF_NONAT,		"nat" },
+	{ PF_NONAT,		"nonat" },
 	{ PF_BINAT,		"binat" },
-	{ PF_NOBINAT,		"binat" },
+	{ PF_NOBINAT,		"nobinat" },
 	{ PF_RDR,		"rdr" },
-	{ PF_NORDR,		"rdr" },
+	{ PF_NORDR,		"nordr" },
 	{ PF_SYNPROXY_DROP,	"synproxy-drop" },
+#if defined(__FreeBSD__)
+	{ PF_DEFER,		"defer" },
+#elif defined(__OpenBSD__)
+	{ PF_DEFER,		"defer" },
+	{ PF_MATCH,		"match" },
+	{ PF_DIVERT,		"divert" },
+	{ PF_RT,		"rt" },
+	{ PF_AFRT,		"afrt" },
+#elif defined(__APPLE__)
+	{ PF_DUMMYNET,		"dummynet" },
+	{ PF_NODUMMYNET,	"nodummynet" },
+	{ PF_NAT64,		"nat64" },
+	{ PF_NONAT64,		"nonat64" },
+#endif
 	{ 0,			NULL }
 };
 
@@ -77,13 +94,12 @@
 	{ PF_INOUT,	"in/out" },
 	{ PF_IN,	"in" },
 	{ PF_OUT,	"out" },
+#if defined(__OpenBSD__)
+	{ PF_FWD,	"fwd" },
+#endif
 	{ 0,		NULL }
 };
 
-/* For reading capture files on other systems */
-#define	OPENBSD_AF_INET		2
-#define	OPENBSD_AF_INET6	24
-
 static void
 pflog_print(netdissect_options *ndo, const struct pfloghdr *hdr)
 {
@@ -104,7 +120,7 @@
 	    tok2str(pf_reasons, "unkn(%u)", GET_U_1(&hdr->reason)),
 	    tok2str(pf_actions, "unkn(%u)", GET_U_1(&hdr->action)),
 	    tok2str(pf_directions, "unkn(%u)", GET_U_1(&hdr->dir)));
-	nd_printjnp(ndo, (const u_char*)hdr->ifname, IFNAMSIZ);
+	nd_printjnp(ndo, (const u_char*)hdr->ifname, PFLOG_IFNAMSIZ);
 	ND_PRINT(": ");
 }
 
@@ -133,7 +149,7 @@
 		ndo->ndo_ll_hdr_len += GET_U_1(&hdr->length);	/* XXX: not really */
 		return;
 	}
-	hdrlen = BPF_WORDALIGN(hdr->length);
+	hdrlen = roundup2(hdr->length, 4);
 
 	if (caplen < hdrlen) {
 		nd_print_trunc(ndo);
@@ -153,23 +169,26 @@
 	p += hdrlen;
 	switch (af) {
 
-		case AF_INET:
-#if OPENBSD_AF_INET != AF_INET
-		case OPENBSD_AF_INET:		/* XXX: read pcap files */
-#endif
+		/*
+		 * If there's a system that doesn't use the AF_INET
+		 * from 4.2BSD, feel free to add its value to af.h
+		 * and use it here.
+		 *
+		 * Hopefully, there isn't.
+		 */
+		case BSD_AFNUM_INET:
 		        ip_print(ndo, p, length);
 			break;
 
-#if defined(AF_INET6) || defined(OPENBSD_AF_INET6)
-#ifdef AF_INET6
-		case AF_INET6:
-#endif /* AF_INET6 */
-#if !defined(AF_INET6) || OPENBSD_AF_INET6 != AF_INET6
-		case OPENBSD_AF_INET6:		/* XXX: read pcap files */
-#endif /* !defined(AF_INET6) || OPENBSD_AF_INET6 != AF_INET6 */
+		/*
+		 * Try all AF_INET6 values for all systems with pflog,
+		 * including Darwin.
+		 */
+		case BSD_AFNUM_INET6_BSD:
+		case BSD_AFNUM_INET6_FREEBSD:
+		case BSD_AFNUM_INET6_DARWIN:
 			ip6_print(ndo, p, length);
 			break;
-#endif /* defined(AF_INET6) || defined(OPENBSD_AF_INET6) */
 
 	default:
 		/* address family not handled, print raw packet */
diff --git a/print-ppp.c b/print-ppp.c
index baeb4f0..aba243d 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -1363,7 +1363,7 @@
 	u_char *b, *t, c;
 	const u_char *s;
 	u_int i, proto;
-	const void *se;
+	const void *sb, *se;
 
 	if (caplen == 0)
 		return;
@@ -1395,8 +1395,11 @@
 
 	/*
 	 * Change the end pointer, so bounds checks work.
+	 * Change the pointer to packet data to help debugging.
 	 */
+	sb = ndo->ndo_packetp;
 	se = ndo->ndo_snapend;
+	ndo->ndo_packetp = b;
 	ndo->ndo_snapend = t;
 	length = ND_BYTES_AVAILABLE_AFTER(b);
 
@@ -1425,18 +1428,26 @@
             if (length < 4)
                 goto trunc;
             proto = GET_BE_U_2(b + 2); /* load the PPP proto-id */
-            handle_ppp(ndo, proto, b + 4, length - 4);
+            if ((proto & 0xff00) == 0x7e00)
+                ND_PRINT("(protocol 0x%04x invalid)", proto);
+            else
+                handle_ppp(ndo, proto, b + 4, length - 4);
             break;
         default: /* last guess - proto must be a PPP proto-id */
-            handle_ppp(ndo, proto, b + 2, length - 2);
+            if ((proto & 0xff00) == 0x7e00)
+                ND_PRINT("(protocol 0x%04x invalid)", proto);
+            else
+                handle_ppp(ndo, proto, b + 2, length - 2);
             break;
         }
 
 cleanup:
+	ndo->ndo_packetp = sb;
 	ndo->ndo_snapend = se;
         return;
 
 trunc:
+	ndo->ndo_packetp = sb;
 	ndo->ndo_snapend = se;
 	nd_print_trunc(ndo);
 }
@@ -1559,11 +1570,18 @@
 		hdr_len += 2;
 	}
 
-	if (ndo->ndo_eflag)
-		ND_PRINT("%s (0x%04x), length %u: ",
-		          tok2str(ppptype2str, "unknown", proto),
+	if (ndo->ndo_eflag) {
+		const char *typestr;
+		typestr = tok2str(ppptype2str, "unknown", proto);
+		ND_PRINT("%s (0x%04x), length %u",
+		          typestr,
 		          proto,
 		          olen);
+		if (*typestr == 'u')	/* "unknown" */
+			return hdr_len;
+
+		ND_PRINT(": ");
+	}
 
 	handle_ppp(ndo, proto, p, length);
 	return (hdr_len);
diff --git a/print-pptp.c b/print-pptp.c
index 8e1b303..e8e328b 100644
--- a/print-pptp.c
+++ b/print-pptp.c
@@ -55,7 +55,7 @@
 #define PPTP_CTRL_MSG_TYPE_WEN		14
 #define PPTP_CTRL_MSG_TYPE_SLI		15
 
-#define PPTP_FRAMING_CAP_ASYNC_MASK	0x00000001      /* Aynchronous */
+#define PPTP_FRAMING_CAP_ASYNC_MASK	0x00000001      /* Asynchronous */
 #define PPTP_FRAMING_CAP_SYNC_MASK	0x00000002      /* Synchronous */
 
 #define PPTP_BEARER_CAP_ANALOG_MASK	0x00000001      /* Analog */
diff --git a/print-ptp.c b/print-ptp.c
index 6f12b90..a1c09c0 100644
--- a/print-ptp.c
+++ b/print-ptp.c
@@ -35,7 +35,8 @@
  *    |  domain No    | rsvd1         |   flag Field                  |
  *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  *    |                        Correction NS                          |
- *    |                      Correction Sub NS                        |
+ *    +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *    |                               |      Correction Sub NS        |
  *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  *    |                           Reserved2                           |
  *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -175,11 +176,11 @@
  *
  */
 
+/* Values from IEEE1588-2008: 13.3.2.2 messageType (Enumeration4) */
 #define M_SYNC                  0x0
 #define M_DELAY_REQ             0x1
 #define M_PDELAY_REQ            0x2
 #define M_PDELAY_RESP           0x3
-#define M_OTHER                 0x5
 #define M_FOLLOW_UP             0x8
 #define M_DELAY_RESP            0x9
 #define M_PDELAY_RESP_FOLLOW_UP 0xA
@@ -188,20 +189,41 @@
 #define M_MANAGEMENT            0xD
 
 static const struct tok ptp_msg_type[] = {
-    { M_SYNC ,"sync msg"},
-    { M_DELAY_REQ ,"delay req msg"},
-    { M_PDELAY_REQ ,"peer delay req msg"},
-    { M_PDELAY_RESP ,"peer delay resp msg"},
-    { M_OTHER, "Other"},
-    { M_FOLLOW_UP ,"follow up msg"},
-    { M_DELAY_RESP ,"delay resp msg"},
-    { M_PDELAY_RESP_FOLLOW_UP ,"pdelay resp fup msg"},
-    { M_ANNOUNCE ,"announce msg"},
-    { M_SIGNALLING ,"signalling msg"},
-    { M_MANAGEMENT ,"management msg"},
+    { M_SYNC, "sync msg"},
+    { M_DELAY_REQ, "delay req msg"},
+    { M_PDELAY_REQ, "peer delay req msg"},
+    { M_PDELAY_RESP, "peer delay resp msg"},
+    { M_FOLLOW_UP, "follow up msg"},
+    { M_DELAY_RESP, "delay resp msg"},
+    { M_PDELAY_RESP_FOLLOW_UP, "pdelay resp fup msg"},
+    { M_ANNOUNCE, "announce msg"},
+    { M_SIGNALLING, "signalling msg"},
+    { M_MANAGEMENT, "management msg"},
     { 0, NULL}
 };
 
+/* Values from IEEE1588-2008: 13.3.2.10 controlField (UInteger8) */
+/*
+ * The use of this field by the receiver is deprecated.
+ * NOTE-This field is provided for compatibility with hardware designed
+ * to conform to version 1 of this standard.
+ */
+#define C_SYNC              0x0
+#define C_DELAY_REQ         0x1
+#define C_FOLLOW_UP         0x2
+#define C_DELAY_RESP        0x3
+#define C_MANAGEMENT        0x4
+#define C_OTHER             0x5
+
+static const struct tok ptp_control_field[] = {
+    { C_SYNC, "Sync"},
+    { C_DELAY_REQ, "Delay_Req"},
+    { C_FOLLOW_UP, "Follow_Up"},
+    { C_DELAY_RESP, "Delay_Resp"},
+    { C_MANAGEMENT, "Management"},
+    { C_OTHER, "Other"},
+    { 0, NULL}
+};
 
 #define PTP_TRUE 1
 #define PTP_FALSE !PTP_TRUE
@@ -235,29 +257,23 @@
 #define PTP_SECURITY_MASK           0x4000
 #define PTP_FLAGS_UNKNOWN_MASK      0x18C0
 
-
 static const struct tok ptp_flag_values[] = {
-    { PTP_L161_MASK ,"l1 61"},
-    { PTP_L1_59_MASK ,"l1 59"},
-    { PTP_UTC_REASONABLE_MASK ,"utc reasonable"},
-    { PTP_TIMESCALE_MASK ,"timescale"},
-    { PTP_TIME_TRACABLE_MASK ,"time tracable"},
-    { PTP_FREQUENCY_TRACABLE_MASK ,"frequency tracable"},
-    { PTP_ALTERNATE_MASTER_MASK ,"alternate master"},
-    { PTP_TWO_STEP_MASK ,"two step"},
-    { PTP_UNICAST_MASK ,"unicast"},
-    { PTP_PROFILE_SPEC_1_MASK ,"profile specific 1"},
-    { PTP_PROFILE_SPEC_2_MASK ,"profile specific 2"},
-    { PTP_SECURITY_MASK ,"security mask"},
-    { PTP_FLAGS_UNKNOWN_MASK , "unknown"},
+    { PTP_L161_MASK, "l1 61"},
+    { PTP_L1_59_MASK, "l1 59"},
+    { PTP_UTC_REASONABLE_MASK, "utc reasonable"},
+    { PTP_TIMESCALE_MASK, "timescale"},
+    { PTP_TIME_TRACABLE_MASK, "time tracable"},
+    { PTP_FREQUENCY_TRACABLE_MASK, "frequency tracable"},
+    { PTP_ALTERNATE_MASTER_MASK, "alternate master"},
+    { PTP_TWO_STEP_MASK, "two step"},
+    { PTP_UNICAST_MASK, "unicast"},
+    { PTP_PROFILE_SPEC_1_MASK, "profile specific 1"},
+    { PTP_PROFILE_SPEC_2_MASK, "profile specific 2"},
+    { PTP_SECURITY_MASK, "security mask"},
+    { PTP_FLAGS_UNKNOWN_MASK,  "unknown"},
     {0, NULL}
 };
 
-#define PTP_PRINT_MSG_TYPE(e) \
-        { \
-            ND_PRINT("(%s)", tok2str(ptp_msg_type, "unknown", e)); \
-        }
-
 static const char *p_porigin_ts = "preciseOriginTimeStamp";
 static const char *p_origin_ts = "originTimeStamp";
 static const char *p_recv_ts = "receiveTimeStamp";
@@ -271,8 +287,6 @@
 #define PTP_6BYTES_LEN sizeof(uint32_t)+sizeof(uint16_t)
 #define PTP_UINT64_LEN sizeof(uint64_t)
 
-
-
 static void ptp_print_1(netdissect_options *ndo);
 static void ptp_print_2(netdissect_options *ndo, const u_char *bp, u_int len);
 
@@ -345,14 +359,16 @@
     u_int len = length;
     uint16_t msg_len, flags, port_id, seq_id;
     uint8_t foct, domain_no, msg_type, v1_compat, rsvd1, lm_int, control;
-    uint32_t ns_corr, sns_corr, rsvd2;
+    uint64_t ns_corr;
+    uint16_t sns_corr;
+    uint32_t rsvd2;
     uint64_t clk_id;
 
     foct = GET_U_1(bp);
     v1_compat = foct & PTP_V1_COMPAT;
     ND_PRINT(", v1 compat : %s", v1_compat?"yes":"no");
     msg_type = foct & PTP_MSG_TYPE_MASK;
-    ND_PRINT(", msg type : %s", tok2str(ptp_msg_type, "none", msg_type));
+    ND_PRINT(", msg type : %s", tok2str(ptp_msg_type, "Reserved", msg_type));
 
     /* msg length */
     len -= 2; bp += 2; msg_len = GET_BE_U_2(bp); ND_PRINT(", length : %u", msg_len);
@@ -367,14 +383,14 @@
     /* flags */
     len -= 2; bp += 2; flags = GET_BE_U_2(bp); ND_PRINT(", Flags [%s]", bittok2str(ptp_flag_values, "none", flags));
 
-    /* correction NS */
-    len -= 2; bp += 2; ns_corr = GET_BE_U_4(bp); ND_PRINT(", NS correction : %u", ns_corr);
+    /* correction NS (48 bits) */
+    len -= 2; bp += 2; ns_corr = GET_BE_U_6(bp); ND_PRINT(", NS correction : %"PRIu64, ns_corr);
 
-    /* correction sub NS */
-    len -= 4; bp += 4; sns_corr = GET_BE_U_4(bp); ND_PRINT(", sub NS correction : %u", sns_corr);
+    /* correction sub NS (16 bits) */
+    len -= 6; bp += 6; sns_corr = GET_BE_U_2(bp); ND_PRINT(", sub NS correction : %u", sns_corr);
 
     /* Reserved 2 */
-    len -= 4; bp += 4; rsvd2 = GET_BE_U_4(bp); ND_PRINT(", reserved2 : %u", rsvd2);
+    len -= 2; bp += 2; rsvd2 = GET_BE_U_4(bp); ND_PRINT(", reserved2 : %u", rsvd2);
 
     /* clock identity */
     len -= 4; bp += 4; clk_id = GET_BE_U_8(bp); ND_PRINT(", clock identity : 0x%"PRIx64, clk_id);
@@ -387,7 +403,7 @@
 
     /* control */
     len -= 2; bp += 2; control = GET_U_1(bp) ;
-    ND_PRINT(", control : %u (%s)", control, tok2str(ptp_msg_type, "none", control));
+    ND_PRINT(", control : %u (%s)", control, tok2str(ptp_control_field, "Reserved", control));
 
     /* log message interval */
     lm_int = GET_BE_U_2(bp) & PTP_LOGMSG_MASK; ND_PRINT(", log message interval : %u", lm_int); len -= 2; bp += 2;
@@ -431,14 +447,12 @@
  * PTP general message
  */
 void
-ptp_print(netdissect_options *ndo, const u_char *bp, u_int len)
+ptp_print(netdissect_options *ndo, const u_char *bp, u_int length)
 {
     u_int vers;
 
     ndo->ndo_protocol = "ptp";
-    if (len < PTP_HDR_LEN) {
-        goto trunc;
-    }
+    ND_LCHECK_U(length, PTP_HDR_LEN);
     vers = GET_BE_U_2(bp) & PTP_VERS_MASK;
     ND_PRINT("PTPv%u",vers);
     switch(vers) {
@@ -446,7 +460,7 @@
             ptp_print_1(ndo);
             break;
         case PTP_VER_2:
-            ptp_print_2(ndo, bp, len);
+            ptp_print_2(ndo, bp, length);
             break;
         default:
             //ND_PRINT("ERROR: unknown-version\n");
@@ -454,8 +468,8 @@
     }
     return;
 
-trunc:
-    nd_print_trunc(ndo);
+invalid:
+    nd_print_invalid(ndo);
 }
 
 static void
diff --git a/print-radius.c b/print-radius.c
index c87fa90..57d7e50 100644
--- a/print-radius.c
+++ b/print-radius.c
@@ -104,7 +104,7 @@
 #define PRINT_HEX(bytes_len, ptr_data)                               \
            while(bytes_len)                                          \
            {                                                         \
-              ND_PRINT("%02X", *ptr_data );                   \
+              ND_PRINT("%02X", GET_U_1(ptr_data));                   \
               ptr_data++;                                            \
               bytes_len--;                                           \
            }
@@ -1084,7 +1084,7 @@
    if (length > 2)
       memcpy(data2, data+2, length-2);
 
-   ND_PRINT("%s/%u", ip6addr_string(ndo, data2), GET_U_1(data + 1));
+   ND_PRINT("%s/%u", ip6addr_string(ndo, data2), GET_U_1(data + 1)); /* local buffer, not packet data; don't use GET_IP6ADDR_STRING() */
 
    if (GET_U_1(data + 1) > 8 * (length - 2))
       ND_PRINT(" (inconsistent prefix length)");
@@ -1339,11 +1339,9 @@
                return;
            }
            ND_PRINT("User_challenge (");
-           ND_TCHECK_8(data);
            len_data = 8;
            PRINT_HEX(len_data, data);
            ND_PRINT(") User_resp(");
-           ND_TCHECK_8(data);
            len_data = 8;
            PRINT_HEX(len_data, data);
            ND_PRINT(")");
@@ -1363,15 +1361,12 @@
            ND_PRINT(", Min password length: %u", GET_U_1(data));
            data++;
            ND_PRINT(", created at: ");
-           ND_TCHECK_4(data);
            len_data = 4;
            PRINT_HEX(len_data, data);
            ND_PRINT(", expires in: ");
-           ND_TCHECK_4(data);
            len_data = 4;
            PRINT_HEX(len_data, data);
            ND_PRINT(", Current Time: ");
-           ND_TCHECK_4(data);
            len_data = 4;
            PRINT_HEX(len_data, data);
         break;
@@ -1382,7 +1377,6 @@
                ND_PRINT("ERROR: length %u != 8", length);
                return;
            }
-           ND_TCHECK_8(data);
            len_data = 8;
            PRINT_HEX(len_data, data);
         break;
@@ -1399,9 +1393,6 @@
         break;
    }
    return;
-
-   trunc:
-     nd_print_trunc(ndo);
 }
 
 static void
diff --git a/print-realtek.c b/print-realtek.c
new file mode 100644
index 0000000..2aae3fe
--- /dev/null
+++ b/print-realtek.c
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 2007 - Andrey "nording" Chernyak <andrew@nording.ru>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that: (1) source code distributions
+ * retain the above copyright notice and this paragraph in its entirety, (2)
+ * distributions including binary code include the above copyright notice and
+ * this paragraph in its entirety in the documentation or other materials
+ * provided with the distribution, and (3) all advertising materials mentioning
+ * features or use of this software display the following acknowledgement:
+ * ``This product includes software developed by the University of California,
+ * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
+ * the University nor the names of its contributors may 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.
+ *
+ * Format and print Realtek Remote Control Protocol (RRCP), Realtek
+ * Loop Detection Protocol (RLDP), and Realtek Echo Protocol (REP) packets,
+ * as well as tag formats used by some Realtek switch chips to supply
+ * tag information to a host CPU for a switch.
+ */
+
+/* \summary: printer for various Realtek protocols */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "netdissect-stdinc.h"
+
+#include "netdissect.h"
+#include "addrtoname.h"
+#include "extract.h"
+
+#define RTL_PROTOCOL_OFFSET	0	/* Protocol and possibly other data - 1 byte */
+
+#define RTL_PROTOCOL_RRCP	0x01	/* RRCP */
+#define RTL_PROTOCOL_REP	0x02	/* REP */
+#define RTL_PROTOCOL_RLDP	0x03	/* RLDP */
+#define RTL_PROTOCOL_RLDP2	0x23	/* also RLDP */
+#define RTL_PROTOCOL_XXX_DSA	0x04	/* DSA protocol for some chip(s) */
+
+/*
+ * Values for the upper 4 bits of the protocol field, for
+ * protocols where the lower 4 bits contain protocol data.
+ *
+ * See section 8.10 "CPU Tag Function" of
+ *
+ *    http://realtek.info/pdf/rtl8306sd%28m%29_datasheet_1.1.pdf
+ *
+ * for the RTL8306 DSA protocol tag format.
+ */
+#define RTL_PROTOCOL_8306_DSA		0x90	/* RTL8306 DSA protocol */
+#define RTL_PROTOCOL_8366RB_DSA		0xA0	/* RTL8366RB DSA protocol */
+
+#define RRCP_OPCODE_ISREPLY_OFFSET	1	/* opcode and isreply flag - 1 byte */
+
+#define RRCP_OPCODE_MASK		0x7F	/* 0x00 = hello, 0x01 = get, 0x02 = set */
+#define RRCP_ISREPLY			0x80	/* 0 = request to switch, 0x80 = reply from switch */
+
+#define RRCP_OPCODE_HELLO		0x00
+#define RRCP_OPCODE_GET_CONFIGURATION	0x01
+#define RRCP_OPCODE_SET_CONFIGURATION	0x02
+
+#define RRCP_AUTHKEY_OFFSET		2	/* authorization key - 2 bytes, 0x2379 by default */
+
+/* most packets */
+#define RRCP_REG_ADDR_OFFSET		4	/* register address - 2 bytes */
+#define RRCP_REG_DATA_OFFSET		6	/* register data - 4 bytes */
+#define RRCP_COOKIE1_OFFSET		10	/* 4 bytes */
+#define RRCP_COOKIE2_OFFSET		14	/* 4 bytes */
+
+/* hello reply packets */
+#define RRCP_DOWNLINK_PORT_OFFSET	4	/* 1 byte */
+#define RRCP_UPLINK_PORT_OFFSET		5	/* 1 byte */
+#define RRCP_UPLINK_MAC_OFFSET		6	/* 6 byte MAC address */
+#define RRCP_CHIP_ID_OFFSET		12	/* 2 bytes */
+#define RRCP_VENDOR_ID_OFFSET		14	/* 4 bytes */
+
+static const struct tok opcode_values[] = {
+	{ RRCP_OPCODE_HELLO,             "hello" },
+	{ RRCP_OPCODE_GET_CONFIGURATION, "get" },
+	{ RRCP_OPCODE_SET_CONFIGURATION, "set" },
+	{ 0, NULL }
+};
+
+/*
+ * Print RRCP packets.
+ *
+ * See, for example, section 8.20 "Realtek Remote Control Protocol" of
+ *
+ *    http://realtek.info/pdf/rtl8324.pdf
+ *
+ * and section 7.22 "Realtek Remote Control Protocol" of
+ *
+ *    http://realtek.info/pdf/rtl8326.pdf
+ *
+ * and this page on the OpenRRCP Wiki:
+ *
+ *    http://openrrcp.org.ru/wiki/rrcp_protocol
+ *
+ * for information on RRCP.
+ */
+static void
+rrcp_print(netdissect_options *ndo,
+	  const u_char *cp)
+{
+	uint8_t rrcp_opcode;
+
+	ndo->ndo_protocol = "rrcp";
+	rrcp_opcode = GET_U_1((cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_OPCODE_MASK;
+	ND_PRINT("RRCP %s: %s",
+		((GET_U_1(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY) ? "reply" : "query",
+		tok2str(opcode_values,"unknown opcode (0x%02x)",rrcp_opcode));
+	if (rrcp_opcode==RRCP_OPCODE_GET_CONFIGURATION ||
+	    rrcp_opcode==RRCP_OPCODE_SET_CONFIGURATION){
+    	    ND_PRINT(" addr=0x%04x, data=0x%08x",
+		     GET_LE_U_2(cp + RRCP_REG_ADDR_OFFSET),
+		     GET_LE_U_4(cp + RRCP_REG_DATA_OFFSET));
+	}
+	ND_PRINT(", auth=0x%04x",
+	         GET_BE_U_2(cp + RRCP_AUTHKEY_OFFSET));
+	if (rrcp_opcode==RRCP_OPCODE_HELLO &&
+	     ((GET_U_1(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY)){
+	    ND_PRINT(" downlink_port=%u, uplink_port=%u, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ",
+		     GET_U_1(cp + RRCP_DOWNLINK_PORT_OFFSET),
+		     GET_U_1(cp + RRCP_UPLINK_PORT_OFFSET),
+		     GET_ETHERADDR_STRING(cp + RRCP_UPLINK_MAC_OFFSET),
+		     GET_BE_U_4(cp + RRCP_VENDOR_ID_OFFSET),
+		     GET_BE_U_2(cp + RRCP_CHIP_ID_OFFSET));
+	}else if (rrcp_opcode==RRCP_OPCODE_GET_CONFIGURATION ||
+	          rrcp_opcode==RRCP_OPCODE_SET_CONFIGURATION){
+	    ND_PRINT(", cookie=0x%08x%08x ",
+		    GET_BE_U_4(cp + RRCP_COOKIE2_OFFSET),
+		    GET_BE_U_4(cp + RRCP_COOKIE1_OFFSET));
+	}
+}
+
+/*
+ * Print Realtek packets.
+ *
+ * See, for example, section 8.22 "Realtek Echo Protocol" of
+ *
+ *    http://realtek.info/pdf/rtl8324.pdf
+ *
+ * and section 7.24 "Realtek Echo Protocol" of
+ *
+ *    http://realtek.info/pdf/rtl8326.pdf
+ *
+ * for information on REP.
+ *
+ * See section 8.21 "Network Loop Connection Fault Detection" of
+ *
+ *    http://realtek.info/pdf/rtl8324.pdf
+ *
+ * and section 7.23 "Network Loop Connection Fault Detection" of
+ *
+ *    http://realtek.info/pdf/rtl8326.pdf
+ *
+ * for information on RLDP.
+ *
+ * See also section 7.3.8 "Loop Detection" of
+ *
+ *    http://www.ibselectronics.com/ibsstore/datasheet/RTL8306E-CG.pdf
+ *
+ * (revision 1.1 of the RTL8306E-CG datasheet), which describes a loop
+ * detection protocol for which the payload has a 16-bit (presumably
+ * big-endian) field containing the value 0x0300, followed by what is
+ * presumably a 16-bit big-endian field the upper 12 bits of which are 0
+ * and the lower 4 bits of which are a TTL value, followed by zeroes to
+ * pad the packet out to the minimum Ethernet packet size.
+ *
+ * See also section 7.3.13 "Loop Detection" of
+ *
+ *    http://realtek.info/pdf/rtl8305sb.pdf
+ *
+ * (revision 1.3 of the RTL8305SB datasheet), which describes a similar
+ * loop detection protocol that lacks the TTL field - all the bytes
+ * after 0x0300 are zero.
+ *
+ * See also section 7.3.7 "Loop Detection" of
+ *
+ *    https://datasheet.lcsc.com/lcsc/1810221720_Realtek-Semicon-RTL8305NB-CG_C52146.pdf
+ *
+ * (revision 1.0 of the RTL8305NB-CT datasheet), which describes a loop
+ * detection protocol similar to the one from the RTL8306E-CG datasheet,
+ * except that the first value is 0x2300, not 0x0300.
+ *
+ * And, on top of all that, I've seen packets where the first octet of
+ * the packet is 0x23, and that's followed by 6 unknown octets (a MAC
+ * address of some sort?  It differs from packet to packet in a capture),
+ * followed by the MAC address that appears in the source address in the
+ * Ethernet header (possibly the originator, in case the packet is forwarded,
+ * in which case the forwarded packets won't have the source address from
+ * the Ethernet header there), followed by unknown stuff (0x0d followed by
+ * zeroes for all such packets in one capture, 0x01 followed by zeroes for
+ * all such packets in another capture, 0x07 followed by 0x20's for all
+ * such packets in yet another capture).  The OpenRRCP issue at
+ * https://github.com/illarionov/OpenRRCP/issues/3 shows a capture
+ * similar to the last of those, but with 0x02 instead of 0x07.  Or is that
+ * just crap in the buffer in which the chip constructed the packet, left
+ * over from something else?
+ */
+void
+rtl_print(netdissect_options *ndo,
+	  const u_char *cp,
+	  u_int length _U_,
+	  const struct lladdr_info *src,
+	  const struct lladdr_info *dst)
+{
+	uint8_t rtl_proto;
+
+	ndo->ndo_protocol = "rtl";
+
+	if (src != NULL && dst != NULL) {
+		ND_PRINT("%s > %s, ",
+			(src->addr_string)(ndo, src->addr),
+			(dst->addr_string)(ndo, dst->addr));
+	}
+
+	rtl_proto = GET_U_1(cp + RTL_PROTOCOL_OFFSET);
+
+	if (rtl_proto == RTL_PROTOCOL_RRCP)
+		rrcp_print(ndo, cp);
+	else if (rtl_proto == RTL_PROTOCOL_REP) {
+		/*
+		 * REP packets have no payload.
+		 */
+		ND_PRINT("REP");
+	} else if (rtl_proto == RTL_PROTOCOL_RLDP ||
+	           rtl_proto == RTL_PROTOCOL_RLDP2) {
+		/*
+		 * RLDP packets have no payload.
+		 * (XXX - except when they do?  See above.)
+		 */
+		ND_PRINT("RLDP");
+	} else if (rtl_proto == RTL_PROTOCOL_XXX_DSA)
+		ND_PRINT("Realtek 8-byte DSA tag");
+	else if ((rtl_proto & 0xF0) == RTL_PROTOCOL_8306_DSA)
+		ND_PRINT("Realtek RTL8306 4-byte DSA tag");
+	else if ((rtl_proto & 0xF0) == RTL_PROTOCOL_8366RB_DSA)
+		ND_PRINT("Realtek RTL8366RB 4-byte DSA tag");
+	else
+		ND_PRINT("Realtek unknown type 0x%02x", rtl_proto);
+}
diff --git a/print-resp.c b/print-resp.c
index 00a6e25..37a386e 100644
--- a/print-resp.c
+++ b/print-resp.c
@@ -209,14 +209,12 @@
 void
 resp_print(netdissect_options *ndo, const u_char *bp, u_int length)
 {
-    int ret_len = 0, length_cur = length;
+    int ret_len = 0;
 
     ndo->ndo_protocol = "resp";
-    if(!bp || length <= 0)
-        return;
 
     ND_PRINT(": RESP");
-    while (length_cur > 0) {
+    while (length > 0) {
         /*
          * This block supports redis pipelining.
          * For example, multiple operations can be pipelined within the same string:
@@ -226,10 +224,10 @@
          * In order to handle this case, we must try and parse 'bp' until
          * 'length' bytes have been processed or we reach a trunc condition.
          */
-        ret_len = resp_parse(ndo, bp, length_cur);
+        ret_len = resp_parse(ndo, bp, length);
         TEST_RET_LEN_NORETURN(ret_len);
         bp += ret_len;
-        length_cur -= ret_len;
+        length -= ret_len;
     }
 
     return;
diff --git a/print-rrcp.c b/print-rrcp.c
deleted file mode 100644
index 9803f75..0000000
--- a/print-rrcp.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2007 - Andrey "nording" Chernyak <andrew@nording.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may 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.
- *
- * Format and print Realtek Remote Control Protocol (RRCP)
- * and Realtek Echo Protocol (RRCP-REP) packets.
- */
-
-/* \summary: Realtek Remote Control Protocol (RRCP) printer */
-
-/*
- * See, for example, section 8.20 "Realtek Remote Control Protocol" of
- *
- *    http://realtek.info/pdf/rtl8324.pdf
- *
- * and section 7.22 "Realtek Remote Control Protocol" of
- *
- *    http://realtek.info/pdf/rtl8326.pdf
- *
- * and this page on the OpenRRCP Wiki:
- *
- *    http://openrrcp.org.ru/wiki/rrcp_protocol
- *
- * NOTE: none of them indicate the byte order of multi-byte fields in any
- * obvious fashion.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "netdissect-stdinc.h"
-
-#include "netdissect.h"
-#include "addrtoname.h"
-#include "extract.h"
-
-#define RRCP_OPCODE_MASK	0x7F	/* 0x00 = hello, 0x01 = get, 0x02 = set */
-#define RRCP_ISREPLY		0x80	/* 0 = request to switch, 0x80 = reply from switch */
-
-#define RRCP_PROTO_OFFSET		0	/* proto - 1 byte, must be 1 */
-#define RRCP_OPCODE_ISREPLY_OFFSET	1	/* opcode and isreply flag - 1 byte */
-#define RRCP_AUTHKEY_OFFSET		2	/* authorization key - 2 bytes, 0x2379 by default */
-
-/* most packets */
-#define RRCP_REG_ADDR_OFFSET		4	/* register address - 2 bytes */
-#define RRCP_REG_DATA_OFFSET		6	/* register data - 4 bytes */
-#define RRCP_COOKIE1_OFFSET		10	/* 4 bytes */
-#define RRCP_COOKIE2_OFFSET		14	/* 4 bytes */
-
-/* hello reply packets */
-#define RRCP_DOWNLINK_PORT_OFFSET	4	/* 1 byte */
-#define RRCP_UPLINK_PORT_OFFSET		5	/* 1 byte */
-#define RRCP_UPLINK_MAC_OFFSET		6	/* 6 byte MAC address */
-#define RRCP_CHIP_ID_OFFSET		12	/* 2 bytes */
-#define RRCP_VENDOR_ID_OFFSET		14	/* 4 bytes */
-
-static const struct tok proto_values[] = {
-	{ 1, "RRCP" },
-	{ 2, "RRCP-REP" },
-	{ 0, NULL }
-};
-
-static const struct tok opcode_values[] = {
-	{ 0, "hello" },
-	{ 1, "get" },
-	{ 2, "set" },
-	{ 0, NULL }
-};
-
-/*
- * Print RRCP requests
- */
-void
-rrcp_print(netdissect_options *ndo,
-	  const u_char *cp,
-	  u_int length _U_,
-	  const struct lladdr_info *src,
-	  const struct lladdr_info *dst)
-{
-	uint8_t rrcp_proto;
-	uint8_t rrcp_opcode;
-
-	ndo->ndo_protocol = "rrcp";
-	rrcp_proto = GET_U_1(cp + RRCP_PROTO_OFFSET);
-	rrcp_opcode = GET_U_1((cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_OPCODE_MASK;
-	if (src != NULL && dst != NULL) {
-		ND_PRINT("%s > %s, ",
-			(src->addr_string)(ndo, src->addr),
-			(dst->addr_string)(ndo, dst->addr));
-	}
-	ND_PRINT("%s %s",
-		tok2str(proto_values,"RRCP-0x%02x",rrcp_proto),
-		((GET_U_1(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY) ? "reply" : "query");
-	if (rrcp_proto==1){
-    	    ND_PRINT(": %s",
-		     tok2str(opcode_values,"unknown opcode (0x%02x)",rrcp_opcode));
-	}
-	if (rrcp_opcode==1 || rrcp_opcode==2){
-    	    ND_PRINT(" addr=0x%04x, data=0x%08x",
-		     GET_LE_U_2(cp + RRCP_REG_ADDR_OFFSET),
-		     GET_LE_U_4(cp + RRCP_REG_DATA_OFFSET));
-	}
-	if (rrcp_proto==1){
-    	    ND_PRINT(", auth=0x%04x",
-		  GET_BE_U_2(cp + RRCP_AUTHKEY_OFFSET));
-	}
-	if (rrcp_proto==1 && rrcp_opcode==0 &&
-	     ((GET_U_1(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY)){
-	    ND_PRINT(" downlink_port=%u, uplink_port=%u, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ",
-		     GET_U_1(cp + RRCP_DOWNLINK_PORT_OFFSET),
-		     GET_U_1(cp + RRCP_UPLINK_PORT_OFFSET),
-		     GET_ETHERADDR_STRING(cp + RRCP_UPLINK_MAC_OFFSET),
-		     GET_BE_U_4(cp + RRCP_VENDOR_ID_OFFSET),
-		     GET_BE_U_2(cp + RRCP_CHIP_ID_OFFSET));
-	}else if (rrcp_opcode==1 || rrcp_opcode==2 || rrcp_proto==2){
-	    ND_PRINT(", cookie=0x%08x%08x ",
-		    GET_BE_U_4(cp + RRCP_COOKIE2_OFFSET),
-		    GET_BE_U_4(cp + RRCP_COOKIE1_OFFSET));
-	}
-}
diff --git a/print-rx.c b/print-rx.c
index b8ee5a8..3f7589e 100644
--- a/print-rx.c
+++ b/print-rx.c
@@ -499,7 +499,7 @@
 
 static void fs_print(netdissect_options *, const u_char *, u_int);
 static void fs_reply_print(netdissect_options *, const u_char *, u_int, uint32_t);
-static void acl_print(netdissect_options *, u_char *, u_char *);
+static void acl_print(netdissect_options *, u_char *, const u_char *);
 static void cb_print(netdissect_options *, const u_char *, u_int);
 static void cb_reply_print(netdissect_options *, const u_char *, u_int, uint32_t);
 static void prot_print(netdissect_options *, const u_char *, u_int);
@@ -1140,11 +1140,12 @@
  * representing a logical OR of all the ACL permission bits
  */
 
+#define XSTRINGIFY(x) #x
 #define NUMSTRINGIFY(x)	XSTRINGIFY(x)
 
 static void
 acl_print(netdissect_options *ndo,
-          u_char *s, u_char *end)
+          u_char *s, const u_char *end)
 {
 	int pos, neg, acl;
 	int n, i;
diff --git a/print-sflow.c b/print-sflow.c
index 51325e2..530219e 100644
--- a/print-sflow.c
+++ b/print-sflow.c
@@ -65,6 +65,16 @@
     nd_uint32_t	samples;
 };
 
+struct sflow_v6_datagram_t {
+    nd_uint32_t version;
+    nd_uint32_t ip_version;
+    nd_ipv6     agent;
+    nd_uint32_t	agent_id;
+    nd_uint32_t	seqnum;
+    nd_uint32_t	uptime;
+    nd_uint32_t	samples;
+};
+
 struct sflow_sample_header {
     nd_uint32_t	format;
     nd_uint32_t	len;
@@ -806,18 +816,24 @@
             const u_char *pptr, u_int len)
 {
     const struct sflow_datagram_t *sflow_datagram;
+    const struct sflow_v6_datagram_t *sflow_v6_datagram;
     const struct sflow_sample_header *sflow_sample;
 
     const u_char *tptr;
     u_int tlen;
     uint32_t sflow_sample_type, sflow_sample_len;
     uint32_t nsamples;
+    uint32_t ip_version;
 
     ndo->ndo_protocol = "sflow";
     tptr = pptr;
     tlen = len;
     sflow_datagram = (const struct sflow_datagram_t *)pptr;
-    if (len < sizeof(struct sflow_datagram_t)) {
+    sflow_v6_datagram = (const struct sflow_v6_datagram_t *)pptr;
+    ip_version = GET_BE_U_4(sflow_datagram->ip_version);
+
+    if ((len < sizeof(struct sflow_datagram_t) && (ip_version == 1)) ||
+        (len < sizeof(struct sflow_v6_datagram_t) && (ip_version == 2))) {
         ND_PRINT("sFlowv%u", GET_BE_U_4(sflow_datagram->version));
         ND_PRINT(" [length %u < %zu]", len, sizeof(struct sflow_datagram_t));
         nd_print_invalid(ndo);
@@ -837,29 +853,49 @@
     if (ndo->ndo_vflag < 1) {
         ND_PRINT("sFlowv%u, %s agent %s, agent-id %u, length %u",
                GET_BE_U_4(sflow_datagram->version),
-               GET_BE_U_4(sflow_datagram->ip_version) == 1 ? "IPv4" : "IPv6",
-               GET_IPADDR_STRING(sflow_datagram->agent),
-               GET_BE_U_4(sflow_datagram->agent_id),
+               ip_version == 1 ? "IPv4" : "IPv6",
+               ip_version == 1 ? GET_IPADDR_STRING(sflow_datagram->agent) :
+                                 GET_IP6ADDR_STRING( sflow_v6_datagram->agent),
+               ip_version == 1 ? GET_BE_U_4(sflow_datagram->agent_id) :
+                                 GET_BE_U_4(sflow_v6_datagram->agent_id),
                len);
         return;
     }
 
     /* ok they seem to want to know everything - lets fully decode it */
-    nsamples=GET_BE_U_4(sflow_datagram->samples);
-    ND_PRINT("sFlowv%u, %s agent %s, agent-id %u, seqnum %u, uptime %u, samples %u, length %u",
-           GET_BE_U_4(sflow_datagram->version),
-           GET_BE_U_4(sflow_datagram->ip_version) == 1 ? "IPv4" : "IPv6",
-           GET_IPADDR_STRING(sflow_datagram->agent),
-           GET_BE_U_4(sflow_datagram->agent_id),
-           GET_BE_U_4(sflow_datagram->seqnum),
-           GET_BE_U_4(sflow_datagram->uptime),
-           nsamples,
-           len);
+    if (ip_version == 1) {
+        nsamples=GET_BE_U_4(sflow_datagram->samples);
+        ND_PRINT("sFlowv%u, %s agent %s, agent-id %u, seqnum %u, uptime %u, samples %u, length %u",
+               GET_BE_U_4(sflow_datagram->version),
+               "IPv4",
+               GET_IPADDR_STRING(sflow_datagram->agent),
+               GET_BE_U_4(sflow_datagram->agent_id),
+               GET_BE_U_4(sflow_datagram->seqnum),
+               GET_BE_U_4(sflow_datagram->uptime),
+               nsamples,
+               len);
 
-    /* skip Common header */
-    tptr += sizeof(struct sflow_datagram_t);
-    tlen -= sizeof(struct sflow_datagram_t);
+        /* skip Common header */
+        ND_LCHECK_ZU(tlen, sizeof(struct sflow_datagram_t));
+        tptr += sizeof(struct sflow_datagram_t);
+        tlen -= sizeof(struct sflow_datagram_t);
+    } else {
+        nsamples=GET_BE_U_4(sflow_v6_datagram->samples);
+        ND_PRINT("sFlowv%u, %s agent %s, agent-id %u, seqnum %u, uptime %u, samples %u, length %u",
+               GET_BE_U_4(sflow_v6_datagram->version),
+               "IPv6",
+               GET_IP6ADDR_STRING(sflow_v6_datagram->agent),
+               GET_BE_U_4(sflow_v6_datagram->agent_id),
+               GET_BE_U_4(sflow_v6_datagram->seqnum),
+               GET_BE_U_4(sflow_v6_datagram->uptime),
+               nsamples,
+               len);
 
+        /* skip Common header */
+        ND_LCHECK_ZU(tlen, sizeof(struct sflow_v6_datagram_t));
+        tptr += sizeof(struct sflow_v6_datagram_t);
+        tlen -= sizeof(struct sflow_v6_datagram_t);
+    }
     while (nsamples > 0 && tlen > 0) {
         sflow_sample = (const struct sflow_sample_header *)tptr;
 
diff --git a/print-sll.c b/print-sll.c
index 19d2973..eb8d620 100644
--- a/print-sll.c
+++ b/print-sll.c
@@ -26,6 +26,11 @@
 #endif
 
 #ifdef HAVE_NET_IF_H
+/*
+ * Include diag-control.h before <net/if.h>, which too defines a macro
+ * named ND_UNREACHABLE.
+ */
+#include "diag-control.h"
 #include <net/if.h>
 #endif
 
diff --git a/print-snmp.c b/print-snmp.c
index a38fee2..6aae34c 100644
--- a/print-snmp.c
+++ b/print-snmp.c
@@ -1217,7 +1217,7 @@
               u_short pduid, const u_char *np, u_int length)
 {
 	struct be elem;
-	int count = 0, ind;
+	int count = 0;
 #ifdef USE_LIBSMI
 	SmiNode *smiNode = NULL;
 #endif
@@ -1237,7 +1237,7 @@
 	length = elem.asnlen;
 	np = (const u_char *)elem.data.raw;
 
-	for (ind = 1; length > 0; ind++) {
+	while (length) {
 		const u_char *vbend;
 		u_int vblength;
 
diff --git a/print-stp.c b/print-stp.c
index 5030b21..a4d49c4 100644
--- a/print-stp.c
+++ b/print-stp.c
@@ -144,7 +144,7 @@
  *
  * 2 -  bytes Protocol Id
  * 1 -  byte  Protocol Ver.
- * 1 -  byte  BPDU tye
+ * 1 -  byte  BPDU type
  * 1 -  byte  Flags
  * 8 -  bytes CIST Root Identifier
  * 4 -  bytes CIST External Path Cost
diff --git a/print-tcp.c b/print-tcp.c
index a2238a8..72964eb 100644
--- a/print-tcp.c
+++ b/print-tcp.c
@@ -43,6 +43,8 @@
 #include "addrtoname.h"
 #include "extract.h"
 
+#include "diag-control.h"
+
 #include "tcp.h"
 
 #include "ip.h"
@@ -698,7 +700,7 @@
          */
         ND_PRINT(", length %u", length);
 
-        if (length <= 0)
+        if (length == 0)
                 return;
 
         /*
@@ -743,8 +745,7 @@
                 smtp_print(ndo, bp, length);
         } else if (IS_SRC_OR_DST_PORT(WHOIS_PORT)) {
                 ND_PRINT(": ");
-                ndo->ndo_protocol = "whois";	/* needed by txtproto_print() */
-                txtproto_print(ndo, bp, length, NULL, 0); /* RFC 3912 */
+                whois_print(ndo, bp, length);
         } else if (IS_SRC_OR_DST_PORT(BGP_PORT))
                 bgp_print(ndo, bp, length);
         else if (IS_SRC_OR_DST_PORT(PPTP_PORT))
@@ -887,7 +888,7 @@
 }
 
 #ifdef HAVE_LIBCRYPTO
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 static int
 tcp_verify_signature(netdissect_options *ndo,
                      const struct ip *ip, const struct tcphdr *tp,
@@ -967,5 +968,5 @@
         else
                 return (SIGNATURE_INVALID);
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 #endif /* HAVE_LIBCRYPTO */
diff --git a/print-vqp.c b/print-vqp.c
index f87898e..a26cd0e 100644
--- a/print-vqp.c
+++ b/print-vqp.c
@@ -132,7 +132,7 @@
         ND_PRINT("VQPv%u %s Message, error-code %s (%u), length %u",
                version,
                tok2str(vqp_msg_type_values, "unknown (%u)",GET_U_1(vqp_common_header->msg_type)),
-               tok2str(vqp_error_code_values, "unknown (%u)",GET_U_1(vqp_common_header->error_code)),
+               tok2str(vqp_error_code_values, "unknown", GET_U_1(vqp_common_header->error_code)),
                GET_U_1(vqp_common_header->error_code),
                len);
         return;
@@ -143,7 +143,7 @@
     ND_PRINT("\n\tVQPv%u, %s Message, error-code %s (%u), seq 0x%08x, items %u, length %u",
            version,
 	   tok2str(vqp_msg_type_values, "unknown (%u)",GET_U_1(vqp_common_header->msg_type)),
-	   tok2str(vqp_error_code_values, "unknown (%u)",GET_U_1(vqp_common_header->error_code)),
+	   tok2str(vqp_error_code_values, "unknown", GET_U_1(vqp_common_header->error_code)),
 	   GET_U_1(vqp_common_header->error_code),
 	   GET_BE_U_4(vqp_common_header->sequence),
 	   nitems,
diff --git a/print-vrrp.c b/print-vrrp.c
index ee97974..7ac5955 100644
--- a/print-vrrp.c
+++ b/print-vrrp.c
@@ -105,16 +105,18 @@
 void
 vrrp_print(netdissect_options *ndo,
            const u_char *bp, u_int len,
-           const u_char *bp2, int ttl)
+           const u_char *bp2, int ttl,
+	   int ver)
 {
 	int version, type, auth_type = VRRP_AUTH_NONE; /* keep compiler happy */
 	const char *type_s;
 
 	ndo->ndo_protocol = "vrrp";
+	nd_print_protocol_caps(ndo);
 	version = (GET_U_1(bp) & 0xf0) >> 4;
 	type = GET_U_1(bp) & 0x0f;
 	type_s = tok2str(type2str, "unknown type (%u)", type);
-	ND_PRINT("VRRPv%u, %s", version, type_s);
+	ND_PRINT("v%u, %s", version, type_s);
 	if (ttl != 255)
 		ND_PRINT(", (ttl %u)", ttl);
 	if (version < 2 || version > 3 || type != VRRP_TYPE_ADVERTISEMENT)
@@ -146,8 +148,14 @@
 		}
 
 		if (version == 3 && ND_TTEST_LEN(bp, len)) {
-			uint16_t cksum = nextproto4_cksum(ndo, (const struct ip *)bp2, bp,
-				len, len, IPPROTO_VRRP);
+			uint16_t cksum;
+
+			if (ver == 4)
+				cksum = nextproto4_cksum(ndo, (const struct ip *)bp2, bp,
+					len, len, IPPROTO_VRRP);
+			else
+				cksum = nextproto6_cksum(ndo, (const struct ip6_hdr *)bp2, bp,
+					len, len, IPPROTO_VRRP);
 			if (cksum)
 				ND_PRINT(", (bad vrrp cksum %x)",
 					GET_BE_U_2(bp + 6));
@@ -160,9 +168,14 @@
 		c = ' ';
 		bp += 8;
 		for (i = 0; i < naddrs; i++) {
-			ND_PRINT("%c%s", c, GET_IPADDR_STRING(bp));
+			if (ver == 4) {
+				ND_PRINT("%c%s", c, GET_IPADDR_STRING(bp));
+				bp += 4;
+			} else {
+				ND_PRINT("%c%s", c, GET_IP6ADDR_STRING(bp));
+				bp += 16;
+			}
 			c = ',';
-			bp += 4;
 		}
 		if (version == 2 && auth_type == VRRP_AUTH_SIMPLE) { /* simple text password */
 			ND_PRINT(" auth \"");
diff --git a/print-whois.c b/print-whois.c
new file mode 100644
index 0000000..30c254a
--- /dev/null
+++ b/print-whois.c
@@ -0,0 +1,31 @@
+/*
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that: (1) source code
+ * distributions retain the above copyright notice and this paragraph
+ * in its entirety, and (2) distributions including binary code include
+ * the above copyright notice and this paragraph in its entirety in
+ * the documentation or other materials provided with the distribution.
+ * 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: WHOIS Protocol printer */
+
+/* RFC 3912 */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "netdissect-stdinc.h"
+
+#include "netdissect.h"
+
+void
+whois_print(netdissect_options *ndo, const u_char *pptr, u_int len)
+{
+	ndo->ndo_protocol = "whois";
+	txtproto_print(ndo, pptr, len, NULL, 0);
+}
diff --git a/print-zep.c b/print-zep.c
index e10ecb3..fd74368 100644
--- a/print-zep.c
+++ b/print-zep.c
@@ -123,6 +123,7 @@
 
 	if (version == 1) {
 		/* ZEP v1 packet. */
+		ND_LCHECK_U(len, 16);
 		ND_PRINT("Channel ID %u, Device ID 0x%04x, ",
 			 GET_U_1(bp + 3), GET_BE_U_2(bp + 4));
 		if (GET_U_1(bp + 6))
@@ -138,6 +139,7 @@
 		/* ZEP v2 packet. */
 		if (GET_U_1(bp + 3) == 2) {
 			/* ZEP v2 ack. */
+			ND_LCHECK_U(len, 8);
 			seq_no = GET_BE_U_4(bp + 4);
 			ND_PRINT("ACK, seq# = %u", seq_no);
 			inner_len = 0;
@@ -145,6 +147,7 @@
 			len -= 8;
 		} else {
 			/* ZEP v2 data, or some other. */
+			ND_LCHECK_U(len, 32);
 			ND_PRINT("Type %u, Channel ID %u, Device ID 0x%04x, ",
 				 GET_U_1(bp + 3), GET_U_1(bp + 4),
 				 GET_BE_U_2(bp + 5));
@@ -175,4 +178,7 @@
 
 	if (!ndo->ndo_suppress_default_print)
 		ND_DEFAULTPRINT(bp, len);
+	return;
+invalid:
+	nd_print_invalid(ndo);
 }
diff --git a/print-zephyr.c b/print-zephyr.c
index aa552aa..11e1e59 100644
--- a/print-zephyr.c
+++ b/print-zephyr.c
@@ -139,27 +139,30 @@
     return z_buf;
 }
 
+#define ZEPHYR_PRINT(str1,str2) \
+{ ND_PRINT("%s", (str1)); fn_print_str(ndo, (const u_char *)(str2)); }
+
 void
 zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
 {
     struct z_packet z = {
-        NULL,	/* version */
-        0,	/* numfields */
-        0,	/* kind */
-        NULL,	/* uid */
-        0,	/* port */
-        0,	/* auth */
-        0,	/* authlen */
-        NULL,	/* authdata */
-        NULL,	/* class */
-        NULL,	/* inst */
-        NULL,	/* opcode */
-        NULL,	/* sender */
-        NULL,	/* recipient */
-        NULL,	/* format */
-        0,	/* cksum */
-        0,	/* multi */
-        NULL	/* multi_uid */
+	NULL,	/* version */
+	0,	/* numfields */
+	0,	/* kind */
+	NULL,	/* uid */
+	0,	/* port */
+	0,	/* auth */
+	0,	/* authlen */
+	NULL,	/* authdata */
+	NULL,	/* class */
+	NULL,	/* inst */
+	NULL,	/* opcode */
+	NULL,	/* sender */
+	NULL,	/* recipient */
+	NULL,	/* format */
+	0,	/* cksum */
+	0,	/* multi */
+	NULL	/* multi_uid */
     };
     const char *parse = (const char *) cp;
     int parselen = length;
@@ -183,7 +186,7 @@
 
     PARSE_FIELD_STR(z.version);
     if (lose)
-        goto invalid;
+	goto invalid;
 
     if (strncmp(z.version, "ZEPH", 4))
 	return;
@@ -206,11 +209,11 @@
     PARSE_FIELD_STR(z.multi_uid);
 
     if (lose)
-        goto invalid;
+	goto invalid;
 
     ND_PRINT(" zephyr");
     if (strncmp(z.version+4, "0.2", 3)) {
-	ND_PRINT(" v%s", z.version+4);
+	ZEPHYR_PRINT(" v", z.version+4)
 	return;
     }
 
@@ -220,9 +223,9 @@
 	const char *ackdata = NULL;
 	PARSE_FIELD_STR(ackdata);
 	if (!lose && strcmp(ackdata, "SENT"))
-	    ND_PRINT("/%s", str_to_lower(ackdata));
+	    ZEPHYR_PRINT("/", str_to_lower(ackdata))
     }
-    if (*z.sender) ND_PRINT(" %s", z.sender);
+    if (*z.sender) ZEPHYR_PRINT(" ", z.sender);
 
     if (!strcmp(z.class, "USER_LOCATE")) {
 	if (!strcmp(z.opcode, "USER_HIDE"))
@@ -230,12 +233,12 @@
 	else if (!strcmp(z.opcode, "USER_UNHIDE"))
 	    ND_PRINT(" unhide");
 	else
-	    ND_PRINT(" locate %s", z.inst);
+	    ZEPHYR_PRINT(" locate ", z.inst);
 	return;
     }
 
     if (!strcmp(z.class, "ZEPHYR_ADMIN")) {
-	ND_PRINT(" zephyr-admin %s", str_to_lower(z.opcode));
+	ZEPHYR_PRINT(" zephyr-admin ", str_to_lower(z.opcode));
 	return;
     }
 
@@ -254,7 +257,7 @@
 		    PARSE_FIELD_STR(c);
 		    PARSE_FIELD_STR(i);
 		    PARSE_FIELD_STR(r);
-		    if (!lose) ND_PRINT(" %s", z_triple(c, i, r));
+		    if (!lose) ZEPHYR_PRINT(" ", z_triple(c, i, r));
 		}
 		return;
 	    }
@@ -274,12 +277,12 @@
 		return;
 	    }
 
-	    ND_PRINT(" %s", str_to_lower(z.opcode));
+	    ZEPHYR_PRINT(" ", str_to_lower(z.opcode));
 	    return;
 	}
 
 	if (!strcmp(z.inst, "HM")) {
-	    ND_PRINT(" %s", str_to_lower(z.opcode));
+	    ZEPHYR_PRINT(" ", str_to_lower(z.opcode));
 	    return;
 	}
 
@@ -297,8 +300,8 @@
     }
 
     if (!strcmp(z.class, "HM_CTL")) {
-	ND_PRINT(" hm_ctl %s", str_to_lower(z.inst));
-	ND_PRINT(" %s", str_to_lower(z.opcode));
+	ZEPHYR_PRINT(" hm_ctl ", str_to_lower(z.inst));
+	ZEPHYR_PRINT(" ", str_to_lower(z.opcode));
 	return;
     }
 
@@ -310,8 +313,8 @@
     }
 
     if (!strcmp(z.class, "WG_CTL")) {
-	ND_PRINT(" wg_ctl %s", str_to_lower(z.inst));
-	ND_PRINT(" %s", str_to_lower(z.opcode));
+	ZEPHYR_PRINT(" wg_ctl ", str_to_lower(z.inst));
+	ZEPHYR_PRINT(" ", str_to_lower(z.opcode));
 	return;
     }
 
@@ -327,7 +330,7 @@
 	    !strcmp(z.opcode, "REALM-ANNOUNCED") ||
 	    !strcmp(z.opcode, "NET-VISIBLE") ||
 	    !strcmp(z.opcode, "NET-ANNOUNCED")) {
-	    ND_PRINT(" set-exposure %s", str_to_lower(z.opcode));
+	    ZEPHYR_PRINT(" set-exposure ", str_to_lower(z.opcode));
 	    return;
 	}
     }
@@ -335,9 +338,9 @@
     if (!*z.recipient)
 	z.recipient = "*";
 
-    ND_PRINT(" to %s", z_triple(z.class, z.inst, z.recipient));
+    ZEPHYR_PRINT(" to ", z_triple(z.class, z.inst, z.recipient));
     if (*z.opcode)
-	ND_PRINT(" op %s", z.opcode);
+	ZEPHYR_PRINT(" op ", z.opcode);
     return;
 
 invalid:
diff --git a/print.c b/print.c
index bfc35d9..9c0ab86 100644
--- a/print.c
+++ b/print.c
@@ -185,7 +185,7 @@
 #ifdef DLT_LOOP
 	{ null_if_print,	DLT_LOOP },
 #endif
-#if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H)
+#ifdef DLT_PFLOG
 	{ pflog_if_print,	DLT_PFLOG },
 #endif
 #ifdef DLT_PKTAP
@@ -404,6 +404,7 @@
 	 * of the netdissect_options structure.
 	 */
 	ndo->ndo_snapend = sp + h->caplen;
+	ndo->ndo_packetp = sp;
 
 	ndo->ndo_protocol = "";
 	ndo->ndo_ll_hdr_len = 0;
diff --git a/signature.c b/signature.c
index ca3aec9..77d6e81 100644
--- a/signature.c
+++ b/signature.c
@@ -26,6 +26,7 @@
 
 #include "netdissect.h"
 #include "signature.h"
+#include "diag-control.h"
 
 #ifdef HAVE_LIBCRYPTO
 #include <openssl/md5.h>
@@ -45,7 +46,7 @@
  * Compute a HMAC MD5 sum.
  * Taken from rfc2104, Appendix.
  */
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 static void
 signature_compute_hmac_md5(const uint8_t *text, int text_len, unsigned char *key,
                            unsigned int key_len, uint8_t *digest)
@@ -108,7 +109,7 @@
     MD5_Update(&context, digest, 16);     /* then results of 1st hash */
     MD5_Final(digest, &context);          /* finish up 2nd pass */
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 
 /*
  * Verify a cryptographic signature of the packet.
diff --git a/slcompress.h b/slcompress.h
index 644c755..ddf131e 100644
--- a/slcompress.h
+++ b/slcompress.h
@@ -14,7 +14,7 @@
  * 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 MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  *	Van Jacobson (van@ee.lbl.gov), Dec 31, 1989:
  *	- Initial distribution.
@@ -35,7 +35,7 @@
  *
  * There are 5 numbers which can change (they are always inserted
  * in the following order): TCP urgent pointer, window,
- * acknowlegement, sequence number and IP ID.  (The urgent pointer
+ * acknowledgement, sequence number and IP ID.  (The urgent pointer
  * is different from the others in that its value is sent, not the
  * change in value.)  Since typical use of SLIP links is biased
  * toward small packets (see comments on MTU/MSS below), changes
diff --git a/smbutil.c b/smbutil.c
index ff32ecc..7f609f7 100644
--- a/smbutil.c
+++ b/smbutil.c
@@ -770,6 +770,7 @@
 	    time_t t;
 	    struct tm *lt;
 	    const char *tstring;
+	    char buffer[sizeof("Www Mmm dd hh:mm:ss yyyy\n")];
 	    uint32_t x;
 
 	    switch (atoi(fmt + 1)) {
@@ -800,8 +801,10 @@
 	    }
 	    if (t != 0) {
 		lt = localtime(&t);
-		if (lt != NULL)
-		    tstring = asctime(lt);
+		if (lt != NULL) {
+		    strftime(buffer, sizeof(buffer), "%a %b %e %T %Y%n", lt);
+		    tstring = buffer;
+		}
 		else
 		    tstring = "(Can't convert time)\n";
 	    } else
diff --git a/tcpdump.1.in b/tcpdump.1.in
index 355216d..92f1e28 100644
--- a/tcpdump.1.in
+++ b/tcpdump.1.in
@@ -20,7 +20,7 @@
 .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 .\"
-.TH TCPDUMP 1  "21 December 2020"
+.TH TCPDUMP 1  "30 July 2022"
 .SH NAME
 tcpdump \- dump traffic on a network
 .SH SYNOPSIS
@@ -152,7 +152,9 @@
 .SH DESCRIPTION
 .LP
 \fITcpdump\fP prints out a description of the contents of packets on a
-network interface that match the Boolean \fIexpression\fP; the
+network interface that match the Boolean \fIexpression\fP (see
+.BR \%pcap-filter (@MAN_MISC_INFO@)
+for the \fIexpression\fP syntax); the
 description is preceded by a time stamp, printed, by default, as hours,
 minutes, seconds, and fractions of a second since midnight.  It can also
 be run with the
@@ -253,7 +255,7 @@
 Exit after receiving \fIcount\fP packets.
 .TP
 .BI \-\-count
-Print only on stderr the packet count when reading capture file(s) instead
+Print only on stdout the packet count when reading capture file(s) instead
 of parsing/printing the packets. If a filter is specified on the command
 line, \fItcpdump\fP counts only packets that were matched by the filter
 expression.
@@ -335,7 +337,7 @@
 was built with an older version of
 .I libpcap
 that lacks the
-.BR pcap_findalldevs(3PCAP)
+.BR pcap_findalldevs (3PCAP)
 function.
 .TP
 .B \-e
@@ -364,7 +366,7 @@
 \fIsecret\fP is the ASCII text for ESP secret key.
 If preceded by 0x, then a hex value will be read.
 .IP
-The option assumes RFC2406 ESP, not RFC1827 ESP.
+The option assumes RFC 2406 ESP, not RFC 1827 ESP.
 The option is only for debugging purposes, and
 the use of this option with a true `secret' key is discouraged.
 By presenting IPsec secret key onto command line
@@ -384,10 +386,11 @@
 internet numbers).
 .IP
 The test for `foreign' IPv4 addresses is done using the IPv4 address and
-netmask of the interface on which capture is being done.  If that
-address or netmask are not available, available, either because the
-interface on which capture is being done has no address or netmask or
-because the capture is being done on the Linux "any" interface, which
+netmask of the interface on that capture is being done.  If that
+address or netmask are not available, either because the
+interface on that capture is being done has no address or netmask or
+because it is the "any" pseudo-interface, which is
+available in Linux and in recent versions of macOS and Solaris, and which
 can capture on more than one interface, this option will not work
 correctly.
 .TP
@@ -440,10 +443,11 @@
 interface list for the lowest numbered, configured up interface
 (excluding loopback), which may turn out to be, for example, ``eth0''.
 .IP
-On Linux systems with 2.2 or later kernels, an
+On Linux systems with 2.2 or later kernels and on recent versions of macOS
+and Solaris, an
 .I interface
 argument of ``any'' can be used to capture packets from all interfaces.
-Note that captures on the ``any'' device will not be done in promiscuous
+Note that captures on the ``any'' pseudo-interface will not be done in promiscuous
 mode.
 .IP
 If the
@@ -796,7 +800,7 @@
 was built with an older version of
 .I libpcap
 that lacks the
-.BR pcap_dump_flush(3PCAP)
+.BR pcap_dump_flush (3PCAP)
 function.
 .TP
 .B \-v
@@ -855,7 +859,7 @@
 present and adding one (e.g. .pcap) is recommended.
 .IP
 See
-.BR pcap-savefile (@MAN_FILE_FORMATS@)
+.BR \%pcap-savefile (@MAN_FILE_FORMATS@)
 for a description of the file format.
 .TP
 .BI \-W " filecount"
@@ -977,7 +981,7 @@
 only packets for which \fIexpression\fP is `true' will be dumped.
 .LP
 For the \fIexpression\fP syntax, see
-.BR pcap-filter (@MAN_MISC_INFO@).
+.BR \%pcap-filter (@MAN_MISC_INFO@).
 .LP
 The \fIexpression\fP argument can be passed to \fItcpdump\fP as either a single
 Shell argument, or as multiple Shell arguments, whichever is more convenient.
@@ -1158,7 +1162,7 @@
 packets are assumed to contain an LLC packet.
 .LP
 \fI(N.B.: The following description assumes familiarity with
-the SLIP compression algorithm described in RFC-1144.)\fP
+the SLIP compression algorithm described in RFC 1144.)\fP
 .LP
 On SLIP links, a direction indicator (``I'' for inbound, ``O'' for outbound),
 packet type, and compression information are printed out.
@@ -1279,7 +1283,7 @@
 TCP Packets
 .LP
 \fI(N.B.:The following description assumes familiarity with
-the TCP protocol described in RFC-793.
+the TCP protocol described in RFC 793.
 If you are not familiar
 with the protocol, this description will not
 be of much use to you.)\fP
@@ -1605,13 +1609,13 @@
 .LP
 Some UDP services are recognized (from the source or destination
 port number) and the higher level protocol information printed.
-In particular, Domain Name service requests (RFC-1034/1035) and Sun
-RPC calls (RFC-1050) to NFS.
+In particular, Domain Name service requests (RFC 1034/1035) and Sun
+RPC calls (RFC 1050) to NFS.
 .HD
 TCP or UDP Name Server Requests
 .LP
 \fI(N.B.:The following description assumes familiarity with
-the Domain Service protocol described in RFC-1035.
+the Domain Service protocol described in RFC 1035.
 If you are not familiar
 with the protocol, the following description will appear to be written
 in Greek.)\fP
@@ -2006,7 +2010,7 @@
 Steven McCanne, all of the
 Lawrence Berkeley National Laboratory, University of California, Berkeley, CA.
 .LP
-It is currently being maintained by tcpdump.org.
+It is currently maintained by The Tcpdump Group.
 .LP
 The current version is available via HTTPS:
 .LP
@@ -2027,7 +2031,7 @@
 .LP
 To report bugs and other problems, contribute patches, request a
 feature, provide generic feedback etc. please see the file
-.I CONTRIBUTING
+.I CONTRIBUTING.md
 in the tcpdump source tree root.
 .LP
 NIT doesn't let you watch your own outbound traffic, BPF will.
diff --git a/tcpdump.c b/tcpdump.c
index 6476a3d..78d0871 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -78,7 +78,9 @@
 #endif
 /* Capsicum-specific code requires macros from <net/bpf.h>, which will fail
  * to compile if <pcap.h> has already been included; including the headers
- * in the opposite order works fine.
+ * in the opposite order works fine. For the most part anyway, because in
+ * FreeBSD <pcap/pcap.h> declares bpf_dump() instead of <net/bpf.h>. Thus
+ * interface.h takes care of it later to avoid a compiler warning.
  */
 #ifdef HAVE_CAPSICUM
 #include <sys/capsicum.h>
@@ -161,6 +163,8 @@
 
 #include "print.h"
 
+#include "diag-control.h"
+
 #include "fptype.h"
 
 #ifndef PATH_MAX
@@ -238,10 +242,6 @@
 
 char *program_name;
 
-#ifdef HAVE_CASPER
-cap_channel_t *capdns;
-#endif
-
 /* Forwards */
 static NORETURN void error(FORMAT_STRING(const char *), ...) PRINTFLIKE(1, 2);
 static void warning(FORMAT_STRING(const char *), ...) PRINTFLIKE(1, 2);
@@ -807,7 +807,7 @@
 		error("Couldn't find user '%.32s'", username);
 #ifdef HAVE_LIBCAP_NG
 	/* We don't need CAP_SETUID, CAP_SETGID and CAP_SYS_CHROOT any more. */
-DIAG_OFF_CLANG(assign-enum)
+DIAG_OFF_ASSIGN_ENUM
 	capng_updatev(
 		CAPNG_DROP,
 		CAPNG_EFFECTIVE | CAPNG_PERMITTED,
@@ -815,7 +815,7 @@
 		CAP_SETGID,
 		CAP_SYS_CHROOT,
 		-1);
-DIAG_ON_CLANG(assign-enum)
+DIAG_ON_ASSIGN_ENUM
 	capng_apply(CAPNG_SELECT_BOTH);
 #endif /* HAVE_LIBCAP_NG */
 
@@ -2290,33 +2290,33 @@
 		/* Initialize capng */
 		capng_clear(CAPNG_SELECT_BOTH);
 		if (username) {
-DIAG_OFF_CLANG(assign-enum)
+DIAG_OFF_ASSIGN_ENUM
 			capng_updatev(
 				CAPNG_ADD,
 				CAPNG_PERMITTED | CAPNG_EFFECTIVE,
 				CAP_SETUID,
 				CAP_SETGID,
 				-1);
-DIAG_ON_CLANG(assign-enum)
+DIAG_ON_ASSIGN_ENUM
 		}
 		if (chroot_dir) {
-DIAG_OFF_CLANG(assign-enum)
+DIAG_OFF_ASSIGN_ENUM
 			capng_update(
 				CAPNG_ADD,
 				CAPNG_PERMITTED | CAPNG_EFFECTIVE,
 				CAP_SYS_CHROOT
 				);
-DIAG_ON_CLANG(assign-enum)
+DIAG_ON_ASSIGN_ENUM
 		}
 
 		if (WFileName) {
-DIAG_OFF_CLANG(assign-enum)
+DIAG_OFF_ASSIGN_ENUM
 			capng_update(
 				CAPNG_ADD,
 				CAPNG_PERMITTED | CAPNG_EFFECTIVE,
 				CAP_DAC_OVERRIDE
 				);
-DIAG_ON_CLANG(assign-enum)
+DIAG_ON_ASSIGN_ENUM
 		}
 		capng_apply(CAPNG_SELECT_BOTH);
 #endif /* HAVE_LIBCAP_NG */
@@ -2382,17 +2382,44 @@
 #endif
 		if (Cflag != 0 || Gflag != 0) {
 #ifdef HAVE_CAPSICUM
-			dumpinfo.WFileName = strdup(basename(WFileName));
+			/*
+			 * basename() and dirname() may modify their input buffer
+			 * and they do since FreeBSD 12.0, but they didn't before.
+			 * Hence use the return value only, but always assume the
+			 * input buffer has been modified and would need to be
+			 * reset before the next use.
+			 */
+			char *WFileName_copy;
+
+			if ((WFileName_copy = strdup(WFileName)) == NULL) {
+				error("Unable to allocate memory for file %s",
+				    WFileName);
+			}
+			DIAG_OFF_C11_EXTENSIONS
+			dumpinfo.WFileName = strdup(basename(WFileName_copy));
+			DIAG_ON_C11_EXTENSIONS
 			if (dumpinfo.WFileName == NULL) {
 				error("Unable to allocate memory for file %s",
 				    WFileName);
 			}
-			dumpinfo.dirfd = open(dirname(WFileName),
+			free(WFileName_copy);
+
+			if ((WFileName_copy = strdup(WFileName)) == NULL) {
+				error("Unable to allocate memory for file %s",
+				    WFileName);
+			}
+			DIAG_OFF_C11_EXTENSIONS
+			char *WFileName_dirname = dirname(WFileName_copy);
+			DIAG_ON_C11_EXTENSIONS
+			dumpinfo.dirfd = open(WFileName_dirname,
 			    O_DIRECTORY | O_RDONLY);
 			if (dumpinfo.dirfd < 0) {
 				error("unable to open directory %s",
-				    dirname(WFileName));
+				    WFileName_dirname);
 			}
+			free(WFileName_dirname);
+			free(WFileName_copy);
+
 			cap_rights_init(&rights, CAP_CREATE, CAP_FCNTL,
 			    CAP_FTRUNCATE, CAP_LOOKUP, CAP_SEEK, CAP_WRITE);
 			if (cap_rights_limit(dumpinfo.dirfd, &rights) < 0 &&
@@ -2641,7 +2668,7 @@
 
 	free(cmdbuf);
 	pcap_freecode(&fcode);
-	exit_tcpdump(status == -1 ? 1 : 0);
+	exit_tcpdump(status == -1 ? S_ERR_HOST_PROGRAM : S_SUCCESS);
 }
 
 /*
@@ -2657,7 +2684,14 @@
 
 	memset(&new, 0, sizeof(new));
 	new.sa_handler = func;
-	if (sig == SIGCHLD)
+	if ((sig == SIGCHLD)
+# ifdef SIGNAL_REQ_INFO
+		|| (sig == SIGNAL_REQ_INFO)
+# endif
+# ifdef SIGNAL_FLUSH_PCAP
+		|| (sig == SIGNAL_FLUSH_PCAP)
+# endif
+		)
 		new.sa_flags = SA_RESTART;
 	if (sigaction(sig, &new, &old) < 0)
 		return (SIG_ERR);
@@ -3127,7 +3161,7 @@
 }
 #endif /* _WIN32 */
 
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
 static void
 print_version(FILE *f)
 {
@@ -3165,7 +3199,7 @@
 #  endif
 #endif /* __SANITIZE_ADDRESS__ or __has_feature */
 }
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
 
 static void
 print_usage(FILE *f)
diff --git a/tests/TESTLIST b/tests/TESTLIST
index 31e1a99..fcbcedb 100644
--- a/tests/TESTLIST
+++ b/tests/TESTLIST
@@ -24,6 +24,7 @@
 mpbgp-linklocal-nexthop mpbgp-linklocal-nexthop.pcap mpbgp-linklocal-nexthop.out -v
 bgp_infloop-v		bgp-infinite-loop.pcap		bgp_infloop-v.out	-v
 bgp-aigp	bgp-aigp.pcap	bgp-aigp.out	-v
+bgp-aigp-2	bgp-aigp-2.pcap	bgp-aigp-2.out	-v
 bgp-large-community bgp-large-community.pcap bgp-large-community.out -v
 bgp-shutdown-communication bgp-shutdown-communication.pcapng bgp-shutdown-communication.out -v
 bgp-addpath bgp-addpath.pcap bgp-addpath.out -v
@@ -34,6 +35,8 @@
 bgp-llgr	bgp-evpn.pcap		bgp-llgr.out		-v
 bgp-encap	bgp-encap.pcap		bgp-encap.out		-v
 bgp-rt-prefix	bgp-rt-prefix.pcap	bgp-rt-prefix.out	-v
+bgp-extended-shutdown-msg	bgp-extended-shutdown-msg.pcapng	bgp-extended-shutdown-msg.out	-v
+bgp-link-bw-extcommunity	bgp-link-bw-extcommunity.pcapng	bgp-link-bw-extcommunity.out	-v
 
 # Broadcom tag tests
 brcmtag		brcm-tag.pcap		brcm-tag.out
@@ -47,6 +50,8 @@
 # Marvell DSA tag tests
 dsa		dsa.pcap		dsa.out
 dsa-e		dsa.pcap		dsa-e.out	-e
+dsa-high-vid	dsa-high-vid.pcap	dsa-high-vid.out
+dsa-high-vid-e	dsa-high-vid.pcap	dsa-high-vid-e.out	-e
 
 # EAP tests
 # now in smb.tests
@@ -54,21 +59,23 @@
 # Marvell DSA tag tests
 edsa		edsa.pcap		edsa.out
 edsa-e		edsa.pcap		edsa-e.out	-e
+edsa-high-vid	edsa-high-vid.pcap	edsa-high-vid.out
+edsa-high-vid-e	edsa-high-vid.pcap	edsa-high-vid-e.out	-e
 
 # ESP tests
 esp0		02-sunrise-sunset-esp.pcap	esp0.out
-# more ESP tests in crypto.sh
+# more ESP tests in crypto.tests
 
 # ISAKMP tests
 isakmp1 isakmp-delete-segfault.pcap isakmp1.out
 isakmp2 isakmp-pointer-loop.pcap    isakmp2.out
 isakmp3 isakmp-identification-segfault.pcap isakmp3.out -v
-# isakmp4 is in crypto.sh
+# isakmp4 is in crypto.tests
 isakmp5-v	ISAKMP_sa_setup.pcap		isakmp5-v.out	-v
 
 # Link Management Protocol tests
 lmp		lmp.pcap		lmp.out -T lmp
-# lmp-v is now conditionally handled by lmp-v.sh
+# lmp-v is now conditionally handled by lmp-v.tests
 
 # MPLS tests
 mpls-ldp-hello	mpls-ldp-hello.pcap	mpls-ldp-hello.out -v
@@ -85,20 +92,21 @@
 mpls-over-udp-v  mpls-over-udp.pcap  mpls-over-udp-v.out -v
 
 # OSPF tests
-ospf-gmpls	ospf-gmpls.pcap				ospf-gmpls.out		-v
-ospf3_ah-vv	OSPFv3_with_AH.pcap			ospf3_ah-vv.out		-v -v
+# In printf_z.tests:
+# ospf-gmpls
+# ospf-nssa-bitnt
+# ospf3_ah-vv
+# ospf3_bc-vv
+# ospf3_mp-vv
+# ospf3_nbma-vv
+# ospf2-seg-fault-1-v (fuzzed pcap)
 ospf3_auth-vv	ospf3_auth.pcapng			ospf3_auth-vv.out 	-v -v
-ospf3_bc-vv	OSPFv3_broadcast_adjacency.pcap		ospf3_bc-vv.out		-v -v
-ospf3_mp-vv	OSPFv3_multipoint_adjacencies.pcap	ospf3_mp-vv.out		-v -v
-ospf3_nbma-vv	OSPFv3_NBMA_adjacencies.pcap		ospf3_nbma-vv.out	-v -v
-# fuzzed pcap
-ospf2-seg-fault-1-v  ospf2-seg-fault-1.pcapng  ospf2-seg-fault-1-v.out  -v
 
 # IKEv2 tests
 ikev2four	ikev2four.pcap		ikev2four.out	-v
 ikev2fourv	ikev2four.pcap		ikev2fourv.out	-v -v -v
 ikev2fourv4	ikev2four.pcap		ikev2fourv4.out	-v -v -v -v
-# ikev2pI2 test in crypto.sh
+# ikev2pI2 test in crypto.tests
 ikev2pI2-segfault	ikev2pI2-segfault.pcapng	ikev2pI2-segfault.out
 ikev2pI2-segfault-v	ikev2pI2-segfault.pcapng	ikev2pI2-segfault-v.out	-v
 
@@ -134,6 +142,8 @@
 # now SFLOW tests
 sflow1          sflow_multiple_counter_30_pdus.pcap     sflow_multiple_counter_30_pdus.out      -v
 sflow2          sflow_multiple_counter_30_pdus.pcap     sflow_multiple_counter_30_pdus-nv.out
+# ipv6 sflow support
+sflow-v6	sflow-print-v6.pcap			sflow-print-v6.out			-vvv
 
 # AHCP and Babel tests
 ahcp-vv         ahcp.pcapng            ahcp-vv.out     -vv
@@ -165,6 +175,9 @@
 icmpv6_opt24-v	icmpv6_opt24.pcap	icmpv6_opt24-v.out	-v
 icmpv6-length-zero icmpv6-length-zero.pcapng icmpv6-length-zero.out
 icmpv6-rfc7112	icmpv6-rfc7112.pcap	icmpv6-rfc7112.out
+icmpv6-RFC2894-RR icmpv6-RFC2894-RR.pcap icmpv6-RFC2894-RR.out
+icmpv6-RFC2894-RR-v icmpv6-RFC2894-RR.pcap icmpv6-RFC2894-RR-v.out -v
+icmpv6-ni-flags	icmpv6-ni-flags.pcap	icmpv6-ni-flags.out
 
 # SPB tests
 spb	            spb.pcap	            spb.out
@@ -257,7 +270,8 @@
 
 # M3UA tests
 m3ua isup.pcap isup.out
-m3ua-vv isup.pcap isupvv.out -vv
+# In printf_z.tests:
+# m3ua-vv
 
 # NFLOG test case
 nflog-e nflog.pcap nflog-e.out -e
@@ -291,6 +305,8 @@
 ipv6-srh-insert-cksum	ipv6-srh-insert-cksum.pcap	ipv6-srh-insert-cksum.out -v
 ipv6-srh-ipproto-ether-v ipv6-srh-ipproto-ether.pcap ipv6-srh-ipproto-ether-v.out -v
 ipv6-srh-ipproto-ether-ev ipv6-srh-ipproto-ether.pcap ipv6-srh-ipproto-ether-ev.out -ev
+ipv6-too-long-jumbo	ipv6-too-long-jumbo.pcap	ipv6-too-long-jumbo.out -v
+
 # Loopback/CTP test case
 loopback	loopback.pcap		loopback.out
 
@@ -333,13 +349,14 @@
 isis_iid-v      isis_iid_tlv.pcap               isis_iid_tlv.out        -v
 isis_sr-v	isis_sr.pcapng			isis_sr.out	-v
 # fuzzed pcap
-# isis-seg-fault-1-v is now conditionally handled by isis-seg-fault-1-v.sh
+# isis-seg-fault-1-v is now conditionally handled by isis-seg-fault-1-v.tests
 isis-seg-fault-2-v isis-seg-fault-2.pcapng isis-seg-fault-2-v.out -v
 isis-seg-fault-3-v isis-seg-fault-3.pcapng isis-seg-fault-3-v.out -v
 isis_sid	isis_sid.pcap			isis_sid.out	-v
 
 # RSVP tests
-rsvp_infloop-v	rsvp-infinite-loop.pcap		rsvp_infloop-v.out	-v
+# In printf_z.tests:
+# rsvp_infloop-v
 rsvp_cap	rsvp_cap.pcap			rsvp_cap.out		-v
 # fuzzed pcap
 rsvp-inf-loop-2-v rsvp-inf-loop-2.pcapng	rsvp-inf-loop-2-v.out -v
@@ -351,7 +368,8 @@
 hdlc4	hdlc_slarp.pcapng	hdlc4.out
 
 # DECnet test case
-decnet		DECnet_Phone.pcap	decnet.out
+# In printf_z.tests:
+# decnet
 
 # RADIUS tests
 radius-v	RADIUS.pcap	radius-v.out	-v
@@ -443,14 +461,6 @@
 lisp_eid_register	lisp_eid_register.pcap	lisp_eid_register.out	-v
 lisp_ipv6_eid		lisp_ipv6.pcap		lisp_ipv6.out		-v
 
-# pcap invalid versions (first: version = 1.4 ; second: version = 2.5)
-pcap-invalid-version-1 pcap-invalid-version-1.pcap pcap-invalid-version-1.out
-pcap-invalid-version-2 pcap-invalid-version-2.pcap pcap-invalid-version-2.out
-
-# pcapng invalid version (first: version = 0.1 ; second: version = 1.1)
-pcapng-invalid-vers-1 pcapng-invalid-vers-1.pcapng pcapng-invalid-vers-1.out
-pcapng-invalid-vers-2 pcapng-invalid-vers-2.pcapng pcapng-invalid-vers-2.out
-
 # NSH tests
 nsh                    nsh.pcap                nsh.out
 nsh-vvv                nsh.pcap                nsh-vvv.out                -vvv
@@ -487,7 +497,7 @@
 # heap-overflow-1 is in non-bsd.tests
 heap-overflow-2	heap-overflow-2.pcap		heap-overflow-2.out	-v
 heapoverflow-atalk_print	heapoverflow-atalk_print.pcap	heapoverflow-atalk_print.out	-v
-heapoverflow-EXTRACT_16BITS	heapoverflow-EXTRACT_16BITS.pcap	heapoverflow-EXTRACT_16BITS.out	-v
+heapoverflow-atalk_2	heapoverflow-atalk_2.pcap	heapoverflow-atalk_2.out	-v
 heapoverflow-ppp_hdlc_if_print	heapoverflow-ppp_hdlc_if_print.pcap	heapoverflow-ppp_hdlc_if_print.out	-v
 heapoverflow-q933_printq	heapoverflow-q933_printq.pcap	heapoverflow-q933_printq.out	-v
 heapoverflow-sl_if_print	heapoverflow-sl_if_print.pcap	heapoverflow-sl_if_print.out	-v
@@ -580,14 +590,16 @@
 icmp-cksum-oobr-4	icmp-cksum-oobr-4.pcapng	icmp-cksum-oobr-4.out	-vvv -e
 tok2str-oobr-1		tok2str-oobr-1.pcap		tok2str-oobr-1.out	-vvv -e
 tok2str-oobr-2		tok2str-oobr-2.pcap		tok2str-oobr-2.out	-vvv -e
-eigrp-tlv-oobr		eigrp-tlv-oobr.pcap		eigrp-tlv-oobr.out	-vvv -e
+# In printf_z.tests:
+#eigrp-tlv-oobr
 zephyr-oobr		zephyr-oobr.pcap		zephyr-oobr.out		-vvv -e
 isakmp-no-none-np	isakmp-no-none-np.pcapng	isakmp-no-none-np.out	-vvv -e
 telnet-iac-check-oobr	telnet-iac-check-oobr.pcap	telnet-iac-check-oobr.out	-vvv -e
 resp_4_infiniteloop	resp_4_infiniteloop.pcapng	resp_4_infiniteloop.out	-vvv -e
 dns_fwdptr		dns_fwdptr.pcap			dns_fwdptr.out		-vvv -e
-isis-areaaddr-oobr-1	isis-areaaddr-oobr-1.pcap	isis-areaaddr-oobr-1.out		-vvv -e
-isis-areaaddr-oobr-2	isis-areaaddr-oobr-2.pcap	isis-areaaddr-oobr-2.out		-vvv -e
+# In printf_z.tests:
+# isis-areaaddr-oobr-1
+# isis-areaaddr-oobr-2
 isis-extd-ipreach-oobr	isis-extd-ipreach-oobr.pcap	isis-extd-ipreach-oobr.out		-vvv -e
 lldp-infinite-loop-1	lldp-infinite-loop-1.pcap	lldp-infinite-loop-1.out		-vvv -e
 lldp-infinite-loop-2	lldp-infinite-loop-2.pcap	lldp-infinite-loop-2.out		-vvv -e
@@ -605,7 +617,8 @@
 
 # bad packets from Yannick Formaggio
 l2tp-avp-overflow	l2tp-avp-overflow.pcap		l2tp-avp-overflow.out	-v
-pktap-heap-overflow	pktap-heap-overflow.pcap	pktap-heap-overflow.out	-v
+# In printf_z.tests:
+# pktap-heap-overflow
 wb-oobr			wb-oobr.pcap			wb-oobr.out	-v
 
 # bad packets from Bhargava Shastry
@@ -746,9 +759,10 @@
 #
 # See http://marc.info/?l=tcpdump-workers&m=95552439022555
 #
-dns-zlip-1		dns-zlip-1.pcap		dns-zlip-1.out
-dns-zlip-2		dns-zlip-2.pcap		dns-zlip-2.out
-dns-zlip-3		dns-zlip-3.pcap		dns-zlip-3.out
+# In printf_z.tests:
+# dns-zlip-1
+# dns-zlip-2
+# dns-zlip-3
 
 # NTP tests
 ntp			ntp.pcap		ntp.out
@@ -807,12 +821,14 @@
 huge-tipc-messages	huge-tipc-messages.pcap	huge-tipc-messages.out
 
 # CVE-2018-10105 bad packets from Luis Rocha
-sflow_print-segv sflow_print-segv.pcap sflow_print-segv.out -v
+# In printf_z.tests:
+# sflow_print-segv
 # two more in smb.tests
 
 #ptp tests
 ptp         ptp.pcap    ptp.out
 ptp_ethernet	ptp_ethernet.pcap	ptp_ethernet.out	-e
+ptp_corrections	ptp_corrections.pcap	ptp_corrections.out
 
 # bad packets from Jason Xiaole
 ldp_tlv_print-oobr ldp_tlv_print-oobr.pcap ldp_tlv_print-oobr.out -v
@@ -836,3 +852,6 @@
 
 # LSP Ping
 lsp-ping-timestamp	lsp-ping-timestamp.pcap		lsp-ping-timestamp.out	-vv
+
+# lwres with "extra" bytes
+lwres_with_extra lwres_with_extra.pcap lwres_with_extra.out
diff --git a/tests/TESTrun b/tests/TESTrun
index a131948..1843bc5 100755
--- a/tests/TESTrun
+++ b/tests/TESTrun
@@ -21,7 +21,8 @@
 #
 # Make true and false work as Booleans.
 #
-use constant { true => 1, false => 0 };
+use constant true => 1;
+use constant false => 0;
 
 use File::Basename;
 use POSIX qw( WEXITSTATUS WIFEXITED);
@@ -38,6 +39,8 @@
 mkpath($diffdir);
 my $origdir = getcwd();
 my $srcdir  = $ENV{'srcdir'} || ".";
+# Default to unified diff and allow to fall back to basic diff if necessary.
+my $diff_flags = defined $ENV{'DIFF_FLAGS'} ? $ENV{'DIFF_FLAGS'} : '-u';
 
 #
 # Force UTC, so time stamps are printed in a standard time zone, and
@@ -120,7 +123,7 @@
             $status = $!;
             printf OUTPUT "FAILED TO RUN: status: %d\n", $status;
         } else {
-            if ($^O eq 'MSWin32') {
+            if ($^O eq 'MSWin32' or $^O eq 'msys') {
                 #
                 # On Windows, the return value of system is the lower 8
                 # bits of the exit status of the process, shifted left
@@ -225,7 +228,7 @@
             $r = system "fc /lb1000 /t /1 $winoutput tests\\NEW\\$outputbase >tests\\DIFF\\$outputbase.diff";
             $diffstat = $r >> 8;
         } else {
-            $r = system "diff $output tests/NEW/$outputbase >tests/DIFF/$outputbase.diff";
+            $r = system "diff $diff_flags $output tests/NEW/$outputbase >tests/DIFF/$outputbase.diff";
             $diffstat = WEXITSTATUS($r);
         }
     }
@@ -368,6 +371,13 @@
     }
     $main::confighhash->{$have_fptype} = 1;
 
+    # and check whether this is OpenBSD, as one test fails in OpenBSD
+    # due to the sad hellscape of low-numbered DLT_ values, due to
+    # 12 meaning "OpenBSD loopback" rather than "raw IP" on OpenBSD
+    if($^O eq "openbsd") {
+        $main::confighhash->{"IS_OPENBSD"} = 1;
+    }
+
     return $main::confighhash;
 }
 
diff --git a/tests/arista_ether-e.out b/tests/arista_ether-e.out
index 62c3a95..6530bac 100644
--- a/tests/arista_ether-e.out
+++ b/tests/arista_ether-e.out
@@ -1,16 +1,16 @@
-    1  20:36:40.091512 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:39, 944724424 ns, ethertype IPv4 (0x0800), length 110: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    2  20:36:40.579036 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 432245804 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    3  20:36:41.063992 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 917204604 ns, ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    4  20:36:42.247930 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:42, 101121660 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    5  20:37:16.595961 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 448931747 ns, ethertype IPv4 (0x0800), length 110: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    6  20:37:17.083084 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 936057586 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    7  20:37:17.567747 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:17, 420710691 ns, ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    8  20:37:18.749419 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:18, 602381189 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    9  20:37:41.551225 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 404038772, ethertype IPv4 (0x0800), length 108: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   10  20:37:42.040995 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 893796872, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   11  20:37:42.525213 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60822, Nanoseconds 378011624, ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   12  20:37:43.556891 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60823, Nanoseconds 409682672, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-   13  20:37:53.102297 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60832, Nanoseconds 954995144, ethertype IPv4 (0x0800), length 108: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   14  20:37:53.590942 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 443648960, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   15  20:37:54.077234 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 929943729, ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   16  20:37:55.188367 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60835, Nanoseconds 41072639, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    1  20:36:40.091512 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:39.944724424: ethertype IPv4 (0x0800), length 110: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+    2  20:36:40.579036 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.432245804: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    3  20:36:41.063992 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.917204604: ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    4  20:36:42.247930 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:42.101121660: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    5  20:37:16.595961 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.448931747: ethertype IPv4 (0x0800), length 110: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+    6  20:37:17.083084 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.936057586: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    7  20:37:17.567747 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:17.420710691: ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    8  20:37:18.749419 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:18.602381189: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    9  20:37:41.551225 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.404038772: ethertype IPv4 (0x0800), length 108: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+   10  20:37:42.040995 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.893796872: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   11  20:37:42.525213 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60822.378011624: ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   12  20:37:43.556891 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60823.409682672: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+   13  20:37:53.102297 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60832.954995144: ethertype IPv4 (0x0800), length 108: 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+   14  20:37:53.590942 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.443648960: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   15  20:37:54.077234 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.929943729: ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   16  20:37:55.188367 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60835.041072639: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64) 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
diff --git a/tests/arista_ether-ev.out b/tests/arista_ether-ev.out
index 892155f..18e0731 100644
--- a/tests/arista_ether-ev.out
+++ b/tests/arista_ether-ev.out
@@ -1,40 +1,40 @@
-    1  20:36:40.091512 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:39, 944724424 ns, ethertype IPv4 (0x0800), length 110: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
+    1  20:36:40.091512 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:39.944724424: ethertype IPv4 (0x0800), length 110: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    2  20:36:40.579036 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 432245804 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
+    2  20:36:40.579036 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.432245804: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    3  20:36:41.063992 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 917204604 ns, ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, exp 0, [S], ttl 64)
+    3  20:36:41.063992 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.917204604: ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    4  20:36:42.247930 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:42, 101121660 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64)
+    4  20:36:42.247930 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:42.101121660: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 74)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    5  20:37:16.595961 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 448931747 ns, ethertype IPv4 (0x0800), length 110: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
+    5  20:37:16.595961 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.448931747: ethertype IPv4 (0x0800), length 110: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    6  20:37:17.083084 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 936057586 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
+    6  20:37:17.083084 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.936057586: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    7  20:37:17.567747 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:17, 420710691 ns, ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, exp 0, [S], ttl 64)
+    7  20:37:17.567747 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:17.420710691: ethertype MPLS unicast (0x8847), length 110: MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    8  20:37:18.749419 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:18, 602381189 ns, ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64)
+    8  20:37:18.749419 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:18.602381189: ethertype 802.1Q (0x8100), length 110: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 74)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    9  20:37:41.551225 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 404038772, ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
+    9  20:37:41.551225 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.404038772: ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   10  20:37:42.040995 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 893796872, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
+   10  20:37:42.040995 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.893796872: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   11  20:37:42.525213 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60822, Nanoseconds 378011624, ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, exp 0, [S], ttl 64)
+   11  20:37:42.525213 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60822.378011624: ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   12  20:37:43.556891 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60823, Nanoseconds 409682672, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64)
+   12  20:37:43.556891 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60823.409682672: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 74)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-   13  20:37:53.102297 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60832, Nanoseconds 954995144, ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
+   13  20:37:53.102297 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60832.954995144: ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 82)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   14  20:37:53.590942 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 443648960, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
+   14  20:37:53.590942 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.443648960: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype IPv4 (0x0800), (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   15  20:37:54.077234 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 929943729, ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, exp 0, [S], ttl 64)
+   15  20:37:54.077234 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.929943729: ethertype MPLS unicast (0x8847), length 108: MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 78)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   16  20:37:55.188367 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60835, Nanoseconds 41072639, ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, exp 0, [S], ttl 64)
+   16  20:37:55.188367 00:11:22:33:44:55 > 00:00:00:00:00:01, ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60835.041072639: ethertype 802.1Q (0x8100), length 108: vlan 100, p 0, ethertype MPLS unicast (0x8847), MPLS (label 1024, tc 0, [S], ttl 64)
 	(tos 0x0, ttl 64, id 0, offset 0, flags [none], proto unknown (63), length 74)
     10.136.1.32 > 10.2.23.24:  ip-proto-63 54
diff --git a/tests/arista_ether.out b/tests/arista_ether.out
index 5efd4ef..f386cea 100644
--- a/tests/arista_ether.out
+++ b/tests/arista_ether.out
@@ -1,16 +1,16 @@
-    1  20:36:40.091512 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:39, 944724424 ns, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    2  20:36:40.579036 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 432245804 ns, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    3  20:36:41.063992 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:40, 917204604 ns, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    4  20:36:42.247930 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0010, Timestamp TAI(64-bit): 2019-05-29 20:36:42, 101121660 ns, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    5  20:37:16.595961 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 448931747 ns, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-    6  20:37:17.083084 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:16, 936057586 ns, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    7  20:37:17.567747 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:17, 420710691 ns, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-    8  20:37:18.749419 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType: 0x1, Version: 0x0110, Timestamp UTC(64-bit): 2019-05-29 20:37:18, 602381189 ns, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-    9  20:37:41.551225 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 404038772, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   10  20:37:42.040995 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60821, Nanoseconds 893796872, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   11  20:37:42.525213 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60822, Nanoseconds 378011624, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   12  20:37:43.556891 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0020, Timestamp TAI(48-bit): Seconds 60823, Nanoseconds 409682672, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
-   13  20:37:53.102297 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60832, Nanoseconds 954995144, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
-   14  20:37:53.590942 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 443648960, IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   15  20:37:54.077234 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60833, Nanoseconds 929943729, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
-   16  20:37:55.188367 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType: 0x1, Version: 0x0120, Timestamp UTC(48-bit): Seconds 60835, Nanoseconds 41072639, MPLS (label 1024, exp 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    1  20:36:40.091512 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:39.944724424: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+    2  20:36:40.579036 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.432245804: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    3  20:36:41.063992 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:40.917204604: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    4  20:36:42.247930 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale TAI (0), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:36:42.101121660: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    5  20:37:16.595961 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.448931747: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+    6  20:37:17.083084 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:16.936057586: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    7  20:37:17.567747 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:17.420710691: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+    8  20:37:18.749419 ethertype Arista Vendor Specific Protocol (0xd28b), length 110: SubType Timestamp (0x0001), Timescale UTC (1), Format 64-bit (1), HwInfo R/R2 (0), Timestamp 2019-05-29 20:37:18.602381189: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+    9  20:37:41.551225 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.404038772: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+   10  20:37:42.040995 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60821.893796872: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   11  20:37:42.525213 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60822.378011624: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   12  20:37:43.556891 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale TAI (0), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60823.409682672: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
+   13  20:37:53.102297 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60832.954995144: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 62
+   14  20:37:53.590942 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.443648960: IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   15  20:37:54.077234 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60833.929943729: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 58
+   16  20:37:55.188367 ethertype Arista Vendor Specific Protocol (0xd28b), length 108: SubType Timestamp (0x0001), Timescale UTC (1), Format 48-bit (2), HwInfo R/R2 (0), Timestamp 60835.041072639: MPLS (label 1024, tc 0, [S], ttl 64) IP 10.136.1.32 > 10.2.23.24:  ip-proto-63 54
diff --git a/tests/bgp-aigp-2.out b/tests/bgp-aigp-2.out
new file mode 100644
index 0000000..e4a9e32
--- /dev/null
+++ b/tests/bgp-aigp-2.out
@@ -0,0 +1,12 @@
+    1  16:35:36.779852 IP (tos 0x0, ttl 64, id 65464, offset 0, flags [DF], proto TCP (6), length 126)
+    1.0.1.1.33933 > 1.0.1.2.179: Flags [P.], cksum 0xdf3f (correct), seq 1822120333:1822120407, ack 3227512929, win 128, options [nop,nop,TS val 3213935882 ecr 3055548704], length 74: BGP
+	Update Message (2), length: 74
+	  Origin (1), length: 1, Flags [T]: EGP
+	  AS Path (2), length: 4, Flags [T]: 101 
+	  Next Hop (3), length: 4, Flags [T]: 0.0.0.0
+	  Multi-Protocol Reach NLRI (14), length: 16, Flags [O]: 
+	    AFI: IPv4 (1), SAFI: labeled Unicast (4)
+	    nexthop: 1.0.1.1, nh-length: 4, no SNPA
+	      123.1.1.0/24, label:20 (bottom)
+	  Accumulated IGP Metric (26), length: 11, Flags [O]: 
+	    AIGP TLV (1), length 11, metric 4294967295
diff --git a/tests/bgp-aigp-2.pcap b/tests/bgp-aigp-2.pcap
new file mode 100644
index 0000000..5aec56f
--- /dev/null
+++ b/tests/bgp-aigp-2.pcap
Binary files differ
diff --git a/tests/bgp-as-path-oobr-nossl.out b/tests/bgp-as-path-oobr-nossl.out
index d9549d6..1b15517 100644
--- a/tests/bgp-as-path-oobr-nossl.out
+++ b/tests/bgp-as-path-oobr-nossl.out
@@ -96,40 +96,7 @@
 	Update Message (2), length: 202
 	  Withdrawn routes:
 	    0.0.0.0/0
-	    (illegal prefix length)
-	  Origin (1), length: 2, Flags [+1]: invalid len
-	    0x0000:  4002
-	  Attribute Set (128), length: 4
-	    Origin AS: 67108864
-	  Unknown Attribute (64), length: 5
-	    no Attribute 64 decoder
-	    0x0000:  0400 0000 64
-	  Extended Community (16), length: 8, Flags [OT]: 
-	    target (0x0002), Flags [none]: 19338:650 (= 0.0.2.138)
-	    0x0000:  0002 4b8a 0000 028a
-	  Cluster List (10), length: 4, Flags [O]: 172.17.0.0
-	    0x0000:  ac11 0000
-	  Originator ID (9), length: 4, Flags [O]: 172.17.0.5
-	    0x0000:  ac11 0005
-	  Multi-Protocol Reach NLRI (14), length: 129, Flags [OE]: 
-	    AFI: IPv4 (1), SAFI: labeled VPN Unicast (128)
-	    nexthop: RD: 0:0 (= 0.0.0.0), 172.17.0.5, nh-length: 12, no SNPA
-	      RD: 18826:650 (= 0.0.2.138), 172.17.33.0/27, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.0/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.32/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.48/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.192.128/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.192.144/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.30.64/26, label:1034 (bottom)
-	    0x0000:  0001 800c 0000 0000 0000 0000 ac11 0005
-	    0x0010:  0073 0040 5100 0049 8a00 0002 8aac 1121
-	    0x0020:  0074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0030:  0074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0040:  2074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0050:  3074 0040 5100 0049 8a00 0002 8aac 11c0
-	    0x0060:  8074 0040 5100 0049 8a00 0002 8aac 11c0
-	    0x0070:  9072 0040 a100 0049 8a00 0002 8aac 111e
-	    0x0080:  40 [|bgp]
+	    (illegal prefix length) [|bgp]
 	Update Message (2), length: 106
 	  Origin (1), length: 1, Flags [T]: Incomplete
 	    0x0000:  02
diff --git a/tests/bgp-as-path-oobr-ssl.out b/tests/bgp-as-path-oobr-ssl.out
index 19d6e4f..5ac2ca0 100644
--- a/tests/bgp-as-path-oobr-ssl.out
+++ b/tests/bgp-as-path-oobr-ssl.out
@@ -96,40 +96,7 @@
 	Update Message (2), length: 202
 	  Withdrawn routes:
 	    0.0.0.0/0
-	    (illegal prefix length)
-	  Origin (1), length: 2, Flags [+1]: invalid len
-	    0x0000:  4002
-	  Attribute Set (128), length: 4
-	    Origin AS: 67108864
-	  Unknown Attribute (64), length: 5
-	    no Attribute 64 decoder
-	    0x0000:  0400 0000 64
-	  Extended Community (16), length: 8, Flags [OT]: 
-	    target (0x0002), Flags [none]: 19338:650 (= 0.0.2.138)
-	    0x0000:  0002 4b8a 0000 028a
-	  Cluster List (10), length: 4, Flags [O]: 172.17.0.0
-	    0x0000:  ac11 0000
-	  Originator ID (9), length: 4, Flags [O]: 172.17.0.5
-	    0x0000:  ac11 0005
-	  Multi-Protocol Reach NLRI (14), length: 129, Flags [OE]: 
-	    AFI: IPv4 (1), SAFI: labeled VPN Unicast (128)
-	    nexthop: RD: 0:0 (= 0.0.0.0), 172.17.0.5, nh-length: 12, no SNPA
-	      RD: 18826:650 (= 0.0.2.138), 172.17.33.0/27, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.0/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.32/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.105.48/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.192.128/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.192.144/28, label:1029 (bottom)
-	      RD: 18826:650 (= 0.0.2.138), 172.17.30.64/26, label:1034 (bottom)
-	    0x0000:  0001 800c 0000 0000 0000 0000 ac11 0005
-	    0x0010:  0073 0040 5100 0049 8a00 0002 8aac 1121
-	    0x0020:  0074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0030:  0074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0040:  2074 0040 5100 0049 8a00 0002 8aac 1169
-	    0x0050:  3074 0040 5100 0049 8a00 0002 8aac 11c0
-	    0x0060:  8074 0040 5100 0049 8a00 0002 8aac 11c0
-	    0x0070:  9072 0040 a100 0049 8a00 0002 8aac 111e
-	    0x0080:  40 [|bgp]
+	    (illegal prefix length) [|bgp]
 	Update Message (2), length: 106
 	  Origin (1), length: 1, Flags [T]: Incomplete
 	    0x0000:  02
diff --git a/tests/bgp-extended-shutdown-msg.out b/tests/bgp-extended-shutdown-msg.out
new file mode 100644
index 0000000..709a467
--- /dev/null
+++ b/tests/bgp-extended-shutdown-msg.out
@@ -0,0 +1,3 @@
+    1  08:40:34.846110 IP (tos 0xc0, ttl 1, id 27458, offset 0, flags [DF], proto TCP (6), length 284)
+    192.168.10.123.36208 > 192.168.10.17.179: Flags [P.], cksum 0x415a (correct), seq 496762307:496762539, ack 691810051, win 502, options [nop,nop,TS val 822562185 ecr 4289027422], length 232: BGP
+	Notification Message (3), length: 232, Cease (6), subcode Administrative Shutdown (2), Shutdown Communication (length: 210): "[TICKET-1-1438367390] software upgrade; Expected downtime for 2 hours;[TICKET-1-1438367390] software upgrade; Expected downtime for 2 hours;[TICKET-1-1438367390] software upgrade; Expected downtime for 2 hours;"
diff --git a/tests/bgp-extended-shutdown-msg.pcapng b/tests/bgp-extended-shutdown-msg.pcapng
new file mode 100644
index 0000000..dff19cf
--- /dev/null
+++ b/tests/bgp-extended-shutdown-msg.pcapng
Binary files differ
diff --git a/tests/bgp-link-bw-extcommunity.out b/tests/bgp-link-bw-extcommunity.out
new file mode 100644
index 0000000..b9616d8
--- /dev/null
+++ b/tests/bgp-link-bw-extcommunity.out
@@ -0,0 +1,63 @@
+    1  07:51:47.389652 IP (tos 0xc0, ttl 64, id 60775, offset 0, flags [DF], proto TCP (6), length 460)
+    192.168.10.249.36890 > 192.168.10.252.179: Flags [P.], cksum 0x87a4 (correct), seq 2387217692:2387218100, ack 685497494, win 229, options [nop,nop,TS val 7136044 ecr 4011453153], length 408: BGP
+	Update Message (2), length: 67
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    10.0.0.0/24
+	Update Message (2), length: 67
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    10.0.2.0/24
+	Update Message (2), length: 73
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    10.10.10.100/32
+	    10.10.10.200/32
+	Update Message (2), length: 67
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    192.168.0.0/24
+	Update Message (2), length: 67
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    192.168.1.0/24
+	Update Message (2), length: 67
+	  Origin (1), length: 1, Flags [T]: Incomplete
+	  AS Path (2), length: 0, Flags [TE]: empty
+	  Next Hop (3), length: 4, Flags [T]: 192.168.10.249
+	  Multi Exit Discriminator (4), length: 4, Flags [O]: 0
+	  Local Preference (5), length: 4, Flags [T]: 100
+	  Extended Community (16), length: 8, Flags [OT]: 
+	    link-BW (0x4004), Flags [non-transitive]: bandwidth: 1.000 Mbps
+	  Updated routes:
+	    192.168.10.0/24
diff --git a/tests/bgp-link-bw-extcommunity.pcapng b/tests/bgp-link-bw-extcommunity.pcapng
new file mode 100644
index 0000000..c607d12
--- /dev/null
+++ b/tests/bgp-link-bw-extcommunity.pcapng
Binary files differ
diff --git a/tests/bgp_mp_reach_nlri-oobr.out b/tests/bgp_mp_reach_nlri-oobr.out
index f54b06d..f855168 100644
--- a/tests/bgp_mp_reach_nlri-oobr.out
+++ b/tests/bgp_mp_reach_nlri-oobr.out
@@ -2,25 +2,19 @@
     241.0.128.39.179 > 239.0.0.1.0: Flags [none], seq 4144029695:4144095150, win 65535, options [eol], length 65455: BGP [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45823, Flags [TPE+b]:  [|bgp] [|bgp]
+	    (illegal prefix length) [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45823, Flags [TPE+b]:  [|bgp] [|bgp]
+	    (illegal prefix length) [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45823, Flags [TPE+b]:  [|bgp] [|bgp]
+	    (illegal prefix length) [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45823, Flags [TPE+b]:  [|bgp] [|bgp]
+	    (illegal prefix length) [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45571, Flags [TPE+b]:  [|bgp] [|bgp]
+	    (illegal prefix length) [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    (illegal prefix length)
-	  Unknown Attribute (195), length: 45823, Flags [TPE+b]:  [|bgp]
+	    (illegal prefix length) [|bgp]
diff --git a/tests/bgp_mvpn_6_and_7_oobr.out b/tests/bgp_mvpn_6_and_7_oobr.out
index ce4c295..e65ebf0 100644
--- a/tests/bgp_mvpn_6_and_7_oobr.out
+++ b/tests/bgp_mvpn_6_and_7_oobr.out
@@ -2,8 +2,4 @@
     241.0.93.20.179 > 255.247.0.1.200: Flags [none], seq 2146691977:2146692450, win 56026, options [unknown-161,eol], length 473: BGP
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    255.123.0.0/16
-	  Attribute Set (128), length: 7, Flags [OTPE+f]: 
-	    Origin AS: 148
-	      Multi-Protocol Reach NLRI (14), length: 71, Flags [T+6]:  [path attr too short]
-	  Origin (1), length: 5invalid len [|bgp]
+	    255.123.0.0/16 [|bgp]
diff --git a/tests/bgp_pmsi_tunnel-oobr.out b/tests/bgp_pmsi_tunnel-oobr.out
index 6c4f3cb..5dfec02 100644
--- a/tests/bgp_pmsi_tunnel-oobr.out
+++ b/tests/bgp_pmsi_tunnel-oobr.out
@@ -2,8 +2,4 @@
     241.0.32.19.179 > 239.0.0.1.0: Flags [none], seq 2146695561:2146695813, win 56026, options [unknown-161,eol], length 252: BGP
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    24.13.0.0/16
-	  Attribute Set (128), length: 7, Flags [OTPE+f]: 
-	    Origin AS: 4067
-	      Origin (1), length: 1:  [path attr too short]
-	  Origin (1), length: 19, Flags [+1]:  [|bgp]
+	    24.13.0.0/16 [|bgp]
diff --git a/tests/bgp_vpn_rt-oobr.out b/tests/bgp_vpn_rt-oobr.out
index 51d42f9..321b73d 100644
--- a/tests/bgp_vpn_rt-oobr.out
+++ b/tests/bgp_vpn_rt-oobr.out
@@ -2,16 +2,8 @@
     241.0.128.19.179 > 239.8.0.1.0: Flags [none], seq 2146695561:2146755682, win 56026, options [unknown-161,eol], length 60121: BGP
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    255.144.0.0/12
-	  Attribute Set (128), length: 7, Flags [OTPE+f]: 
-	    Origin AS: 0
-	      Multi-Protocol Unreach NLRI (15), length: 227, Flags [T+6]:  [path attr too short]
-	  AS Path (2), length: 5invalid len [|bgp] [|bgp]
+	    255.144.0.0/12 [|bgp] [|bgp]
 	Update Message (2), length: 45 [|bgp] [|bgp]
 	Update Message (2), length: 45
 	  Withdrawn routes:
-	    255.112.0.0/12
-	  Attribute Set (128), length: 7, Flags [OTPE+f]: 
-	    Origin AS: 0
-	      Multi-Protocol Reach NLRI (14), length: 227, Flags [T+6]:  [path attr too short]
-	  Origin (1), length: 132 [|bgp]
+	    255.112.0.0/12 [|bgp]
diff --git a/tests/dccp_options-oobr.out b/tests/dccp_options-oobr.out
index 63c6146..f714b35 100644
--- a/tests/dccp_options-oobr.out
+++ b/tests/dccp_options-oobr.out
@@ -1,15 +1,15 @@
     1  16:59:25.816632 IP (tos 0x0, ttl 64, id 65312, offset 0, flags [DF], proto DCCP (33), length 52)
     139.133.209.176.39420 > 139.133.209.65.5001: DCCP (CCVal 0, CsCov 0, cksum 0xaaf3 (incorrect -> 0x8bf3)) DCCP-Request (service=4105078398) seq 8 <nop, nop, nop, nop, change_l ack_ratio 2, change_r ccid 2, change_l ccid 2>
     2  14:27:00.817006 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto DCCP (33), length 68)
-    139.133.209.65.5001 > 139.133.209.176.39420: DCCP (CCVal 0, CsCov 0, ) DCCP-Response (service=0) (ack=38464816766) seq 1960341146 <nop, nop, change_l ack_ratio 2,  [|dccp]>
+    139.133.209.65.5001 > 139.133.209.176.39420: DCCP (CCVal 0, CsCov 0) DCCP-Response (service=0) (ack=38464816766) seq 1960341146 <nop, nop, change_l ack_ratio 2,  [|dccp]>
     3  14:27:00.817125 IP (tos 0x0, ttl 64, id 65313, offset 0, flags [DF], proto DCCP (33), length 56)
     139.133.209.176.39420 > 139.133.209.65.5001: DCCP (CCVal 0, CsCov 0, cksum 0xf53a (incorrect -> 0xf551)) DCCP-Ack (ack=1960341146) seq 38464816767 <nop, confirm_r ack_ratio 2, ack_vector0 0xe9, timestamp_echo [optlen != 6 or 8 or 10]>
     4  14:27:00.829614 IP (tos 0x0, ttl 64, id 65314, offset 0, flags [DF], proto DCCP (33), length 152)
-    139.133.209.176.46076 > 139.133.209.65.48009: DCCP (CCVal 0, CsCov 6, ) DCCP-DataAck (ack=1960341146) seq 38464816768 <nop, nop, ack_vector0 0x00, elapsed_time 1249, ndp_count 1>
+    139.133.209.176.46076 > 139.133.209.65.48009: DCCP (CCVal 0, CsCov 6) DCCP-DataAck (ack=1960341146) seq 38464816768 <nop, nop, ack_vector0 0x00, elapsed_time 1249, ndp_count 1>
     5  14:27:00.830145 IP (tos 0x0, ttl 64, id 3176, offset 0, flags [DF], proto DCCP (33), length 52)
     139.133.209.65.5001 > 139.133.209.176.39420: DCCP (CCVal 0, CsCov 0, cksum 0xfc63 (correct)) DCCP-Ack (ack=38464816768) seq 1960341147 <nop, ack_vector0 0x01, elapsed_time 1>
     6  14:27:00.831060 IP (tos 0x0, ttl 64, id 65315, offset 0, flags [DF], proto DCCP (33), length 148)
-    139.133.209.176.39420 > 139.133.209.65.5001: DCCP (CCVal 0, CsCov 6, ) DCCP-DataAck (ack=1960341147) seq 38464816769 <nop, ack_vector0 0x00, elapsed_time 84>
+    139.133.209.176.39420 > 139.133.209.65.5001: DCCP (CCVal 0, CsCov 6) DCCP-DataAck (ack=1960341147) seq 38464816769 <nop, ack_vector0 0x00, elapsed_time 84>
     7  14:27:00.831421 IP (tos 0x0, ttl 64, id 3177, offset 0, flags [DF], proto DCCP (33), length 52)
     139.133.209.65.5001 > 139.133.209.176.39420: DCCP (CCVal 0, CsCov 0, cksum 0x0165 (correct)) DCCP-Ack (ack=38464816769) seq 1960341148 <nop, nop, ack_vector0 0x00, ndp_count 1>
     8  14:27:00.832055 00:07:00:42:00:00 > 00:14:22:59:55:51 Null Information, send seq 0, rcv seq 0, Flags [Command], length 66
diff --git a/tests/dsa-high-vid-e.out b/tests/dsa-high-vid-e.out
new file mode 100644
index 0000000..a80539f
--- /dev/null
+++ b/tests/dsa-high-vid-e.out
@@ -0,0 +1,4 @@
+    1  00:06:42.569821 02:f0:bb:ed:00:0f > d6:18:e2:69:ee:01, Marvell DSA mode Forward, dev 0, port 2, untagged, VID 1337, FPri 0, ethertype IPv4 (0x0800), length 102: 198.18.10.1 > 198.18.10.2: ICMP echo request, id 116, seq 1, length 64
+    2  00:06:42.569913 d6:18:e2:69:ee:01 > 02:f0:bb:ed:00:0f, Marvell DSA mode From CPU, target dev 0, port 2, untagged, VID 0, FPri 0, ethertype IPv4 (0x0800), length 102: 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 116, seq 1, length 64
+    3  00:06:42.575549 02:f0:bb:ed:00:0f > d6:18:e2:69:ee:01, Marvell DSA mode Forward, dev 0, port 2, untagged, VID 1337, FPri 5, ethertype IPv4 (0x0800), length 102: 198.18.10.1 > 198.18.10.2: ICMP echo request, id 117, seq 1, length 64
+    4  00:06:42.575572 d6:18:e2:69:ee:01 > 02:f0:bb:ed:00:0f, Marvell DSA mode From CPU, target dev 0, port 2, untagged, VID 0, FPri 0, ethertype IPv4 (0x0800), length 102: 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 117, seq 1, length 64
diff --git a/tests/dsa-high-vid.out b/tests/dsa-high-vid.out
new file mode 100644
index 0000000..6ce0eab
--- /dev/null
+++ b/tests/dsa-high-vid.out
@@ -0,0 +1,4 @@
+    1  00:06:42.569821 DSA Forward port 0.2, VLAN 1337u, IP 198.18.10.1 > 198.18.10.2: ICMP echo request, id 116, seq 1, length 64
+    2  00:06:42.569913 DSA CPU > port 0.2, VLAN 0u, IP 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 116, seq 1, length 64
+    3  00:06:42.575549 DSA Forward port 0.2, VLAN 1337u, IP 198.18.10.1 > 198.18.10.2: ICMP echo request, id 117, seq 1, length 64
+    4  00:06:42.575572 DSA CPU > port 0.2, VLAN 0u, IP 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 117, seq 1, length 64
diff --git a/tests/dsa-high-vid.pcap b/tests/dsa-high-vid.pcap
new file mode 100644
index 0000000..9995974
--- /dev/null
+++ b/tests/dsa-high-vid.pcap
Binary files differ
diff --git a/tests/eapon1-v-nosmb.out b/tests/eapon1-v-nosmb.out
index 1bb775a..151196c 100644
--- a/tests/eapon1-v-nosmb.out
+++ b/tests/eapon1-v-nosmb.out
@@ -67,13 +67,13 @@
    19  15:17:37.766046 EAP packet (0) v1, len 45, Response (2), id 2, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    20  15:17:37.790625 EAP packet (0) v1, len 20, Request (1), id 16, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    21  15:17:37.830669 EAP packet (0) v1, len 76, Response (2), id 16, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    22  15:17:37.848577 EAP packet (0) v1, len 80, Request (1), id 17, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    23  15:17:38.661939 EAP packet (0) v1, len 28, Response (2), id 17, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    24  15:17:38.685352 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    25  15:17:38.686358 EAPOL key (3) v1, len 57
    26  15:17:38.687182 EAPOL key (3) v1, len 44
@@ -128,13 +128,13 @@
    32  15:18:08.713116 EAP packet (0) v1, len 45, Response (2), id 3, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    33  15:18:08.787664 EAP packet (0) v1, len 20, Request (1), id 47, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    34  15:18:10.344628 EAP packet (0) v1, len 76, Response (2), id 47, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    35  15:18:10.473292 EAP packet (0) v1, len 80, Request (1), id 48, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    36  15:18:11.152435 EAP packet (0) v1, len 28, Response (2), id 48, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    37  15:18:11.251425 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    38  15:18:11.252509 EAPOL key (3) v1, len 57
    39  15:18:11.253336 EAPOL key (3) v1, len 44
@@ -180,19 +180,19 @@
    55  15:18:41.275901 EAP packet (0) v1, len 45, Response (2), id 4, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    56  15:18:41.388857 EAP packet (0) v1, len 20, Request (1), id 80, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    57  15:18:41.715620 IP (tos 0x0, ttl 128, id 14541, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: UDP, length 68
    58  15:18:42.466013 IP (tos 0x0, ttl 128, id 14542, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: UDP, length 68
    59  15:18:42.963175 EAP packet (0) v1, len 76, Response (2), id 80, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    60  15:18:42.987906 EAP packet (0) v1, len 80, Request (1), id 81, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    61  15:18:43.216408 IP (tos 0x0, ttl 128, id 14543, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: UDP, length 68
    62  15:18:43.675053 EAP packet (0) v1, len 28, Response (2), id 81, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    63  15:18:43.695554 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    64  15:18:43.696547 EAPOL key (3) v1, len 57
    65  15:18:43.697368 EAPOL key (3) v1, len 44
@@ -317,15 +317,15 @@
   106  15:19:13.718221 EAP packet (0) v1, len 45, Response (2), id 5, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
   107  15:19:13.734974 EAP packet (0) v1, len 20, Request (1), id 112, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
   108  15:19:14.801245 IP (tos 0x0, ttl 128, id 14604, offset 0, flags [none], proto UDP (17), length 229)
     169.254.67.194.138 > 169.254.255.255.138: UDP, length 201
   109  15:19:15.293800 EAP packet (0) v1, len 76, Response (2), id 112, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
   110  15:19:15.312531 EAP packet (0) v1, len 80, Request (1), id 113, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
   111  15:19:15.997763 EAP packet (0) v1, len 28, Response (2), id 113, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
   112  15:19:16.022323 EAP packet (0) v1, len 4, Success (3), id 0, len 4
   113  15:19:16.023335 EAPOL key (3) v1, len 57
   114  15:19:16.024149 EAPOL key (3) v1, len 44
diff --git a/tests/eapon1-v.out b/tests/eapon1-v.out
index 20df831..1d0b218 100644
--- a/tests/eapon1-v.out
+++ b/tests/eapon1-v.out
@@ -67,13 +67,13 @@
    19  15:17:37.766046 EAP packet (0) v1, len 45, Response (2), id 2, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    20  15:17:37.790625 EAP packet (0) v1, len 20, Request (1), id 16, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    21  15:17:37.830669 EAP packet (0) v1, len 76, Response (2), id 16, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    22  15:17:37.848577 EAP packet (0) v1, len 80, Request (1), id 17, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    23  15:17:38.661939 EAP packet (0) v1, len 28, Response (2), id 17, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    24  15:17:38.685352 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    25  15:17:38.686358 EAPOL key (3) v1, len 57
    26  15:17:38.687182 EAPOL key (3) v1, len 44
@@ -128,13 +128,13 @@
    32  15:18:08.713116 EAP packet (0) v1, len 45, Response (2), id 3, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    33  15:18:08.787664 EAP packet (0) v1, len 20, Request (1), id 47, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    34  15:18:10.344628 EAP packet (0) v1, len 76, Response (2), id 47, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    35  15:18:10.473292 EAP packet (0) v1, len 80, Request (1), id 48, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    36  15:18:11.152435 EAP packet (0) v1, len 28, Response (2), id 48, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    37  15:18:11.251425 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    38  15:18:11.252509 EAPOL key (3) v1, len 57
    39  15:18:11.253336 EAPOL key (3) v1, len 44
@@ -180,19 +180,19 @@
    55  15:18:41.275901 EAP packet (0) v1, len 45, Response (2), id 4, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
    56  15:18:41.388857 EAP packet (0) v1, len 20, Request (1), id 80, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    57  15:18:41.715620 IP (tos 0x0, ttl 128, id 14541, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
    58  15:18:42.466013 IP (tos 0x0, ttl 128, id 14542, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
    59  15:18:42.963175 EAP packet (0) v1, len 76, Response (2), id 80, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
    60  15:18:42.987906 EAP packet (0) v1, len 80, Request (1), id 81, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    61  15:18:43.216408 IP (tos 0x0, ttl 128, id 14543, offset 0, flags [none], proto UDP (17), length 96)
     169.254.67.194.137 > 169.254.255.255.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
    62  15:18:43.675053 EAP packet (0) v1, len 28, Response (2), id 81, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
    63  15:18:43.695554 EAP packet (0) v1, len 4, Success (3), id 0, len 4
    64  15:18:43.696547 EAPOL key (3) v1, len 57
    65  15:18:43.697368 EAPOL key (3) v1, len 44
@@ -317,15 +317,15 @@
   106  15:19:13.718221 EAP packet (0) v1, len 45, Response (2), id 5, len 45
 		 Type Identity (1), Identity: 1295023820005391@mnc023.mcc295.owlan.org
   107  15:19:13.734974 EAP packet (0) v1, len 20, Request (1), id 112, len 20
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
   108  15:19:14.801245 IP (tos 0x0, ttl 128, id 14604, offset 0, flags [none], proto UDP (17), length 229)
     169.254.67.194.138 > 169.254.255.255.138: NBT UDP PACKET(138)
   109  15:19:15.293800 EAP packet (0) v1, len 76, Response (2), id 112, len 76
-		 Type SIM (18) subtype [Start] 0x0a,
+		 Type SIM (18) subtype [Start] 0x0a
   110  15:19:15.312531 EAP packet (0) v1, len 80, Request (1), id 113, len 80
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
   111  15:19:15.997763 EAP packet (0) v1, len 28, Response (2), id 113, len 28
-		 Type SIM (18) subtype [Challenge] 0x0b,
+		 Type SIM (18) subtype [Challenge] 0x0b
   112  15:19:16.022323 EAP packet (0) v1, len 4, Success (3), id 0, len 4
   113  15:19:16.023335 EAPOL key (3) v1, len 57
   114  15:19:16.024149 EAPOL key (3) v1, len 44
diff --git a/tests/edsa-high-vid-e.out b/tests/edsa-high-vid-e.out
new file mode 100644
index 0000000..d6ca505
--- /dev/null
+++ b/tests/edsa-high-vid-e.out
@@ -0,0 +1,4 @@
+    1  00:08:39.888043 02:f0:bb:ed:00:0f > d6:18:e2:69:ee:01, Marvell EDSA ethertype 0xdada (Unknown), rsvd 0 0, mode Forward, dev 0, port 2, untagged, VID 1337, FPri 0, ethertype IPv4 (0x0800), length 106: 198.18.10.1 > 198.18.10.2: ICMP echo request, id 120, seq 1, length 64
+    2  00:08:39.888132 d6:18:e2:69:ee:01 > 02:f0:bb:ed:00:0f, Marvell EDSA ethertype 0xdada (Unknown), rsvd 0 0, mode From CPU, target dev 0, port 2, untagged, VID 0, FPri 0, ethertype IPv4 (0x0800), length 106: 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 120, seq 1, length 64
+    3  00:08:39.893713 02:f0:bb:ed:00:0f > d6:18:e2:69:ee:01, Marvell EDSA ethertype 0xdada (Unknown), rsvd 0 0, mode Forward, dev 0, port 2, untagged, VID 1337, FPri 5, ethertype IPv4 (0x0800), length 106: 198.18.10.1 > 198.18.10.2: ICMP echo request, id 121, seq 1, length 64
+    4  00:08:39.893737 d6:18:e2:69:ee:01 > 02:f0:bb:ed:00:0f, Marvell EDSA ethertype 0xdada (Unknown), rsvd 0 0, mode From CPU, target dev 0, port 2, untagged, VID 0, FPri 0, ethertype IPv4 (0x0800), length 106: 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 121, seq 1, length 64
diff --git a/tests/edsa-high-vid.out b/tests/edsa-high-vid.out
new file mode 100644
index 0000000..d82bdd1
--- /dev/null
+++ b/tests/edsa-high-vid.out
@@ -0,0 +1,4 @@
+    1  00:08:39.888043 EDSA 0xdada, Forward port 0.2, VLAN 1337u, IP 198.18.10.1 > 198.18.10.2: ICMP echo request, id 120, seq 1, length 64
+    2  00:08:39.888132 EDSA 0xdada, CPU > port 0.2, VLAN 0u, IP 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 120, seq 1, length 64
+    3  00:08:39.893713 EDSA 0xdada, Forward port 0.2, VLAN 1337u, IP 198.18.10.1 > 198.18.10.2: ICMP echo request, id 121, seq 1, length 64
+    4  00:08:39.893737 EDSA 0xdada, CPU > port 0.2, VLAN 0u, IP 198.18.10.2 > 198.18.10.1: ICMP echo reply, id 121, seq 1, length 64
diff --git a/tests/edsa-high-vid.pcap b/tests/edsa-high-vid.pcap
new file mode 100644
index 0000000..492f381
--- /dev/null
+++ b/tests/edsa-high-vid.pcap
Binary files differ
diff --git a/tests/heapoverflow-EXTRACT_16BITS.out b/tests/heapoverflow-atalk_2.out
similarity index 100%
rename from tests/heapoverflow-EXTRACT_16BITS.out
rename to tests/heapoverflow-atalk_2.out
diff --git a/tests/heapoverflow-EXTRACT_16BITS.pcap b/tests/heapoverflow-atalk_2.pcap
similarity index 100%
rename from tests/heapoverflow-EXTRACT_16BITS.pcap
rename to tests/heapoverflow-atalk_2.pcap
Binary files differ
diff --git a/tests/hoobr_juniper3.out b/tests/hoobr_juniper3.out
index c47a8af..15a8e3f 100644
--- a/tests/hoobr_juniper3.out
+++ b/tests/hoobr_juniper3.out
@@ -1 +1 @@
-    1  05:27:12.808464432 Unknown Juniper DLT_ type 132:  [|juniper_es]
+    1  05:27:12.808464432  [|juniper_es]
diff --git a/tests/icmp-cksum-oobr-1.out b/tests/icmp-cksum-oobr-1.out
index 94cdc77..4e2b1c9 100644
--- a/tests/icmp-cksum-oobr-1.out
+++ b/tests/icmp-cksum-oobr-1.out
@@ -2,4 +2,4 @@
     62.220.31.247 > 62.225.245.115: ICMP 62.220.31.247 udp port 1027 unreachable, length 13891
 	(tos 0xa0, ttl 114, id 30054, offset 0, flags [none], proto UDP (17), length 13728, bad cksum 3f1f (->a1f)!)
     62.225.245.115.9109 > 62.220.31.247.1027: [bad udp cksum 0xdfe7 -> 0xdb95!] UDP, length 132
-	MPLS extension v0 packet not supported
+	ICMP Multi-Part extension v0 packet not supported
diff --git a/tests/icmp-cksum-oobr-2.out b/tests/icmp-cksum-oobr-2.out
index bd271da..aad76ac 100644
--- a/tests/icmp-cksum-oobr-2.out
+++ b/tests/icmp-cksum-oobr-2.out
@@ -2,8 +2,8 @@
     10.4.0.34 > 12.4.4.4: ICMP time exceeded in-transit, length 32988
 	(tos 0x0, ttl 1, id 42321, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33440: [bad udp cksum 0x1000 -> 0xbad0!] UDP, length 12
-	MPLS extension v2
-	  Extended Payload Object (2), Class-Type: 14, length 80
+	ICMP Multi-Part extension v2
+	  Interface Identification Object (2), Class-Type: 14, length 80
 	    0x0000:  0000 000f 0001 0000 0a0a 0a0a 3f54 6869
 	    0x0010:  732d 6973 2d74 6865 2d6e 616d 652d 6f66
 	    0x0020:  2d74 6865 2d49 6e74 6572 6661 6365 2d74
diff --git a/tests/icmp-cksum-oobr-3.out b/tests/icmp-cksum-oobr-3.out
index 2037766..309afdb 100644
--- a/tests/icmp-cksum-oobr-3.out
+++ b/tests/icmp-cksum-oobr-3.out
@@ -2,4 +2,4 @@
     97.242.24.11 > 97.242.24.11: ICMP 97.242.24.11 udp port 162 unreachable, length 4399
 	(tos 0x0, ttl 128, id 30661, offset 0, flags [DF], proto UDP (17), length 295)
     97.242.24.11.60377 > 97.242.24.11.162: [udp sum ok]  { SNMPv1 C="trap" { Trap(251)  .1.3.6.1.4.1.3830.1.1.2.2.1 97.242.24.11 enterpriseSpecific s=52 61498489 .1.3.6.1.4.1.3830.1.1.2.1.1.1=3 .1.3.6.1.4.1.3830.1.1.2.1.1.2=2 .1.3.6.1.4.1.3830.1.1.2.1.1.3="%SMSA-E-POLLERR, Polling the SMSC was not successful." .1.3.6.1.4.1.3830.1.1.2.1.1.4="OPCOM" .1.3.6.1.4.1.3830.1.1.2.1.1.5="28-OCT-2010 20:42:14.67" .1.3.6.1.4.1.3830.1.1.2.1.1.6="SMRL51" } } 
-	MPLS extension v0 packet not supported
+	ICMP Multi-Part extension v0 packet not supported
diff --git a/tests/icmp-cksum-oobr-4.out b/tests/icmp-cksum-oobr-4.out
index 7c18fac..7c263c2 100644
--- a/tests/icmp-cksum-oobr-4.out
+++ b/tests/icmp-cksum-oobr-4.out
@@ -2,6 +2,6 @@
     10.0.12.2 > 10.0.12.1: ICMP time exceeded in-transit, length 8340
 	(tos 0x0, ttl 1, id 2574, offset 0, flags [none], proto UDP (17), length 28)
     10.0.12.1.49215 > 10.255.255.4.33435: [udp sum ok] UDP, length 0
-	MPLS extension v2
+	ICMP Multi-Part extension v2
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 16, exp 0, [S], ttl 1 [|icmp]
+	    label 16, tc 0, [S], ttl 1 [|icmp]
diff --git a/tests/icmpv6-RFC2894-RR-v.out b/tests/icmpv6-RFC2894-RR-v.out
new file mode 100644
index 0000000..35d3d4e
--- /dev/null
+++ b/tests/icmpv6-RFC2894-RR-v.out
@@ -0,0 +1,6 @@
+    1  17:24:20.953888 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=0[S,seg=0,maxdelay=0] match(add,ord=0,min=0,max=128,fec0::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:fffe::/48/16)
+    2  17:24:50.966750 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=0[S,seg=0,maxdelay=0] match(add,ord=0,min=0,max=128,fec0::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:fffe::/48/16)
+    3  17:25:20.976267 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=0[S,seg=0,maxdelay=0] match(add,ord=0,min=0,max=128,fec0::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:fffe::/48/16)
+    4  17:25:20.978460 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=16777216[S,seg=0,maxdelay=0] match(change,ord=0,min=0,max=128,3ffe:501:ffff::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:ffff::/48/16)
+    5  17:25:50.997724 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=16777216[S,seg=0,maxdelay=0] match(change,ord=0,min=0,max=128,3ffe:501:ffff::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:ffff::/48/16)
+    6  17:26:21.005793 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 72) 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: [icmp6 sum ok] ICMP6, router renumbering, command, seq=16777216[S,seg=0,maxdelay=0] match(change,ord=0,min=0,max=128,3ffe:501:ffff::/48) use(mask=0x0,raflags=0x0,vltime=2592000,pltime=604800,3ffe:501:ffff::/48/16)
diff --git a/tests/icmpv6-RFC2894-RR.out b/tests/icmpv6-RFC2894-RR.out
new file mode 100644
index 0000000..03a4522
--- /dev/null
+++ b/tests/icmpv6-RFC2894-RR.out
@@ -0,0 +1,6 @@
+    1  17:24:20.953888 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=0 match(add,fec0::/48) use(3ffe:501:fffe::/48/16), length 72
+    2  17:24:50.966750 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=0 match(add,fec0::/48) use(3ffe:501:fffe::/48/16), length 72
+    3  17:25:20.976267 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=0 match(add,fec0::/48) use(3ffe:501:fffe::/48/16), length 72
+    4  17:25:20.978460 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=16777216 match(change,3ffe:501:ffff::/48) use(3ffe:501:ffff::/48/16), length 72
+    5  17:25:50.997724 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=16777216 match(change,3ffe:501:ffff::/48) use(3ffe:501:ffff::/48/16), length 72
+    6  17:26:21.005793 IP6 2001:db8:1:0:a00:27ff:fef4:4dcf > 2001:db8:1:0:a00:27ff:fef4:4dcf: ICMP6, router renumbering, command, seq=16777216 match(change,3ffe:501:ffff::/48) use(3ffe:501:ffff::/48/16), length 72
diff --git a/tests/icmpv6-RFC2894-RR.pcap b/tests/icmpv6-RFC2894-RR.pcap
new file mode 100644
index 0000000..b2e0b6e
--- /dev/null
+++ b/tests/icmpv6-RFC2894-RR.pcap
Binary files differ
diff --git a/tests/icmpv6-ni-flags.out b/tests/icmpv6-ni-flags.out
new file mode 100644
index 0000000..f1c18ba
--- /dev/null
+++ b/tests/icmpv6-ni-flags.out
@@ -0,0 +1,5 @@
+    1  13:56:00.443595 IP6 fe80::5054:ff:fe43:2ca8 > fe80::5054:ff:fe2c:3629: ICMP6, who-are-you request node information query (node addresses [A], subject=fe80::5054:ff:fe2c:3629), length 32
+    2  13:56:46.614177 IP6 fe80::5054:ff:fe43:2ca8 > fe80::5054:ff:fe2c:3629: ICMP6, who-are-you request node information query (node addresses [C], subject=fe80::5054:ff:fe2c:3629), length 32
+    3  13:57:14.854456 IP6 fe80::5054:ff:fe43:2ca8 > fe80::5054:ff:fe2c:3629: ICMP6, who-are-you request node information query (node addresses [L], subject=fe80::5054:ff:fe2c:3629), length 32
+    4  13:57:22.010951 IP6 fe80::5054:ff:fe43:2ca8 > fe80::5054:ff:fe2c:3629: ICMP6, who-are-you request node information query (node addresses [S], subject=fe80::5054:ff:fe2c:3629), length 32
+    5  13:57:41.727114 IP6 fe80::5054:ff:fe43:2ca8 > fe80::5054:ff:fe2c:3629: ICMP6, who-are-you request node information query (node addresses [G], subject=fe80::5054:ff:fe2c:3629), length 32
diff --git a/tests/icmpv6-ni-flags.pcap b/tests/icmpv6-ni-flags.pcap
new file mode 100644
index 0000000..19615d5
--- /dev/null
+++ b/tests/icmpv6-ni-flags.pcap
Binary files differ
diff --git a/tests/ipv6-too-long-jumbo.out b/tests/ipv6-too-long-jumbo.out
new file mode 100644
index 0000000..c5ccb83
--- /dev/null
+++ b/tests/ipv6-too-long-jumbo.out
@@ -0,0 +1 @@
+    1  12:40:23.226395 IP6 (class 0xc0, hlim 0, next-header Options (0) payload length: 0) 1:6:1a28:312:d7cb:b318:34e5:d3ea > 2b7f:cd1f:ec3c:fb9c:e731:d16b:a8fe:ba8c: HBH (opt_type 0x1a: len=0)(padn)(opt_type 0x16: len=0)(opt_type 0x64: len=114)(jumbo: 3858694210) (opt_type 0x42: len=3)(opt_type 0xfe: len=6)(pad1)(jumbo: 248 - already seen) (opt_type 0x0e: len=8)(opt_type 0x07: len=4)(opt_type 0xf1: len=60) truncated-ip6 - 3858693774 bytes missing! ip-proto-12 3858693802
diff --git a/tests/ipv6-too-long-jumbo.pcap b/tests/ipv6-too-long-jumbo.pcap
new file mode 100644
index 0000000..3a7fea9
--- /dev/null
+++ b/tests/ipv6-too-long-jumbo.pcap
Binary files differ
diff --git a/tests/juniper_header-heapoverflow.out b/tests/juniper_header-heapoverflow.out
index 732d570..f3e4641 100644
--- a/tests/juniper_header-heapoverflow.out
+++ b/tests/juniper_header-heapoverflow.out
@@ -1 +1 @@
-    1  01:10:59.680304  [|juniper_ether]
+    1  01:10:59.680304  [extension_length 48 < 50] (invalid)
diff --git a/tests/lspping-fec-ldp-v.out b/tests/lspping-fec-ldp-v.out
index 6f2f675..5b55bb7 100644
--- a/tests/lspping-fec-ldp-v.out
+++ b/tests/lspping-fec-ldp-v.out
@@ -1,8 +1,8 @@
-    1  10:17:05.850284 MPLS (label 100656, exp 6, [S], ttl 64)
+    1  10:17:05.850284 MPLS (label 100656, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40719, offset 0, flags [none], proto TCP (6), length 71)
     12.4.4.4.4100 > 12.8.8.8.179: Flags [P.], cksum 0xfd1b (correct), seq 1860641958:1860641977, ack 2969468967, win 16384, options [nop,nop,TS val 84784152 ecr 84770238], length 19: BGP
 	Keepalive Message (4), length: 19
-    2  10:17:08.118493 MPLS (label 100688, exp 7, [S], ttl 255)
+    2  10:17:08.118493 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40723, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -22,14 +22,14 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 1
 	  Sender Timestamp: 1087208228.000027564 (1934-06-15T10:17:08Z) Receiver Timestamp: 1087208228.000027928 (1934-06-15T10:17:08Z)
-    4  10:17:08.878375 MPLS (label 100704, exp 6, [S], ttl 64)
+    4  10:17:08.878375 MPLS (label 100704, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40725, offset 0, flags [none], proto TCP (6), length 71)
     12.4.4.4.2006 > 12.1.1.1.179: Flags [P.], cksum 0x6c0d (correct), seq 399708866:399708885, ack 708613212, win 16384, options [nop,nop,TS val 84784455 ecr 130411], length 19: BGP
 	Keepalive Message (4), length: 19
-    5  10:17:08.978295 MPLS (label 100704, exp 6, [S], ttl 64)
+    5  10:17:08.978295 MPLS (label 100704, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40726, offset 0, flags [none], proto TCP (6), length 52)
     12.4.4.4.2006 > 12.1.1.1.179: Flags [.], cksum 0x6451 (correct), ack 20, win 16384, options [nop,nop,TS val 84784465 ecr 133413], length 0
-    6  10:17:09.128397 MPLS (label 100688, exp 7, [S], ttl 255)
+    6  10:17:09.128397 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40727, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -49,7 +49,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 2
 	  Sender Timestamp: 1087208229.000029880 (1934-06-15T10:17:09Z) Receiver Timestamp: 1087208229.000030186 (1934-06-15T10:17:09Z)
-    8  10:17:10.128607 MPLS (label 100688, exp 7, [S], ttl 255)
+    8  10:17:10.128607 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40729, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -69,7 +69,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 3
 	  Sender Timestamp: 1087208230.000029928 (1934-06-15T10:17:10Z) Receiver Timestamp: 1087208230.000030250 (1934-06-15T10:17:10Z)
-   10  10:17:11.128577 MPLS (label 100688, exp 7, [S], ttl 255)
+   10  10:17:11.128577 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40731, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -89,7 +89,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 4
 	  Sender Timestamp: 1087208231.000029918 (1934-06-15T10:17:11Z) Receiver Timestamp: 1087208231.000030237 (1934-06-15T10:17:11Z)
-   12  10:17:12.128655 MPLS (label 100688, exp 7, [S], ttl 255)
+   12  10:17:12.128655 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40733, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
diff --git a/tests/lspping-fec-ldp-vv.out b/tests/lspping-fec-ldp-vv.out
index 41d8d5e..6b9d787 100644
--- a/tests/lspping-fec-ldp-vv.out
+++ b/tests/lspping-fec-ldp-vv.out
@@ -1,8 +1,8 @@
-    1  10:17:05.850284 MPLS (label 100656, exp 6, [S], ttl 64)
+    1  10:17:05.850284 MPLS (label 100656, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40719, offset 0, flags [none], proto TCP (6), length 71)
     12.4.4.4.4100 > 12.8.8.8.179: Flags [P.], cksum 0xfd1b (correct), seq 1860641958:1860641977, ack 2969468967, win 16384, options [nop,nop,TS val 84784152 ecr 84770238], length 19: BGP
 	Keepalive Message (4), length: 19
-    2  10:17:08.118493 MPLS (label 100688, exp 7, [S], ttl 255)
+    2  10:17:08.118493 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40723, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -24,14 +24,14 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 1
 	  Sender Timestamp: 1087208228.000027564 (1934-06-15T10:17:08Z) Receiver Timestamp: 1087208228.000027928 (1934-06-15T10:17:08Z)
-    4  10:17:08.878375 MPLS (label 100704, exp 6, [S], ttl 64)
+    4  10:17:08.878375 MPLS (label 100704, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40725, offset 0, flags [none], proto TCP (6), length 71)
     12.4.4.4.2006 > 12.1.1.1.179: Flags [P.], cksum 0x6c0d (correct), seq 399708866:399708885, ack 708613212, win 16384, options [nop,nop,TS val 84784455 ecr 130411], length 19: BGP
 	Keepalive Message (4), length: 19
-    5  10:17:08.978295 MPLS (label 100704, exp 6, [S], ttl 64)
+    5  10:17:08.978295 MPLS (label 100704, tc 6, [S], ttl 64)
 	IP (tos 0xc0, ttl 64, id 40726, offset 0, flags [none], proto TCP (6), length 52)
     12.4.4.4.2006 > 12.1.1.1.179: Flags [.], cksum 0x6451 (correct), seq 19, ack 20, win 16384, options [nop,nop,TS val 84784465 ecr 133413], length 0
-    6  10:17:09.128397 MPLS (label 100688, exp 7, [S], ttl 255)
+    6  10:17:09.128397 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40727, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -53,7 +53,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 2
 	  Sender Timestamp: 1087208229.000029880 (1934-06-15T10:17:09Z) Receiver Timestamp: 1087208229.000030186 (1934-06-15T10:17:09Z)
-    8  10:17:10.128607 MPLS (label 100688, exp 7, [S], ttl 255)
+    8  10:17:10.128607 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40729, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -75,7 +75,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 3
 	  Sender Timestamp: 1087208230.000029928 (1934-06-15T10:17:10Z) Receiver Timestamp: 1087208230.000030250 (1934-06-15T10:17:10Z)
-   10  10:17:11.128577 MPLS (label 100688, exp 7, [S], ttl 255)
+   10  10:17:11.128577 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40731, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
@@ -97,7 +97,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 4
 	  Sender Timestamp: 1087208231.000029918 (1934-06-15T10:17:11Z) Receiver Timestamp: 1087208231.000030237 (1934-06-15T10:17:11Z)
-   12  10:17:12.128655 MPLS (label 100688, exp 7, [S], ttl 255)
+   12  10:17:12.128655 MPLS (label 100688, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40733, offset 0, flags [none], proto UDP (17), length 76)
     12.4.4.4.4786 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 48
diff --git a/tests/lspping-fec-ldp.out b/tests/lspping-fec-ldp.out
index 92800c9..e6ff801 100644
--- a/tests/lspping-fec-ldp.out
+++ b/tests/lspping-fec-ldp.out
@@ -1,13 +1,13 @@
-    1  10:17:05.850284 MPLS (label 100656, exp 6, [S], ttl 64) IP 12.4.4.4.4100 > 12.8.8.8.179: Flags [P.], seq 1860641958:1860641977, ack 2969468967, win 16384, options [nop,nop,TS val 84784152 ecr 84770238], length 19: BGP
-    2  10:17:08.118493 MPLS (label 100688, exp 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 1, length: 48
+    1  10:17:05.850284 MPLS (label 100656, tc 6, [S], ttl 64) IP 12.4.4.4.4100 > 12.8.8.8.179: Flags [P.], seq 1860641958:1860641977, ack 2969468967, win 16384, options [nop,nop,TS val 84784152 ecr 84770238], length 19: BGP
+    2  10:17:08.118493 MPLS (label 100688, tc 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 1, length: 48
     3  10:17:08.119504 IP 10.20.0.1.3503 > 12.4.4.4.4786: LSP-PINGv1, MPLS Echo Reply, seq 1, length: 32
-    4  10:17:08.878375 MPLS (label 100704, exp 6, [S], ttl 64) IP 12.4.4.4.2006 > 12.1.1.1.179: Flags [P.], seq 399708866:399708885, ack 708613212, win 16384, options [nop,nop,TS val 84784455 ecr 130411], length 19: BGP
-    5  10:17:08.978295 MPLS (label 100704, exp 6, [S], ttl 64) IP 12.4.4.4.2006 > 12.1.1.1.179: Flags [.], ack 20, win 16384, options [nop,nop,TS val 84784465 ecr 133413], length 0
-    6  10:17:09.128397 MPLS (label 100688, exp 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 2, length: 48
+    4  10:17:08.878375 MPLS (label 100704, tc 6, [S], ttl 64) IP 12.4.4.4.2006 > 12.1.1.1.179: Flags [P.], seq 399708866:399708885, ack 708613212, win 16384, options [nop,nop,TS val 84784455 ecr 130411], length 19: BGP
+    5  10:17:08.978295 MPLS (label 100704, tc 6, [S], ttl 64) IP 12.4.4.4.2006 > 12.1.1.1.179: Flags [.], ack 20, win 16384, options [nop,nop,TS val 84784465 ecr 133413], length 0
+    6  10:17:09.128397 MPLS (label 100688, tc 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 2, length: 48
     7  10:17:09.129192 IP 10.20.0.1.3503 > 12.4.4.4.4786: LSP-PINGv1, MPLS Echo Reply, seq 2, length: 32
-    8  10:17:10.128607 MPLS (label 100688, exp 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 3, length: 48
+    8  10:17:10.128607 MPLS (label 100688, tc 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 3, length: 48
     9  10:17:10.129475 IP 10.20.0.1.3503 > 12.4.4.4.4786: LSP-PINGv1, MPLS Echo Reply, seq 3, length: 32
-   10  10:17:11.128577 MPLS (label 100688, exp 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 4, length: 48
+   10  10:17:11.128577 MPLS (label 100688, tc 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 4, length: 48
    11  10:17:11.129418 IP 10.20.0.1.3503 > 12.4.4.4.4786: LSP-PINGv1, MPLS Echo Reply, seq 4, length: 32
-   12  10:17:12.128655 MPLS (label 100688, exp 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 5, length: 48
+   12  10:17:12.128655 MPLS (label 100688, tc 7, [S], ttl 255) IP 12.4.4.4.4786 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 5, length: 48
    13  10:17:12.129573 IP 10.20.0.1.3503 > 12.4.4.4.4786: LSP-PINGv1, MPLS Echo Reply, seq 5, length: 32
diff --git a/tests/lspping-fec-rsvp-v.out b/tests/lspping-fec-rsvp-v.out
index 4112751..cd9da30 100644
--- a/tests/lspping-fec-rsvp-v.out
+++ b/tests/lspping-fec-rsvp-v.out
@@ -1,4 +1,4 @@
-    1  10:13:57.562886 MPLS (label 100704, exp 7, [S], ttl 255)
+    1  10:13:57.562886 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40269, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -19,7 +19,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 1
 	  Sender Timestamp: 1087208037.000131030 (1934-06-15T10:13:57Z) Receiver Timestamp: 1087208037.000131348 (1934-06-15T10:13:57Z)
-    3  10:13:58.572787 MPLS (label 100704, exp 7, [S], ttl 255)
+    3  10:13:58.572787 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40271, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -40,7 +40,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 2
 	  Sender Timestamp: 1087208038.000133345 (1934-06-15T10:13:58Z) Receiver Timestamp: 1087208038.000136480 (1934-06-15T10:13:58Z)
-    5  10:13:59.572866 MPLS (label 100704, exp 7, [S], ttl 255)
+    5  10:13:59.572866 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40273, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -61,7 +61,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 3
 	  Sender Timestamp: 1087208039.000133363 (1934-06-15T10:13:59Z) Receiver Timestamp: 1087208039.000133684 (1934-06-15T10:13:59Z)
-    7  10:14:00.572959 MPLS (label 100704, exp 7, [S], ttl 255)
+    7  10:14:00.572959 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40275, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -82,7 +82,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 4
 	  Sender Timestamp: 1087208040.000133384 (1934-06-15T10:14:00Z) Receiver Timestamp: 1087208040.000133697 (1934-06-15T10:14:00Z)
-    9  10:14:01.573010 MPLS (label 100704, exp 7, [S], ttl 255)
+    9  10:14:01.573010 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40278, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
diff --git a/tests/lspping-fec-rsvp-vv.out b/tests/lspping-fec-rsvp-vv.out
index ce7eac6..72183fc 100644
--- a/tests/lspping-fec-rsvp-vv.out
+++ b/tests/lspping-fec-rsvp-vv.out
@@ -1,4 +1,4 @@
-    1  10:13:57.562886 MPLS (label 100704, exp 7, [S], ttl 255)
+    1  10:13:57.562886 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40269, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -23,7 +23,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 1
 	  Sender Timestamp: 1087208037.000131030 (1934-06-15T10:13:57Z) Receiver Timestamp: 1087208037.000131348 (1934-06-15T10:13:57Z)
-    3  10:13:58.572787 MPLS (label 100704, exp 7, [S], ttl 255)
+    3  10:13:58.572787 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40271, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -48,7 +48,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 2
 	  Sender Timestamp: 1087208038.000133345 (1934-06-15T10:13:58Z) Receiver Timestamp: 1087208038.000136480 (1934-06-15T10:13:58Z)
-    5  10:13:59.572866 MPLS (label 100704, exp 7, [S], ttl 255)
+    5  10:13:59.572866 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40273, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -73,7 +73,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 3
 	  Sender Timestamp: 1087208039.000133363 (1934-06-15T10:13:59Z) Receiver Timestamp: 1087208039.000133684 (1934-06-15T10:13:59Z)
-    7  10:14:00.572959 MPLS (label 100704, exp 7, [S], ttl 255)
+    7  10:14:00.572959 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40275, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
@@ -98,7 +98,7 @@
 	  Return Subcode: (0)
 	  Sender Handle: 0x00000000, Sequence: 4
 	  Sender Timestamp: 1087208040.000133384 (1934-06-15T10:14:00Z) Receiver Timestamp: 1087208040.000133697 (1934-06-15T10:14:00Z)
-    9  10:14:01.573010 MPLS (label 100704, exp 7, [S], ttl 255)
+    9  10:14:01.573010 MPLS (label 100704, tc 7, [S], ttl 255)
 	IP (tos 0x0, ttl 64, id 40278, offset 0, flags [none], proto UDP (17), length 88)
     12.4.4.4.4529 > 127.0.0.1.3503: [udp sum ok] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 60
diff --git a/tests/lspping-fec-rsvp.out b/tests/lspping-fec-rsvp.out
index 339ba61..fe1bebc 100644
--- a/tests/lspping-fec-rsvp.out
+++ b/tests/lspping-fec-rsvp.out
@@ -1,10 +1,10 @@
-    1  10:13:57.562886 MPLS (label 100704, exp 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 1, length: 60
+    1  10:13:57.562886 MPLS (label 100704, tc 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 1, length: 60
     2  10:13:57.563663 IP 10.20.0.1.3503 > 12.4.4.4.4529: LSP-PINGv1, MPLS Echo Reply, seq 1, length: 32
-    3  10:13:58.572787 MPLS (label 100704, exp 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 2, length: 60
+    3  10:13:58.572787 MPLS (label 100704, tc 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 2, length: 60
     4  10:13:58.585727 IP 10.20.0.1.3503 > 12.4.4.4.4529: LSP-PINGv1, MPLS Echo Reply, seq 2, length: 32
-    5  10:13:59.572866 MPLS (label 100704, exp 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 3, length: 60
+    5  10:13:59.572866 MPLS (label 100704, tc 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 3, length: 60
     6  10:13:59.573713 IP 10.20.0.1.3503 > 12.4.4.4.4529: LSP-PINGv1, MPLS Echo Reply, seq 3, length: 32
-    7  10:14:00.572959 MPLS (label 100704, exp 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 4, length: 60
+    7  10:14:00.572959 MPLS (label 100704, tc 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 4, length: 60
     8  10:14:00.573746 IP 10.20.0.1.3503 > 12.4.4.4.4529: LSP-PINGv1, MPLS Echo Reply, seq 4, length: 32
-    9  10:14:01.573010 MPLS (label 100704, exp 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 5, length: 60
+    9  10:14:01.573010 MPLS (label 100704, tc 7, [S], ttl 255) IP 12.4.4.4.4529 > 127.0.0.1.3503: LSP-PINGv1, MPLS Echo Request, seq 5, length: 60
    10  10:14:01.573838 IP 10.20.0.1.3503 > 12.4.4.4.4529: LSP-PINGv1, MPLS Echo Reply, seq 5, length: 32
diff --git a/tests/lwres_with_extra.out b/tests/lwres_with_extra.out
new file mode 100644
index 0000000..ec36f09
--- /dev/null
+++ b/tests/lwres_with_extra.out
@@ -0,0 +1 @@
+    1  12:40:23.226395 IP6 fe80::b203:303:303:303.771 > 303:303:303:303:303:303:303:303.921:  lwres noop? [len: 3594977026 != 428][extra]
diff --git a/tests/lwres_with_extra.pcap b/tests/lwres_with_extra.pcap
new file mode 100644
index 0000000..6323a20
--- /dev/null
+++ b/tests/lwres_with_extra.pcap
Binary files differ
diff --git a/tests/mpls-label-heapoverflow.out b/tests/mpls-label-heapoverflow.out
index a63189d..60d3a00 100644
--- a/tests/mpls-label-heapoverflow.out
+++ b/tests/mpls-label-heapoverflow.out
@@ -1,2 +1,2 @@
-    1  05:27:12.808464432 MPLS (label 197379, exp 0, ttl 48)
-	(label 197387, exp 5, [S], ttl 48) [|mpls]
+    1  05:27:12.808464432 MPLS (label 197379, tc 0, ttl 48)
+	(label 197387, tc 5, [S], ttl 48) [|mpls]
diff --git a/tests/mpls-over-udp-v.out b/tests/mpls-over-udp-v.out
index 595aa53..684a7dc 100644
--- a/tests/mpls-over-udp-v.out
+++ b/tests/mpls-over-udp-v.out
@@ -1,8 +1,8 @@
     1  19:10:12.233047 IP (tos 0x0, ttl 64, id 26479, offset 0, flags [none], proto UDP (17), length 116)
-    10.100.12.170.58699 > 10.100.13.157.6635: MPLS (label 21, exp 0, [S], ttl 63)
+    10.100.12.170.58699 > 10.100.13.157.6635: MPLS (label 21, tc 0, [S], ttl 63)
 	IP (tos 0x0, ttl 63, id 26479, offset 0, flags [DF], proto ICMP (1), length 84)
     10.3.0.10 > 10.1.0.10: ICMP echo request, id 42731, seq 16, length 64
     2  19:10:12.233101 IP (tos 0x0, ttl 64, id 46612, offset 0, flags [none], proto UDP (17), length 116)
-    10.100.13.157.51348 > 10.100.12.170.6635: MPLS (label 46, exp 0, [S], ttl 63)
+    10.100.13.157.51348 > 10.100.12.170.6635: MPLS (label 46, tc 0, [S], ttl 63)
 	IP (tos 0x0, ttl 63, id 46612, offset 0, flags [none], proto ICMP (1), length 84)
     10.1.0.10 > 10.3.0.10: ICMP echo reply, id 42731, seq 16, length 64
diff --git a/tests/mpls-over-udp.out b/tests/mpls-over-udp.out
index d525898..6bb5d6f 100644
--- a/tests/mpls-over-udp.out
+++ b/tests/mpls-over-udp.out
@@ -1,2 +1,2 @@
-    1  19:10:12.233047 IP 10.100.12.170.58699 > 10.100.13.157.6635: MPLS (label 21, exp 0, [S], ttl 63) IP 10.3.0.10 > 10.1.0.10: ICMP echo request, id 42731, seq 16, length 64
-    2  19:10:12.233101 IP 10.100.13.157.51348 > 10.100.12.170.6635: MPLS (label 46, exp 0, [S], ttl 63) IP 10.1.0.10 > 10.3.0.10: ICMP echo reply, id 42731, seq 16, length 64
+    1  19:10:12.233047 IP 10.100.12.170.58699 > 10.100.13.157.6635: MPLS (label 21, tc 0, [S], ttl 63) IP 10.3.0.10 > 10.1.0.10: ICMP echo request, id 42731, seq 16, length 64
+    2  19:10:12.233101 IP 10.100.13.157.51348 > 10.100.12.170.6635: MPLS (label 46, tc 0, [S], ttl 63) IP 10.1.0.10 > 10.3.0.10: ICMP echo reply, id 42731, seq 16, length 64
diff --git a/tests/mpls-traceroute-v.out b/tests/mpls-traceroute-v.out
index 437d277..d6f09ba 100644
--- a/tests/mpls-traceroute-v.out
+++ b/tests/mpls-traceroute-v.out
@@ -1,78 +1,78 @@
-    1  10:13:29.315598 MPLS (label 100704, exp 0, [S], ttl 1)
+    1  10:13:29.315598 MPLS (label 100704, tc 0, [S], ttl 1)
 	IP (tos 0x0, ttl 1, id 42316, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33435: UDP, length 12
     2  10:13:29.316413 IP (tos 0x0, ttl 255, id 5014, offset 0, flags [DF], proto ICMP (1), length 168)
     10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42316, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33435: UDP, length 12
-	MPLS extension v2, checksum 0xc55f (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc55f (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 100704, exp 0, [S], ttl 1
-    3  10:13:29.319182 MPLS (label 100704, exp 0, [S], ttl 1)
+	    label 100704, tc 0, [S], ttl 1
+    3  10:13:29.319182 MPLS (label 100704, tc 0, [S], ttl 1)
 	IP (tos 0x0, ttl 1, id 42317, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33436: UDP, length 12
     4  10:13:29.326330 IP (tos 0x0, ttl 255, id 5015, offset 0, flags [DF], proto ICMP (1), length 168)
     10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42317, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33436: UDP, length 12
-	MPLS extension v2, checksum 0xc55f (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc55f (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 100704, exp 0, [S], ttl 1
-    5  10:13:29.326697 MPLS (label 100704, exp 0, [S], ttl 1)
+	    label 100704, tc 0, [S], ttl 1
+    5  10:13:29.326697 MPLS (label 100704, tc 0, [S], ttl 1)
 	IP (tos 0x0, ttl 1, id 42318, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33437: UDP, length 12
     6  10:13:29.327328 IP (tos 0x0, ttl 255, id 5016, offset 0, flags [DF], proto ICMP (1), length 168)
     10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42318, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33437: UDP, length 12
-	MPLS extension v2, checksum 0xc55f (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc55f (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 100704, exp 0, [S], ttl 1
-    7  10:13:29.327769 MPLS (label 100704, exp 0, [S], ttl 2)
+	    label 100704, tc 0, [S], ttl 1
+    7  10:13:29.327769 MPLS (label 100704, tc 0, [S], ttl 2)
 	IP (tos 0x0, ttl 2, id 42319, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33438: UDP, length 12
     8  10:13:29.328510 IP (tos 0x0, ttl 254, id 59166, offset 0, flags [DF], proto ICMP (1), length 168)
     10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42319, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33438: UDP, length 12
-	MPLS extension v2, checksum 0xc4e4 (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc4e4 (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 102672, exp 0, [S], ttl 1
-    9  10:13:29.330110 MPLS (label 100704, exp 0, [S], ttl 2)
+	    label 102672, tc 0, [S], ttl 1
+    9  10:13:29.330110 MPLS (label 100704, tc 0, [S], ttl 2)
 	IP (tos 0x0, ttl 2, id 42320, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33439: UDP, length 12
    10  10:13:29.330735 IP (tos 0x0, ttl 254, id 59167, offset 0, flags [DF], proto ICMP (1), length 168)
     10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42320, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33439: UDP, length 12
-	MPLS extension v2, checksum 0xc4e4 (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc4e4 (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 102672, exp 0, [S], ttl 1
-   11  10:13:29.331066 MPLS (label 100704, exp 0, [S], ttl 2)
+	    label 102672, tc 0, [S], ttl 1
+   11  10:13:29.331066 MPLS (label 100704, tc 0, [S], ttl 2)
 	IP (tos 0x0, ttl 2, id 42321, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33440: UDP, length 12
    12  10:13:29.331681 IP (tos 0x0, ttl 254, id 59168, offset 0, flags [DF], proto ICMP (1), length 168)
     10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
 	IP (tos 0x0, ttl 1, id 42321, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33440: UDP, length 12
-	MPLS extension v2, checksum 0xc4e4 (correct), length 12
+	ICMP Multi-Part extension v2, checksum 0xc4e4 (correct), length 12
 	  MPLS Stack Entry Object (1), Class-Type: 1, length 8
-	    label 102672, exp 0, [S], ttl 1
-   13  10:13:29.332494 MPLS (label 100704, exp 0, [S], ttl 3)
+	    label 102672, tc 0, [S], ttl 1
+   13  10:13:29.332494 MPLS (label 100704, tc 0, [S], ttl 3)
 	IP (tos 0x0, ttl 3, id 42322, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33441: UDP, length 12
    14  10:13:29.333151 IP (tos 0x0, ttl 253, id 50599, offset 0, flags [DF], proto ICMP (1), length 56)
     12.1.1.1 > 12.4.4.4: ICMP 12.1.1.1 udp port 33441 unreachable, length 36
 	IP (tos 0x0, ttl 1, id 42322, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33441: UDP, length 12
-   15  10:13:29.609602 MPLS (label 100704, exp 0, [S], ttl 3)
+   15  10:13:29.609602 MPLS (label 100704, tc 0, [S], ttl 3)
 	IP (tos 0x0, ttl 3, id 42323, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33442: UDP, length 12
    16  10:13:29.610234 IP (tos 0x0, ttl 253, id 50600, offset 0, flags [DF], proto ICMP (1), length 56)
     12.1.1.1 > 12.4.4.4: ICMP 12.1.1.1 udp port 33442 unreachable, length 36
 	IP (tos 0x0, ttl 1, id 42323, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33442: UDP, length 12
-   17  10:13:29.610710 MPLS (label 100704, exp 0, [S], ttl 3)
+   17  10:13:29.610710 MPLS (label 100704, tc 0, [S], ttl 3)
 	IP (tos 0x0, ttl 3, id 42324, offset 0, flags [none], proto UDP (17), length 40)
     12.4.4.4.42315 > 12.1.1.1.33443: UDP, length 12
    18  10:13:29.611307 IP (tos 0x0, ttl 253, id 50601, offset 0, flags [DF], proto ICMP (1), length 56)
diff --git a/tests/mpls-traceroute.out b/tests/mpls-traceroute.out
index 253cfc6..30128c7 100644
--- a/tests/mpls-traceroute.out
+++ b/tests/mpls-traceroute.out
@@ -1,18 +1,18 @@
-    1  10:13:29.315598 MPLS (label 100704, exp 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33435: UDP, length 12
+    1  10:13:29.315598 MPLS (label 100704, tc 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33435: UDP, length 12
     2  10:13:29.316413 IP 10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-    3  10:13:29.319182 MPLS (label 100704, exp 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33436: UDP, length 12
+    3  10:13:29.319182 MPLS (label 100704, tc 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33436: UDP, length 12
     4  10:13:29.326330 IP 10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-    5  10:13:29.326697 MPLS (label 100704, exp 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33437: UDP, length 12
+    5  10:13:29.326697 MPLS (label 100704, tc 0, [S], ttl 1) IP 12.4.4.4.42315 > 12.1.1.1.33437: UDP, length 12
     6  10:13:29.327328 IP 10.5.0.1 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-    7  10:13:29.327769 MPLS (label 100704, exp 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33438: UDP, length 12
+    7  10:13:29.327769 MPLS (label 100704, tc 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33438: UDP, length 12
     8  10:13:29.328510 IP 10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-    9  10:13:29.330110 MPLS (label 100704, exp 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33439: UDP, length 12
+    9  10:13:29.330110 MPLS (label 100704, tc 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33439: UDP, length 12
    10  10:13:29.330735 IP 10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-   11  10:13:29.331066 MPLS (label 100704, exp 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33440: UDP, length 12
+   11  10:13:29.331066 MPLS (label 100704, tc 0, [S], ttl 2) IP 12.4.4.4.42315 > 12.1.1.1.33440: UDP, length 12
    12  10:13:29.331681 IP 10.4.0.2 > 12.4.4.4: ICMP time exceeded in-transit, length 148
-   13  10:13:29.332494 MPLS (label 100704, exp 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33441: UDP, length 12
+   13  10:13:29.332494 MPLS (label 100704, tc 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33441: UDP, length 12
    14  10:13:29.333151 IP 12.1.1.1 > 12.4.4.4: ICMP 12.1.1.1 udp port 33441 unreachable, length 36
-   15  10:13:29.609602 MPLS (label 100704, exp 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33442: UDP, length 12
+   15  10:13:29.609602 MPLS (label 100704, tc 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33442: UDP, length 12
    16  10:13:29.610234 IP 12.1.1.1 > 12.4.4.4: ICMP 12.1.1.1 udp port 33442 unreachable, length 36
-   17  10:13:29.610710 MPLS (label 100704, exp 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33443: UDP, length 12
+   17  10:13:29.610710 MPLS (label 100704, tc 0, [S], ttl 3) IP 12.4.4.4.42315 > 12.1.1.1.33443: UDP, length 12
    18  10:13:29.611307 IP 12.1.1.1 > 12.4.4.4: ICMP 12.1.1.1 udp port 33443 unreachable, length 36
diff --git a/tests/mptcp-aa-echo.out b/tests/mptcp-aa-echo.out
index d44577d..2cfa562 100644
--- a/tests/mptcp-aa-echo.out
+++ b/tests/mptcp-aa-echo.out
@@ -1,2 +1,2 @@
-    1  11:02:20.402400 IP 10.0.1.1.10000 > 10.0.3.2.54737: Flags [.], ack 2863732622, win 510, options [nop,nop,TS val 2041598247 ecr 805948318,mptcp add-addr v1 id 1 10.0.2.1 hmac 0xf8295862f645df19,mptcp dss ack 3502078703], length 0
-    2  11:02:20.602589 IP 10.0.1.2.35924 > 10.0.1.1.10000: Flags [.], ack 2394667731, win 501, options [nop,nop,TS val 373322532 ecr 4275366718,mptcp add-addr v1-echo id 1 10.0.2.1,mptcp dss ack 17984156407873109865], length 0
+    1  11:02:20.402400 IP 10.0.1.1.10000 > 10.0.3.2.54737: Flags [.], ack 2863732622, win 510, options [nop,nop,TS val 2041598247 ecr 805948318,mptcp 16 add-addr v1 id 1 10.0.2.1 hmac 0xf8295862f645df19,mptcp 8 dss ack 3502078703], length 0
+    2  11:02:20.602589 IP 10.0.1.2.35924 > 10.0.1.1.10000: Flags [.], ack 2394667731, win 501, options [nop,nop,TS val 373322532 ecr 4275366718,mptcp 8 add-addr v1-echo id 1 10.0.2.1,mptcp 12 dss ack 17984156407873109865], length 0
diff --git a/tests/mptcp-aa-v1.out b/tests/mptcp-aa-v1.out
index 801c9ba..d47bbed 100644
--- a/tests/mptcp-aa-v1.out
+++ b/tests/mptcp-aa-v1.out
@@ -1,24 +1,24 @@
     1  18:44:15.949492 IP 192.168.125.165.43428 > 192.168.125.1.53: 61359+ A? proxy-chain.intel.com.network2. (48)
     2  18:44:15.949675 IP 192.168.125.165.43428 > 192.168.125.1.53: 30665+ AAAA? proxy-chain.intel.com.network2. (48)
-    3  18:44:24.039044 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [S], seq 653223703, win 64240, options [mss 1460,sackOK,TS val 2070300959 ecr 0,nop,wscale 7,mptcp capable v1], length 0
-    4  18:44:24.039622 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [S.], seq 3797229782, ack 653223704, win 65160, options [mss 1460,sackOK,TS val 938670159 ecr 2070300959,nop,wscale 7,mptcp capable v1 {0x73bb150358a0aecb}], length 0
-    5  18:44:24.039910 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 1, win 502, options [nop,nop,TS val 2070300960 ecr 938670159,mptcp capable v1 {0x8f0c7c64a6a32ac1,0x73bb150358a0aecb}], length 0
-    6  18:44:24.042337 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 1:17, ack 1, win 502, options [nop,nop,TS val 2070300963 ecr 938670159,mptcp capable v1 {0x8f0c7c64a6a32ac1,0x73bb150358a0aecb},nop,nop], length 16
-    7  18:44:24.042622 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 17, win 509, options [nop,nop,TS val 938670162 ecr 2070300963,mptcp dss ack 17186763219675866565], length 0
-    8  18:44:24.043277 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 1:17, ack 17, win 509, options [nop,nop,TS val 938670163 ecr 2070300963,mptcp dss ack 17186763219675866581 seq 12148165319181844526 subseq 1 len 16,nop,nop], length 16
-    9  18:44:24.043512 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 17, win 502, options [nop,nop,TS val 2070300964 ecr 938670163,mptcp dss ack 12148165319181844526], length 0
-   10  18:44:24.247920 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 17:33, ack 17, win 509, options [nop,nop,TS val 938670368 ecr 2070300964,mptcp dss ack 17186763219675866581 seq 12148165319181844526 subseq 17 len 16,nop,nop], length 16
-   11  18:44:24.248383 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 33, win 502, options [nop,nop,TS val 2070301169 ecr 938670368,mptcp dss ack 12148165319181844542], length 0
-   12  18:44:25.046480 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 17:33, ack 33, win 502, options [nop,nop,TS val 2070301967 ecr 938670368,mptcp dss ack 12148165319181844542 seq 17186763219675866581 subseq 17 len 16,nop,nop], length 16
-   13  18:44:25.046726 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 33, win 509, options [nop,nop,TS val 938671166 ecr 2070301967,mptcp add-addr v1 id 1 192.168.136.225 hmac 0x669928744366716c,mptcp dss ack 17186763219675866581], length 0
-   14  18:44:25.048465 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 33:49, ack 33, win 509, options [nop,nop,TS val 938671168 ecr 2070301967,mptcp dss ack 17186763219675866597 seq 12148165319181844542 subseq 33 len 16,nop,nop], length 16
-   15  18:44:25.048568 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 49, win 502, options [nop,nop,TS val 2070301969 ecr 938671168,mptcp dss ack 12148165319181844542], length 0
-   16  18:44:25.256088 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 49:65, ack 33, win 509, options [nop,nop,TS val 938671376 ecr 2070301969,mptcp dss ack 17186763219675866597 seq 12148165319181844542 subseq 49 len 16,nop,nop], length 16
-   17  18:44:25.256361 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 65, win 502, options [nop,nop,TS val 2070302177 ecr 938671376,mptcp dss ack 12148165319181844558], length 0
-   18  18:44:26.048795 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 33:49, ack 65, win 502, options [nop,nop,TS val 2070302969 ecr 938671376,mptcp dss ack 12148165319181844558 seq 17186763219675866597 subseq 33 len 16,nop,nop], length 16
-   19  18:44:26.049014 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 49, win 509, options [nop,nop,TS val 938672169 ecr 2070302969,mptcp dss ack 17186763219675866597], length 0
-   20  18:44:26.049644 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 65:81, ack 49, win 509, options [nop,nop,TS val 938672169 ecr 2070302969,mptcp dss ack 17186763219675866613 seq 12148165319181844558 subseq 65 len 16,nop,nop], length 16
-   21  18:44:26.049972 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 81, win 502, options [nop,nop,TS val 2070302970 ecr 938672169,mptcp dss ack 12148165319181844558], length 0
-   22  18:44:26.049982 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [F.], seq 49, ack 81, win 502, options [nop,nop,TS val 2070302970 ecr 938672169,mptcp dss fin ack 12148165319181844574 seq 17186763219675866613 subseq 0 len 1,nop,nop], length 0
-   23  18:44:26.050692 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [F.], seq 81, ack 50, win 509, options [nop,nop,TS val 938672171 ecr 2070302970,mptcp dss fin ack 17186763219675866613 seq 12148165319181844574 subseq 0 len 1,nop,nop], length 0
-   24  18:44:26.050757 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 82, win 502, options [nop,nop,TS val 2070302971 ecr 938672171,mptcp dss ack 12148165319181844574], length 0
+    3  18:44:24.039044 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [S], seq 653223703, win 64240, options [mss 1460,sackOK,TS val 2070300959 ecr 0,nop,wscale 7,mptcp 4 capable v1], length 0
+    4  18:44:24.039622 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [S.], seq 3797229782, ack 653223704, win 65160, options [mss 1460,sackOK,TS val 938670159 ecr 2070300959,nop,wscale 7,mptcp 12 capable v1 {0x73bb150358a0aecb}], length 0
+    5  18:44:24.039910 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 1, win 502, options [nop,nop,TS val 2070300960 ecr 938670159,mptcp 20 capable v1 {0x8f0c7c64a6a32ac1,0x73bb150358a0aecb}], length 0
+    6  18:44:24.042337 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 1:17, ack 1, win 502, options [nop,nop,TS val 2070300963 ecr 938670159,mptcp 22 capable v1 {0x8f0c7c64a6a32ac1,0x73bb150358a0aecb},nop,nop], length 16
+    7  18:44:24.042622 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 17, win 509, options [nop,nop,TS val 938670162 ecr 2070300963,mptcp 12 dss ack 17186763219675866565], length 0
+    8  18:44:24.043277 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 1:17, ack 17, win 509, options [nop,nop,TS val 938670163 ecr 2070300963,mptcp 26 dss ack 17186763219675866581 seq 12148165319181844526 subseq 1 len 16,nop,nop], length 16
+    9  18:44:24.043512 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 17, win 502, options [nop,nop,TS val 2070300964 ecr 938670163,mptcp 12 dss ack 12148165319181844526], length 0
+   10  18:44:24.247920 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 17:33, ack 17, win 509, options [nop,nop,TS val 938670368 ecr 2070300964,mptcp 26 dss ack 17186763219675866581 seq 12148165319181844526 subseq 17 len 16,nop,nop], length 16
+   11  18:44:24.248383 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 33, win 502, options [nop,nop,TS val 2070301169 ecr 938670368,mptcp 12 dss ack 12148165319181844542], length 0
+   12  18:44:25.046480 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 17:33, ack 33, win 502, options [nop,nop,TS val 2070301967 ecr 938670368,mptcp 26 dss ack 12148165319181844542 seq 17186763219675866581 subseq 17 len 16,nop,nop], length 16
+   13  18:44:25.046726 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 33, win 509, options [nop,nop,TS val 938671166 ecr 2070301967,mptcp 16 add-addr v1 id 1 192.168.136.225 hmac 0x669928744366716c,mptcp 12 dss ack 17186763219675866581], length 0
+   14  18:44:25.048465 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 33:49, ack 33, win 509, options [nop,nop,TS val 938671168 ecr 2070301967,mptcp 26 dss ack 17186763219675866597 seq 12148165319181844542 subseq 33 len 16,nop,nop], length 16
+   15  18:44:25.048568 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 49, win 502, options [nop,nop,TS val 2070301969 ecr 938671168,mptcp 12 dss ack 12148165319181844542], length 0
+   16  18:44:25.256088 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 49:65, ack 33, win 509, options [nop,nop,TS val 938671376 ecr 2070301969,mptcp 26 dss ack 17186763219675866597 seq 12148165319181844542 subseq 49 len 16,nop,nop], length 16
+   17  18:44:25.256361 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 65, win 502, options [nop,nop,TS val 2070302177 ecr 938671376,mptcp 12 dss ack 12148165319181844558], length 0
+   18  18:44:26.048795 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [P.], seq 33:49, ack 65, win 502, options [nop,nop,TS val 2070302969 ecr 938671376,mptcp 26 dss ack 12148165319181844558 seq 17186763219675866597 subseq 33 len 16,nop,nop], length 16
+   19  18:44:26.049014 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [.], ack 49, win 509, options [nop,nop,TS val 938672169 ecr 2070302969,mptcp 12 dss ack 17186763219675866597], length 0
+   20  18:44:26.049644 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [P.], seq 65:81, ack 49, win 509, options [nop,nop,TS val 938672169 ecr 2070302969,mptcp 26 dss ack 17186763219675866613 seq 12148165319181844558 subseq 65 len 16,nop,nop], length 16
+   21  18:44:26.049972 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 81, win 502, options [nop,nop,TS val 2070302970 ecr 938672169,mptcp 12 dss ack 12148165319181844558], length 0
+   22  18:44:26.049982 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [F.], seq 49, ack 81, win 502, options [nop,nop,TS val 2070302970 ecr 938672169,mptcp 26 dss fin ack 12148165319181844574 seq 17186763219675866613 subseq 0 len 1,nop,nop], length 0
+   23  18:44:26.050692 IP 192.168.125.165.55555 > 192.168.125.212.52278: Flags [F.], seq 81, ack 50, win 509, options [nop,nop,TS val 938672171 ecr 2070302970,mptcp 26 dss fin ack 17186763219675866613 seq 12148165319181844574 subseq 0 len 1,nop,nop], length 0
+   24  18:44:26.050757 IP 192.168.125.212.52278 > 192.168.125.165.55555: Flags [.], ack 82, win 502, options [nop,nop,TS val 2070302971 ecr 938672171,mptcp 12 dss ack 12148165319181844574], length 0
diff --git a/tests/mptcp-dss-oobr.out b/tests/mptcp-dss-oobr.out
index 2467041..0e09efd 100644
--- a/tests/mptcp-dss-oobr.out
+++ b/tests/mptcp-dss-oobr.out
@@ -1,2 +1,2 @@
     1  03:32:08.002213 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-fclose.out b/tests/mptcp-fclose.out
index 1e28a65..a9b4d99 100644
--- a/tests/mptcp-fclose.out
+++ b/tests/mptcp-fclose.out
@@ -1,11 +1,11 @@
     1  15:40:42.767916 ARP, Request who-has 10.2.1.2 tell 10.2.1.1, length 28
     2  15:40:42.768169 ARP, Reply 10.2.1.2 is-at d6:06:3c:4a:35:7a, length 28
-    3  15:40:42.768187 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
-    4  15:40:42.768439 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
-    5  15:40:42.768831 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
-    6  15:40:42.769130 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
-    7  15:40:42.769364 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
-    8  15:40:43.780182 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
-    9  15:40:43.780384 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
-   10  15:40:47.779986 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
-   11  15:40:47.780117 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
+    3  15:40:42.768187 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
+    4  15:40:42.768439 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
+    5  15:40:42.768831 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
+    6  15:40:42.769130 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
+    7  15:40:42.769364 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
+    8  15:40:43.780182 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
+    9  15:40:43.780384 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
+   10  15:40:47.779986 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
+   11  15:40:47.780117 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-v0.out b/tests/mptcp-v0.out
index d3e1fa3..6f793f4 100644
--- a/tests/mptcp-v0.out
+++ b/tests/mptcp-v0.out
@@ -1,264 +1,264 @@
-    1  12:56:35.701161 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
-    2  12:56:35.701661 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
-    3  12:56:35.702022 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
-    4  12:56:35.786074 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: SSH: SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1
-    5  12:56:35.786240 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
-    6  12:56:35.787634 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: SSH: SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2
-    7  12:56:35.787786 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
-    8  12:56:35.788254 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
-    9  12:56:35.788849 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
-   10  12:56:35.788970 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
-   11  12:56:35.789119 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
-   12  12:56:35.789184 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
-   13  12:56:35.789363 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
-   14  12:56:35.808319 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
-   15  12:56:35.808457 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
-   16  12:56:35.809183 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
-   17  12:56:35.809313 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
-   18  12:56:35.818371 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
-   19  12:56:35.820848 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
-   20  12:56:35.832310 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
-   21  12:56:35.836233 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
-   22  12:56:35.836394 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
-   23  12:56:35.836507 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
-   24  12:56:35.836611 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
-   25  12:56:35.836876 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
-   26  12:56:35.837021 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
-   27  12:56:35.837331 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
-   28  12:56:35.837430 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
-   29  12:56:35.855648 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
-   30  12:56:35.855893 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
-   31  12:56:35.856045 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
-   32  12:56:35.864308 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
-   33  12:56:35.864462 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
-   34  12:56:35.876367 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
-   35  12:56:35.876484 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
-   36  12:56:35.881115 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
-   37  12:56:35.894682 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
-   38  12:56:37.122657 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
-   39  12:56:37.122822 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
-   40  12:56:37.150400 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
-   41  12:56:37.152255 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
-   42  12:56:37.170125 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
-   43  12:56:37.170732 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
-   44  12:56:37.178205 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
-   45  12:56:37.178417 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
-   46  12:56:37.194867 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
-   47  12:56:37.195303 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
-   48  12:56:37.195478 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
-   49  12:56:37.195903 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
-   50  12:56:37.196257 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
-   51  12:56:37.196413 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
-   52  12:56:37.233594 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
-   53  12:56:37.234006 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
-   54  12:56:37.264660 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
-   55  12:56:37.386418 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
-   56  12:56:37.387434 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
-   57  12:56:37.387609 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
-   58  12:56:37.503091 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
-   59  12:56:37.503218 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
-   60  12:56:37.538348 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
-   61  12:56:37.540145 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
-   62  12:56:37.540296 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
-   63  12:56:37.658158 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
-   64  12:56:37.660394 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
-   65  12:56:37.660555 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
-   66  12:56:37.978284 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
-   67  12:56:37.979476 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
-   68  12:56:37.979628 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
-   69  12:56:38.058374 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
-   70  12:56:38.059543 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
-   71  12:56:38.059692 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
-   72  12:56:38.194189 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
-   73  12:56:38.195084 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
-   74  12:56:38.195270 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
-   75  12:56:38.281975 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
-   76  12:56:38.282916 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
-   77  12:56:38.283037 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
-   78  12:56:38.354097 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
-   79  12:56:38.355244 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
-   80  12:56:38.355394 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
-   81  12:56:38.458056 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
-   82  12:56:38.459591 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
-   83  12:56:38.459758 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
-   84  12:56:38.514098 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
-   85  12:56:38.515052 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
-   86  12:56:38.515220 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
-   87  12:56:38.642379 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
-   88  12:56:38.643664 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
-   89  12:56:38.643820 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
-   90  12:56:38.689865 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
-   91  12:56:38.692847 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
-   92  12:56:38.693226 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
-   93  12:56:38.704430 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
-   94  12:56:38.704722 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
-   95  12:56:38.704720 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
-   96  12:56:38.704912 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
-   97  12:56:38.705398 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
-   98  12:56:38.705503 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
-   99  12:56:38.705834 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
-  100  12:56:38.705918 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
-  101  12:56:38.706030 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
-  102  12:56:38.706106 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
-  103  12:56:38.706219 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
-  104  12:56:38.706294 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
-  105  12:56:38.706439 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
-  106  12:56:38.706579 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
-  107  12:56:38.706621 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
-  108  12:56:38.706745 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
-  109  12:56:38.706787 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
-  110  12:56:38.706938 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
-  111  12:56:38.706974 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
-  112  12:56:38.707090 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
-  113  12:56:38.707290 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
-  114  12:56:38.707368 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
-  115  12:56:38.707479 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
-  116  12:56:38.707556 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
-  117  12:56:38.707798 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
-  118  12:56:38.707907 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
-  119  12:56:38.708069 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
-  120  12:56:38.708150 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
-  121  12:56:38.708257 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
-  122  12:56:38.708364 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
-  123  12:56:38.708439 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
-  124  12:56:38.708503 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
-  125  12:56:38.708630 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
-  126  12:56:38.708702 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
-  127  12:56:38.708814 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
-  128  12:56:38.708889 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
-  129  12:56:38.709000 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
-  130  12:56:38.709084 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
-  131  12:56:38.709182 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
-  132  12:56:38.709253 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
-  133  12:56:38.709658 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
-  134  12:56:38.709760 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
-  135  12:56:38.709842 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
-  136  12:56:38.709924 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
-  137  12:56:38.710204 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
-  138  12:56:38.710292 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
-  139  12:56:38.710464 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
-  140  12:56:38.710548 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
-  141  12:56:38.710649 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
-  142  12:56:38.710725 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
-  143  12:56:38.710836 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
-  144  12:56:38.710917 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
-  145  12:56:38.711017 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
-  146  12:56:38.711099 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
-  147  12:56:38.711223 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
-  148  12:56:38.711303 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
-  149  12:56:38.711404 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
-  150  12:56:38.711483 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
-  151  12:56:38.713568 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
-  152  12:56:38.713674 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
-  153  12:56:38.954239 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
-  154  12:56:38.955671 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
-  155  12:56:38.955827 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
-  156  12:56:39.074043 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
-  157  12:56:39.075052 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
-  158  12:56:39.075234 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
-  159  12:56:39.242209 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
-  160  12:56:39.243635 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
-  161  12:56:39.243810 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
-  162  12:56:39.322026 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
-  163  12:56:39.323337 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
-  164  12:56:39.323491 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
-  165  12:56:39.361866 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
-  166  12:56:39.362991 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
-  167  12:56:39.363134 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
-  168  12:56:39.433951 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
-  169  12:56:39.434823 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
-  170  12:56:39.434954 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
-  171  12:56:39.538085 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
-  172  12:56:39.539055 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
-  173  12:56:39.539201 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
-  174  12:56:39.602143 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
-  175  12:56:39.603190 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
-  176  12:56:39.603371 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
-  177  12:56:39.714195 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
-  178  12:56:39.715277 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
-  179  12:56:39.715503 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
-  180  12:56:39.833979 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
-  181  12:56:39.834867 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
-  182  12:56:39.835113 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
-  183  12:56:39.914071 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
-  184  12:56:39.914889 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
-  185  12:56:39.915103 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
-  186  12:56:40.002079 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
-  187  12:56:40.003138 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
-  188  12:56:40.003379 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
-  189  12:56:40.354251 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
-  190  12:56:40.355428 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
-  191  12:56:40.355583 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
-  192  12:56:40.859118 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
-  193  12:56:40.860192 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
-  194  12:56:40.860346 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
-  195  12:56:40.994318 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
-  196  12:56:40.995959 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
-  197  12:56:40.996118 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
-  198  12:56:41.138012 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
-  199  12:56:41.139064 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
-  200  12:56:41.139220 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
-  201  12:56:41.233988 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
-  202  12:56:41.235129 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
-  203  12:56:41.235295 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
-  204  12:56:41.361966 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
-  205  12:56:41.362913 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
-  206  12:56:41.363042 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
-  207  12:56:41.570122 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
-  208  12:56:41.575162 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
-  209  12:56:41.575354 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
-  210  12:56:41.599551 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
-  211  12:56:41.599719 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
-  212  12:56:41.602591 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
-  213  12:56:41.602690 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
-  214  12:56:41.930276 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
-  215  12:56:41.930432 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
-  216  12:56:41.932626 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
-  217  12:56:41.932708 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
-  218  12:56:42.081986 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
-  219  12:56:42.083828 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
-  220  12:56:42.083976 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
-  221  12:56:42.218171 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
-  222  12:56:42.220075 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
-  223  12:56:42.220224 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
-  224  12:56:42.370244 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
-  225  12:56:42.372486 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
-  226  12:56:42.372640 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
-  227  12:56:42.514114 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
-  228  12:56:42.516305 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
-  229  12:56:42.516474 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
-  230  12:56:42.666380 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
-  231  12:56:42.668518 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
-  232  12:56:42.668674 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
-  233  12:56:42.818341 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
-  234  12:56:42.820464 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
-  235  12:56:42.820698 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
-  236  12:56:42.978188 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
-  237  12:56:42.980124 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
-  238  12:56:42.980335 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
-  239  12:56:44.290226 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
-  240  12:56:44.291486 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
-  241  12:56:44.291654 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
-  242  12:56:44.434269 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
-  243  12:56:44.435415 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
-  244  12:56:44.435573 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
-  245  12:56:44.482151 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
-  246  12:56:44.483062 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
-  247  12:56:44.483215 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
-  248  12:56:44.674296 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
-  249  12:56:44.675404 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
-  250  12:56:44.675561 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
-  251  12:56:44.746191 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
-  252  12:56:44.755013 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
-  253  12:56:44.755179 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
-  254  12:56:44.755227 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
-  255  12:56:44.755349 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
-  256  12:56:44.755920 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
-  257  12:56:44.756076 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
-  258  12:56:44.756224 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
-  259  12:56:44.756736 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
-  260  12:56:44.765654 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
-  261  12:56:44.765795 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
-  262  12:56:44.765879 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
-  263  12:56:44.766083 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
-  264  12:56:44.766202 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
+    1  12:56:35.701161 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
+    2  12:56:35.701661 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
+    3  12:56:35.702022 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
+    4  12:56:35.786074 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: SSH: SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1
+    5  12:56:35.786240 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
+    6  12:56:35.787634 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: SSH: SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2
+    7  12:56:35.787786 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
+    8  12:56:35.788254 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
+    9  12:56:35.788849 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
+   10  12:56:35.788970 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
+   11  12:56:35.789119 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
+   12  12:56:35.789184 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
+   13  12:56:35.789363 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
+   14  12:56:35.808319 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
+   15  12:56:35.808457 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
+   16  12:56:35.809183 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
+   17  12:56:35.809313 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
+   18  12:56:35.818371 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
+   19  12:56:35.820848 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
+   20  12:56:35.832310 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
+   21  12:56:35.836233 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
+   22  12:56:35.836394 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
+   23  12:56:35.836507 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
+   24  12:56:35.836611 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
+   25  12:56:35.836876 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
+   26  12:56:35.837021 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
+   27  12:56:35.837331 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
+   28  12:56:35.837430 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
+   29  12:56:35.855648 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
+   30  12:56:35.855893 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
+   31  12:56:35.856045 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
+   32  12:56:35.864308 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
+   33  12:56:35.864462 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
+   34  12:56:35.876367 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
+   35  12:56:35.876484 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
+   36  12:56:35.881115 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
+   37  12:56:35.894682 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
+   38  12:56:37.122657 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
+   39  12:56:37.122822 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
+   40  12:56:37.150400 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
+   41  12:56:37.152255 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
+   42  12:56:37.170125 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
+   43  12:56:37.170732 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
+   44  12:56:37.178205 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
+   45  12:56:37.178417 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
+   46  12:56:37.194867 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
+   47  12:56:37.195303 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
+   48  12:56:37.195478 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
+   49  12:56:37.195903 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
+   50  12:56:37.196257 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
+   51  12:56:37.196413 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
+   52  12:56:37.233594 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
+   53  12:56:37.234006 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
+   54  12:56:37.264660 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
+   55  12:56:37.386418 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
+   56  12:56:37.387434 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
+   57  12:56:37.387609 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
+   58  12:56:37.503091 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
+   59  12:56:37.503218 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
+   60  12:56:37.538348 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
+   61  12:56:37.540145 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
+   62  12:56:37.540296 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
+   63  12:56:37.658158 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
+   64  12:56:37.660394 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
+   65  12:56:37.660555 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
+   66  12:56:37.978284 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
+   67  12:56:37.979476 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
+   68  12:56:37.979628 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
+   69  12:56:38.058374 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
+   70  12:56:38.059543 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
+   71  12:56:38.059692 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
+   72  12:56:38.194189 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
+   73  12:56:38.195084 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
+   74  12:56:38.195270 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
+   75  12:56:38.281975 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
+   76  12:56:38.282916 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
+   77  12:56:38.283037 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
+   78  12:56:38.354097 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
+   79  12:56:38.355244 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
+   80  12:56:38.355394 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
+   81  12:56:38.458056 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
+   82  12:56:38.459591 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
+   83  12:56:38.459758 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
+   84  12:56:38.514098 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
+   85  12:56:38.515052 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
+   86  12:56:38.515220 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
+   87  12:56:38.642379 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
+   88  12:56:38.643664 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
+   89  12:56:38.643820 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
+   90  12:56:38.689865 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
+   91  12:56:38.692847 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
+   92  12:56:38.693226 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
+   93  12:56:38.704430 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
+   94  12:56:38.704722 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
+   95  12:56:38.704720 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
+   96  12:56:38.704912 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
+   97  12:56:38.705398 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
+   98  12:56:38.705503 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
+   99  12:56:38.705834 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
+  100  12:56:38.705918 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
+  101  12:56:38.706030 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
+  102  12:56:38.706106 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
+  103  12:56:38.706219 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
+  104  12:56:38.706294 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
+  105  12:56:38.706439 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
+  106  12:56:38.706579 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
+  107  12:56:38.706621 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
+  108  12:56:38.706745 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
+  109  12:56:38.706787 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
+  110  12:56:38.706938 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
+  111  12:56:38.706974 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
+  112  12:56:38.707090 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
+  113  12:56:38.707290 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
+  114  12:56:38.707368 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
+  115  12:56:38.707479 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
+  116  12:56:38.707556 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
+  117  12:56:38.707798 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
+  118  12:56:38.707907 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
+  119  12:56:38.708069 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
+  120  12:56:38.708150 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
+  121  12:56:38.708257 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
+  122  12:56:38.708364 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
+  123  12:56:38.708439 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
+  124  12:56:38.708503 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
+  125  12:56:38.708630 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
+  126  12:56:38.708702 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
+  127  12:56:38.708814 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
+  128  12:56:38.708889 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
+  129  12:56:38.709000 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
+  130  12:56:38.709084 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
+  131  12:56:38.709182 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
+  132  12:56:38.709253 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
+  133  12:56:38.709658 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
+  134  12:56:38.709760 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
+  135  12:56:38.709842 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
+  136  12:56:38.709924 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
+  137  12:56:38.710204 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
+  138  12:56:38.710292 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
+  139  12:56:38.710464 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
+  140  12:56:38.710548 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
+  141  12:56:38.710649 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
+  142  12:56:38.710725 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
+  143  12:56:38.710836 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
+  144  12:56:38.710917 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
+  145  12:56:38.711017 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
+  146  12:56:38.711099 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
+  147  12:56:38.711223 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
+  148  12:56:38.711303 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
+  149  12:56:38.711404 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
+  150  12:56:38.711483 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
+  151  12:56:38.713568 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
+  152  12:56:38.713674 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
+  153  12:56:38.954239 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
+  154  12:56:38.955671 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
+  155  12:56:38.955827 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
+  156  12:56:39.074043 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
+  157  12:56:39.075052 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
+  158  12:56:39.075234 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
+  159  12:56:39.242209 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
+  160  12:56:39.243635 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
+  161  12:56:39.243810 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
+  162  12:56:39.322026 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
+  163  12:56:39.323337 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
+  164  12:56:39.323491 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
+  165  12:56:39.361866 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
+  166  12:56:39.362991 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
+  167  12:56:39.363134 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
+  168  12:56:39.433951 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
+  169  12:56:39.434823 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
+  170  12:56:39.434954 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
+  171  12:56:39.538085 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
+  172  12:56:39.539055 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
+  173  12:56:39.539201 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
+  174  12:56:39.602143 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
+  175  12:56:39.603190 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
+  176  12:56:39.603371 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
+  177  12:56:39.714195 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
+  178  12:56:39.715277 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
+  179  12:56:39.715503 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
+  180  12:56:39.833979 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
+  181  12:56:39.834867 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
+  182  12:56:39.835113 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
+  183  12:56:39.914071 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
+  184  12:56:39.914889 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
+  185  12:56:39.915103 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
+  186  12:56:40.002079 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
+  187  12:56:40.003138 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
+  188  12:56:40.003379 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
+  189  12:56:40.354251 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
+  190  12:56:40.355428 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
+  191  12:56:40.355583 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
+  192  12:56:40.859118 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
+  193  12:56:40.860192 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
+  194  12:56:40.860346 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
+  195  12:56:40.994318 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
+  196  12:56:40.995959 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
+  197  12:56:40.996118 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
+  198  12:56:41.138012 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
+  199  12:56:41.139064 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
+  200  12:56:41.139220 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
+  201  12:56:41.233988 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
+  202  12:56:41.235129 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
+  203  12:56:41.235295 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
+  204  12:56:41.361966 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
+  205  12:56:41.362913 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
+  206  12:56:41.363042 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
+  207  12:56:41.570122 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
+  208  12:56:41.575162 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
+  209  12:56:41.575354 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
+  210  12:56:41.599551 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
+  211  12:56:41.599719 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
+  212  12:56:41.602591 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
+  213  12:56:41.602690 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
+  214  12:56:41.930276 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
+  215  12:56:41.930432 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
+  216  12:56:41.932626 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
+  217  12:56:41.932708 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
+  218  12:56:42.081986 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
+  219  12:56:42.083828 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
+  220  12:56:42.083976 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
+  221  12:56:42.218171 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
+  222  12:56:42.220075 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
+  223  12:56:42.220224 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
+  224  12:56:42.370244 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
+  225  12:56:42.372486 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
+  226  12:56:42.372640 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
+  227  12:56:42.514114 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
+  228  12:56:42.516305 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
+  229  12:56:42.516474 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
+  230  12:56:42.666380 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
+  231  12:56:42.668518 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
+  232  12:56:42.668674 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
+  233  12:56:42.818341 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
+  234  12:56:42.820464 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
+  235  12:56:42.820698 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
+  236  12:56:42.978188 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
+  237  12:56:42.980124 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
+  238  12:56:42.980335 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
+  239  12:56:44.290226 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
+  240  12:56:44.291486 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
+  241  12:56:44.291654 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
+  242  12:56:44.434269 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
+  243  12:56:44.435415 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
+  244  12:56:44.435573 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
+  245  12:56:44.482151 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
+  246  12:56:44.483062 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
+  247  12:56:44.483215 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
+  248  12:56:44.674296 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
+  249  12:56:44.675404 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
+  250  12:56:44.675561 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
+  251  12:56:44.746191 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
+  252  12:56:44.755013 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
+  253  12:56:44.755179 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
+  254  12:56:44.755227 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
+  255  12:56:44.755349 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
+  256  12:56:44.755920 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
+  257  12:56:44.756076 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
+  258  12:56:44.756224 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
+  259  12:56:44.756736 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
+  260  12:56:44.765654 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
+  261  12:56:44.765795 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
+  262  12:56:44.765879 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
+  263  12:56:44.766083 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
+  264  12:56:44.766202 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/tests/mptcp-v1.out b/tests/mptcp-v1.out
index e0e43f8..f7fb230 100644
--- a/tests/mptcp-v1.out
+++ b/tests/mptcp-v1.out
@@ -1,20 +1,20 @@
-    1  15:51:06.676845 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [S], seq 2180756989, win 65535, options [mss 1460,sackOK,TS val 464494241 ecr 0,nop,wscale 8,mptcp capable v1], length 0
-    2  15:51:06.676888 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [S.], seq 791415661, ack 2180756990, win 65535, options [mss 1460,sackOK,TS val 3275212179 ecr 464494241,nop,wscale 8,mptcp capable v1 {0x29a6c86981ad933c}], length 0
-    3  15:51:06.676958 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp capable v1 {0x1fdb5df328bc3def,0x29a6c86981ad933c}], length 0
-    4  15:51:06.677099 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 1:7101, ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp capable v1 {0x1fdb5df328bc3def,0x29a6c86981ad933c},nop,nop], length 7100
-    5  15:51:06.677113 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030], length 0
-    6  15:51:06.677130 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 7101:8193, ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243392242], length 1092
-    7  15:51:06.677136 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 1:7101, ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030 seq 11713449205243392242 subseq 1 len 8192,nop,nop], length 7100
-    8  15:51:06.677163 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 7101, win 312, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243392242], length 0
-    9  15:51:06.677173 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], seq 8193:9613, ack 7101, win 312, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243392242 seq 14413541604287238222 subseq 8193 len 2076,nop,nop], length 1420
-   10  15:51:06.677174 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 7101:8193, ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030], length 1092
-   11  15:51:06.677188 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 8193, win 323, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030], length 0
-   12  15:51:06.677188 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243392242], length 0
-   13  15:51:06.677207 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 9613:10269, ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243392242], length 656
-   14  15:51:06.677221 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 9613, win 334, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030], length 0
-   15  15:51:06.677237 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 10269, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287230030], length 0
-   16  15:51:06.677259 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [F.], seq 10269, ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss fin ack 11713449205243400434 seq 14413541604287240298 subseq 0 len 1,nop,nop], length 0
-   17  15:51:06.677321 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 8193:10269, ack 10270, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss ack 14413541604287238222 seq 11713449205243400434 subseq 8193 len 2076,nop,nop], length 2076
-   18  15:51:06.677357 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 10269, win 339, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243400434], length 0
-   19  15:51:06.677404 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [F.], seq 10269, ack 10270, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp dss fin ack 14413541604287240298 seq 11713449205243402510 subseq 0 len 1,nop,nop], length 0
-   20  15:51:06.677429 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 10270, win 339, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp dss ack 11713449205243402510], length 0
+    1  15:51:06.676845 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [S], seq 2180756989, win 65535, options [mss 1460,sackOK,TS val 464494241 ecr 0,nop,wscale 8,mptcp 4 capable v1], length 0
+    2  15:51:06.676888 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [S.], seq 791415661, ack 2180756990, win 65535, options [mss 1460,sackOK,TS val 3275212179 ecr 464494241,nop,wscale 8,mptcp 12 capable v1 {0x29a6c86981ad933c}], length 0
+    3  15:51:06.676958 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 20 capable v1 {0x1fdb5df328bc3def,0x29a6c86981ad933c}], length 0
+    4  15:51:06.677099 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 1:7101, ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 22 capable v1 {0x1fdb5df328bc3def,0x29a6c86981ad933c},nop,nop], length 7100
+    5  15:51:06.677113 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 12 dss ack 14413541604287230030], length 0
+    6  15:51:06.677130 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 7101:8193, ack 1, win 256, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243392242], length 1092
+    7  15:51:06.677136 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 1:7101, ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 26 dss ack 14413541604287230030 seq 11713449205243392242 subseq 1 len 8192,nop,nop], length 7100
+    8  15:51:06.677163 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 7101, win 312, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243392242], length 0
+    9  15:51:06.677173 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], seq 8193:9613, ack 7101, win 312, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 26 dss ack 11713449205243392242 seq 14413541604287238222 subseq 8193 len 2076,nop,nop], length 1420
+   10  15:51:06.677174 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 7101:8193, ack 7101, win 312, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 12 dss ack 14413541604287230030], length 1092
+   11  15:51:06.677188 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 8193, win 323, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 12 dss ack 14413541604287230030], length 0
+   12  15:51:06.677188 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243392242], length 0
+   13  15:51:06.677207 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [P.], seq 9613:10269, ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243392242], length 656
+   14  15:51:06.677221 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 9613, win 334, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 12 dss ack 14413541604287230030], length 0
+   15  15:51:06.677237 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [.], ack 10269, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 12 dss ack 14413541604287230030], length 0
+   16  15:51:06.677259 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [F.], seq 10269, ack 8193, win 323, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 26 dss fin ack 11713449205243400434 seq 14413541604287240298 subseq 0 len 1,nop,nop], length 0
+   17  15:51:06.677321 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [P.], seq 8193:10269, ack 10270, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 26 dss ack 14413541604287238222 seq 11713449205243400434 subseq 8193 len 2076,nop,nop], length 2076
+   18  15:51:06.677357 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 10269, win 339, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243400434], length 0
+   19  15:51:06.677404 IP 10.0.2.1.10004 > 10.0.1.1.33306: Flags [F.], seq 10269, ack 10270, win 345, options [nop,nop,TS val 3275212179 ecr 464494241,mptcp 26 dss fin ack 14413541604287240298 seq 11713449205243402510 subseq 0 len 1,nop,nop], length 0
+   20  15:51:06.677429 IP 10.0.1.1.33306 > 10.0.2.1.10004: Flags [.], ack 10270, win 339, options [nop,nop,TS val 464494241 ecr 3275212179,mptcp 12 dss ack 11713449205243402510], length 0
diff --git a/tests/non-bsd.tests b/tests/non-bsd.tests
index e18bace..f44610e 100644
--- a/tests/non-bsd.tests
+++ b/tests/non-bsd.tests
@@ -2,9 +2,9 @@
 
 $testlist = [
     # This specific test fails on OpenBSD because the .pcap file uses DLT_RAW,
-    # which OpenBSD treats as DLT_LOOP. The macro is set on all three BSDs.
+    # which OpenBSD treats as DLT_LOOP.
     {
-        config_unset => 'HAVE_NET_IF_PFLOG_H',
+        config_unset => 'IS_OPENBSD',
         name => 'heap-overflow-1',
         input => 'heap-overflow-1.pcap',
         output => 'heap-overflow-1.out',
diff --git a/tests/ospf-nssa-bitnt.out b/tests/ospf-nssa-bitnt.out
new file mode 100644
index 0000000..c4e9ff6
--- /dev/null
+++ b/tests/ospf-nssa-bitnt.out
@@ -0,0 +1,12 @@
+    1  21:48:17.261490 IP (tos 0xc0, ttl 1, id 52, offset 0, flags [none], proto OSPF (89), length 96)
+    10.0.34.3 > 224.0.0.5: OSPFv2, LS-Update, length 76
+	Router-ID 10.0.34.3, Area 0.0.0.1, Authentication Type: none (0), 1 LSA
+	  LSA #1
+	  Advertising Router 10.0.34.3, seq 0x80000004, age 1s, length 28
+	    Router LSA (1), LSA-ID: 10.0.34.3
+	    Options: [NSSA, Demand Circuit]
+	    Router LSA Options: [ABR, ASBR, Nt]
+	      Neighbor Router-ID: 10.0.34.4, Interface Address: 10.0.34.3
+		topology default (0), metric 1
+	      Stub Network: 10.0.34.0, Mask: 255.255.255.0
+		topology default (0), metric 1
diff --git a/tests/ospf-nssa-bitnt.pcap b/tests/ospf-nssa-bitnt.pcap
new file mode 100644
index 0000000..2f0eca1
--- /dev/null
+++ b/tests/ospf-nssa-bitnt.pcap
Binary files differ
diff --git a/tests/pcap-invalid-version-1.out b/tests/pcap-invalid-version-1.out
deleted file mode 100644
index c8370f9..0000000
--- a/tests/pcap-invalid-version-1.out
+++ /dev/null
@@ -1 +0,0 @@
-EXIT CODE 00000100: dump:0 code: 1
diff --git a/tests/pcap-invalid-version-1.out.stderr b/tests/pcap-invalid-version-1.out.stderr
deleted file mode 100644
index 1036edb..0000000
--- a/tests/pcap-invalid-version-1.out.stderr
+++ /dev/null
@@ -1 +0,0 @@
-tcpdump: archaic pcap savefile format
diff --git a/tests/pcap-invalid-version-1.pcap b/tests/pcap-invalid-version-1.pcap
deleted file mode 100644
index 9dd0429..0000000
--- a/tests/pcap-invalid-version-1.pcap
+++ /dev/null
Binary files differ
diff --git a/tests/pcap-invalid-version-2.out b/tests/pcap-invalid-version-2.out
deleted file mode 100644
index c8370f9..0000000
--- a/tests/pcap-invalid-version-2.out
+++ /dev/null
@@ -1 +0,0 @@
-EXIT CODE 00000100: dump:0 code: 1
diff --git a/tests/pcap-invalid-version-2.out.stderr b/tests/pcap-invalid-version-2.out.stderr
deleted file mode 100644
index 4171b8e..0000000
--- a/tests/pcap-invalid-version-2.out.stderr
+++ /dev/null
@@ -1 +0,0 @@
-tcpdump: unsupported pcap savefile version 2.5
diff --git a/tests/pcap-invalid-version-2.pcap b/tests/pcap-invalid-version-2.pcap
deleted file mode 100644
index 4217d1e..0000000
--- a/tests/pcap-invalid-version-2.pcap
+++ /dev/null
Binary files differ
diff --git a/tests/pcapng-invalid-vers-1.out b/tests/pcapng-invalid-vers-1.out
deleted file mode 100644
index c8370f9..0000000
--- a/tests/pcapng-invalid-vers-1.out
+++ /dev/null
@@ -1 +0,0 @@
-EXIT CODE 00000100: dump:0 code: 1
diff --git a/tests/pcapng-invalid-vers-1.out.stderr b/tests/pcapng-invalid-vers-1.out.stderr
deleted file mode 100644
index 4213849..0000000
--- a/tests/pcapng-invalid-vers-1.out.stderr
+++ /dev/null
@@ -1 +0,0 @@
-tcpdump: unsupported pcapng savefile version 0.1
diff --git a/tests/pcapng-invalid-vers-1.pcapng b/tests/pcapng-invalid-vers-1.pcapng
deleted file mode 100644
index 7bbb7ab..0000000
--- a/tests/pcapng-invalid-vers-1.pcapng
+++ /dev/null
Binary files differ
diff --git a/tests/pcapng-invalid-vers-2.out b/tests/pcapng-invalid-vers-2.out
deleted file mode 100644
index c8370f9..0000000
--- a/tests/pcapng-invalid-vers-2.out
+++ /dev/null
@@ -1 +0,0 @@
-EXIT CODE 00000100: dump:0 code: 1
diff --git a/tests/pcapng-invalid-vers-2.out.stderr b/tests/pcapng-invalid-vers-2.out.stderr
deleted file mode 100644
index 4845652..0000000
--- a/tests/pcapng-invalid-vers-2.out.stderr
+++ /dev/null
@@ -1 +0,0 @@
-tcpdump: unsupported pcapng savefile version 1.1
diff --git a/tests/pcapng-invalid-vers-2.pcapng b/tests/pcapng-invalid-vers-2.pcapng
deleted file mode 100644
index 77595f4..0000000
--- a/tests/pcapng-invalid-vers-2.pcapng
+++ /dev/null
Binary files differ
diff --git a/tests/printf_z.tests b/tests/printf_z.tests
new file mode 100644
index 0000000..a08199d
--- /dev/null
+++ b/tests/printf_z.tests
@@ -0,0 +1,132 @@
+# -*- perl -*-
+
+$testlist = [
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf-gmpls',
+        input => 'ospf-gmpls.pcap',
+        output => 'ospf-gmpls.out',
+        args   => '-v'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf-nssa-bitnt',
+        input => 'ospf-nssa-bitnt.pcap',
+        output => 'ospf-nssa-bitnt.out',
+        args   => '-v'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf3_ah-vv',
+        input => 'OSPFv3_with_AH.pcap',
+        output => 'ospf3_ah-vv.out',
+        args   => '-vv'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf3_bc-vv',
+        input => 'OSPFv3_broadcast_adjacency.pcap',
+        output => 'ospf3_bc-vv.out',
+        args   => '-vv'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf3_mp-vv',
+        input => 'OSPFv3_multipoint_adjacencies.pcap',
+        output => 'ospf3_mp-vv.out',
+        args   => '-vv'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf3_nbma-vv',
+        input => 'OSPFv3_NBMA_adjacencies.pcap',
+        output => 'ospf3_nbma-vv.out',
+        args   => '-vv'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'ospf2-seg-fault-1-v',
+        input => 'ospf2-seg-fault-1.pcapng',
+        output => 'ospf2-seg-fault-1-v.out',
+        args   => '-v'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'm3ua-vv',
+        input => 'isup.pcap',
+        output => 'isupvv.out',
+        args   => '-vv'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'rsvp_infloop-v',
+        input => 'rsvp-infinite-loop.pcap',
+        output => 'rsvp_infloop-v.out',
+        args   => '-v'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'decnet',
+        input => 'DECnet_Phone.pcap',
+        output => 'decnet.out',
+        args   => ''
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'eigrp-tlv-oobr',
+        input => 'eigrp-tlv-oobr.pcap',
+        output => 'eigrp-tlv-oobr.out',
+        args   => '-vvv -e'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'isis-areaaddr-oobr-1',
+        input => 'isis-areaaddr-oobr-1.pcap',
+        output => 'isis-areaaddr-oobr-1.out',
+        args   => '-vvv -e'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'isis-areaaddr-oobr-2',
+        input => 'isis-areaaddr-oobr-2.pcap',
+        output => 'isis-areaaddr-oobr-2.out',
+        args   => '-vvv -e'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'pktap-heap-overflow',
+        input => 'pktap-heap-overflow.pcap',
+        output => 'pktap-heap-overflow.out',
+        args   => '-v'
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'dns-zlip-1',
+        input => 'dns-zlip-1.pcap',
+        output => 'dns-zlip-1.out',
+        args   => ''
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'dns-zlip-2',
+        input => 'dns-zlip-2.pcap',
+        output => 'dns-zlip-2.out',
+        args   => ''
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'dns-zlip-3',
+        input => 'dns-zlip-3.pcap',
+        output => 'dns-zlip-3.out',
+        args   => ''
+    },
+    {
+        config_unset => 'HAVE_NO_PRINTF_Z',
+        name => 'sflow_print-segv',
+        input => 'sflow_print-segv.pcap',
+        output => 'sflow_print-segv.out',
+        args   => '-v'
+    },
+];
+
+1;
diff --git a/tests/ptp.out b/tests/ptp.out
index 8aac3a0..8b3adb3 100644
--- a/tests/ptp.out
+++ b/tests/ptp.out
@@ -1,5 +1,5 @@
-    1  19:44:09.248292 IP 11.0.0.110.319 > 224.0.1.129.319: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7cfe90fffef950b4, port id : 1, seq id : 132, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-    2  19:44:09.248437 IP 11.0.0.9.320 > 224.0.1.129.320: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 132, control : 3 (peer delay resp msg), log message interval : 0, receiveTimeStamp : 1516736649 seconds, 248292005 nanoseconds, port identity : 0x7cfe90fffef950b4, port id : 1
+    1  19:44:09.248292 IP 11.0.0.110.319 > 224.0.1.129.319: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7cfe90fffef950b4, port id : 1, seq id : 132, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+    2  19:44:09.248437 IP 11.0.0.9.320 > 224.0.1.129.320: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 132, control : 3 (Delay_Resp), log message interval : 0, receiveTimeStamp : 1516736649 seconds, 248292005 nanoseconds, port identity : 0x7cfe90fffef950b4, port id : 1
     3  19:44:09.982883 IP 11.0.0.9.320 > 224.0.1.129.320: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 534, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :36, rsvd : 0, gm priority_1 : 128, gm clock class : 248, gm clock accuracy : 254, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x200fffe000001, steps removed : 0, time source : 0xa0
-    4  19:44:10.034745 IP 11.0.0.9.319 > 224.0.1.129.319: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 1067, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-    5  19:44:10.034796 IP 11.0.0.9.320 > 224.0.1.129.320: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 1067, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1516736650 seconds, 34751783 nanoseconds
+    4  19:44:10.034745 IP 11.0.0.9.319 > 224.0.1.129.319: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 1067, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+    5  19:44:10.034796 IP 11.0.0.9.320 > 224.0.1.129.320: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x200fffe000001, port id : 1, seq id : 1067, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1516736650 seconds, 34751783 nanoseconds
diff --git a/tests/ptp_corrections.out b/tests/ptp_corrections.out
new file mode 100644
index 0000000..eeb760b
--- /dev/null
+++ b/tests/ptp_corrections.out
@@ -0,0 +1,3 @@
+    1  17:52:26.679146 IP 4.5.0.2.319 > 2.2.2.2.319: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 44, reserved1 : 0, Flags [unicast], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0xa0369ffffe856e8a, port id : 1, seq id : 1203, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+    2  17:52:26.679265 IP 2.2.2.2.320 > 4.5.0.2.320: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 44, reserved1 : 0, Flags [unicast], NS correction : 36035, sub NS correction : 0, reserved2 : 0, clock identity : 0xe8c57affff01313f, port id : 3, seq id : 1203, control : 3 (Delay_Resp), log message interval : 127, receiveTimeStamp : 1665510783 seconds, 679015501 nanoseconds, port identity : 0xa0369ffffe856e8a, port id : 1
+    3  17:52:26.682034 IP 2.2.2.2.319 > 4.5.0.2.319: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 44, reserved1 : 0, Flags [unicast], NS correction : 105045, sub NS correction : 0, reserved2 : 0, clock identity : 0xe8c57affff01313f, port id : 3, seq id : 1213, control : 0 (Sync), log message interval : 127, originTimeStamp : 1665510783 seconds, 681548698 nanoseconds
diff --git a/tests/ptp_corrections.pcap b/tests/ptp_corrections.pcap
new file mode 100644
index 0000000..3d2386e
--- /dev/null
+++ b/tests/ptp_corrections.pcap
Binary files differ
diff --git a/tests/ptp_ethernet.out b/tests/ptp_ethernet.out
index 0ff3a61..9ae7541 100644
--- a/tests/ptp_ethernet.out
+++ b/tests/ptp_ethernet.out
@@ -1,205 +1,205 @@
-    1  16:47:07.869101 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-    2  16:47:07.870971 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303626 seconds, 867062623 nanoseconds
+    1  16:47:07.869101 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+    2  16:47:07.870971 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303626 seconds, 867062623 nanoseconds
     3  16:47:08.079739 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 128, gm clock class : 248, gm clock accuracy : 254, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x7483efffff01ac16, steps removed : 0, time source : 0x50
-    4  16:47:08.868841 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-    5  16:47:08.871699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303627 seconds, 867025483 nanoseconds
-    6  16:47:09.868779 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-    7  16:47:09.871473 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303628 seconds, 866947196 nanoseconds
+    4  16:47:08.868841 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+    5  16:47:08.871699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303627 seconds, 867025483 nanoseconds
+    6  16:47:09.868779 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+    7  16:47:09.871473 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303628 seconds, 866947196 nanoseconds
     8  16:47:10.079656 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 128, gm clock class : 248, gm clock accuracy : 254, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x7483efffff01ac16, steps removed : 0, time source : 0x50
-    9  16:47:10.868798 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   10  16:47:10.869955 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303629 seconds, 866901765 nanoseconds
-   11  16:47:10.872807 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 0, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   12  16:47:10.873584 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303629 seconds, 871703804 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   13  16:47:11.868670 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   14  16:47:11.948628 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303630 seconds, 866905669 nanoseconds
+    9  16:47:10.868798 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   10  16:47:10.869955 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303629 seconds, 866901765 nanoseconds
+   11  16:47:10.872807 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 0, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   12  16:47:10.873584 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 0, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303629 seconds, 871703804 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   13  16:47:11.868670 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   14  16:47:11.948628 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303630 seconds, 866905669 nanoseconds
    15  16:47:12.079561 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 128, gm clock class : 248, gm clock accuracy : 254, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x7483efffff01ac16, steps removed : 0, time source : 0x50
-   16  16:47:12.868775 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   17  16:47:12.873811 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303631 seconds, 866896340 nanoseconds
-   18  16:47:12.875715 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 1, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   19  16:47:12.876341 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303631 seconds, 874547364 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   20  16:47:13.868817 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   21  16:47:13.909113 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303632 seconds, 866906525 nanoseconds
+   16  16:47:12.868775 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   17  16:47:12.873811 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303631 seconds, 866896340 nanoseconds
+   18  16:47:12.875715 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 1, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   19  16:47:12.876341 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 1, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303631 seconds, 874547364 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   20  16:47:13.868817 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   21  16:47:13.909113 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303632 seconds, 866906525 nanoseconds
    22  16:47:14.079644 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   23  16:47:14.868782 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   24  16:47:14.908924 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303630 seconds, 204665673 nanoseconds
-   25  16:47:15.868691 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   26  16:47:15.871139 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303631 seconds, 782175259 nanoseconds
+   23  16:47:14.868782 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   24  16:47:14.908924 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303630 seconds, 204665673 nanoseconds
+   25  16:47:15.868691 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   26  16:47:15.871139 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303631 seconds, 782175259 nanoseconds
    27  16:47:16.079705 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   28  16:47:16.868654 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   29  16:47:16.912962 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303632 seconds, 782211566 nanoseconds
-   30  16:47:17.868771 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   31  16:47:17.871177 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303633 seconds, 782244202 nanoseconds
+   28  16:47:16.868654 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   29  16:47:16.912962 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303632 seconds, 782211566 nanoseconds
+   30  16:47:17.868771 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   31  16:47:17.871177 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303633 seconds, 782244202 nanoseconds
    32  16:47:18.079603 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   33  16:47:18.868681 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   34  16:47:18.873879 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303634 seconds, 782115413 nanoseconds
-   35  16:47:19.868772 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   36  16:47:19.869284 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303635 seconds, 782182699 nanoseconds
+   33  16:47:18.868681 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   34  16:47:18.873879 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303634 seconds, 782115413 nanoseconds
+   35  16:47:19.868772 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   36  16:47:19.869284 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303635 seconds, 782182699 nanoseconds
    37  16:47:20.079730 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   38  16:47:20.868802 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   39  16:47:20.873677 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303636 seconds, 782273855 nanoseconds
-   40  16:47:20.891294 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 2, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   41  16:47:20.892073 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303636 seconds, 805526455 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   42  16:47:21.868809 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   43  16:47:21.872667 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303637 seconds, 782266170 nanoseconds
+   38  16:47:20.868802 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   39  16:47:20.873677 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303636 seconds, 782273855 nanoseconds
+   40  16:47:20.891294 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 2, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   41  16:47:20.892073 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 2, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303636 seconds, 805526455 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   42  16:47:21.868809 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   43  16:47:21.872667 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303637 seconds, 782266170 nanoseconds
    44  16:47:22.079753 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   45  16:47:22.868807 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 15, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   46  16:47:22.873992 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 15, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303638 seconds, 782194184 nanoseconds
-   47  16:47:23.868851 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 16, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   48  16:47:23.871995 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 16, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303639 seconds, 782102867 nanoseconds
+   45  16:47:22.868807 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 15, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   46  16:47:22.873992 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 15, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303638 seconds, 782194184 nanoseconds
+   47  16:47:23.868851 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 16, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   48  16:47:23.871995 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 16, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303639 seconds, 782102867 nanoseconds
    49  16:47:24.079706 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   50  16:47:24.869069 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 17, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   51  16:47:24.912936 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 17, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303640 seconds, 782510187 nanoseconds
-   52  16:47:25.323631 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 3, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   53  16:47:25.324603 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303641 seconds, 237837281 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   54  16:47:25.869777 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 18, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   55  16:47:25.870087 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 18, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303642 seconds, 344940701 nanoseconds
+   50  16:47:24.869069 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 17, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   51  16:47:24.912936 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 17, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303640 seconds, 782510187 nanoseconds
+   52  16:47:25.323631 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 3, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   53  16:47:25.324603 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 3, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303641 seconds, 237837281 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   54  16:47:25.869777 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 18, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   55  16:47:25.870087 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 18, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303642 seconds, 344940701 nanoseconds
    56  16:47:26.079707 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   57  16:47:26.869799 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 19, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   58  16:47:26.874010 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 19, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303643 seconds, 344951404 nanoseconds
-   59  16:47:27.869755 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 20, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   60  16:47:27.872213 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 20, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303644 seconds, 344897561 nanoseconds
+   57  16:47:26.869799 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 19, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   58  16:47:26.874010 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 19, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303643 seconds, 344951404 nanoseconds
+   59  16:47:27.869755 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 20, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   60  16:47:27.872213 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 20, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303644 seconds, 344897561 nanoseconds
    61  16:47:28.079730 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   62  16:47:28.241752 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 4, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   63  16:47:28.242610 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303644 seconds, 717595486 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   64  16:47:28.869756 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 21, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   65  16:47:28.870962 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 21, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303645 seconds, 344930504 nanoseconds
-   66  16:47:29.869679 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 22, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   67  16:47:29.912951 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 22, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303646 seconds, 344866013 nanoseconds
+   62  16:47:28.241752 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 4, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   63  16:47:28.242610 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 4, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303644 seconds, 717595486 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   64  16:47:28.869756 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 21, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   65  16:47:28.870962 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 21, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303645 seconds, 344930504 nanoseconds
+   66  16:47:29.869679 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 22, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   67  16:47:29.912951 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 22, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303646 seconds, 344866013 nanoseconds
    68  16:47:30.079690 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   69  16:47:30.869748 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 23, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   70  16:47:30.872563 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 23, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303647 seconds, 344865229 nanoseconds
-   71  16:47:31.869557 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 24, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   72  16:47:31.912940 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 24, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303648 seconds, 344856788 nanoseconds
+   69  16:47:30.869748 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 23, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   70  16:47:30.872563 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 23, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303647 seconds, 344865229 nanoseconds
+   71  16:47:31.869557 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 24, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   72  16:47:31.912940 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 24, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303648 seconds, 344856788 nanoseconds
    73  16:47:32.079637 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   74  16:47:32.869750 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 25, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   75  16:47:32.895530 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 25, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303649 seconds, 329713234 nanoseconds
-   76  16:47:33.869840 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 26, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   77  16:47:33.873216 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 26, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303650 seconds, 329727724 nanoseconds
+   74  16:47:32.869750 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 25, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   75  16:47:32.895530 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 25, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303649 seconds, 329713234 nanoseconds
+   76  16:47:33.869840 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 26, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   77  16:47:33.873216 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 26, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303650 seconds, 329727724 nanoseconds
    78  16:47:34.079725 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   79  16:47:34.869762 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 27, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   80  16:47:34.873242 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 27, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303651 seconds, 329690745 nanoseconds
-   81  16:47:35.571612 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 5, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   82  16:47:35.572620 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303652 seconds, 32272261 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   83  16:47:35.869695 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 28, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   84  16:47:35.874991 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 28, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303652 seconds, 329675353 nanoseconds
+   79  16:47:34.869762 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 27, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   80  16:47:34.873242 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 27, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303651 seconds, 329690745 nanoseconds
+   81  16:47:35.571612 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 5, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   82  16:47:35.572620 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 5, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303652 seconds, 32272261 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   83  16:47:35.869695 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 28, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   84  16:47:35.874991 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 28, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303652 seconds, 329675353 nanoseconds
    85  16:47:36.079725 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   86  16:47:36.869922 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 29, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   87  16:47:36.874383 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 29, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303653 seconds, 329849750 nanoseconds
-   88  16:47:37.869752 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 30, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   89  16:47:37.871756 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 30, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303654 seconds, 329676257 nanoseconds
+   86  16:47:36.869922 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 29, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   87  16:47:36.874383 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 29, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303653 seconds, 329849750 nanoseconds
+   88  16:47:37.869752 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 30, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   89  16:47:37.871756 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 30, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303654 seconds, 329676257 nanoseconds
    90  16:47:38.079716 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 15, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   91  16:47:38.869721 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 31, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   92  16:47:38.872447 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 31, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303655 seconds, 329719538 nanoseconds
-   93  16:47:39.869742 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 32, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   94  16:47:39.916968 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 32, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303656 seconds, 172795159 nanoseconds
+   91  16:47:38.869721 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 31, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   92  16:47:38.872447 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 31, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303655 seconds, 329719538 nanoseconds
+   93  16:47:39.869742 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 32, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   94  16:47:39.916968 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 32, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303656 seconds, 172795159 nanoseconds
    95  16:47:40.079704 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 16, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-   96  16:47:40.427644 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 6, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-   97  16:47:40.428617 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303656 seconds, 731468461 nanoseconds, port identity : 0x6ffff020000, port id : 8
-   98  16:47:40.869746 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 33, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-   99  16:47:40.975224 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 33, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303657 seconds, 172867821 nanoseconds
-  100  16:47:41.869766 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 34, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  101  16:47:41.871382 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 34, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303658 seconds, 172847591 nanoseconds
+   96  16:47:40.427644 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 6, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+   97  16:47:40.428617 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 6, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303656 seconds, 731468461 nanoseconds, port identity : 0x6ffff020000, port id : 8
+   98  16:47:40.869746 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 33, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+   99  16:47:40.975224 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 33, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303657 seconds, 172867821 nanoseconds
+  100  16:47:41.869766 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 34, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  101  16:47:41.871382 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 34, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303658 seconds, 172847591 nanoseconds
   102  16:47:42.079748 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 17, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  103  16:47:42.869712 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 35, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  104  16:47:42.873721 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 35, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303659 seconds, 172838071 nanoseconds
-  105  16:47:43.869757 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 36, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  106  16:47:43.875177 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 36, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303660 seconds, 172845933 nanoseconds
+  103  16:47:42.869712 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 35, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  104  16:47:42.873721 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 35, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303659 seconds, 172838071 nanoseconds
+  105  16:47:43.869757 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 36, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  106  16:47:43.875177 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 36, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303660 seconds, 172845933 nanoseconds
   107  16:47:44.079724 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 18, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  108  16:47:44.869744 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 37, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  109  16:47:44.871727 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 37, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303661 seconds, 206678176 nanoseconds
-  110  16:47:45.869901 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 38, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  111  16:47:45.871682 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 38, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303662 seconds, 206818346 nanoseconds
+  108  16:47:44.869744 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 37, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  109  16:47:44.871727 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 37, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303661 seconds, 206678176 nanoseconds
+  110  16:47:45.869901 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 38, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  111  16:47:45.871682 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 38, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303662 seconds, 206818346 nanoseconds
   112  16:47:46.079711 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 19, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  113  16:47:46.861682 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 7, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  114  16:47:46.862645 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303663 seconds, 199343089 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  115  16:47:46.869590 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 39, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  116  16:47:46.872561 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 39, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303663 seconds, 206616347 nanoseconds
-  117  16:47:47.732663 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 8, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  118  16:47:47.733583 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303664 seconds, 70327505 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  119  16:47:47.869674 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 40, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  120  16:47:47.874535 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 40, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303664 seconds, 206690747 nanoseconds
+  113  16:47:46.861682 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 7, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  114  16:47:46.862645 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 7, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303663 seconds, 199343089 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  115  16:47:46.869590 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 39, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  116  16:47:46.872561 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 39, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303663 seconds, 206616347 nanoseconds
+  117  16:47:47.732663 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 8, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  118  16:47:47.733583 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 8, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303664 seconds, 70327505 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  119  16:47:47.869674 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 40, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  120  16:47:47.874535 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 40, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303664 seconds, 206690747 nanoseconds
   121  16:47:48.079795 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 20, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  122  16:47:48.869729 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 41, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  123  16:47:48.871306 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 41, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303665 seconds, 206685761 nanoseconds
-  124  16:47:49.869715 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 42, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  125  16:47:49.872233 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 42, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303666 seconds, 206636658 nanoseconds
+  122  16:47:48.869729 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 41, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  123  16:47:48.871306 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 41, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303665 seconds, 206685761 nanoseconds
+  124  16:47:49.869715 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 42, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  125  16:47:49.872233 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 42, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303666 seconds, 206636658 nanoseconds
   126  16:47:50.079790 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 21, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  127  16:47:50.869716 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 43, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  128  16:47:50.912941 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 43, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303667 seconds, 206601064 nanoseconds
-  129  16:47:51.869848 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 44, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  130  16:47:51.913046 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 44, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303668 seconds, 140541044 nanoseconds
+  127  16:47:50.869716 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 43, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  128  16:47:50.912941 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 43, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303667 seconds, 206601064 nanoseconds
+  129  16:47:51.869848 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 44, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  130  16:47:51.913046 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 44, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303668 seconds, 140541044 nanoseconds
   131  16:47:52.079748 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 22, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  132  16:47:52.869761 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 45, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  133  16:47:52.873033 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 45, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303669 seconds, 140466466 nanoseconds
-  134  16:47:53.869759 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 46, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  135  16:47:53.871646 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 46, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303670 seconds, 140484662 nanoseconds
+  132  16:47:52.869761 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 45, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  133  16:47:52.873033 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 45, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303669 seconds, 140466466 nanoseconds
+  134  16:47:53.869759 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 46, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  135  16:47:53.871646 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 46, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303670 seconds, 140484662 nanoseconds
   136  16:47:54.079835 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 23, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  137  16:47:54.869726 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 47, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  138  16:47:54.870804 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 47, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303671 seconds, 140509610 nanoseconds
-  139  16:47:55.724621 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 9, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  140  16:47:55.725515 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303671 seconds, 996114198 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  141  16:47:55.869740 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 48, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  142  16:47:55.873417 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 48, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303672 seconds, 140458889 nanoseconds
+  137  16:47:54.869726 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 47, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  138  16:47:54.870804 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 47, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303671 seconds, 140509610 nanoseconds
+  139  16:47:55.724621 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 9, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  140  16:47:55.725515 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 9, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303671 seconds, 996114198 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  141  16:47:55.869740 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 48, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  142  16:47:55.873417 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 48, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303672 seconds, 140458889 nanoseconds
   143  16:47:56.079747 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 24, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  144  16:47:56.869755 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 49, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  145  16:47:56.874169 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 49, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303673 seconds, 140533632 nanoseconds
-  146  16:47:57.869733 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 50, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  147  16:47:57.875008 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 50, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303674 seconds, 140440720 nanoseconds
+  144  16:47:56.869755 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 49, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  145  16:47:56.874169 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 49, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303673 seconds, 140533632 nanoseconds
+  146  16:47:57.869733 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 50, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  147  16:47:57.875008 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 50, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303674 seconds, 140440720 nanoseconds
   148  16:47:58.079712 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 25, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  149  16:47:58.092371 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 10, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  150  16:47:58.093173 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303674 seconds, 363746157 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  151  16:47:58.869768 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 51, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  152  16:47:58.875143 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 51, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303675 seconds, 140516734 nanoseconds
-  153  16:47:59.869758 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 52, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  154  16:47:59.913061 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 52, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303676 seconds, 140609930 nanoseconds
+  149  16:47:58.092371 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 10, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  150  16:47:58.093173 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 10, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303674 seconds, 363746157 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  151  16:47:58.869768 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 51, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  152  16:47:58.875143 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 51, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303675 seconds, 140516734 nanoseconds
+  153  16:47:59.869758 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 52, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  154  16:47:59.913061 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 52, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303676 seconds, 140609930 nanoseconds
   155  16:48:00.079744 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 26, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  156  16:48:00.869765 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 53, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  157  16:48:00.871138 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 53, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303677 seconds, 140522713 nanoseconds
-  158  16:48:01.869775 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 54, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  159  16:48:01.924282 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 54, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303678 seconds, 140584646 nanoseconds
-  160  16:48:02.041906 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 11, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  161  16:48:02.042830 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303678 seconds, 313400510 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  156  16:48:00.869765 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 53, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  157  16:48:00.871138 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 53, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303677 seconds, 140522713 nanoseconds
+  158  16:48:01.869775 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 54, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  159  16:48:01.924282 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 54, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303678 seconds, 140584646 nanoseconds
+  160  16:48:02.041906 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 11, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  161  16:48:02.042830 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 11, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303678 seconds, 313400510 nanoseconds, port identity : 0x6ffff020000, port id : 8
   162  16:48:02.079779 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 27, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 94, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  163  16:48:02.869731 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 55, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  164  16:48:02.872902 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 55, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303679 seconds, 211948399 nanoseconds
-  165  16:48:03.869740 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 56, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  166  16:48:03.871026 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 56, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303680 seconds, 212080924 nanoseconds
+  163  16:48:02.869731 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 55, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  164  16:48:02.872902 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 55, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303679 seconds, 211948399 nanoseconds
+  165  16:48:03.869740 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 56, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  166  16:48:03.871026 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 56, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303680 seconds, 212080924 nanoseconds
   167  16:48:04.079712 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 28, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  168  16:48:04.381626 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 12, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  169  16:48:04.382699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303680 seconds, 724715636 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  170  16:48:04.869774 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 57, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  171  16:48:04.873011 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 57, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303681 seconds, 212109931 nanoseconds
-  172  16:48:05.869834 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 58, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  173  16:48:05.912983 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 58, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303682 seconds, 212057798 nanoseconds
+  168  16:48:04.381626 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 12, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  169  16:48:04.382699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 12, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303680 seconds, 724715636 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  170  16:48:04.869774 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 57, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  171  16:48:04.873011 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 57, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303681 seconds, 212109931 nanoseconds
+  172  16:48:05.869834 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 58, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  173  16:48:05.912983 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 58, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303682 seconds, 212057798 nanoseconds
   174  16:48:06.079750 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 29, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  175  16:48:06.869821 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 59, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  176  16:48:06.870346 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 59, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303683 seconds, 212046209 nanoseconds
-  177  16:48:07.869794 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 60, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  178  16:48:07.870532 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 60, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303684 seconds, 212124397 nanoseconds
+  175  16:48:06.869821 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 59, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  176  16:48:06.870346 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 59, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303683 seconds, 212046209 nanoseconds
+  177  16:48:07.869794 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 60, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  178  16:48:07.870532 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 60, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303684 seconds, 212124397 nanoseconds
   179  16:48:08.079631 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 30, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  180  16:48:08.869976 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 61, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  181  16:48:08.872765 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 61, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303685 seconds, 259449233 nanoseconds
-  182  16:48:09.869791 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 62, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  183  16:48:09.980832 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 62, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303686 seconds, 259170852 nanoseconds
+  180  16:48:08.869976 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 61, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  181  16:48:08.872765 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 61, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303685 seconds, 259449233 nanoseconds
+  182  16:48:09.869791 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 62, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  183  16:48:09.980832 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 62, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303686 seconds, 259170852 nanoseconds
   184  16:48:10.079693 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 31, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  185  16:48:10.540849 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 13, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  186  16:48:10.541687 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303686 seconds, 931049480 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  187  16:48:10.869766 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 63, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  188  16:48:10.873697 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 63, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303687 seconds, 259216071 nanoseconds
-  189  16:48:11.869729 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 64, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  190  16:48:11.872800 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 64, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303688 seconds, 259206669 nanoseconds
+  185  16:48:10.540849 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 13, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  186  16:48:10.541687 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 13, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303686 seconds, 931049480 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  187  16:48:10.869766 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 63, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  188  16:48:10.873697 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 63, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303687 seconds, 259216071 nanoseconds
+  189  16:48:11.869729 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 64, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  190  16:48:11.872800 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 64, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303688 seconds, 259206669 nanoseconds
   191  16:48:12.079717 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 32, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  192  16:48:12.869941 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 65, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  193  16:48:12.873059 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 65, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303689 seconds, 259454558 nanoseconds
-  194  16:48:13.360985 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 14, control : 1 (delay req msg), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
-  195  16:48:13.361921 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 3 (peer delay resp msg), log message interval : 2, receiveTimeStamp : 1582303689 seconds, 751191518 nanoseconds, port identity : 0x6ffff020000, port id : 8
-  196  16:48:13.869795 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 66, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  197  16:48:13.870699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 66, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303690 seconds, 259235331 nanoseconds
+  192  16:48:12.869941 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 65, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  193  16:48:12.873059 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 65, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303689 seconds, 259454558 nanoseconds
+  194  16:48:13.360985 00:00:06:02:00:00 > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : delay req msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x6ffff020000, port id : 8, seq id : 14, control : 1 (Delay_Req), log message interval : 127, originTimeStamp : 0 seconds, 0 nanoseconds
+  195  16:48:13.361921 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 68: PTPv2, v1 compat : no, msg type : delay resp msg, length : 54, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 14, control : 3 (Delay_Resp), log message interval : 2, receiveTimeStamp : 1582303689 seconds, 751191518 nanoseconds, port identity : 0x6ffff020000, port id : 8
+  196  16:48:13.869795 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 66, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  197  16:48:13.870699 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 66, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303690 seconds, 259235331 nanoseconds
   198  16:48:14.079807 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 33, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  199  16:48:14.870018 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 67, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  200  16:48:14.912945 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 67, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303691 seconds, 295937711 nanoseconds
-  201  16:48:15.869829 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 68, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  202  16:48:15.873873 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 68, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303692 seconds, 295766607 nanoseconds
+  199  16:48:14.870018 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 67, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  200  16:48:14.912945 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 67, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303691 seconds, 295937711 nanoseconds
+  201  16:48:15.869829 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 68, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  202  16:48:15.873873 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 68, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303692 seconds, 295766607 nanoseconds
   203  16:48:16.079759 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 78: PTPv2, v1 compat : no, msg type : announce msg, length : 64, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 34, control : 5 (Other), log message interval : 1, originTimeStamp : 0 seconds 0 nanoseconds, origin cur utc :0, rsvd : 172, gm priority_1 : 0, gm clock class : 248, gm clock accuracy : 48, gm clock variance : 65535, gm priority_2 : 128, gm clock id : 0x6ffff010000, steps removed : 1, time source : 0x50
-  204  16:48:16.869875 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 69, control : 0 (sync msg), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
-  205  16:48:16.873233 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 69, control : 2 (peer delay req msg), log message interval : 0, preciseOriginTimeStamp : 1582303693 seconds, 295761755 nanoseconds
+  204  16:48:16.869875 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : sync msg, length : 44, domain : 0, reserved1 : 0, Flags [two step], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 69, control : 0 (Sync), log message interval : 0, originTimeStamp : 0 seconds, 0 nanoseconds
+  205  16:48:16.873233 74:83:ef:01:ac:5b > 01:1b:19:00:00:00, ethertype PTP (0x88f7), length 60: PTPv2, v1 compat : no, msg type : follow up msg, length : 44, domain : 0, reserved1 : 0, Flags [none], NS correction : 0, sub NS correction : 0, reserved2 : 0, clock identity : 0x7483efffff01ac16, port id : 274, seq id : 69, control : 2 (Follow_Up), log message interval : 0, preciseOriginTimeStamp : 1582303693 seconds, 295761755 nanoseconds
diff --git a/tests/sflow-print-v6.out b/tests/sflow-print-v6.out
new file mode 100644
index 0000000..f6462e4
--- /dev/null
+++ b/tests/sflow-print-v6.out
@@ -0,0 +1,666 @@
+    1  04:42:22.951505 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 109, uptime 113000, samples 1, length 216
+	counter sample (2), length 168, seqnum 28, type 0, idx 23001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 23001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    2  04:42:23.951517 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 110, uptime 114000, samples 2, length 392
+	counter sample (2), length 168, seqnum 27, type 0, idx 20001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 20001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 3001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 3001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    3  04:42:24.951541 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 752) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 111, uptime 115000, samples 4, length 744
+	counter sample (2), length 168, seqnum 27, type 0, idx 21001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 21001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 11759, unicast pkts 2, multicast pkts 96, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 18001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 18001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 10001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 10001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 93062, unicast pkts 109, multicast pkts 88, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 1001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 1001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    4  04:42:25.951447 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 724) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 112, uptime 116000, samples 4, length 716
+	counter sample (2), length 168, seqnum 27, type 0, idx 19001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 19001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 8001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 8001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 4001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 4001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	flow sample (1), length 140, seqnum 3, type 0, idx 7001, rate 1, pool 3, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+    5  04:42:26.951696 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 113, uptime 117000, samples 2, length 392
+	counter sample (2), length 168, seqnum 28, type 0, idx 13001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 13001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 27, type 0, idx 5001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 5001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    6  04:42:27.951754 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 114, uptime 118000, samples 2, length 392
+	counter sample (2), length 168, seqnum 28, type 0, idx 9001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 9001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 27, type 0, idx 7001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 7001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 192, unicast pkts 3, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 11262, unicast pkts 0, multicast pkts 93, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    7  04:42:29.952133 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 115, uptime 120000, samples 1, length 216
+	counter sample (2), length 168, seqnum 27, type 0, idx 14001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 14001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+    8  04:42:31.952116 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 264) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 116, uptime 122000, samples 1, length 256
+	flow sample (1), length 208, seqnum 4, type 0, idx 7001, rate 1, pool 4, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 144
+	      protocol Ethernet (1), length 250, stripped bytes 4, header_size 128
+    9  04:42:32.952344 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 117, uptime 123000, samples 1, length 216
+	counter sample (2), length 168, seqnum 29, type 0, idx 23001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 23001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   10  04:42:33.952451 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 118, uptime 124000, samples 2, length 392
+	counter sample (2), length 168, seqnum 28, type 0, idx 20001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 20001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 3001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 3001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   11  04:42:34.952794 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 752) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 119, uptime 125000, samples 4, length 744
+	counter sample (2), length 168, seqnum 28, type 0, idx 21001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 21001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 12073, unicast pkts 4, multicast pkts 96, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 18001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 18001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 10001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 10001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 96914, unicast pkts 117, multicast pkts 88, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 1001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 1001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   12  04:42:35.952945 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 576) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 120, uptime 126000, samples 3, length 568
+	counter sample (2), length 168, seqnum 28, type 0, idx 19001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 19001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 8001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 8001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 4001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 4001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   13  04:42:36.952896 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 121, uptime 127000, samples 2, length 392
+	counter sample (2), length 168, seqnum 29, type 0, idx 13001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 13001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 5001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 5001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   14  04:42:37.952960 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 616) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 122, uptime 128000, samples 3, length 608
+	counter sample (2), length 168, seqnum 29, type 0, idx 9001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 9001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 28, type 0, idx 7001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 7001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 442, unicast pkts 4, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 11262, unicast pkts 0, multicast pkts 93, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	flow sample (1), length 208, seqnum 5, type 0, idx 7001, rate 1, pool 5, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 144
+	      protocol Ethernet (1), length 500, stripped bytes 4, header_size 128
+   15  04:42:39.952953 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 123, uptime 130000, samples 1, length 216
+	counter sample (2), length 168, seqnum 28, type 0, idx 14001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 14001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   16  04:42:42.952991 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 124, uptime 133000, samples 1, length 216
+	counter sample (2), length 168, seqnum 30, type 0, idx 23001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 23001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   17  04:42:43.952984 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 125, uptime 134000, samples 2, length 392
+	counter sample (2), length 168, seqnum 29, type 0, idx 20001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 20001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 3001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 3001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   18  04:42:44.953346 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 752) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 126, uptime 135000, samples 4, length 744
+	counter sample (2), length 168, seqnum 29, type 0, idx 21001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 21001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 12573, unicast pkts 5, multicast pkts 96, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 18001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 18001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 10001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 10001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 100512, unicast pkts 124, multicast pkts 88, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 1001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 1001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   19  04:42:45.953345 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 576) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 127, uptime 136000, samples 3, length 568
+	counter sample (2), length 168, seqnum 29, type 0, idx 19001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 19001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 8001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 8001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 30, type 0, idx 4001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 4001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   20  04:42:46.073266 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 1288) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 128, uptime 136000, samples 8, length 1280
+	counter sample (2), length 168, seqnum 30, type 0, idx 13001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 13001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 5001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 5001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	flow sample (1), length 140, seqnum 6, type 0, idx 7001, rate 1, pool 6, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 7, type 0, idx 7001, rate 1, pool 7, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 8, type 0, idx 7001, rate 1, pool 8, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 9, type 0, idx 7001, rate 1, pool 9, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 10, type 0, idx 7001, rate 1, pool 10, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 11, type 0, idx 7001, rate 1, pool 11, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+   21  04:42:46.953386 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 640) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 129, uptime 137000, samples 4, length 632
+	flow sample (1), length 140, seqnum 12, type 0, idx 7001, rate 1, pool 12, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 13, type 0, idx 7001, rate 1, pool 13, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 14, type 0, idx 7001, rate 1, pool 14, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+	flow sample (1), length 140, seqnum 15, type 0, idx 7001, rate 1, pool 15, drops 0, input 7001 output 2147483648 records 2
+	    enterprise 0 Extended Switch data (1001) length 16
+	      src vlan 10, src pri 0, dst vlan 10, dst pri 0
+	    enterprise 0 Raw packet (1) length 76
+	      protocol Ethernet (1), length 64, stripped bytes 4, header_size 60
+   22  04:42:47.953302 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 130, uptime 138000, samples 2, length 392
+	counter sample (2), length 168, seqnum 30, type 0, idx 9001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 9001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 29, type 0, idx 7001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 7001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 942, unicast pkts 5, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 11262, unicast pkts 0, multicast pkts 93, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   23  04:42:49.953379 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 131, uptime 140000, samples 1, length 216
+	counter sample (2), length 168, seqnum 29, type 0, idx 14001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 14001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   24  04:42:52.953435 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 224) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 132, uptime 143000, samples 1, length 216
+	counter sample (2), length 168, seqnum 31, type 0, idx 23001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 23001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+   25  04:42:53.953481 IP6 (flowlabel 0xd50aa, hlim 64, next-header UDP (17) payload length: 400) 30::1:1:1.36123 > 20::1:1:2.6343: [udp sum ok] sFlowv5, IPv6 agent 30::1:1:1, agent-id 0, seqnum 133, uptime 144000, samples 2, length 392
+	counter sample (2), length 168, seqnum 30, type 0, idx 20001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 20001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9717, unicast pkts 0, multicast pkts 79, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
+	counter sample (2), length 168, seqnum 31, type 0, idx 3001, records 2
+	    enterprise 0, Ethernet counter (2) length 52
+	      align errors 0, fcs errors 0, single collision 0, multiple collision 0, test error 0
+	      deferred 0, late collision 0, excessive collision 0, mac trans error 0
+	      carrier error 0, frames too long 0, mac receive errors 0, symbol errors 0
+	    enterprise 0, Generic counter (1) length 88
+	      ifindex 3001, iftype 6, ifspeed 400000000000, ifdirection 1 (full-duplex)
+	      ifstatus 3, adminstatus: up, operstatus: up
+	      In octets 0, unicast pkts 0, multicast pkts 0, broadcast pkts 0, discards 0
+	      In errors 0, unknown protos 0
+	      Out octets 9348, unicast pkts 0, multicast pkts 76, broadcast pkts 0, discards 0
+	      Out errors 0, promisc mode 0
diff --git a/tests/sflow-print-v6.pcap b/tests/sflow-print-v6.pcap
new file mode 100644
index 0000000..d44d3bd
--- /dev/null
+++ b/tests/sflow-print-v6.pcap
Binary files differ
diff --git a/tests/tok2str-oobr-1.out b/tests/tok2str-oobr-1.out
index baee3fe..9c6dbab 100644
--- a/tests/tok2str-oobr-1.out
+++ b/tests/tok2str-oobr-1.out
@@ -53,7 +53,4 @@
 	    AFI: IPv4 (1), SAFI: labeled VPN Unicast (128)
 	      End-of-Rib Marker (empty NLRI)
 	    0x0000:  0001 80
-	Update Message (2), length: 30
-	  Unknown Attribute (0), length: 3, Flags [+f]: 
-	    no Attribute 0 decoder
-	    0x0000:  0001 05 [|bgp]
+	Update Message (2), length: 30 [|bgp]
diff --git a/tests/tok2str-oobr-2.out b/tests/tok2str-oobr-2.out
index b9de261..9cbd002 100644
--- a/tests/tok2str-oobr-2.out
+++ b/tests/tok2str-oobr-2.out
@@ -1,4 +1,4 @@
-    1  04:38:13.000000 01:01:01:01:01:01 > 02:02:02:02:02:02, ethertype MPLS unicast (0x8847), length 130: MPLS (label 16006, exp 0, [S], ttl 255)
+    1  04:38:13.000000 01:01:01:01:01:01 > 02:02:02:02:02:02, ethertype MPLS unicast (0x8847), length 130: MPLS (label 16006, tc 0, [S], ttl 255)
 	(tos 0x0, ttl 1, id 32770, offset 0, flags [DF, rsvd], proto UDP (17), length 112, options (RA), bad cksum a4cc (->a4cb)!)
     192.168.0.1.3503 > 127.0.0.1.3503: [bad udp cksum 0x8397 -> 0x3f6d!] 
 	LSP-PINGv1, msg-type: MPLS Echo Request (1), length: 80
diff --git a/tests/vqp-oobr.out b/tests/vqp-oobr.out
index 0182515..358599e 100644
--- a/tests/vqp-oobr.out
+++ b/tests/vqp-oobr.out
@@ -1,3 +1,3 @@
     1  [Error converting time] IP (tos 0x0, ttl 17, id 40207, offset 0, flags [+, DF, rsvd], proto UDP (17), length 46, bad cksum 8f04 (->f897)!)
     0.0.128.20.1589 > 12.251.167.8.62720: 
-	VQPv1, unknown (127) Message, error-code unknown (31) (31), seq 0x80f90000, items 27, length 18 [|vqp]
+	VQPv1, unknown (127) Message, error-code unknown (31), seq 0x80f90000, items 27, length 18 [|vqp]
diff --git a/tests/vrrp-v.out b/tests/vrrp-v.out
index 9531ab7..3ac1115 100644
--- a/tests/vrrp-v.out
+++ b/tests/vrrp-v.out
@@ -8,16 +8,16 @@
     10.0.0.91 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 191, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
     5  21:55:16.753436 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.91 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 191, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-    6  21:55:19.064377 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, (bad vrrp cksum cfa0), addrs(2): 254.128.0.0,0.0.0.0
-    7  21:55:19.064509 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, (bad vrrp cksum 5f12), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+    6  21:55:19.064377 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+    7  21:55:19.064509 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
     8  21:55:19.074681 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.91 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 191, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
     9  21:55:26.751857 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.91 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 191, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    10  21:55:26.751923 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.91 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 191, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   11  21:55:29.068063 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, (bad vrrp cksum 5f12), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   12  21:55:29.068132 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, (bad vrrp cksum cfa0), addrs(2): 254.128.0.0,0.0.0.0
+   11  21:55:29.068063 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   12  21:55:29.068132 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    13  21:55:29.078313 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.91 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 191, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
    14  21:55:34.773565 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
@@ -26,54 +26,54 @@
     10.0.0.92 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 192, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    16  21:55:37.044216 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.92 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 192, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   17  21:55:39.070934 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, (bad vrrp cksum cfa0), addrs(2): 254.128.0.0,0.0.0.0
-   18  21:55:39.071010 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, (bad vrrp cksum 5f12), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   17  21:55:39.070934 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 191, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   18  21:55:39.071010 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf60 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 191, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    19  21:55:44.778957 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.92 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 192, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    20  21:55:44.789130 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.92 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 192, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    21  21:55:47.046947 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.92 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 192, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   22  21:55:47.047012 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, (bad vrrp cksum 7b8c), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   23  21:55:47.047042 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, (bad vrrp cksum ec1a), addrs(2): 254.128.0.0,0.0.0.0
+   22  21:55:47.047012 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   23  21:55:47.047042 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    24  21:55:54.780328 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.92 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 192, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    25  21:55:54.780387 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.92 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 192, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    26  21:55:57.042694 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.92 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 192, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   27  21:55:57.042754 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, (bad vrrp cksum ec1a), addrs(2): 254.128.0.0,0.0.0.0
-   28  21:55:57.042778 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, (bad vrrp cksum 7b8c), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   27  21:55:57.042754 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   28  21:55:57.042778 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    29  21:56:04.643506 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 193, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    30  21:56:04.649862 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 193, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    31  21:56:06.862122 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.93 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 193, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   32  21:56:07.046980 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, (bad vrrp cksum 7b8c), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   33  21:56:07.047062 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, (bad vrrp cksum ec1a), addrs(2): 254.128.0.0,0.0.0.0
+   32  21:56:07.046980 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 46, prio 192, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   33  21:56:07.047062 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1da > ff02::12: VRRPv3, Advertisement, vrid 45, prio 192, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    34  21:56:14.647902 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 193, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    35  21:56:14.647963 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 193, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   36  21:56:16.860142 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, (bad vrrp cksum 5d0d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   37  21:56:16.860206 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, (bad vrrp cksum cd9b), addrs(2): 254.128.0.0,0.0.0.0
+   36  21:56:16.860142 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   37  21:56:16.860206 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    38  21:56:16.860214 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.93 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 193, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
    39  21:56:24.657679 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 193, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    40  21:56:24.657741 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 193, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   41  21:56:26.859969 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, (bad vrrp cksum 5d0d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   42  21:56:26.860037 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, (bad vrrp cksum cd9b), addrs(2): 254.128.0.0,0.0.0.0
+   41  21:56:26.859969 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   42  21:56:26.860037 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    43  21:56:26.860045 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.93 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 193, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
    44  21:56:34.667398 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 193, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    45  21:56:34.667454 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.93 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 193, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-   46  21:56:36.859720 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, (bad vrrp cksum 5d0d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   47  21:56:36.859786 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, (bad vrrp cksum cd9b), addrs(2): 254.128.0.0,0.0.0.0
+   46  21:56:36.859720 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   47  21:56:36.859786 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    48  21:56:36.859795 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.93 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 193, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
    49  21:56:41.365005 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
@@ -82,184 +82,184 @@
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 194, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    51  21:56:43.571121 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.94 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 194, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   52  21:56:46.860576 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, (bad vrrp cksum 5d0d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
-   53  21:56:46.860627 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, (bad vrrp cksum cd9b), addrs(2): 254.128.0.0,0.0.0.0
+   52  21:56:46.860576 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 193, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
+   53  21:56:46.860627 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe66:cf65 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 193, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    54  21:56:51.366475 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 194, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    55  21:56:51.366535 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 194, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   56  21:56:53.568732 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, (bad vrrp cksum c7a5), addrs(2): 254.128.0.0,0.0.0.0
+   56  21:56:53.568732 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    57  21:56:53.568785 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.94 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 194, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   58  21:56:53.589188 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, (bad vrrp cksum 5717), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   58  21:56:53.589188 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    59  21:57:01.373895 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 194, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    60  21:57:01.373951 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 194, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    61  21:57:03.566197 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.94 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 194, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   62  21:57:03.566241 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, (bad vrrp cksum c7a5), addrs(2): 254.128.0.0,0.0.0.0
-   63  21:57:03.586537 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, (bad vrrp cksum 5717), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   62  21:57:03.566241 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   63  21:57:03.586537 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    64  21:57:11.381178 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 194, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    65  21:57:11.381238 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 194, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   66  21:57:13.563581 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, (bad vrrp cksum c7a5), addrs(2): 254.128.0.0,0.0.0.0
+   66  21:57:13.563581 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    67  21:57:13.563652 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.94 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 194, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   68  21:57:13.583750 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, (bad vrrp cksum 5717), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   68  21:57:13.583750 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    69  21:57:21.390823 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 194, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    70  21:57:21.390887 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.94 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 194, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    71  21:57:23.563280 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.94 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 194, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   72  21:57:23.563341 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, (bad vrrp cksum c7a5), addrs(2): 254.128.0.0,0.0.0.0
-   73  21:57:23.583426 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, (bad vrrp cksum 5717), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   72  21:57:23.563341 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   73  21:57:23.583426 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    74  21:57:30.198637 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 195, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    75  21:57:30.202588 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 195, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    76  21:57:32.373402 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.95 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 195, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   77  21:57:33.567816 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, (bad vrrp cksum c7a5), addrs(2): 254.128.0.0,0.0.0.0
-   78  21:57:33.588127 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, (bad vrrp cksum 5717), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   77  21:57:33.567816 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 45, prio 194, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   78  21:57:33.588127 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d45c > ff02::12: VRRPv3, Advertisement, vrid 46, prio 194, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    79  21:57:40.205279 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 195, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    80  21:57:40.205343 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 195, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    81  21:57:42.367695 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.95 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 195, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   82  21:57:42.367760 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, (bad vrrp cksum c696), addrs(2): 254.128.0.0,0.0.0.0
-   83  21:57:42.377819 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, (bad vrrp cksum 5608), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   82  21:57:42.367760 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   83  21:57:42.377819 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    84  21:57:50.215046 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 195, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    85  21:57:50.215112 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 195, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-   86  21:57:52.367351 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, (bad vrrp cksum c696), addrs(2): 254.128.0.0,0.0.0.0
+   86  21:57:52.367351 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
    87  21:57:52.367427 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.95 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 195, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   88  21:57:52.377456 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, (bad vrrp cksum 5608), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   88  21:57:52.377456 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    89  21:58:00.224875 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 195, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    90  21:58:00.224935 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.95 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 195, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    91  21:58:02.367084 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.95 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 195, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   92  21:58:02.367144 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, (bad vrrp cksum c696), addrs(2): 254.128.0.0,0.0.0.0
-   93  21:58:02.377445 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, (bad vrrp cksum 5608), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   92  21:58:02.367144 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   93  21:58:02.377445 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    94  21:58:04.461974 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 196, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
    95  21:58:04.466033 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 196, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
    96  21:58:06.599034 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.96 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 196, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-   97  21:58:12.374622 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, (bad vrrp cksum c696), addrs(2): 254.128.0.0,0.0.0.0
-   98  21:58:12.374697 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, (bad vrrp cksum 5608), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+   97  21:58:12.374622 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 45, prio 195, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+   98  21:58:12.374697 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe65:d46b > ff02::12: VRRPv3, Advertisement, vrid 46, prio 195, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
    99  21:58:14.458404 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 196, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   100  21:58:14.468662 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 196, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  101  21:58:16.590792 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, (bad vrrp cksum e810), addrs(2): 254.128.0.0,0.0.0.0
+  101  21:58:16.590792 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   102  21:58:16.600962 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.96 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 196, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  103  21:58:16.611202 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, (bad vrrp cksum 7782), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  103  21:58:16.611202 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   104  21:58:24.464854 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 196, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   105  21:58:24.464916 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 196, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  106  21:58:26.587122 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, (bad vrrp cksum e810), addrs(2): 254.128.0.0,0.0.0.0
+  106  21:58:26.587122 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   107  21:58:26.597278 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.96 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 196, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  108  21:58:26.607415 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, (bad vrrp cksum 7782), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  108  21:58:26.607415 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   109  21:58:34.474628 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 196, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   110  21:58:34.474688 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 196, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-  111  21:58:36.586887 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, (bad vrrp cksum e810), addrs(2): 254.128.0.0,0.0.0.0
+  111  21:58:36.586887 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   112  21:58:36.597038 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.96 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 196, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  113  21:58:36.607177 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, (bad vrrp cksum 7782), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  113  21:58:36.607177 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   114  21:58:44.484468 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 196, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   115  21:58:44.484534 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.96 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 196, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  116  21:58:46.585913 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, (bad vrrp cksum e810), addrs(2): 254.128.0.0,0.0.0.0
+  116  21:58:46.585913 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   117  21:58:46.596106 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.96 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 196, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  118  21:58:46.606276 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, (bad vrrp cksum 7782), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  118  21:58:46.606276 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   119  21:58:49.932515 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   120  21:58:49.935030 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   121  21:58:52.025571 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  122  21:58:56.594126 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, (bad vrrp cksum e810), addrs(2): 254.128.0.0,0.0.0.0
-  123  21:58:56.604316 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, (bad vrrp cksum 7782), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  122  21:58:56.594126 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 45, prio 196, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
+  123  21:58:56.604316 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::d6ca:6dff:fe72:b1e4 > ff02::12: VRRPv3, Advertisement, vrid 46, prio 196, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   124  21:58:59.938046 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   125  21:58:59.938096 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  126  21:59:02.020356 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  126  21:59:02.020356 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   127  21:59:02.030572 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  128  21:59:02.040691 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  128  21:59:02.040691 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   129  21:59:09.941288 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   130  21:59:09.941346 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-  131  21:59:12.013545 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  131  21:59:12.013545 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   132  21:59:12.023710 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  133  21:59:12.033831 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  133  21:59:12.033831 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   134  21:59:19.951291 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   135  21:59:19.951350 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  136  21:59:22.013537 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  136  21:59:22.013537 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   137  21:59:22.023644 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  138  21:59:22.033781 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  138  21:59:22.033781 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   139  21:59:29.961257 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   140  21:59:29.961318 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-  141  21:59:32.013287 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  141  21:59:32.013287 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   142  21:59:32.023734 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  143  21:59:32.033779 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  143  21:59:32.033779 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   144  21:59:39.971275 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   145  21:59:39.971336 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  146  21:59:42.013484 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  146  21:59:42.013484 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   147  21:59:42.023603 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  148  21:59:42.033784 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  148  21:59:42.033784 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   149  21:59:49.981283 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   150  21:59:49.981343 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-  151  21:59:52.013458 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  151  21:59:52.013458 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   152  21:59:52.023620 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  153  21:59:52.033729 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  153  21:59:52.033729 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   154  21:59:59.991224 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   155  21:59:59.991284 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
-  156  22:00:02.013448 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  156  22:00:02.013448 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   157  22:00:02.023620 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  158  22:00:02.033735 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  158  22:00:02.033735 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   159  22:00:10.001302 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 43, prio 197, authtype none, intvl 10s, length 20, addrs: 10.4.43.150
   160  22:00:10.001364 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
-  161  22:00:12.013443 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, (bad vrrp cksum d5eb), addrs(2): 254.128.0.0,0.0.0.0
+  161  22:00:12.013443 IP6 (hlim 255, next-header VRRP (112) payload length: 40) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 45, prio 197, intvl 1000cs, length 40, addrs(2): fe80::200:5eff:fe00:22d,2001::abcd:a
   162  22:00:12.023585 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 36)
     10.0.0.97 > 224.0.0.18: VRRPv3, Advertisement, vrid 44, prio 197, intvl 1000cs, length 16, addrs(2): 10.4.44.100,10.4.44.200
-  163  22:00:12.033752 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, (bad vrrp cksum 655d), addrs(5): 254.128.0.0,0.0.0.0,2.0.94.255,254.0.2.46,32.1.0.0
+  163  22:00:12.033752 IP6 (hlim 255, next-header VRRP (112) payload length: 88) fe80::20c:42ff:fe5e:c2dc > ff02::12: VRRPv3, Advertisement, vrid 46, prio 197, intvl 1000cs, length 88, addrs(5): fe80::200:5eff:fe00:22e,2001::eeff:a,2001::eeff:b,2001::eeff:c,2001::eeff:d
   164  22:00:20.011269 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 48)
     10.0.0.97 > 224.0.0.18: VRRPv2, Advertisement, vrid 42, prio 197, authtype simple, intvl 10s, length 28, addrs(3): 10.4.42.1,10.4.42.2,10.4.42.3 auth "abcdefgh"
   165  22:00:20.011328 IP (tos 0x0, ttl 255, id 4660, offset 0, flags [none], proto VRRP (112), length 40)
diff --git a/tests/wb-oobr.out b/tests/wb-oobr.out
index b2f02a7..9766e5d 100644
--- a/tests/wb-oobr.out
+++ b/tests/wb-oobr.out
@@ -1,14 +1,14 @@
-    1  05:27:12.808464432 MPLS (label 197376, exp 7, [S], ttl 48)
+    1  05:27:12.808464432 MPLS (label 197376, tc 7, [S], ttl 48)
 	IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->7754)!)
     48.4.4.4.4400 > 127.0.0.1.3503:  [|lspping]
     2  05:27:12.808464432 IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->699d)!)
     48.48.48.48.3503 > 48.48.48.48.4567: * wb-prep: [|wb]
-    3  05:27:12.808464432 MPLS (label 197376, exp 7, [S], ttl 48)
+    3  05:27:12.808464432 MPLS (label 197376, tc 7, [S], ttl 48)
 	IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->699d)!)
     48.48.48.48.4400 > 48.48.48.48.3503:  [|lspping]
     4  05:27:12.808464432 IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->c624)!)
     48.48.0.1.3503 > 48.4.4.4.4567: * wb-prep: [|wb]
-    5  05:27:12.808464432 MPLS (label 197376, exp 7, [S], ttl 48)
+    5  05:27:12.808464432 MPLS (label 197376, tc 7, [S], ttl 48)
 	IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->7754)!)
     48.4.4.4.4400 > 127.0.0.1.3503:  [|lspping]
     6  05:27:12.808464432 IP (tos 0x30, ttl 48, id 12336, offset 0, flags [none], proto UDP (17), length 12336, bad cksum 3030 (->c624)!)
diff --git a/update-test.sh b/update-test.sh
index 6ee18ca..ad2c7ec 100755
--- a/update-test.sh
+++ b/update-test.sh
@@ -7,13 +7,15 @@
 for TEST in "$@"; do
     PREFIX=tests
     MATCH=0
-    while read name input output options
+    while read -r name input output options
     do
-        [ _$name = _ ] && continue        # ignore empty lines
-        [ _${name#\#} != _$name ] && continue    # ignore comment lines
-        [ $name != "$TEST" ] && continue    # not the requested test
-        [ _$output = _ ] && continue    # ignore incomplete lines
+        [ -z "$name" ] && continue        # ignore empty lines
+        [ "${name#\#}" != "$name" ] && continue    # ignore comment lines
+        [ "$name" != "$TEST" ] && continue    # not the requested test
+        [ -z "$output" ] && continue    # ignore incomplete lines
         MATCH=1
+        # Word splitting is intentional for $options.
+        # shellcheck disable=SC2086
         ./tcpdump -# -n -r "$PREFIX/$input" $options >"$PREFIX/$output"
     done < $PREFIX/TESTLIST
     [ $MATCH = 0 ] && echo "test $TEST not found" >&2
diff --git a/util-print.c b/util-print.c
index 6f8f61d..8b20649 100644
--- a/util-print.c
+++ b/util-print.c
@@ -458,7 +458,7 @@
 /*
  * Convert a token value to a string; use "fmt" if not found.
  */
-const char *
+static const char *
 tok2strbuf(const struct tok *lp, const char *fmt,
 	   u_int v, char *buf, size_t bufsize)
 {
@@ -604,7 +604,7 @@
 int
 mask2plen(uint32_t mask)
 {
-	uint32_t bitmasks[33] = {
+	const uint32_t bitmasks[33] = {
 		0x00000000,
 		0x80000000, 0xc0000000, 0xe0000000, 0xf0000000,
 		0xf8000000, 0xfc000000, 0xfe000000, 0xff000000,
@@ -917,7 +917,7 @@
     (defined(__s390__) || defined(__s390x__) || defined(__zarch__)) || \
     defined(__vax__)
 /*
- * The procesor natively handles unaligned loads, so just use memcpy()
+ * The processor natively handles unaligned loads, so just use memcpy()
  * and memcmp(), to enable those optimizations.
  *
  * XXX - are those all the x86 tests we need?