aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-03 15:57:28 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-03 15:57:28 +0000
commitb868e5b7adf4053d3aa8ff91d143a4e6d82b1800 (patch)
tree7cd8e81bb6d447bc16cf5ed21c190e670854b607
parentb41b710e98090f62d5525d0349667f8e1f100cd8 (diff)
parentecbde7e0a073a51a5b6d3403d36b265b37eaf444 (diff)
downloadtcpdump-android14-mainline-adbd-release.tar.gz
Change-Id: I2c441172116026b8a672ee97bef832976f2779c9
-rw-r--r--.appveyor.yml16
-rwxr-xr-x.ci-coverity-scan-build.sh (renamed from .travis-coverity-scan-build.sh)27
-rw-r--r--.cirrus.yml58
-rw-r--r--.github/ISSUE_TEMPLATE11
-rw-r--r--.gitignore1
-rw-r--r--Android.bp175
-rw-r--r--CHANGES147
-rw-r--r--CMakeLists.txt163
-rw-r--r--CONTRIBUTING170
-rw-r--r--CONTRIBUTING.md191
-rw-r--r--CREDITS39
-rw-r--r--INSTALL.md (renamed from INSTALL.txt)47
-rw-r--r--METADATA16
-rw-r--r--Makefile.in106
-rw-r--r--README.md5
-rw-r--r--VERSION2
-rw-r--r--aclocal.m4198
-rw-r--r--addrtoname.c121
-rw-r--r--addrtoname.h5
-rwxr-xr-xbuild.sh196
-rw-r--r--build_common.sh287
-rwxr-xr-xbuild_matrix.sh160
-rwxr-xr-xbuildem28
-rw-r--r--cmake/Modules/FindPCAP.cmake58
-rw-r--r--cmakeconfig.h.in6
-rw-r--r--compiler-tests.h65
-rwxr-xr-xconfig.guess1264
-rw-r--r--config.h14
-rw-r--r--config.h.in10
-rwxr-xr-xconfig.sub94
-rwxr-xr-xconfigure1292
-rw-r--r--configure.ac76
-rw-r--r--diag-control.h186
-rw-r--r--doc/README.NetBSD.md22
-rw-r--r--doc/README.Win32.md92
-rw-r--r--doc/README.aix.md17
-rw-r--r--doc/README.solaris.md41
-rw-r--r--ethertype.h4
-rw-r--r--extract.h9
-rw-r--r--ftmacros.h7
-rw-r--r--funcattrs.h66
-rw-r--r--interface.h6
-rw-r--r--missing/getopt_long.c28
-rw-r--r--missing/snprintf.c2
-rw-r--r--missing/win_ether_ntohost.c216
-rw-r--r--missing/win_ether_ntohost.h33
-rwxr-xr-xmkdep21
-rw-r--r--mpls.h6
-rw-r--r--netdissect-alloc.c4
-rw-r--r--netdissect-alloc.h1
-rw-r--r--netdissect-ctype.h2
-rw-r--r--netdissect-stdinc.h66
-rw-r--r--netdissect.c97
-rw-r--r--netdissect.h63
-rw-r--r--ospf.h6
-rw-r--r--pflog.h151
-rw-r--r--print-802_11.c30
-rw-r--r--print-802_15_4.c60
-rw-r--r--print-arista.c144
-rw-r--r--print-arp.c2
-rw-r--r--print-bgp.c28
-rw-r--r--print-bt.c2
-rw-r--r--print-dccp.c6
-rw-r--r--print-dsa.c2
-rw-r--r--print-eap.c83
-rw-r--r--print-egp.c4
-rw-r--r--print-enc.c2
-rw-r--r--print-esp.c54
-rw-r--r--print-ether.c24
-rw-r--r--print-hncp.c2
-rw-r--r--print-icmp.c87
-rw-r--r--print-icmp6.c52
-rw-r--r--print-igrp.c2
-rw-r--r--print-ip-demux.c2
-rw-r--r--print-ip.c5
-rw-r--r--print-ip6.c85
-rw-r--r--print-ipx.c2
-rw-r--r--print-isakmp.c8
-rw-r--r--print-juniper.c174
-rw-r--r--print-lisp.c7
-rw-r--r--print-lwres.c4
-rw-r--r--print-mpls.c2
-rw-r--r--print-mptcp.c18
-rw-r--r--print-nfs.c2
-rw-r--r--print-ospf.c12
-rw-r--r--print-ospf6.c8
-rw-r--r--print-pflog.c111
-rw-r--r--print-ppp.c30
-rw-r--r--print-pptp.c2
-rw-r--r--print-ptp.c112
-rw-r--r--print-radius.c13
-rw-r--r--print-realtek.c248
-rw-r--r--print-resp.c10
-rw-r--r--print-rrcp.c136
-rw-r--r--print-rx.c5
-rw-r--r--print-sflow.c72
-rw-r--r--print-sll.c5
-rw-r--r--print-snmp.c4
-rw-r--r--print-stp.c2
-rw-r--r--print-tcp.c11
-rw-r--r--print-vqp.c4
-rw-r--r--print-vrrp.c25
-rw-r--r--print-whois.c31
-rw-r--r--print-zep.c6
-rw-r--r--print-zephyr.c71
-rw-r--r--print.c3
-rw-r--r--signature.c5
-rw-r--r--slcompress.h4
-rw-r--r--smbutil.c7
-rw-r--r--tcpdump.1.in46
-rw-r--r--tcpdump.c74
-rw-r--r--tests/TESTLIST83
-rwxr-xr-xtests/TESTrun16
-rw-r--r--tests/arista_ether-e.out32
-rw-r--r--tests/arista_ether-ev.out32
-rw-r--r--tests/arista_ether.out32
-rw-r--r--tests/bgp-aigp-2.out12
-rw-r--r--tests/bgp-aigp-2.pcapbin0 -> 180 bytes
-rw-r--r--tests/bgp-as-path-oobr-nossl.out35
-rw-r--r--tests/bgp-as-path-oobr-ssl.out35
-rw-r--r--tests/bgp-extended-shutdown-msg.out3
-rw-r--r--tests/bgp-extended-shutdown-msg.pcapngbin0 -> 404 bytes
-rw-r--r--tests/bgp-link-bw-extcommunity.out63
-rw-r--r--tests/bgp-link-bw-extcommunity.pcapngbin0 -> 624 bytes
-rw-r--r--tests/bgp_mp_reach_nlri-oobr.out18
-rw-r--r--tests/bgp_mvpn_6_and_7_oobr.out6
-rw-r--r--tests/bgp_pmsi_tunnel-oobr.out6
-rw-r--r--tests/bgp_vpn_rt-oobr.out12
-rw-r--r--tests/dccp_options-oobr.out6
-rw-r--r--tests/dsa-high-vid-e.out4
-rw-r--r--tests/dsa-high-vid.out4
-rw-r--r--tests/dsa-high-vid.pcapbin0 -> 496 bytes
-rw-r--r--tests/eapon1-v-nosmb.out32
-rw-r--r--tests/eapon1-v.out32
-rw-r--r--tests/edsa-high-vid-e.out4
-rw-r--r--tests/edsa-high-vid.out4
-rw-r--r--tests/edsa-high-vid.pcapbin0 -> 512 bytes
-rw-r--r--tests/heapoverflow-atalk_2.out (renamed from tests/heapoverflow-EXTRACT_16BITS.out)0
-rw-r--r--tests/heapoverflow-atalk_2.pcap (renamed from tests/heapoverflow-EXTRACT_16BITS.pcap)bin52 -> 52 bytes
-rw-r--r--tests/hoobr_juniper3.out2
-rw-r--r--tests/icmp-cksum-oobr-1.out2
-rw-r--r--tests/icmp-cksum-oobr-2.out4
-rw-r--r--tests/icmp-cksum-oobr-3.out2
-rw-r--r--tests/icmp-cksum-oobr-4.out4
-rw-r--r--tests/icmpv6-RFC2894-RR-v.out6
-rw-r--r--tests/icmpv6-RFC2894-RR.out6
-rw-r--r--tests/icmpv6-RFC2894-RR.pcapbin0 -> 816 bytes
-rw-r--r--tests/icmpv6-ni-flags.out5
-rw-r--r--tests/icmpv6-ni-flags.pcapbin0 -> 534 bytes
-rw-r--r--tests/ipv6-too-long-jumbo.out1
-rw-r--r--tests/ipv6-too-long-jumbo.pcapbin0 -> 530 bytes
-rw-r--r--tests/juniper_header-heapoverflow.out2
-rw-r--r--tests/lspping-fec-ldp-v.out16
-rw-r--r--tests/lspping-fec-ldp-vv.out16
-rw-r--r--tests/lspping-fec-ldp.out16
-rw-r--r--tests/lspping-fec-rsvp-v.out10
-rw-r--r--tests/lspping-fec-rsvp-vv.out10
-rw-r--r--tests/lspping-fec-rsvp.out10
-rw-r--r--tests/lwres_with_extra.out1
-rw-r--r--tests/lwres_with_extra.pcapbin0 -> 423 bytes
-rw-r--r--tests/mpls-label-heapoverflow.out4
-rw-r--r--tests/mpls-over-udp-v.out4
-rw-r--r--tests/mpls-over-udp.out4
-rw-r--r--tests/mpls-traceroute-v.out42
-rw-r--r--tests/mpls-traceroute.out18
-rw-r--r--tests/mptcp-aa-echo.out4
-rw-r--r--tests/mptcp-aa-v1.out44
-rw-r--r--tests/mptcp-dss-oobr.out2
-rw-r--r--tests/mptcp-fclose.out18
-rw-r--r--tests/mptcp-v0.out528
-rw-r--r--tests/mptcp-v1.out40
-rw-r--r--tests/non-bsd.tests4
-rw-r--r--tests/ospf-nssa-bitnt.out12
-rw-r--r--tests/ospf-nssa-bitnt.pcapbin0 -> 150 bytes
-rw-r--r--tests/pcap-invalid-version-1.out1
-rw-r--r--tests/pcap-invalid-version-1.out.stderr1
-rw-r--r--tests/pcap-invalid-version-1.pcapbin530 -> 0 bytes
-rw-r--r--tests/pcap-invalid-version-2.out1
-rw-r--r--tests/pcap-invalid-version-2.out.stderr1
-rw-r--r--tests/pcap-invalid-version-2.pcapbin530 -> 0 bytes
-rw-r--r--tests/pcapng-invalid-vers-1.out1
-rw-r--r--tests/pcapng-invalid-vers-1.out.stderr1
-rw-r--r--tests/pcapng-invalid-vers-1.pcapngbin260 -> 0 bytes
-rw-r--r--tests/pcapng-invalid-vers-2.out1
-rw-r--r--tests/pcapng-invalid-vers-2.out.stderr1
-rw-r--r--tests/pcapng-invalid-vers-2.pcapngbin260 -> 0 bytes
-rw-r--r--tests/printf_z.tests132
-rw-r--r--tests/ptp.out8
-rw-r--r--tests/ptp_corrections.out3
-rw-r--r--tests/ptp_corrections.pcapbin0 -> 340 bytes
-rw-r--r--tests/ptp_ethernet.out340
-rw-r--r--tests/sflow-print-v6.out666
-rw-r--r--tests/sflow-print-v6.pcapbin0 -> 13482 bytes
-rw-r--r--tests/tok2str-oobr-1.out5
-rw-r--r--tests/tok2str-oobr-2.out2
-rw-r--r--tests/vqp-oobr.out2
-rw-r--r--tests/vrrp-v.out128
-rw-r--r--tests/wb-oobr.out6
-rwxr-xr-xupdate-test.sh12
-rw-r--r--util-print.c6
200 files changed, 6795 insertions, 3975 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
index f923c334..261a2cbb 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -12,8 +12,8 @@ matrix:
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 @@ environment:
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 @@ environment:
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 @@ environment:
- 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
index 7ea1dac9..686806a3 100755
--- a/.travis-coverity-scan-build.sh
+++ b/.ci-coverity-scan-build.sh
@@ -6,7 +6,6 @@ set -e
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 @@ TOOL_BASE=/tmp/coverity-scan-analysis
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 @@ RESULTS_DIR="cov-int"
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 657f947e..5b634007 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -7,25 +7,23 @@ freebsd_task:
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 @@ linux_task:
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 @@ coverity_task:
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_task:
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 00000000..e543fcbf
--- /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 c89b86c8..84a0f7a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,6 @@ stamp-h.in
tcpdump
tcpdump.1
tcpdump-*.tar.gz
-version.c
failure-outputs.txt
autom4te.cache/
*.VC.db
diff --git a/Android.bp b/Android.bp
index 5f0abb92..af9f6cbf 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,8 +16,9 @@ license {
],
}
-cc_binary {
- name: "tcpdump",
+cc_defaults {
+ name: "tcpdump_defaults",
+
host_supported: false,
cflags: [
@@ -53,168 +54,12 @@ cc_binary {
"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 @@ cc_binary {
"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 bdd7b8b0..410b0332 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, June 9, 2021 by gharris
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 @@ Friday, September 20, 2019, by mcr@sandelman.ca
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 @@ Tue. July 5, 2005. ken@xelerance.com. Summary for 3.9.3 tcpdump release
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 73acc750..73f32eaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@ else(WIN32)
# 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 @@ if(POLICY CMP0074)
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 @@ check_include_file(net/if.h HAVE_NET_IF_H)
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 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/.devel OR EXISTS ${CMAKE_BINARY_DIR}/.devel)
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 @@ set(NETDISSECT_SOURCE_LIST_C
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 @@ set(NETDISSECT_SOURCE_LIST_C
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 @@ set(NETDISSECT_SOURCE_LIST_C
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 @@ file(GLOB PROJECT_SOURCE_LIST_H
*.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 26fb1ecd..00000000
--- 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 00000000..26f226eb
--- /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 4496faca..b6862ccb 100644
--- a/CREDITS
+++ b/CREDITS
@@ -9,11 +9,15 @@ The current maintainers (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
<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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ Additional people who have contributed patches (in alphabetical order):
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 @@ The original LBL crew:
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
index 0885404a..b3fbf42e 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.h.in - autoconf input
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 @@ tcpdump.c - main program
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 51bcfd9d..63caf89d 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 @@ third_party {
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 4ffca817..ad513ec7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -193,6 +193,7 @@ LIBNETDISSECT_SRC=\
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 @@ LIBNETDISSECT_SRC=\
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 @@ LIBNETDISSECT_SRC=\
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 @@ HDR = \
chdlc.h \
compiler-tests.h \
cpack.h \
+ diag-control.h \
ethertype.h \
extract.h \
fptype.h \
@@ -304,6 +307,7 @@ HDR = \
ospf.h \
oui.h \
pcap-missing.h \
+ pflog.h \
ppp.h \
print.h \
rpc_auth.h \
@@ -329,28 +333,31 @@ CLEANFILES = $(PROG) $(OBJ) $(LIBNETDISSECT_OBJ)
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 @@ EXTRA_DIST = \
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 @@ EXTRA_DIST = \
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 @@ EXTRA_DIST = \
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 @@ clean:
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 @@ TAGS: $(TAGFILES)
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
-
-rc1 rc2 rc3 rc4 rc5:
- @VER=`cat $(srcdir)/VERSION`; \
- sed -i "s/$$VER/$${VER}$@/" VERSION ; \
- make releasetar; \
- git checkout VERSION configure
+ @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
+
+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 @@ depend:
$(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 48445ae4..a1f2ee6c 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 @@ tcpdump compiles and works on at least the following platforms:
* FreeBSD
* Haiku
* HP-UX 11i
+* illumos (OmniOS, OpenIndiana)
* GNU/Linux
* {Mac} OS X / macOS
* NetBSD
@@ -45,7 +46,7 @@ build libpcap.
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 6cda5216..d7ba2fe7 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.99.1
+4.99.3
diff --git a/aclocal.m4 b/aclocal.m4
index ef5efe02..c67e5727 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -211,36 +211,6 @@ AC_DEFUN(AC_LBL_C_INIT,
])
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_DEFUN(AC_LBL_CHECK_COMPILER_OPT,
[
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_DEFUN(AC_LBL_CHECK_COMPILER_OPT,
AC_MSG_RESULT([no])
CFLAGS="$save_CFLAGS"
])
+ ac_c_werror_flag="$save_ac_c_werror_flag"
])
dnl
@@ -590,6 +575,66 @@ AC_DEFUN(AC_LBL_LIBPCAP,
# 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 @@ AC_DEFUN(AC_LBL_LIBPCAP,
# 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 @@ AC_DEFUN(AC_LBL_LIBPCAP,
# 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_DEFUN(AC_LBL_LIBPCAP,
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 @@ AC_DEFUN(AC_LBL_DEVEL,
# 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 58ced4f9..914665c2 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() */
-
- #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 */
-
- #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 */
+ #endif /* HAVE_STRUCT_ETHER_ADDR */
+ #endif /* what declares ether_ntohost() */
+
+ #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 */
#include <pcap.h>
#include <pcap-namedb.h>
@@ -254,7 +251,7 @@ intoa(uint32_t addr)
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 @@ newhnamemem(netdissect_options *ndo)
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 @@ newh6namemem(netdissect_options *ndo)
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 94b41d7b..597f4e1e 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 5d3592ed..db345272 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.
+
+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'
-# LABEL is needed to build the travis fold labels
-LABEL="$BUILD_LIBPCAP.$REMOTE.$CC.$CMAKE.$CRYPTO.$SMB"
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
-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
+if [ "$CIRRUS_CI" = true ]; then
+ run_after_echo sudo \
+ ${LD_LIBRARY_PATH:+LD_LIBRARY_PATH="$LD_LIBRARY_PATH"} \
+ "$TCPDUMP_BIN" -#n -c 10
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 00000000..b5fa66b6
--- /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 c00a39df..3089bad9 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 2408953c..00000000
--- 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 44a994e7..11074655 100644
--- a/cmake/Modules/FindPCAP.cmake
+++ b/cmake/Modules/FindPCAP.cmake
@@ -86,7 +86,7 @@ else(WIN32)
# 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 @@ else(WIN32)
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 852d1517..370d3962 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 4793b719..d4fe177b 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 1972fda8..a419d864 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 @@ timestamp='2021-01-25'
# 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 @@ version="\
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 @@ if test $# != 0; then
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 @@ set_cc_for_build() {
# 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 @@ set_cc_for_build() {
,,) 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 @@ if test -f /.attbin/uname ; then
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 @@ Linux|GNU|GNU/*)
#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 @@ esac
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
#
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
;;
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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# 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 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
}
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 @@ EOF
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 @@ EOF
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 @@ EOF
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 @@ EOF
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 @@ EOF
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 @@ EOF
-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 @@ EOF
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 @@ EOF
#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 @@ EOF
&& 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 @@ EOF
# 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 @@ EOF
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 @@ EOF
/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 @@ EOF
# 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 @@ main ()
#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 @@ main ()
}
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 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
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 @@ and
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 @@ provide the necessary information to handle your system.
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 b56aa743..414bfffe 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 365651fa..439038a6 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 7f7d0b05..fbaa37f2 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 @@ timestamp='2021-03-10'
# 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 @@ Report bugs and patches to <config-patches@gnu.org>."
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 @@ esac
# 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 @@ case $1 in
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 @@ case $basic_machine in
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 @@ case $basic_machine in
;;
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 @@ case $cpu-$vendor in
;;
# 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 @@ case $cpu-$vendor in
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 @@ case $cpu-$vendor in
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 @@ case $cpu-$vendor in
| 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 @@ case $cpu-$vendor in
| 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 @@ case $cpu-$vendor in
| 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 @@ esac
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 @@ case $os in
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 @@ case $os in
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 @@ case $os in
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 @@ case $os in
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 @@ case $os in
;;
# 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 @@ fi
# 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 @@ case $os in
| 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 @@ case $os in
| 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 @@ esac
# 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 736dfefb..20854a47 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 @@ MAKEFLAGS=
# 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 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -757,7 +756,6 @@ datadir='${datarootdir}'
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 @@ do
| -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 @@ fi
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 @@ if test "$ac_init_help" = "long"; then
# 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 @@ Fine tuning of the installation directories:
--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 @@ fi
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 @@ Optional Features:
--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 @@ Optional Packages:
--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 @@ fi
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 @@ $as_echo "$ac_res" >&6; }
} # 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 @@ cat >config.log <<_ACEOF
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 @@ fi
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 @@ else
/* 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 @@ fi
# 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 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+#include <string.h>
/* AF_INET6 available check */
#include <sys/types.h>
#ifdef _WIN32
@@ -5011,6 +5149,54 @@ else
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 @@ fi
# 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 @@ fi
# 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 @@ fi
# 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 @@ if test "x$ac_cv_func_pcap_loop" = xyes; then :
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 @@ else
/* 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 @@ rm -f os-proto.h
#
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ $as_echo "no" >&6; }
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 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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 @@ _ACEOF
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 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
"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 48f4dc95..fddc6ed2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,24 +32,12 @@ AC_LBL_C_INIT(V_CCOPT, V_INCLS)
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 @@ darwin*)
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 @@ if test "x$with_smi" != "xno" ; then
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 @@ main()
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 @@ AC_ARG_WITH(sandbox-capsicum,
# 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_COMPILE_IFELSE(
[
AC_LANG_SOURCE(
[[
+#include <string.h>
/* AF_INET6 available check */
#include <sys/types.h>
#ifdef _WIN32
@@ -397,6 +391,38 @@ AC_CHECK_FUNC(vsnprintf,,
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_CHECK_FUNCS(ether_ntohost, [
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_CONFIG_HEADER(config.h)
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 00000000..3eb6bcaa
--- /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 00000000..b49be0ef
--- /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 f500aeca..b7e81d1c 100644
--- a/doc/README.Win32.md
+++ b/doc/README.Win32.md
@@ -26,48 +26,43 @@ only if there is some other requirement to use it rather than Npcap,
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 @@ libpcap does not provide supported project files for Visual Studio
(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 @@ Debug build.
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 @@ the directory containing the Npcap or WinPcap SDK or use the "Browse..."
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 @@ of the tcpdump source directory.
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 00000000..3bfa550b
--- /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 00000000..afdd8f73
--- /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 a757a39c..8f8acff0 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 2ea7763a..d7d803df 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 @@ EXTRACT_IPV4_TO_HOST_ORDER(const void *p)
* 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 @@ EXTRACT_IPV4_TO_NETWORK_ORDER(const void *p)
#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 3cd75056..7975463b 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 f37e07e2..21f3cc1d 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 d54172ee..58e5ab33 100644
--- a/interface.h
+++ b/interface.h
@@ -57,7 +57,13 @@ extern char *program_name; /* used to generate self-identifying messages */
#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 80857369..927028ff 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 @@ permute_args(int panonopt_start, int panonopt_end, int opt_end,
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 @@ parse_long_options(char * const *nargv, const char *options,
}
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 @@ parse_long_options(char * const *nargv, const char *options,
*/
optarg = nargv[optind++];
}
+DIAG_ON_CAST_QUAL
}
if ((long_options[match].has_arg == required_argument)
&& (optarg == NULL)) {
@@ -543,9 +565,11 @@ start:
++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 2f12cf16..dfff6ee0 100644
--- a/missing/snprintf.c
+++ b/missing/snprintf.c
@@ -411,7 +411,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
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 05930923..00000000
--- 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 f5c11986..00000000
--- 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 656ca099..6496b831 100755
--- a/mkdep
+++ b/mkdep
@@ -103,26 +103,7 @@ done
$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 03cb4bf5..d7e8fc14 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 bbae56ee..c625d34e 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 aa28a368..862c900f 100644
--- a/netdissect-alloc.h
+++ b/netdissect-alloc.h
@@ -26,7 +26,6 @@ typedef struct nd_mem_chunk {
/* 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 ae4a3ce0..9f82200e 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 0523620f..e81c90bd 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 @@ struct in6_addr {
#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 7e46d6aa..000d1ffc 100644
--- a/netdissect.c
+++ b/netdissect.c
@@ -149,7 +149,7 @@ nd_smi_version_string(void)
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 @@ nd_push_buffer(netdissect_options *ndo, u_char *new_buffer,
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 @@ nd_push_snapend(netdissect_options *ndo, const u_char *new_snapend)
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 0e6557fe..5c16be66 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 @@ struct tok {
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 @@ typedef void (*if_printer) IF_PRINTER_ARGS;
* 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 @@ struct netdissect_options {
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 @@ extern void nd_pop_all_packet_info(netdissect_options *);
*/
#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 @@ extern void txtproto_print(netdissect_options *, const u_char *, u_int,
(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 ap1394_if_print IF_PRINTER_ARGS;
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_11_radio_if_print IF_PRINTER_ARGS;
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 prism_if_print IF_PRINTER_ARGS;
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 resp_print(netdissect_options *, const u_char *, u_int);
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 udld_print(netdissect_options *, const u_char *, u_int);
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 a4e90c8c..97e2384f 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 00000000..a629ebab
--- /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 e901752a..dc8953a9 100644
--- a/print-802_11.c
+++ b/print-802_11.c
@@ -1284,9 +1284,18 @@ parse_elements(netdissect_options *ndo,
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 @@ parse_elements(netdissect_options *ndo,
}
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 @@ get_data_src_dst_mac(uint16_t fc, const u_char *p, const uint8_t **srcp,
}
} 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 5687d455..1895be7c 100644
--- a/print-802_15_4.c
+++ b/print-802_15_4.c
@@ -420,7 +420,7 @@ static const char *mac_c_names[] = {
/*
* 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 @@ ieee802_15_4_reverse32(uint32_t x)
/*
* 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 @@ ieee802_15_4_print_header_ie(netdissect_options *ndo,
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 @@ ieee802_15_4_print_header_ie_list(netdissect_options *ndo,
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 @@ ieee802_15_4_print_header_ie_list(netdissect_options *ndo,
if (element_id == 0x7f) {
break;
}
- } while (caplen > 0);
+ } while (caplen != 0);
return len;
}
@@ -1282,7 +1282,7 @@ ieee802_15_4_print_mlme_ie_list(netdissect_options *ndo,
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 @@ ieee802_15_4_print_payload_ie_list(netdissect_options *ndo,
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 @@ ieee802_15_4_std_frames(netdissect_options *ndo,
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 @@ ieee802_15_4_std_frames(netdissect_options *ndo,
}
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 @@ ieee802_15_4_std_frames(netdissect_options *ndo,
}
/* 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 @@ ieee802_15_4_std_frames(netdissect_options *ndo,
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 @@ ieee802_15_4_mp_frame(netdissect_options *ndo,
{
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 @@ ieee802_15_4_mp_frame(netdissect_options *ndo,
/* 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 @@ ieee802_15_4_mp_frame(netdissect_options *ndo,
}
/* 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 @@ ieee802_15_4_mp_frame(netdissect_options *ndo,
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 0d1d5d91..039a1ffd 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
-
-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)" },
+/*
+
+From Bill Fenner:
+
+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 @@ arista_print_date_hms_time(netdissect_options *ndo, uint32_t seconds,
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 @@ arista_ethertype_print(netdissect_options *ndo, const u_char *bp, u_int len _U_)
} else {
return -1;
}
+ ND_PRINT(": ");
return bytesConsumed;
}
diff --git a/print-arp.c b/print-arp.c
index 7d3efe74..9c085029 100644
--- a/print-arp.c
+++ b/print-arp.c
@@ -64,7 +64,7 @@ struct arp_pkthdr {
#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 c9051078..e13fdd91 100644
--- a/print-bgp.c
+++ b/print-bgp.c
@@ -263,12 +263,10 @@ static const struct tok bgp_notify_major_values[] = {
{ 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 @@ bgp_extended_community_print(netdissect_options *ndo,
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 @@ bgp_rt_prefix_print(netdissect_options *ndo,
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 @@ bgp_rt_prefix_print(netdissect_options *ndo,
/*
* 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 @@ bgp_attr_print(netdissect_options *ndo,
/*
* Check if we can read the TLV data.
*/
- ND_TCHECK_LEN(tptr + 3, length);
if (tlen < length)
goto trunc;
@@ -2804,6 +2801,9 @@ bgp_update_print(netdissect_options *ndo,
}
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 @@ bgp_notification_print(netdissect_options *ndo,
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 @@ bgp_notification_print(netdissect_options *ndo,
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 @@ bgp_notification_print(netdissect_options *ndo,
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 @@ bgp_notification_print(netdissect_options *ndo,
}
/* 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 131bc711..46aa2782 100644
--- a/print-bt.c
+++ b/print-bt.c
@@ -52,7 +52,7 @@ bt_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *
{
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 9714c3c0..39234575 100644
--- a/print-dccp.c
+++ b/print-dccp.c
@@ -189,7 +189,7 @@ static const char *dccp_feature_nums[] = {
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 @@ dccp_print(netdissect_options *ndo, const u_char *bp, const u_char *data2,
/* 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 @@ dccp_print(netdissect_options *ndo, const u_char *bp, const u_char *data2,
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 e45dc53f..1ed9acf6 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 b0542ad9..e154165a 100644
--- a/print-eap.c
+++ b/print-eap.c
@@ -77,9 +77,9 @@ static const struct tok eap_code_values[] = {
#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 @@ static const struct tok eap_type_values[] = {
#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 @@ eap_print(netdissect_options *ndo,
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 @@ eap_print(netdissect_options *ndo,
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 @@ eap_print(netdissect_options *ndo,
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 d20e5bef..cc9f44e3 100644
--- a/print-egp.c
+++ b/print-egp.c
@@ -191,7 +191,7 @@ egpnr_print(netdissect_options *ndo,
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 @@ egpnr_print(netdissect_options *ndo,
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 9f541c3c..928b02c8 100644
--- a/print-enc.c
+++ b/print-enc.c
@@ -100,7 +100,6 @@ enc_if_print(netdissect_options *ndo,
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 @@ enc_if_print(netdissect_options *ndo,
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 61c3e13b..2cee0889 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 @@ do_decrypt(netdissect_options *ndo, const char *caller, struct sa_list *sa,
* 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 @@ do_decrypt(netdissect_options *ndo, const char *caller, struct sa_list *sa,
* 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 @@ int esp_decrypt_buffer_by_ikev2_print(netdissect_options *ndo,
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 @@ int esp_decrypt_buffer_by_ikev2_print(netdissect_options *ndo,
* 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 @@ static u_int hex2byte(netdissect_options *ndo, char *hexstring)
/*
* 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 @@ int espprint_decode_hex(netdissect_options *ndo,
* 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 @@ espprint_decode_encalgo(netdissect_options *ndo,
return 1;
}
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
/*
* for the moment, ignore the auth algorithm, just hard code the authenticator
@@ -670,7 +672,7 @@ static void esp_print_decode_onesecret(netdissect_options *ndo, char *line,
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 @@ static void esp_init(netdissect_options *ndo _U_)
#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 @@ void esp_decodesecret_print(netdissect_options *ndo)
#endif
#ifdef HAVE_LIBCRYPTO
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
#endif
void
esp_print(netdissect_options *ndo,
@@ -760,7 +762,7 @@ esp_print(netdissect_options *ndo,
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 @@ esp_print(netdissect_options *ndo,
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 @@ esp_print(netdissect_options *ndo,
* 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 @@ esp_print(netdissect_options *ndo,
* 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 @@ esp_print(netdissect_options *ndo,
* 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 @@ esp_print(netdissect_options *ndo,
/* 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 da95862b..cd623f90 100644
--- a/print-ether.c
+++ b/print-ether.c
@@ -86,7 +86,7 @@ const struct tok ethertype_values[] = {
{ 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 @@ ether_common_print(netdissect_options *ndo, const u_char *p, u_int length,
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 @@ recurse:
}
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 @@ recurse:
*/
length_type = GET_BE_U_2(p);
+ ND_LCHECK_U(caplen, 2);
length -= 2;
caplen -= 2;
p += 2;
@@ -304,7 +306,10 @@ recurse:
* 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 @@ recurse:
ND_DEFAULTPRINT(p, caplen);
}
}
+invalid:
return hdrlen;
}
@@ -581,8 +587,8 @@ ethertype_print(netdissect_options *ndo,
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 b288160d..37c13ec3 100644
--- a/print-hncp.c
+++ b/print-hncp.c
@@ -226,7 +226,7 @@ print_prefix(netdissect_options *ndo, const u_char *prefix, u_int max_length)
((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 77539225..54d215e1 100644
--- a/print-icmp.c
+++ b/print-icmp.c
@@ -86,9 +86,6 @@ struct icmp {
#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 @@ struct icmp {
((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 @@ struct id_rdiscovery {
};
/*
- * 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 @@ struct icmp_ext_t {
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 @@ icmp_print(netdissect_options *ndo, const u_char *bp, u_int plen, const u_char *
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 @@ icmp_print(netdissect_options *ndo, const u_char *bp, u_int plen, const u_char *
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 @@ icmp_print(netdissect_options *ndo, const u_char *bp, u_int plen, const u_char *
}
}
- 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 @@ icmp_print(netdissect_options *ndo, const u_char *bp, u_int plen, const u_char *
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 @@ icmp_print(netdissect_options *ndo, const u_char *bp, u_int plen, const u_char *
}
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 f16c1fa9..47690f5a 100644
--- a/print-icmp6.c
+++ b/print-icmp6.c
@@ -394,18 +394,13 @@ struct icmp6_nodeinfo {
#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 dnsname_print(netdissect_options *ndo, const u_char *, const u_char
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 @@ static const struct tok icmp6_nd_na_flag_values[] = {
{ 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 @@ rpl_dio_print(netdissect_options *ndo,
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 @@ trunc:
}
-
void
icmp6_print(netdissect_options *ndo,
const u_char *bp, u_int length, const u_char *bp2, int fragmented)
@@ -1522,7 +1509,7 @@ icmp6_opt_print(netdissect_options *ndo, const u_char *bp, int resid)
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 @@ icmp6_nodeinfo_print(netdissect_options *ndo, u_int icmp6len, const u_char *bp,
break;
}
-
/* XXX backward compat, icmp-name-lookup-03 */
if (siz == sizeof(*ni6)) {
ND_PRINT(", 03 draft");
@@ -1973,16 +1959,16 @@ icmp6_rrenum_print(netdissect_options *ndo, const u_char *bp, const u_char *ep)
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 0efc78af..23dc1f56 100644
--- a/print-igrp.c
+++ b/print-igrp.c
@@ -44,7 +44,7 @@ struct igrphdr {
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 b111c6de..a0a6fbd1 100644
--- a/print-ip-demux.c
+++ b/print-ip-demux.c
@@ -198,7 +198,7 @@ again:
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 a0df9591..23ba99c9 100644
--- a/print-ip.c
+++ b/print-ip.c
@@ -377,7 +377,10 @@ ip_print(netdissect_options *ndo,
/*
* 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 525a284e..2f1183c0 100644
--- a/print-ip6.c
+++ b/print-ip6.c
@@ -231,11 +231,12 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
} 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
-
- 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);
- }
+ 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);
+ }
/*
* 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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
/* 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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
* 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 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 c16a8673..f8c0ce7c 100644
--- a/print-ipx.c
+++ b/print-ipx.c
@@ -156,6 +156,7 @@ ipx_sap_print(netdissect_options *ndo, const u_char *ipx, u_int length)
int command, i;
command = GET_BE_U_2(ipx);
+ ND_LCHECK_U(length, 2);
ipx += 2;
length -= 2;
@@ -229,6 +230,7 @@ ipx_rip_print(netdissect_options *ndo, const u_char *ipx, u_int length)
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 52bf1fda..c08bbc08 100644
--- a/print-isakmp.c
+++ b/print-isakmp.c
@@ -741,10 +741,10 @@ static const char *etypestr[] = {
? 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 @@ ikev2_auth_print(netdissect_options *ndo, u_char tpay,
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 @@ ikev1_print(netdissect_options *ndo,
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 7c3df49f..2fc0b553 100644
--- a/print-juniper.c
+++ b/print-juniper.c
@@ -30,6 +30,7 @@ __RCSID("NetBSD: print-juniper.c,v 1.3 2007/07/25 06:31:32 dogcow Exp ");
#include <string.h>
+#define ND_LONGJMP_FROM_TCHECK
#include "netdissect.h"
#include "addrtoname.h"
#include "extract.h"
@@ -494,13 +495,13 @@ juniper_ggsn_if_print(netdissect_options *ndo,
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 @@ juniper_ggsn_if_print(netdissect_options *ndo,
}
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 @@ juniper_es_if_print(netdissect_options *ndo,
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 @@ juniper_monitor_if_print(netdissect_options *ndo,
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 @@ juniper_services_if_print(netdissect_options *ndo,
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 @@ juniper_mfr_if_print(netdissect_options *ndo,
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 @@ juniper_atm1_if_print(netdissect_options *ndo,
}
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 @@ juniper_atm2_if_print(netdissect_options *ndo,
}
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 @@ static int
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 @@ juniper_parse_header(netdissect_options *ndo,
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 @@ juniper_parse_header(netdissect_options *ndo,
/* 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 @@ juniper_parse_header(netdissect_options *ndo,
}
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 @@ juniper_parse_header(netdissect_options *ndo,
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 > 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 (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*/
+ if (ndo->ndo_eflag) ND_PRINT(": "); /* print demarc b/w L2/L3*/
- l2info->proto = GET_BE_U_2(p + l2info->cookie_len);
- break;
- }
- ++lp;
+ l2info->proto = GET_BE_U_2(p + l2info->cookie_len);
}
p+=l2info->cookie_len;
@@ -1568,10 +1558,18 @@ juniper_parse_header(netdissect_options *ndo,
}
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 @@ juniper_parse_header(netdissect_options *ndo,
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 @@ juniper_parse_header(netdissect_options *ndo,
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 0012e06e..756fff0f 100644
--- a/print-lisp.c
+++ b/print-lisp.c
@@ -283,8 +283,8 @@ lisp_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ lisp_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 c237e482..b8fc6234 100644
--- a/print-lwres.c
+++ b/print-lwres.c
@@ -191,7 +191,7 @@ extern const struct tok ns_class2str[];
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 @@ lwres_print(netdissect_options *ndo,
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 b8820aa9..43ea1511 100644
--- a/print-mpls.c
+++ b/print-mpls.c
@@ -80,7 +80,7 @@ mpls_print(netdissect_options *ndo, const u_char *bp, u_int length)
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 aae78df2..7ffb1f51 100644
--- a/print-mptcp.c
+++ b/print-mptcp.c
@@ -63,7 +63,7 @@ struct mptcp_option {
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 @@ struct mp_capable {
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 @@ mp_capable_print(netdissect_options *ndo,
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 @@ mp_dss_print(netdissect_options *ndo,
* 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 @@ remove_addr_print(netdissect_options *ndo,
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 @@ static const struct {
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 @@ mptcp_print(netdissect_options *ndo,
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 20b0cfce..af1b274f 100644
--- a/print-nfs.c
+++ b/print-nfs.c
@@ -906,7 +906,7 @@ nfs_printfh(netdissect_options *ndo,
/* 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 c370bda7..e6bebed3 100644
--- a/print-ospf.c
+++ b/print-ospf.c
@@ -59,8 +59,10 @@ static const struct tok ospf_authtype_values[] = {
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 @@ ospf_print_lsa(netdissect_options *ndo,
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 @@ ospf_decode_v2(netdissect_options *ndo,
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 1bdcd681..49167954 100644
--- a/print-ospf6.c
+++ b/print-ospf6.c
@@ -381,7 +381,7 @@ ospf6_print_ls_type(netdissect_options *ndo,
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 @@ ospf6_print_lsa(netdissect_options *ndo,
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 @@ ospf6_decode_v3(netdissect_options *ndo,
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 eb1b1766..1cffbf6b 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 @@ static const struct tok pf_actions[] = {
{ 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 @@ static const struct tok pf_directions[] = {
{ 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 @@ pflog_print(netdissect_options *ndo, const struct pfloghdr *hdr)
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 @@ pflog_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h,
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 @@ pflog_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h,
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 baeb4f00..aba243dd 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -1363,7 +1363,7 @@ ppp_hdlc(netdissect_options *ndo,
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 @@ ppp_hdlc(netdissect_options *ndo,
/*
* 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 @@ ppp_hdlc(netdissect_options *ndo,
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 @@ ppp_print(netdissect_options *ndo,
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 8e1b3038..e8e328bb 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 6f12b90a..a1c09c03 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 @@ static const struct tok ptp_msg_type[] = {
#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 @@ static const char *p_recv_ts = "receiveTimeStamp";
#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 @@ ptp_print_2(netdissect_options *ndo, const u_char *bp, u_int length)
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 @@ ptp_print_2(netdissect_options *ndo, const u_char *bp, u_int length)
/* 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 @@ ptp_print_2(netdissect_options *ndo, const u_char *bp, u_int length)
/* 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_print_2(netdissect_options *ndo, const u_char *bp, u_int length)
* 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(netdissect_options *ndo, const u_char *bp, u_int len)
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 @@ ptp_print(netdissect_options *ndo, const u_char *bp, u_int len)
}
return;
-trunc:
- nd_print_trunc(ndo);
+invalid:
+ nd_print_invalid(ndo);
}
static void
diff --git a/print-radius.c b/print-radius.c
index c87fa900..57d7e507 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 @@ print_attr_netmask6(netdissect_options *ndo,
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 @@ print_attr_strange(netdissect_options *ndo,
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 @@ print_attr_strange(netdissect_options *ndo,
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 @@ print_attr_strange(netdissect_options *ndo,
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 @@ print_attr_strange(netdissect_options *ndo,
break;
}
return;
-
- trunc:
- nd_print_trunc(ndo);
}
static void
diff --git a/print-realtek.c b/print-realtek.c
new file mode 100644
index 00000000..2aae3fe4
--- /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 00a6e257..37a386e3 100644
--- a/print-resp.c
+++ b/print-resp.c
@@ -209,14 +209,12 @@ static int resp_get_length(netdissect_options *, const u_char *, int, const u_ch
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 @@ resp_print(netdissect_options *ndo, const u_char *bp, u_int length)
* 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 9803f75f..00000000
--- 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 b8ee5a83..3f7589ea 100644
--- a/print-rx.c
+++ b/print-rx.c
@@ -499,7 +499,7 @@ static int rx_cache_find(netdissect_options *, const struct rx_header *,
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 @@ trunc:
* 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 51325e28..530219e1 100644
--- a/print-sflow.c
+++ b/print-sflow.c
@@ -65,6 +65,16 @@ struct sflow_datagram_t {
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 @@ sflow_print(netdissect_options *ndo,
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 @@ sflow_print(netdissect_options *ndo,
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);
-
- /* skip Common header */
- tptr += sizeof(struct sflow_datagram_t);
- tlen -= sizeof(struct sflow_datagram_t);
+ 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 */
+ 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 19d2973e..eb8d620a 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 a38fee2e..6aae34ca 100644
--- a/print-snmp.c
+++ b/print-snmp.c
@@ -1217,7 +1217,7 @@ varbind_print(netdissect_options *ndo,
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 @@ varbind_print(netdissect_options *ndo,
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 5030b219..a4d49c47 100644
--- a/print-stp.c
+++ b/print-stp.c
@@ -144,7 +144,7 @@ stp_print_config_bpdu(netdissect_options *ndo, const struct stp_bpdu_ *stp_bpdu,
*
* 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 a2238a86..72964eb8 100644
--- a/print-tcp.c
+++ b/print-tcp.c
@@ -43,6 +43,8 @@ __RCSID("$NetBSD: print-tcp.c,v 1.8 2007/07/24 11:53:48 drochner Exp $");
#include "addrtoname.h"
#include "extract.h"
+#include "diag-control.h"
+
#include "tcp.h"
#include "ip.h"
@@ -698,7 +700,7 @@ tcp_print(netdissect_options *ndo,
*/
ND_PRINT(", length %u", length);
- if (length <= 0)
+ if (length == 0)
return;
/*
@@ -743,8 +745,7 @@ tcp_print(netdissect_options *ndo,
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 @@ print_tcp_fastopen_option(netdissect_options *ndo, const u_char *cp,
}
#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 @@ tcp_verify_signature(netdissect_options *ndo,
else
return (SIGNATURE_INVALID);
}
-USES_APPLE_RST
+DIAG_ON_DEPRECATION
#endif /* HAVE_LIBCRYPTO */
diff --git a/print-vqp.c b/print-vqp.c
index f87898e0..a26cd0e3 100644
--- a/print-vqp.c
+++ b/print-vqp.c
@@ -132,7 +132,7 @@ vqp_print(netdissect_options *ndo, const u_char *pptr, u_int len)
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 @@ vqp_print(netdissect_options *ndo, const u_char *pptr, u_int len)
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 ee97974e..7ac59556 100644
--- a/print-vrrp.c
+++ b/print-vrrp.c
@@ -105,16 +105,18 @@ static const struct tok auth2str[] = {
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 @@ vrrp_print(netdissect_options *ndo,
}
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 @@ vrrp_print(netdissect_options *ndo,
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 00000000..30c254aa
--- /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 e10ecb35..fd74368c 100644
--- a/print-zep.c
+++ b/print-zep.c
@@ -123,6 +123,7 @@ zep_print(netdissect_options *ndo,
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_print(netdissect_options *ndo,
/* 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 @@ zep_print(netdissect_options *ndo,
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 @@ zep_print(netdissect_options *ndo,
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 aa552aaa..11e1e593 100644
--- a/print-zephyr.c
+++ b/print-zephyr.c
@@ -139,27 +139,30 @@ str_to_lower(const char *string)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
PARSE_FIELD_STR(z.version);
if (lose)
- goto invalid;
+ goto invalid;
if (strncmp(z.version, "ZEPH", 4))
return;
@@ -206,11 +209,11 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
}
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
}
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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
!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 @@ zephyr_print(netdissect_options *ndo, const u_char *cp, u_int length)
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 bfc35d9c..9c0ab862 100644
--- a/print.c
+++ b/print.c
@@ -185,7 +185,7 @@ static const struct printer printers[] = {
#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 @@ pretty_print_packet(netdissect_options *ndo, const struct pcap_pkthdr *h,
* 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 ca3aec9f..77d6e81a 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 @@ const struct tok signature_check_values[] = {
* 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 @@ signature_compute_hmac_md5(const uint8_t *text, int text_len, unsigned char *key
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 644c7559..ddf131e9 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 ff32ecce..7f609f7f 100644
--- a/smbutil.c
+++ b/smbutil.c
@@ -770,6 +770,7 @@ smb_fdata1(netdissect_options *ndo,
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 @@ smb_fdata1(netdissect_options *ndo,
}
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 355216d6..92f1e28b 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 @@ tcpdump \- dump traffic on a network
.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 @@ units of KiB (1024 bytes).
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 @@ flag will not be supported if
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 @@ with cryptography enabled.
\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 @@ Sun's NIS server \(em usually it hangs forever translating non-local
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 @@ flag is not given, \fItcpdump\fP searches the system
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 @@ flag will not be supported if
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 @@ operating systems and applications will use the extension if it is
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 @@ Otherwise,
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 @@ As on FDDI networks,
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 @@ flag, in the IP header information, as described above.
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 @@ The packet contained 84 bytes of user data.
.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 @@ Craig Leres and
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 @@ To report a security issue please send an e-mail to \%security@tcpdump.org.
.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 6476a3d4..78d0871a 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -78,7 +78,9 @@ The Regents of the University of California. All rights reserved.\n";
#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 @@ The Regents of the University of California. All rights reserved.\n";
#include "print.h"
+#include "diag-control.h"
+
#include "fptype.h"
#ifndef PATH_MAX
@@ -238,10 +242,6 @@ static int infoprint;
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 @@ droproot(const char *username, const char *chroot_dir)
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 @@ DIAG_OFF_CLANG(assign-enum)
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 @@ main(int argc, char **argv)
/* 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 @@ DIAG_ON_CLANG(assign-enum)
#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 @@ DIAG_ON_CLANG(assign-enum)
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 @@ static void
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 @@ static void verbose_stats_dump(int sig _U_)
}
#endif /* _WIN32 */
-USES_APPLE_DEPRECATED_API
+DIAG_OFF_DEPRECATION
static void
print_version(FILE *f)
{
@@ -3165,7 +3199,7 @@ print_version(FILE *f)
# 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 31e1a99c..fcbcedb0 100644
--- a/tests/TESTLIST
+++ b/tests/TESTLIST
@@ -24,6 +24,7 @@ bgp_vpn_attrset bgp_vpn_attrset.pcap bgp_vpn_attrset.out -v
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-evpn bgp-evpn.pcap bgp-evpn.out -v
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 @@ bcm-li-v bcm-li.pcap bcm-li-v.out -v
# 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 @@ dsa-e dsa.pcap dsa-e.out -e
# 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 mpls-over-udp.pcap mpls-over-udp.out
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 @@ qinqv QinQpacket.pcap QinQpacketv.out -e -v
# 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 icmpv6.pcap icmpv6.out -vv
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 @@ geonet-calm-fast geonet_and_calm_fast.pcap geonet_and_calm_fast.out -vv
# 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-ext-header ipv6-srh-ext-header.pcap ipv6-srh-ext-header.out -v
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_cap_tlv isis_cap_tlv.pcap isis_cap_tlv.out -v
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 @@ hdlc3 HDLC.pcap hdlc3.out
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_notify lisp_eid_notify.pcap lisp_eid_notify.out -v
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 @@ bfd-raw-auth-sha1-v bfd-raw-auth-sha1.pcap bfd-raw-auth-sha1-v.out -v
# 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-3 icmp-cksum-oobr-3.pcapng icmp-cksum-oobr-3.out -vvv -e
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 @@ juniper_es_oobr juniper_es_oobr.pcap juniper_es_oobr.out -vvv -e
# 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 @@ nfs-cannot-pad-32-bit nfs-cannot-pad-32-bit.pcap nfs-cannot-pad-32-bit.out
#
# 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 @@ arista-ether-ev arista_ether.pcap arista_ether-ev.out -ev
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 @@ unsupported-link-type-dbus unsupported-link-type-dbus.pcap unsupported-link-type
# 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 a1319484..1843bc58 100755
--- a/tests/TESTrun
+++ b/tests/TESTrun
@@ -21,7 +21,8 @@ if (!($TCPDUMP = $ENV{TCPDUMP_BIN})) {
#
# 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($newdir);
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 @@ sub runtest {
$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 @@ sub runtest {
$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 @@ sub loadconfighash {
}
$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 62c3a958..6530bacd 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 892155f3..18e07319 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 5efd4efb..f386ceaa 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 00000000..e4a9e329
--- /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 00000000..5aec56fe
--- /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 d9549d67..1b15517f 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 19d6e4fe..5ac2ca0a 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 00000000..709a467d
--- /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 00000000..dff19cf2
--- /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 00000000..b9616d8c
--- /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 00000000..c607d12a
--- /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 f54b06d4..f8551684 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 ce4c2953..e65ebf05 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 6c4f3cb3..5dfec023 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 51d42f90..321b73d9 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 63c61465..f714b35d 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 00000000..a80539f8
--- /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 00000000..6ce0eab5
--- /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 00000000..99959743
--- /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 1bb775a5..151196ce 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 20df831f..1d0b218d 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 00000000..d6ca5059
--- /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 00000000..d82bdd19
--- /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 00000000..492f3812
--- /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
index 33e973b5..33e973b5 100644
--- a/tests/heapoverflow-EXTRACT_16BITS.out
+++ b/tests/heapoverflow-atalk_2.out
diff --git a/tests/heapoverflow-EXTRACT_16BITS.pcap b/tests/heapoverflow-atalk_2.pcap
index bbd59331..bbd59331 100644
--- a/tests/heapoverflow-EXTRACT_16BITS.pcap
+++ b/tests/heapoverflow-atalk_2.pcap
Binary files differ
diff --git a/tests/hoobr_juniper3.out b/tests/hoobr_juniper3.out
index c47a8afe..15a8e3fa 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 94cdc77c..4e2b1c97 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 bd271da0..aad76ac8 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 20377667..309afdbd 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 7c18facf..7c263c26 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 00000000..35d3d4e9
--- /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 00000000..03a4522e
--- /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 00000000..b2e0b6ef
--- /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 00000000..f1c18baf
--- /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 00000000..19615d57
--- /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 00000000..c5ccb838
--- /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 00000000..3a7fea93
--- /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 732d5709..f3e4641c 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 6f2f6757..5b55bb7d 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 41d8d5eb..6b9d787a 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 92800c96..e6ff801d 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 41127511..cd9da304 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 ce7eac61..72183fc5 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 339ba61e..fe1bebcf 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 00000000..ec36f090
--- /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 00000000..6323a20e
--- /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 a63189dd..60d3a00c 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 595aa53e..684a7dcb 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 d5258980..6bb5d6f4 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 437d277f..d6f09ba5 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 253cfc6f..30128c7b 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 d44577d7..2cfa562b 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 801c9ba8..d47bbed0 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 2467041b..0e09efd1 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 1e28a655..a9b4d99e 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 d3e1fa3c..6f793f42 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 e0e43f82..f7fb230f 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 e18bace0..f44610eb 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 00000000..c4e9ff69
--- /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 00000000..2f0eca1a
--- /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 c8370f94..00000000
--- 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 1036edb5..00000000
--- 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 9dd0429d..00000000
--- 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 c8370f94..00000000
--- 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 4171b8ee..00000000
--- 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 4217d1e7..00000000
--- 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 c8370f94..00000000
--- 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 42138492..00000000
--- 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 7bbb7ab0..00000000
--- 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 c8370f94..00000000
--- 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 48456521..00000000
--- 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 77595f4b..00000000
--- 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 00000000..a08199d6
--- /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 8aac3a08..8b3adb35 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 00000000..eeb760b6
--- /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 00000000..3d2386ee
--- /dev/null
+++ b/tests/ptp_corrections.pcap
Binary files differ
diff --git a/tests/ptp_ethernet.out b/tests/ptp_ethernet.out
index 0ff3a613..9ae75419 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 00000000..f6462e4e
--- /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 00000000..d44d3bd7
--- /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 baee3fe8..9c6dbab2 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 b9de261c..9cbd0025 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 01825153..358599e1 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 9531ab7c..3ac11158 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 b2f02a72..9766e5d3 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 6ee18cae..ad2c7eca 100755
--- a/update-test.sh
+++ b/update-test.sh
@@ -7,13 +7,15 @@ TZ=GMT0; export TZ
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 6f8f61d1..8b206497 100644
--- a/util-print.c
+++ b/util-print.c
@@ -458,7 +458,7 @@ print_unknown_data(netdissect_options *ndo, const u_char *cp,
/*
* 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 @@ uint2tokary_internal(const struct uint_tokary dict[], const size_t size,
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 @@ txtproto_print(netdissect_options *ndo, const u_char *pptr, u_int len,
(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?