From: Guy Harris Date: Thu, 28 May 2020 00:01:23 +0000 (-0700) Subject: Merge branch 'master' into macsec X-Git-Tag: tcpdump-4.99-bp~359^2~15 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/7885cfa165458a05ef818c34ee03affc79f03725?hp=-c Merge branch 'master' into macsec --- 7885cfa165458a05ef818c34ee03affc79f03725 diff --combined Makefile.in index 4bec2139,8ee0027f..85854af8 --- a/Makefile.in +++ b/Makefile.in @@@ -32,6 -32,7 +32,7 @@@ mandir = @mandir # VPATH srcdir = @srcdir@ + top_srcdir = @top_srcdir@ VPATH = @srcdir@ # @@@ -70,7 -71,7 +71,7 @@@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG @rm -f $@ $(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c - CSRC = setsignal.c tcpdump.c + CSRC = fptype.c tcpdump.c LIBNETDISSECT_SRC=\ addrtoname.c \ @@@ -80,12 -81,14 +81,14 @@@ checksum.c \ cpack.c \ gmpls.c \ - gmt2local.c \ in_cksum.c \ ipproto.c \ l2vpn.c \ machdep.c \ + netdissect.c \ + netdissect-alloc.c \ nlpid.c \ + ntp.c \ oui.c \ parsenfsfh.c \ print.c \ @@@ -97,15 -100,18 +100,18 @@@ 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 \ @@@ -118,6 -124,7 +124,7 @@@ print-decnet.c \ print-dhcp6.c \ print-domain.c \ + print-dsa.c \ print-dtp.c \ print-dvmrp.c \ print-eap.c \ @@@ -141,12 -148,14 +148,14 @@@ print-icmp6.c \ print-igmp.c \ print-igrp.c \ + print-ip-demux.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-isakmp.c \ print-isoclns.c \ @@@ -164,8 -173,6 +173,7 @@@ print-lwapp.c \ print-lwres.c \ print-m3ua.c \ + print-macsec.c \ - print-medsa.c \ print-mobile.c \ print-mobility.c \ print-mpcp.c \ @@@ -191,6 -198,7 +199,7 @@@ print-ppp.c \ print-pppoe.c \ print-pptp.c \ + print-ptp.c \ print-radius.c \ print-raw.c \ print-resp.c \ @@@ -210,6 -218,8 +219,8 @@@ print-slow.c \ print-smtp.c \ print-snmp.c \ + print-someip.c \ + print-ssh.c \ print-stp.c \ print-sunatm.c \ print-sunrpc.c \ @@@ -223,34 -233,35 +234,35 @@@ 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-vxlan.c \ print-wb.c \ + print-zep.c \ print-zephyr.c \ print-zeromq.c \ - netdissect.c \ signature.c \ strtoaddr.c \ util-print.c LOCALSRC = @LOCALSRC@ - GENSRC = version.c LIBOBJS = @LIBOBJS@ LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o) ${LOCALSRC:.c=.o} ${LIBOBJS} LIBNETDISSECT=libnetdissect.a - SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC) + SRC = $(CSRC) $(GENSRC) $(LOCALSRC) # We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot # hack the extra indirection - OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) $(LIBNETDISSECT_OBJ) + OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) HDR = \ addrtoname.h \ addrtostr.h \ @@@ -260,13 -271,14 +272,14 @@@ ascii_strcasecmp.h \ atm.h \ chdlc.h \ + compiler-tests.h \ cpack.h \ - ether.h \ ethertype.h \ extract.h \ - getopt_long.h \ + fptype.h \ + funcattrs.h \ + getservent.h \ gmpls.h \ - gmt2local.h \ interface.h \ ip.h \ ip6.h \ @@@ -278,9 -290,13 +291,13 @@@ mpls.h \ nameser.h \ netdissect.h \ + netdissect-alloc.h \ + netdissect-ctype.h \ + netdissect-stdinc.h \ nfs.h \ nfsfh.h \ nlpid.h \ + ntp.h \ openflow.h \ ospf.h \ oui.h \ @@@ -289,16 -305,15 +306,15 @@@ print.h \ rpc_auth.h \ rpc_msg.h \ - rpl.h \ - setsignal.h \ signature.h \ slcompress.h \ smb.h \ + status-exit-codes.h \ strtoaddr.h \ tcp.h \ - netdissect-stdinc.h \ timeval-operations.h \ - udp.h + udp.h \ + varattrs.h TAGHDR = \ /usr/include/arpa/tftp.h \ @@@ -310,14 -325,16 +326,16 @@@ /usr/include/netinet/udp.h \ /usr/include/protocols/routed.h - TAGFILES = $(SRC) $(HDR) $(TAGHDR) + TAGFILES = $(SRC) $(HDR) $(TAGHDR) $(LIBNETDISSECT_SRC) \ + print-pflog.c print-smb.c smbutil.c - CLEANFILES = $(PROG) $(OBJ) $(GENSRC) + CLEANFILES = $(PROG) $(OBJ) $(GENSRC) $(LIBNETDISSECT_OBJ) EXTRA_DIST = \ CHANGES \ CONTRIBUTING \ CREDITS \ + CMakeLists.txt \ INSTALL.txt \ LICENSE \ Makefile.in \ @@@ -330,11 -347,17 +348,17 @@@ 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 \ config.guess \ config.h.in \ config.sub \ configure \ - configure.in \ + configure.ac \ + doc/README.Win32.md \ install-sh \ lbl/os-osf4.h \ lbl/os-solaris2.h \ @@@ -343,36 -366,37 +367,37 @@@ makemib \ missing/dlnames.c \ missing/datalinks.c \ + missing/getopt_long.h \ missing/getopt_long.c \ + missing/getservent.c \ + missing/pcap_dump_ftell.c \ missing/snprintf.c \ missing/strdup.c \ missing/strlcat.c \ missing/strlcpy.c \ missing/strsep.c \ + missing/win_ether_ntohost.c \ + missing/win_ether_ntohost.h \ mkdep \ packetdat.awk \ - pcap_dump_ftell.c \ print-pflog.c \ print-smb.c \ send-ack.awk \ smbutil.c \ stime.awk \ tcpdump.1.in \ - vfprintf.c \ - win32/prj/GNUmakefile \ win32/prj/WinDump.dsp \ win32/prj/WinDump.dsw \ win32/prj/WinDump.sln \ - win32/prj/WinDump.vcproj \ - win32/src/ether_ntohost.c + win32/prj/WinDump.vcproj - TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print` + TEST_DIST= `git ls-files tests | grep -v 'tests/\..*'` - all: $(PROG) $(LIBNETDISSECT) + all: $(PROG) - $(PROG): $(OBJ) @V_PCAPDEP@ + $(PROG): $(OBJ) @V_PCAPDEP@ $(LIBNETDISSECT) @rm -f $@ - $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) + $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBNETDISSECT) $(LIBS) $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ) @rm -f $@ @@@ -383,6 -407,8 +408,8 @@@ datalinks.o: $(srcdir)/missing/datalink $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c dlnames.o: $(srcdir)/missing/dlnames.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c + getservent.o: $(srcdir)/missing/getservent.c + $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getservent.c getopt_long.o: $(srcdir)/missing/getopt_long.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getopt_long.c snprintf.o: $(srcdir)/missing/snprintf.c @@@ -395,19 -421,8 +422,8 @@@ strlcpy.o: $(srcdir)/missing/strlcpy. $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c strsep.o: $(srcdir)/missing/strsep.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strsep.c - - version.o: version.c - $(CC) $(FULL_CFLAGS) -c version.c - - version.c: $(srcdir)/VERSION - @rm -f $@ - if grep GIT ${srcdir}/VERSION >/dev/null; then \ - read ver <${srcdir}/VERSION; \ - echo $$ver | tr -d '\012'; \ - date +_%Y_%m_%d; \ - else \ - cat ${srcdir}/VERSION; \ - fi | sed -e 's/.*/const char version[] = "&";/' > $@ + pcap_dump_ftell.o: $(srcdir)/missing/pcap_dump_ftell.c + $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/pcap_dump_ftell.c install: all [ -d $(DESTDIR)$(sbindir) ] || \ @@@ -423,7 -438,7 +439,7 @@@ uninstall rm -f $(DESTDIR)$(mandir)/man1/$(PROG).1 lint: $(GENSRC) - lint -hbxn $(SRC) | \ + lint -hbxn $(SRC) $(LIBNETDISSECT_SRC) | \ grep -v 'struct/union .* never defined' | \ grep -v 'possible pointer alignment problem' @@@ -438,7 -453,7 +454,7 @@@ distclean rm -rf autom4te.cache tests/DIFF tests/NEW check: tcpdump - (cd tests && ./TESTrun.sh) + $(srcdir)/tests/TESTrun extags: $(TAGFILES) ctags $(TAGFILES) @@@ -450,7 -465,7 +466,7 @@@ TAGS: $(TAGFILES etags $(TAGFILES) releasetar: - @cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \ + @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; \ @@@ -460,4 -475,4 +476,4 @@@ testlist echo $(TEST_DIST) depend: $(GENSRC) - $(MKDEP) -c $(CC) -m $(DEPENDENCY_CFLAG) $(DEFS) $(INCLS) $(SRC) + $(MKDEP) -c "$(CC)" -m "$(DEPENDENCY_CFLAG)" -s "$(srcdir)" $(DEFS) $(INCLS) $(SRC) $(LIBNETDISSECT_SRC) diff --combined ethertype.h index 8694ffdd,33dcea9c..a757a39c --- a/ethertype.h +++ b/ethertype.h @@@ -19,6 -19,13 +19,13 @@@ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ + /* + * Maximum length of the length field in an Ethernet header; any value + * greater than this is not a length value, so it's either an Ethernet + * type or an invalid value. + */ + #define MAX_ETHERNET_LENGTH_VAL 1500 + /* * Ethernet types. * @@@ -106,8 -113,8 +113,8 @@@ #endif /* see: - http://en.wikipedia.org/wiki/IEEE_802.1Q - and http://en.wikipedia.org/wiki/QinQ + https://en.wikipedia.org/wiki/IEEE_802.1Q + and https://en.wikipedia.org/wiki/QinQ */ #ifndef ETHERTYPE_8021Q9100 #define ETHERTYPE_8021Q9100 0x9100 @@@ -118,9 -125,6 +125,9 @@@ #ifndef ETHERTYPE_8021QinQ #define ETHERTYPE_8021QinQ 0x88a8 #endif +#ifndef ETHERTYPE_MACSEC +#define ETHERTYPE_MACSEC 0x88e5 +#endif #ifndef ETHERTYPE_IPX #define ETHERTYPE_IPX 0x8137 #endif @@@ -175,6 -179,9 +182,9 @@@ #ifndef ETHERTYPE_AOE #define ETHERTYPE_AOE 0x88a2 #endif + #ifndef ETHERTYPE_PTP + #define ETHERTYPE_PTP 0x88f7 + #endif #ifndef ETHERTYPE_LOOPBACK #define ETHERTYPE_LOOPBACK 0x9000 #endif @@@ -202,8 -209,8 +212,8 @@@ #ifndef ETHERTYPE_GEONET #define ETHERTYPE_GEONET 0x8947 /* ETSI GeoNetworking (Official IEEE registration from Jan 2013) */ #endif - #ifndef ETHERTYPE_MEDSA - #define ETHERTYPE_MEDSA 0xdada /* Marvel Distributed Switch Architecture */ + #ifndef ETHERTYPE_ARISTA + #define ETHERTYPE_ARISTA 0xd28b /* Arista Networks vendor specific EtherType */ #endif extern const struct tok ethertype_values[]; diff --combined netdissect.h index ad4182a3,1e84d5ff..88055b4a --- a/netdissect.h +++ b/netdissect.h @@@ -29,10 -29,8 +29,8 @@@ #include "os-proto.h" #endif #include - - #ifndef HAVE___ATTRIBUTE__ - #define __attribute__(x) - #endif + #include + #include "status-exit-codes.h" /* * Data types corresponding to multi-byte integral values within data @@@ -41,7 -39,11 +39,11 @@@ * use the EXTRACT_ macros to extract them (which you should be doing * *anyway*, so as not to assume a particular byte order or alignment * in your code). + * + * We even want EXTRACT_U_1 used for 8-bit integral values, so we + * define nd_uint8_t and nd_int8_t as arrays as well. */ + typedef unsigned char nd_uint8_t[1]; typedef unsigned char nd_uint16_t[2]; typedef unsigned char nd_uint24_t[3]; typedef unsigned char nd_uint32_t[4]; @@@ -50,26 -52,65 +52,65 @@@ typedef unsigned char nd_uint48_t[6] typedef unsigned char nd_uint56_t[7]; typedef unsigned char nd_uint64_t[8]; + typedef signed char nd_int8_t[1]; + /* - * Use this for IPv4 addresses. It's defined as an array of octets, so - * that it's not aligned on its "natural" boundary, and it's defined as - * a structure in the hopes that this makes it harder to naively use - * EXTRACT_32BITS() to extract the value - in many cases you just want - * to use UNALIGNED_MEMCPY() to copy its value, so that it remains in - * network byte order. + * "unsigned char" so that sign extension isn't done on the + * individual bytes while they're being assembled. */ - typedef struct { - unsigned char bytes[4]; - } nd_ipv4; + typedef unsigned char nd_int32_t[4]; + typedef unsigned char nd_int64_t[8]; /* - * Data types corresponding to single-byte integral values, for - * completeness. + * Use this for IPv4 addresses and netmasks. + * + * It's defined as an array of octets, so that it's not guaranteed to + * be aligned on its "natural" boundary (in some packet formats, it + * *isn't* so aligned). We have separate EXTRACT_ calls for them; + * sometimes you want the host-byte-order value, other times you want + * the network-byte-order value. + * + * Don't use EXTRACT_BE_U_4() on them, use EXTRACT_IPV4_TO_HOST_ORDER() + * if you want them in host byte order and EXTRACT_IPV4_TO_NETWORK_ORDER() + * if you want them in network byte order (which you want with system APIs + * that expect network-order IPv4 addresses, such as inet_ntop()). + * + * If, on your little-endian machine (e.g., an "IBM-compatible PC", no matter + * what the OS, or an Intel Mac, no matter what the OS), you get the wrong + * answer, and you've used EXTRACT_BE_U_4(), do *N*O*T* "fix" this by using + * EXTRACT_LE_U_4(), fix it by using EXTRACT_IPV4_TO_NETWORK_ORDER(), + * otherwise you're breaking the result on big-endian machines (e.g., + * most PowerPC/Power ISA machines, System/390 and z/Architecture, SPARC, + * etc.). + * + * Yes, people do this; that's why Wireshark has tvb_get_ipv4(), to extract + * an IPv4 address from a packet data buffer; it was introduced in reaction + * to somebody who *had* done that. */ - typedef unsigned char nd_uint8_t; - typedef signed char nd_int8_t; + typedef unsigned char nd_ipv4[4]; - /* snprintf et al */ + /* + * Use this for IPv6 addresses and netmasks. + */ + typedef unsigned char nd_ipv6[16]; + + /* + * Use this for MAC addresses. + */ + #define MAC_ADDR_LEN 6 /* length of MAC addresses */ + typedef unsigned char nd_mac_addr[MAC_ADDR_LEN]; + + /* + * Use this for blobs of bytes; make them arrays of nd_byte. + */ + typedef unsigned char nd_byte; + + /* + * Round up x to a multiple of y; y must be a power of 2. + */ + #ifndef roundup2 + #define roundup2(x, y) (((x)+((u_int)((y)-1)))&(~((u_int)((y)-1)))) + #endif #include #include @@@ -77,26 -118,6 +118,6 @@@ #include "ip.h" /* struct ip for nextproto4_cksum() */ #include "ip6.h" /* struct ip6 for nextproto6_cksum() */ - extern int32_t thiszone; /* seconds offset from gmt to local time */ - /* invalid string to print '(invalid)' for malformed or corrupted packets */ - extern const char istr[]; - - #if !defined(HAVE_SNPRINTF) - int snprintf (char *str, size_t sz, const char *format, ...) - #ifdef __ATTRIBUTE___FORMAT_OK - __attribute__((format (printf, 3, 4))) - #endif /* __ATTRIBUTE___FORMAT_OK */ - ; - #endif /* !defined(HAVE_SNPRINTF) */ - - #if !defined(HAVE_VSNPRINTF) - int vsnprintf (char *str, size_t sz, const char *format, va_list ap) - #ifdef __ATTRIBUTE___FORMAT_OK - __attribute__((format (printf, 3, 0))) - #endif /* __ATTRIBUTE___FORMAT_OK */ - ; - #endif /* !defined(HAVE_VSNPRINTF) */ - #ifndef HAVE_STRLCAT extern size_t strlcat (char *, const char *, size_t); #endif @@@ -143,13 -164,47 +164,47 @@@ typedef struct netdissect_options netdi #define IF_PRINTER_ARGS (netdissect_options *, const struct pcap_pkthdr *, const u_char *) - typedef u_int (*if_printer) IF_PRINTER_ARGS; + typedef u_int (*uint_if_printer) IF_PRINTER_ARGS; + typedef void (*void_if_printer) IF_PRINTER_ARGS; + + /* pointer to the uint_if_printer or the void_if_printer function */ + typedef union { + uint_if_printer uint_printer; + void_if_printer void_printer; + void* printer; /* generic when testing if NULL or not */ + } if_printer_t; + + /* + * In case the data in a buffer needs to be processed by being decrypted, + * decompressed, etc. before it's dissected, we can't process it in place, + * we have to allocate a new buffer for the processed data. + * + * We keep a stack of those buffers; when we allocate a new buffer, we + * push the current one onto a stack, and when we're done with the new + * 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 + * buffer on the stack. + * + * In other cases, we temporarily adjust the snapshot end to reflect a + * packet-length field in the packet data and, when finished dissecting + * that part of the packet, restore the old snapshot end. We keep that + * on the stack with null buffer pointer, meaning there's nothing to + * free. + */ + struct netdissect_saved_packet_info { + u_char *ndspi_buffer; /* pointer to allocated buffer data */ + const u_char *ndspi_packetp; /* saved beginning of data */ + const u_char *ndspi_snapend; /* saved end of data */ + struct netdissect_saved_packet_info *ndspi_prev; /* previous buffer on the stack */ + }; struct netdissect_options { int ndo_bflag; /* print 4 byte ASes in ASDOT notation */ int ndo_eflag; /* print ethernet header */ int ndo_fflag; /* don't translate "foreign" IP address */ - int ndo_Kflag; /* don't check TCP checksums */ + int ndo_Kflag; /* don't check IP, TCP or UDP checksums */ int ndo_nflag; /* leave addresses as numbers */ int ndo_Nflag; /* remove domains from printed host names */ int ndo_qflag; /* quick (shorter) output */ @@@ -158,11 -213,14 +213,14 @@@ int ndo_uflag; /* Print undecoded NFS handles */ int ndo_vflag; /* verbosity level */ int ndo_xflag; /* print packet in hex */ - int ndo_Xflag; /* print packet in hex/ascii */ - int ndo_Aflag; /* print packet only in ascii observing TAB, + int ndo_Xflag; /* print packet in hex/ASCII */ + int ndo_Aflag; /* print packet only in ASCII observing TAB, * LF, CR and SPACE as graphical chars */ int ndo_Hflag; /* dissect 802.11s draft mesh standard */ + const char *ndo_protocol; /* protocol */ + jmp_buf ndo_truncated; /* jmp_buf for setjmp()/longjmp() */ + void *ndo_last_mem_p; /* pointer to the last allocated memory chunk */ int ndo_packet_number; /* print a packet number in the beginning of line */ int ndo_suppress_default_print; /* don't use default_print() for unknown packet types */ int ndo_tstamp_precision; /* requested time stamp precision */ @@@ -177,44 -235,45 +235,45 @@@ int ndo_packettype; /* as specified by -T */ int ndo_snaplen; + int ndo_ll_header_length; /* link-layer header length */ /*global pointers to beginning and end of current packet (during printing) */ const u_char *ndo_packetp; const u_char *ndo_snapend; - /* pointer to the if_printer function */ - if_printer ndo_if_printer; + /* stack of saved packet boundary and buffer information */ + struct netdissect_saved_packet_info *ndo_packet_info_stack; + + /* pointer to the uint_if_printer or the void_if_printer function */ + if_printer_t ndo_if_printer; + int ndo_void_printer; /* void_if_printer ? (FALSE/TRUE) */ /* pointer to void function to output stuff */ void (*ndo_default_print)(netdissect_options *, - register const u_char *bp, register u_int length); + const u_char *bp, u_int length); /* pointer to function to do regular output */ int (*ndo_printf)(netdissect_options *, const char *fmt, ...) - #ifdef __ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS - __attribute__ ((format (printf, 2, 3))) - #endif - ; + PRINTFLIKE_FUNCPTR(2, 3); /* pointer to function to output errors */ - void (*ndo_error)(netdissect_options *, - const char *fmt, ...) - #ifdef __ATTRIBUTE___NORETURN_OK_FOR_FUNCTION_POINTERS - __attribute__ ((noreturn)) - #endif /* __ATTRIBUTE___NORETURN_OK_FOR_FUNCTION_POINTERS */ - #ifdef __ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS - __attribute__ ((format (printf, 2, 3))) - #endif /* __ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS */ - ; + void NORETURN_FUNCPTR (*ndo_error)(netdissect_options *, + status_exit_codes_t status, + const char *fmt, ...) + PRINTFLIKE_FUNCPTR(3, 4); /* pointer to function to output warnings */ void (*ndo_warning)(netdissect_options *, const char *fmt, ...) - #ifdef __ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS - __attribute__ ((format (printf, 2, 3))) - #endif - ; + 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 void nd_pop_packet_info(netdissect_options *); + extern void nd_pop_all_packet_info(netdissect_options *); + #define PT_VAT 1 /* Visual Audio Tool */ #define PT_WB 2 /* distributed White Board */ #define PT_RPC 3 /* Remote Procedure Call */ @@@ -232,6 -291,9 +291,9 @@@ #define PT_PGM_ZMTP1 15 /* ZMTP/1.0 inside PGM (native or UDP-encapsulated) */ #define PT_LMP 16 /* Link Management Protocol */ #define PT_RESP 17 /* RESP */ + #define PT_PTP 18 /* PTP */ + #define PT_SOMEIP 19 /* Autosar SOME/IP Protocol */ + #define PT_DOMAIN 20 /* Domain Name System (DNS) */ #ifndef min #define min(a,b) ((a)>(b)?(b):(a)) @@@ -253,7 -315,7 +315,7 @@@ * 1) big enough for maximum-size Linux loopback packets (65549) * and some USB packets captured with USBPcap: * - * http://desowin.org/usbpcap/ + * https://desowin.org/usbpcap/ * * (> 131072, < 262144) * @@@ -264,27 -326,16 +326,16 @@@ * savefile header to control the size of the buffer they allocate, * so a size of, say, 2^31-1 might not work well. * - * XXX - does it need to be bigger still? + * XXX - does it need to be bigger still? Note that, for versions of + * libpcap with pcap_create()/pcap_activate(), if no -s flag is specified + * or -s 0 is specified, we won't set the snapshot length at all, and will + * let libpcap choose a snapshot length; newer versions may choose a bigger + * value than 262144 for D-Bus, for example. */ #define MAXIMUM_SNAPLEN 262144 /* - * The default snapshot length is the maximum. - */ - #define DEFAULT_SNAPLEN MAXIMUM_SNAPLEN - - #define ESRC(ep) ((ep)->ether_shost) - #define EDST(ep) ((ep)->ether_dhost) - - #ifndef NTOHL - #define NTOHL(x) (x) = ntohl(x) - #define NTOHS(x) (x) = ntohs(x) - #define HTONL(x) (x) = htonl(x) - #define HTONS(x) (x) = htons(x) - #endif - - /* - * True if "l" bytes of "var" were captured. + * True if "l" bytes from "p" were captured. * * The "ndo->ndo_snapend - (l) <= ndo->ndo_snapend" checks to make sure * "l" isn't so large that "ndo->ndo_snapend - (l)" underflows. @@@ -300,7 -351,7 +351,7 @@@ * you subtract a positive integer from a pointer, the result is * guaranteed to be less than the original pointer value). See * - * http://www.kb.cert.org/vuls/id/162289 + * https://www.kb.cert.org/vuls/id/162289 */ /* @@@ -310,21 -361,32 +361,32 @@@ */ #define IS_NOT_NEGATIVE(x) (((x) > 0) || ((x) == 0)) - #define ND_TTEST2(var, l) \ + #define ND_TTEST_LEN(p, l) \ (IS_NOT_NEGATIVE(l) && \ ((uintptr_t)ndo->ndo_snapend - (l) <= (uintptr_t)ndo->ndo_snapend && \ - (uintptr_t)&(var) <= (uintptr_t)ndo->ndo_snapend - (l))) + (uintptr_t)(p) <= (uintptr_t)ndo->ndo_snapend - (l))) + + /* True if "*(p)" was captured */ + #define ND_TTEST_SIZE(p) ND_TTEST_LEN(p, sizeof(*(p))) + + /* Bail out if "l" bytes from "p" were not captured */ + #define ND_TCHECK_LEN(p, l) if (!ND_TTEST_LEN(p, l)) goto trunc - /* True if "var" was captured */ - #define ND_TTEST(var) ND_TTEST2(var, sizeof(var)) + /* Bail out if "*(p)" was not captured */ + #define ND_TCHECK_SIZE(p) ND_TCHECK_LEN(p, sizeof(*(p))) - /* Bail if "l" bytes of "var" were not captured */ - #define ND_TCHECK2(var, l) if (!ND_TTEST2(var, l)) goto trunc + /* + * Number of bytes between two pointers. + */ + #define ND_BYTES_BETWEEN(p1, p2) ((u_int)(((const uint8_t *)(p1)) - (const uint8_t *)(p2))) - /* Bail if "var" was not captured */ - #define ND_TCHECK(var) ND_TCHECK2(var, sizeof(var)) + /* + * Number of bytes remaining in the captured data, starting at the + * byte pointed to by the argument. + */ + #define ND_BYTES_AVAILABLE_AFTER(p) ND_BYTES_BETWEEN(ndo->ndo_snapend, (p)) - #define ND_PRINT(STUFF) (*ndo->ndo_printf)STUFF + #define ND_PRINT(...) (ndo->ndo_printf)(ndo, __VA_ARGS__) #define ND_DEFAULTPRINT(ap, length) (*ndo->ndo_default_print)(ndo, ap, length) extern void ts_print(netdissect_options *, const struct timeval *); @@@ -332,10 -394,11 +394,11 @@@ extern void signed_relts_print(netdisse extern void unsigned_relts_print(netdissect_options *, uint32_t); extern void fn_print_char(netdissect_options *, u_char); - extern int fn_print(netdissect_options *, const u_char *, const u_char *); - extern u_int fn_printztn(netdissect_options *ndo, const u_char *, u_int, const u_char *); - extern int fn_printn(netdissect_options *, const u_char *, u_int, const u_char *); - extern int fn_printzp(netdissect_options *, const u_char *, u_int, const u_char *); + extern void fn_print_str(netdissect_options *, const u_char *); + extern int nd_print(netdissect_options *, const u_char *, const u_char *); + extern u_int nd_printztn(netdissect_options *, const u_char *, u_int, const u_char *); + extern int nd_printn(netdissect_options *, const u_char *, u_int, const u_char *); + extern int nd_printzp(netdissect_options *, const u_char *, u_int, const u_char *); /* * Flags for txtproto_print(). @@@ -343,23 -406,32 +406,32 @@@ #define RESP_CODE_SECOND_TOKEN 0x00000001 /* response code is second token in response line */ extern void txtproto_print(netdissect_options *, const u_char *, u_int, - const char *, const char **, u_int); - + const char **, u_int); + + #if (defined(__i386__) || defined(_M_IX86) || defined(__X86__) || defined(__x86_64__) || defined(_M_X64)) || \ + (defined(__arm__) || defined(_M_ARM) || defined(__aarch64__)) || \ + (defined(__m68k__) && (!defined(__mc68000__) && !defined(__mc68010__))) || \ + (defined(__ppc__) || defined(__ppc64__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PPC64)) || \ + (defined(__s390__) || defined(__s390x__) || defined(__zarch__)) || \ + defined(__vax__) /* - * Locale-independent macros for testing character properties and - * stripping the 8th bit from characters. Assumed to be handed - * a value between 0 and 255, i.e. don't hand them a char, as - * those might be in the range -128 to 127. + * The procesor natively handles unaligned loads, so just use memcpy() + * and memcmp(), to enable those optimizations. + * + * XXX - are those all the x86 tests we need? + * XXX - do we need to worry about ARMv1 through ARMv5, which didn't + * support unaligned loads, and, if so, do we need to worry about all + * of them, or just some of them, e.g. ARMv5? + * XXX - are those the only 68k tests we need not to generated + * unaligned accesses if the target is the 68000 or 68010? + * XXX - are there any tests we don't need, because some definitions are for + * compilers that also predefine the GCC symbols? + * XXX - do we need to test for both 32-bit and 64-bit versions of those + * architectures in all cases? */ - #define ND_ISASCII(c) (!((c) & 0x80)) /* value is an ASCII code point */ - #define ND_ISPRINT(c) ((c) >= 0x20 && (c) <= 0x7E) - #define ND_ISGRAPH(c) ((c) > 0x20 && (c) <= 0x7E) - #define ND_TOASCII(c) ((c) & 0x7F) - - extern void safeputchar(netdissect_options *, const u_char); - extern void safeputs(netdissect_options *, const u_char *, const u_int); - - #ifdef LBL_ALIGN + #define UNALIGNED_MEMCPY(p, q, l) memcpy((p), (q), (l)) + #define UNALIGNED_MEMCMP(p, q, l) memcmp((p), (q), (l)) + #else /* * The processor doesn't natively handle unaligned loads, * and the compiler might "helpfully" optimize memcpy() @@@ -375,13 -447,6 +447,6 @@@ extern void unaligned_memcpy(void *, co extern int unaligned_memcmp(const void *, const void *, size_t); #define UNALIGNED_MEMCPY(p, q, l) unaligned_memcpy((p), (q), (l)) #define UNALIGNED_MEMCMP(p, q, l) unaligned_memcmp((p), (q), (l)) - #else - /* - * The procesor natively handles unaligned loads, so just use memcpy() - * and memcmp(), to enable those optimizations. - */ - #define UNALIGNED_MEMCPY(p, q, l) memcpy((p), (q), (l)) - #define UNALIGNED_MEMCMP(p, q, l) memcmp((p), (q), (l)) #endif #define PLURAL_SUFFIX(n) \ @@@ -390,18 -455,26 +455,26 @@@ extern const char *tok2strary_internal(const char **, int, const char *, int); #define tok2strary(a,f,i) tok2strary_internal(a, sizeof(a)/sizeof(a[0]),f,i) - extern if_printer lookup_printer(int); + extern uint_if_printer lookup_uint_printer(int); + extern void_if_printer lookup_void_printer(int); + extern if_printer_t lookup_printer(netdissect_options *, int); + + #define ND_DEBUG {printf(" [%s:%d %s] ", __FILE__, __LINE__, __FUNCTION__); fflush(stdout);} /* The DLT printer routines */ - extern u_int ap1394_if_print IF_PRINTER_ARGS; - extern u_int arcnet_if_print IF_PRINTER_ARGS; - extern u_int arcnet_linux_if_print IF_PRINTER_ARGS; + 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 u_int atm_if_print IF_PRINTER_ARGS; - extern u_int bt_if_print IF_PRINTER_ARGS; + extern void bt_if_print IF_PRINTER_ARGS; + extern u_int brcm_tag_if_print IF_PRINTER_ARGS; + extern u_int brcm_tag_prepend_if_print IF_PRINTER_ARGS; extern u_int chdlc_if_print IF_PRINTER_ARGS; extern u_int cip_if_print IF_PRINTER_ARGS; - extern u_int enc_if_print IF_PRINTER_ARGS; + extern u_int dsa_if_print IF_PRINTER_ARGS; + extern u_int edsa_if_print IF_PRINTER_ARGS; + extern void enc_if_print IF_PRINTER_ARGS; extern u_int ether_if_print IF_PRINTER_ARGS; extern u_int fddi_if_print IF_PRINTER_ARGS; extern u_int fr_if_print IF_PRINTER_ARGS; @@@ -409,47 -482,52 +482,52 @@@ extern u_int ieee802_11_if_print IF_PRI extern u_int ieee802_11_radio_avs_if_print IF_PRINTER_ARGS; extern u_int ieee802_11_radio_if_print IF_PRINTER_ARGS; extern u_int ieee802_15_4_if_print IF_PRINTER_ARGS; + extern u_int ieee802_15_4_tap_if_print IF_PRINTER_ARGS; extern u_int ipfc_if_print IF_PRINTER_ARGS; - extern u_int ipnet_if_print IF_PRINTER_ARGS; - extern u_int juniper_atm1_print IF_PRINTER_ARGS; - extern u_int juniper_atm2_print IF_PRINTER_ARGS; - extern u_int juniper_chdlc_print IF_PRINTER_ARGS; - extern u_int juniper_es_print IF_PRINTER_ARGS; - extern u_int juniper_ether_print IF_PRINTER_ARGS; - extern u_int juniper_frelay_print IF_PRINTER_ARGS; - extern u_int juniper_ggsn_print IF_PRINTER_ARGS; - extern u_int juniper_mfr_print IF_PRINTER_ARGS; - extern u_int juniper_mlfr_print IF_PRINTER_ARGS; - extern u_int juniper_mlppp_print IF_PRINTER_ARGS; - extern u_int juniper_monitor_print IF_PRINTER_ARGS; - extern u_int juniper_ppp_print IF_PRINTER_ARGS; - extern u_int juniper_pppoe_atm_print IF_PRINTER_ARGS; - extern u_int juniper_pppoe_print IF_PRINTER_ARGS; - extern u_int juniper_services_print IF_PRINTER_ARGS; + extern u_int ipoib_if_print IF_PRINTER_ARGS; + extern void ipnet_if_print IF_PRINTER_ARGS; + extern u_int juniper_atm1_if_print IF_PRINTER_ARGS; + extern u_int juniper_atm2_if_print IF_PRINTER_ARGS; + extern u_int juniper_chdlc_if_print IF_PRINTER_ARGS; + extern u_int juniper_es_if_print IF_PRINTER_ARGS; + extern u_int juniper_ether_if_print IF_PRINTER_ARGS; + extern u_int juniper_frelay_if_print IF_PRINTER_ARGS; + extern u_int juniper_ggsn_if_print IF_PRINTER_ARGS; + extern u_int juniper_mfr_if_print IF_PRINTER_ARGS; + extern u_int juniper_mlfr_if_print IF_PRINTER_ARGS; + extern u_int juniper_mlppp_if_print IF_PRINTER_ARGS; + extern u_int juniper_monitor_if_print IF_PRINTER_ARGS; + extern u_int juniper_ppp_if_print IF_PRINTER_ARGS; + extern u_int juniper_pppoe_atm_if_print IF_PRINTER_ARGS; + extern u_int juniper_pppoe_if_print IF_PRINTER_ARGS; + extern u_int juniper_services_if_print IF_PRINTER_ARGS; extern u_int lane_if_print IF_PRINTER_ARGS; extern u_int ltalk_if_print IF_PRINTER_ARGS; extern u_int mfr_if_print IF_PRINTER_ARGS; extern u_int netanalyzer_if_print IF_PRINTER_ARGS; extern u_int netanalyzer_transparent_if_print IF_PRINTER_ARGS; - extern u_int nflog_if_print IF_PRINTER_ARGS; - extern u_int null_if_print IF_PRINTER_ARGS; + extern void nflog_if_print IF_PRINTER_ARGS; + extern void null_if_print IF_PRINTER_ARGS; extern u_int pflog_if_print IF_PRINTER_ARGS; - extern u_int pktap_if_print IF_PRINTER_ARGS; - extern u_int ppi_if_print IF_PRINTER_ARGS; + extern void pktap_if_print IF_PRINTER_ARGS; + extern void ppi_if_print IF_PRINTER_ARGS; extern u_int ppp_bsdos_if_print IF_PRINTER_ARGS; extern u_int ppp_hdlc_if_print IF_PRINTER_ARGS; extern u_int ppp_if_print IF_PRINTER_ARGS; extern u_int pppoe_if_print IF_PRINTER_ARGS; extern u_int prism_if_print IF_PRINTER_ARGS; - extern u_int raw_if_print IF_PRINTER_ARGS; - extern u_int sl_bsdos_if_print IF_PRINTER_ARGS; - extern u_int sl_if_print IF_PRINTER_ARGS; + extern 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 u_int sll_if_print IF_PRINTER_ARGS; - extern u_int sunatm_if_print IF_PRINTER_ARGS; - extern u_int symantec_if_print IF_PRINTER_ARGS; + extern u_int sll2_if_print IF_PRINTER_ARGS; + extern void sunatm_if_print IF_PRINTER_ARGS; + extern void symantec_if_print IF_PRINTER_ARGS; extern u_int token_if_print IF_PRINTER_ARGS; - extern u_int usb_linux_48_byte_print IF_PRINTER_ARGS; - extern u_int usb_linux_64_byte_print IF_PRINTER_ARGS; + extern void unsupported_if_print IF_PRINTER_ARGS; + extern void usb_linux_48_byte_if_print IF_PRINTER_ARGS; + extern void usb_linux_64_byte_if_print IF_PRINTER_ARGS; + extern u_int vsock_if_print IF_PRINTER_ARGS; /* * Structure passed to some printers to allow them to print @@@ -469,50 -547,52 +547,52 @@@ struct lladdr_info /* The printer routines. */ extern void aarp_print(netdissect_options *, const u_char *, u_int); - extern int ah_print(netdissect_options *, register const u_char *); + extern int ah_print(netdissect_options *, const u_char *); extern void ahcp_print(netdissect_options *, const u_char *, const u_int); extern void aodv_print(netdissect_options *, const u_char *, u_int, int); extern void aoe_print(netdissect_options *, const u_char *, const u_int); + extern int arista_ethertype_print(netdissect_options *,const u_char *, u_int); extern void arp_print(netdissect_options *, const u_char *, u_int, u_int); extern void ascii_print(netdissect_options *, const u_char *, u_int); extern void atalk_print(netdissect_options *, const u_char *, u_int); extern void atm_print(netdissect_options *, u_int, u_int, u_int, const u_char *, u_int, u_int); extern void babel_print(netdissect_options *, const u_char *, u_int); + extern void bcm_li_print(netdissect_options *, const u_char *, u_int); extern void beep_print(netdissect_options *, const u_char *, u_int); extern void bfd_print(netdissect_options *, const u_char *, u_int, u_int); - extern void bgp_print(netdissect_options *, const u_char *, int); - extern char *bgp_vpn_rd_print (netdissect_options *, const u_char *); + extern void bgp_print(netdissect_options *, const u_char *, u_int); + extern const char *bgp_vpn_rd_print(netdissect_options *, const u_char *); extern void bootp_print(netdissect_options *, const u_char *, u_int); extern void calm_fast_print(netdissect_options *, const u_char *, u_int, const struct lladdr_info *); - extern void carp_print(netdissect_options *, const u_char *, u_int, int); + extern void carp_print(netdissect_options *, const u_char *, u_int, u_int); extern void cdp_print(netdissect_options *, const u_char *, u_int, u_int); extern void cfm_print(netdissect_options *, const u_char *, u_int); - extern u_int chdlc_print(netdissect_options *, register const u_char *, u_int); + extern u_int chdlc_print(netdissect_options *, const u_char *, u_int); extern void cisco_autorp_print(netdissect_options *, const u_char *, u_int); extern void cnfp_print(netdissect_options *, const u_char *); extern void dccp_print(netdissect_options *, const u_char *, const u_char *, u_int); extern void decnet_print(netdissect_options *, const u_char *, u_int, u_int); extern void dhcp6_print(netdissect_options *, const u_char *, u_int); - extern int dstopt_print(netdissect_options *, const u_char *); + extern int dstopt_process(netdissect_options *, const u_char *); extern void dtp_print(netdissect_options *, const u_char *, u_int); extern void dvmrp_print(netdissect_options *, const u_char *, u_int); extern void eap_print(netdissect_options *, const u_char *, u_int); extern void egp_print(netdissect_options *, const u_char *, u_int); extern void eigrp_print(netdissect_options *, const u_char *, u_int); - extern int esp_print(netdissect_options *, const u_char *, const int, const u_char *, int *, int *); + extern void esp_print(netdissect_options *, const u_char *, u_int, const u_char *, u_int, int, u_int); extern u_int ether_print(netdissect_options *, const u_char *, u_int, u_int, void (*)(netdissect_options *, const u_char *), const u_char *); + extern u_int ether_switch_tag_print(netdissect_options *, const u_char *, u_int, u_int, void (*)(netdissect_options *, const u_char *), u_int); extern int ethertype_print(netdissect_options *, u_short, const u_char *, u_int, u_int, const struct lladdr_info *, const struct lladdr_info *); extern u_int fddi_print(netdissect_options *, const u_char *, u_int, u_int); extern void forces_print(netdissect_options *, const u_char *, u_int); - extern u_int fr_print(netdissect_options *, register const u_char *, u_int); + extern u_int fr_print(netdissect_options *, const u_char *, u_int); extern int frag6_print(netdissect_options *, const u_char *, const u_char *); extern void ftp_print(netdissect_options *, const u_char *, u_int); extern void geneve_print(netdissect_options *, const u_char *, u_int); extern void geonet_print(netdissect_options *, const u_char *, u_int, const struct lladdr_info *); extern void gre_print(netdissect_options *, const u_char *, u_int); - extern int hbhopt_print(netdissect_options *, const u_char *); + extern int hbhopt_process(netdissect_options *, const u_char *, int *, uint32_t *); extern void hex_and_ascii_print(netdissect_options *, const char *, const u_char *, u_int); - extern void hex_and_ascii_print_with_offset(netdissect_options *, const char *, const u_char *, u_int, u_int); extern void hex_print(netdissect_options *, const char *ident, const u_char *cp, u_int); extern void hex_print_with_offset(netdissect_options *, const char *ident, const u_char *cp, u_int, u_int); extern void hncp_print(netdissect_options *, const u_char *, u_int); @@@ -520,18 -600,19 +600,19 @@@ extern void hsrp_print(netdissect_optio extern void http_print(netdissect_options *, const u_char *, u_int); extern void icmp6_print(netdissect_options *, const u_char *, u_int, const u_char *, int); extern void icmp_print(netdissect_options *, const u_char *, u_int, const u_char *, int); + extern u_int ieee802_15_4_print(netdissect_options *, const u_char *, u_int); + extern u_int ieee802_11_radio_print(netdissect_options *, const u_char *, u_int, u_int); extern void igmp_print(netdissect_options *, const u_char *, u_int); extern void igrp_print(netdissect_options *, const u_char *, u_int); extern void ip6_print(netdissect_options *, const u_char *, u_int); extern void ipN_print(netdissect_options *, const u_char *, u_int); extern void ip_print(netdissect_options *, const u_char *, u_int); - extern void ip_print_inner(netdissect_options *, const u_char *, u_int, u_int nh, const u_char *); - extern void ipcomp_print(netdissect_options *, register const u_char *); + extern void ipcomp_print(netdissect_options *, const u_char *); extern void ipx_netbios_print(netdissect_options *, const u_char *, u_int); extern void ipx_print(netdissect_options *, const u_char *, u_int); extern void isakmp_print(netdissect_options *, const u_char *, u_int, const u_char *); - extern void isakmp_rfc3948_print(netdissect_options *, const u_char *, u_int, const u_char *); - extern void isoclns_print(netdissect_options *, const u_char *, u_int, u_int); + extern void isakmp_rfc3948_print(netdissect_options *, const u_char *, u_int, const u_char *, int, int, u_int); + extern void isoclns_print(netdissect_options *, const u_char *, u_int); extern void krb_print(netdissect_options *, const u_char *); extern void l2tp_print(netdissect_options *, const u_char *, u_int); extern void lane_print(netdissect_options *, const u_char *, u_int, u_int); @@@ -547,11 -628,7 +628,10 @@@ extern void lwapp_control_print(netdiss extern void lwapp_data_print(netdissect_options *, const u_char *, u_int); extern void lwres_print(netdissect_options *, const u_char *, u_int); extern void m3ua_print(netdissect_options *, const u_char *, const u_int); +extern int macsec_print(netdissect_options *, const u_char **, + u_int *, u_int *, u_int *, + u_short *); - extern void medsa_print(netdissect_options *, const u_char *, u_int, u_int, const struct lladdr_info *, const struct lladdr_info *); - extern u_int mfr_print(netdissect_options *, register const u_char *, u_int); + extern u_int mfr_print(netdissect_options *, const u_char *, u_int); extern void mobile_print(netdissect_options *, const u_char *, u_int); extern int mobility_print(netdissect_options *, const u_char *, const u_char *); extern void mpcp_print(netdissect_options *, const u_char *, u_int); @@@ -559,33 -636,34 +639,34 @@@ extern void mpls_print(netdissect_optio extern int mptcp_print(netdissect_options *, const u_char *, u_int, u_char); extern void msdp_print(netdissect_options *, const u_char *, u_int); extern void msnlb_print(netdissect_options *, const u_char *); - extern void nbt_tcp_print(netdissect_options *, const u_char *, int); - extern void nbt_udp137_print(netdissect_options *, const u_char *, int); - extern void nbt_udp138_print(netdissect_options *, const u_char *, int); - extern void netbeui_print(netdissect_options *, u_short, const u_char *, int); + extern void nbt_tcp_print(netdissect_options *, const u_char *, u_int); + extern void nbt_udp137_print(netdissect_options *, const u_char *, u_int); + extern void nbt_udp138_print(netdissect_options *, const u_char *, u_int); + extern void netbeui_print(netdissect_options *, u_short, const u_char *, u_int); extern void nfsreply_print(netdissect_options *, const u_char *, u_int, const u_char *); - extern void nfsreply_print_noaddr(netdissect_options *, const u_char *, u_int, const u_char *); - extern void nfsreq_print_noaddr(netdissect_options *, const u_char *, u_int, const u_char *); - extern const u_char * ns_nprint (netdissect_options *, register const u_char *, register const u_char *); - extern void ns_print(netdissect_options *, const u_char *, u_int, int); - extern void nsh_print(netdissect_options *ndo, const u_char *bp, u_int len); + extern void nfsreply_noaddr_print(netdissect_options *, const u_char *, u_int, const u_char *); + extern void nfsreq_noaddr_print(netdissect_options *, const u_char *, u_int, const u_char *); + extern const u_char *fqdn_print(netdissect_options *, const u_char *, const u_char *); + extern void domain_print(netdissect_options *, const u_char *, u_int, int); + extern void nsh_print(netdissect_options *, const u_char *, u_int); extern void ntp_print(netdissect_options *, const u_char *, u_int); extern void oam_print(netdissect_options *, const u_char *, u_int, u_int); extern void olsr_print(netdissect_options *, const u_char *, u_int, int); extern void openflow_print(netdissect_options *, const u_char *, const u_int); extern void ospf6_print(netdissect_options *, const u_char *, u_int); extern void ospf_print(netdissect_options *, const u_char *, u_int, const u_char *); - extern int ospf_print_grace_lsa(netdissect_options *, const uint8_t *, u_int); - extern int ospf_print_te_lsa(netdissect_options *, const uint8_t *, u_int); + extern int ospf_grace_lsa_print(netdissect_options *, const u_char *, u_int); + extern int ospf_te_lsa_print(netdissect_options *, const u_char *, u_int); extern void otv_print(netdissect_options *, const u_char *, u_int); extern void pgm_print(netdissect_options *, const u_char *, u_int, const u_char *); extern void pim_print(netdissect_options *, const u_char *, u_int, const u_char *); extern void pimv1_print(netdissect_options *, const u_char *, u_int); - extern u_int ppp_print(netdissect_options *, register const u_char *, u_int); + extern u_int ppp_print(netdissect_options *, const u_char *, u_int); extern u_int pppoe_print(netdissect_options *, const u_char *, u_int); extern void pptp_print(netdissect_options *, const u_char *); - extern int print_unknown_data(netdissect_options *, const u_char *, const char *, int); - extern char *q922_string(netdissect_options *, const u_char *, u_int); + extern void ptp_print(netdissect_options *, const u_char *, u_int); + extern int print_unknown_data(netdissect_options *, const u_char *, const char *, u_int); + extern const char *q922_string(netdissect_options *, const u_char *, u_int); extern void q933_print(netdissect_options *, const u_char *, u_int); extern void radius_print(netdissect_options *, const u_char *, u_int); extern void resp_print(netdissect_options *, const u_char *, u_int); @@@ -596,18 -674,18 +677,18 @@@ extern void rrcp_print(netdissect_optio 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 rtsp_print(netdissect_options *, const u_char *, u_int); - extern void rx_print(netdissect_options *, register const u_char *, int, int, int, const u_char *); + extern void rx_print(netdissect_options *, const u_char *, u_int, u_int, u_int, const u_char *); extern void sctp_print(netdissect_options *, const u_char *, const u_char *, u_int); extern void sflow_print(netdissect_options *, const u_char *, u_int); + extern void ssh_print(netdissect_options *, const u_char *, u_int); extern void sip_print(netdissect_options *, const u_char *, u_int); extern void slow_print(netdissect_options *, const u_char *, u_int); - extern void smb_print_data(netdissect_options *, const unsigned char *, int); - extern void smb_tcp_print(netdissect_options *, const u_char *, int); + extern void smb_tcp_print(netdissect_options *, const u_char *, u_int); extern void smtp_print(netdissect_options *, const u_char *, u_int); extern int snap_print(netdissect_options *, const u_char *, u_int, u_int, const struct lladdr_info *, const struct lladdr_info *, u_int); extern void snmp_print(netdissect_options *, const u_char *, u_int); extern void stp_print(netdissect_options *, const u_char *, u_int); - extern void sunrpcrequest_print(netdissect_options *, const u_char *, u_int, const u_char *); + extern void sunrpc_print(netdissect_options *, const u_char *, u_int, const u_char *); extern void syslog_print(netdissect_options *, const u_char *, u_int); extern void tcp_print(netdissect_options *, const u_char *, u_int, const u_char *, int); extern void telnet_print(netdissect_options *, const u_char *, u_int); @@@ -616,17 -694,19 +697,19 @@@ extern void timed_print(netdissect_opti extern void tipc_print(netdissect_options *, const u_char *, u_int, u_int); extern u_int token_print(netdissect_options *, const u_char *, u_int, u_int); 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); - extern int vjc_print(netdissect_options *, register const char *, u_short); - extern void vqp_print(netdissect_options *, register const u_char *, register 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 vtp_print(netdissect_options *, const u_char *, u_int); - extern void vxlan_gpe_print(netdissect_options *ndo, const u_char *bp, u_int len); + 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 void *, u_int); + extern void wb_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 *, int); extern void zmtp1_print(netdissect_options *, const u_char *, u_int); - extern void zmtp1_print_datagram(netdissect_options *, const u_char *, const u_int); + extern void zmtp1_datagram_print(netdissect_options *, const u_char *, const u_int); + extern void someip_print(netdissect_options *, const u_char *, const u_int); /* checksum routines */ extern void init_checksum(void); @@@ -640,27 -720,32 +723,32 @@@ struct cksum_vec extern uint16_t in_cksum(const struct cksum_vec *, int); extern uint16_t in_cksum_shouldbe(uint16_t, uint16_t); - extern int nextproto4_cksum(netdissect_options *, const struct ip *, const uint8_t *, u_int, u_int, u_int); + /* IP protocol demuxing routines */ + extern void ip_demux_print(netdissect_options *, const u_char *, u_int, u_int, int, u_int, uint8_t, const u_char *); + + extern uint16_t nextproto4_cksum(netdissect_options *, const struct ip *, const uint8_t *, u_int, u_int, uint8_t); /* in print-ip6.c */ - extern int nextproto6_cksum(netdissect_options *, const struct ip6_hdr *, const uint8_t *, u_int, u_int, u_int); + extern uint16_t nextproto6_cksum(netdissect_options *, const struct ip6_hdr *, const uint8_t *, u_int, u_int, uint8_t); /* Utilities */ + extern void nd_print_trunc(netdissect_options *); + extern void nd_print_protocol(netdissect_options *); + extern void nd_print_protocol_caps(netdissect_options *); + extern void nd_print_invalid(netdissect_options *); + extern int mask2plen(uint32_t); extern int mask62plen(const u_char *); - extern const char *dnname_string(netdissect_options *, u_short); extern const char *dnnum_string(netdissect_options *, u_short); - extern char *smb_errstr(int, int); - extern const char *nt_errstr(uint32_t); - - extern int decode_prefix4(netdissect_options *, const u_char *, u_int, char *, u_int); - extern int decode_prefix6(netdissect_options *, const u_char *, u_int, char *, u_int); + extern int decode_prefix4(netdissect_options *, const u_char *, u_int, char *, size_t); + extern int decode_prefix6(netdissect_options *, const u_char *, u_int, char *, size_t); - extern void esp_print_decodesecret(netdissect_options *); - extern int esp_print_decrypt_buffer_by_ikev2(netdissect_options *, int, - u_char spii[8], u_char spir[8], + extern void esp_decodesecret_print(netdissect_options *); + extern int esp_decrypt_buffer_by_ikev2_print(netdissect_options *, int, + const u_char spii[8], + const u_char spir[8], const u_char *, const u_char *); #endif /* netdissect_h */ diff --combined print-ether.c index 3b1ef34e,299c2013..c7ee8687 --- a/print-ether.c +++ b/print-ether.c @@@ -22,16 -22,31 +22,31 @@@ /* \summary: Ethernet printer */ #ifdef HAVE_CONFIG_H - #include "config.h" + #include #endif - #include + #include "netdissect-stdinc.h" #include "netdissect.h" #include "extract.h" #include "addrtoname.h" #include "ethertype.h" - #include "ether.h" + + /* + * Structure of an Ethernet header. + */ + struct ether_header { + nd_mac_addr ether_dhost; + nd_mac_addr ether_shost; + nd_uint16_t ether_length_type; + }; + + /* + * Length of an Ethernet header; note that some compilers may pad + * "struct ether_header" to a multiple of 4 bytes, for example, so + * "sizeof (struct ether_header)" may not give the right answer. + */ + #define ETHER_HDRLEN 14 const struct tok ethertype_values[] = { { ETHERTYPE_IP, "IPv4" }, @@@ -42,7 -57,6 +57,7 @@@ { ETHERTYPE_8021Q9100, "802.1Q-9100" }, { ETHERTYPE_8021QinQ, "802.1Q-QinQ" }, { ETHERTYPE_8021Q9200, "802.1Q-9200" }, + { ETHERTYPE_MACSEC, "802.1AE MACsec" }, { ETHERTYPE_VMAN, "VMAN" }, { ETHERTYPE_PUP, "PUP" }, { ETHERTYPE_ARP, "ARP"}, @@@ -86,153 -100,197 +101,210 @@@ { ETHERTYPE_GEONET, "GeoNet"}, { ETHERTYPE_CALM_FAST, "CALM FAST"}, { ETHERTYPE_AOE, "AoE" }, - { ETHERTYPE_MEDSA, "MEDSA" }, + { ETHERTYPE_PTP, "PTP" }, + { ETHERTYPE_ARISTA, "Arista Vendor Specific Protocol" }, { 0, NULL} }; - static inline void - ether_hdr_print(netdissect_options *ndo, - const u_char *bp, u_int length) + static void + ether_addresses_print(netdissect_options *ndo, const u_char *src, + const u_char *dst) { - register const struct ether_header *ep; - uint16_t length_type; - - ep = (const struct ether_header *)bp; - - ND_PRINT((ndo, "%s > %s", - etheraddr_string(ndo, ESRC(ep)), - etheraddr_string(ndo, EDST(ep)))); - - length_type = EXTRACT_16BITS(&ep->ether_length_type); - if (!ndo->ndo_qflag) { - if (length_type <= ETHERMTU) { - ND_PRINT((ndo, ", 802.3")); - length = length_type; - } else - ND_PRINT((ndo, ", ethertype %s (0x%04x)", - tok2str(ethertype_values,"Unknown", length_type), - length_type)); - } else { - if (length_type <= ETHERMTU) { - ND_PRINT((ndo, ", 802.3")); - length = length_type; - } else - ND_PRINT((ndo, ", %s", tok2str(ethertype_values,"Unknown Ethertype (0x%04x)", length_type))); - } + ND_PRINT("%s > %s, ", + GET_ETHERADDR_STRING(src), GET_ETHERADDR_STRING(dst)); + } - ND_PRINT((ndo, ", length %u: ", length)); + static void + ether_type_print(netdissect_options *ndo, uint16_t type) + { + if (!ndo->ndo_qflag) + ND_PRINT("ethertype %s (0x%04x)", + tok2str(ethertype_values, "Unknown", type), type); + else + ND_PRINT("%s", + tok2str(ethertype_values, "Unknown Ethertype (0x%04x)", type)); } /* - * Print an Ethernet frame. - * This might be encapsulated within another frame; we might be passed - * a pointer to a function that can print header information for that - * frame's protocol, and an argument to pass to that function. + * Common code for printing Ethernet frames. * - * FIXME: caplen can and should be derived from ndo->ndo_snapend and p. + * It can handle Ethernet headers with extra tag information inserted + * after the destination and source addresses, as is inserted by some + * switch chips, and extra encapsulation header information before + * printing Ethernet header information (such as a LANE ID for ATM LANE). */ - u_int - ether_print(netdissect_options *ndo, - const u_char *p, u_int length, u_int caplen, - void (*print_encap_header)(netdissect_options *ndo, const u_char *), const u_char *encap_header_arg) + static u_int + ether_common_print(netdissect_options *ndo, const u_char *p, u_int length, + u_int caplen, + void (*print_switch_tag)(netdissect_options *ndo, const u_char *), + u_int switch_tag_len, + void (*print_encap_header)(netdissect_options *ndo, const u_char *), + const u_char *encap_header_arg) { - const struct ether_header *ep; + const struct ether_header *ehp; u_int orig_length; - u_short length_type; u_int hdrlen; + u_short length_type; + int printed_length; int llc_hdrlen; struct lladdr_info src, dst; - if (caplen < ETHER_HDRLEN) { - ND_PRINT((ndo, "[|ether]")); + if (caplen < ETHER_HDRLEN + switch_tag_len) { + nd_print_trunc(ndo); return (caplen); } - if (length < ETHER_HDRLEN) { - ND_PRINT((ndo, "[|ether]")); + if (length < ETHER_HDRLEN + switch_tag_len) { + nd_print_trunc(ndo); return (length); } - if (ndo->ndo_eflag) { - if (print_encap_header != NULL) - (*print_encap_header)(ndo, encap_header_arg); - ether_hdr_print(ndo, p, length); - } - orig_length = length; + if (print_encap_header != NULL) + (*print_encap_header)(ndo, encap_header_arg); - length -= ETHER_HDRLEN; - caplen -= ETHER_HDRLEN; - ep = (const struct ether_header *)p; - p += ETHER_HDRLEN; - hdrlen = ETHER_HDRLEN; + orig_length = length; - src.addr = ESRC(ep); + /* + * Get the source and destination addresses, skip past them, + * and print them if we're printing the link-layer header. + */ + ehp = (const struct ether_header *)p; + src.addr = ehp->ether_shost; src.addr_string = etheraddr_string; - dst.addr = EDST(ep); + dst.addr = ehp->ether_dhost; dst.addr_string = etheraddr_string; - length_type = EXTRACT_16BITS(&ep->ether_length_type); + length -= 2*MAC_ADDR_LEN; + caplen -= 2*MAC_ADDR_LEN; + p += 2*MAC_ADDR_LEN; + hdrlen = 2*MAC_ADDR_LEN; + + if (ndo->ndo_eflag) + ether_addresses_print(ndo, src.addr, dst.addr); + + /* + * Print the switch tag, if we have one, and skip past it. + */ + if (print_switch_tag != NULL) + (*print_switch_tag)(ndo, p); + + length -= switch_tag_len; + caplen -= switch_tag_len; + p += switch_tag_len; + hdrlen += switch_tag_len; + + /* + * Get the length/type field, skip past it, and print it + * if we're printing the link-layer header. + */ recurse: + length_type = GET_BE_U_2(p); + + length -= 2; + caplen -= 2; + p += 2; + hdrlen += 2; + ++ if (length_type == ETHERTYPE_MACSEC) { ++ /* ++ * MACsec, aka IEEE 802.1AE-2006 ++ * Print the header, and try to print the payload if it's not encrypted ++ */ ++ int ret = macsec_print(ndo, &p, &length, &caplen, &hdrlen, &length_type); ++ ++ if (ret == 0) ++ goto raw; ++ else if (ret > 0) ++ return ret; ++ } ++ /* - * Is it (gag) an 802.3 encapsulation? + * Process VLAN tag types. */ - if (length_type <= ETHERMTU) { - /* Try to print the LLC-layer header & higher layers */ - llc_hdrlen = llc_print(ndo, p, length, caplen, &src, &dst); - if (llc_hdrlen < 0) { - /* packet type not known, print raw packet */ - if (!ndo->ndo_suppress_default_print) - ND_DEFAULTPRINT(p, caplen); - llc_hdrlen = -llc_hdrlen; - } - hdrlen += llc_hdrlen; - } else if (length_type == ETHERTYPE_8021Q || - length_type == ETHERTYPE_8021Q9100 || - length_type == ETHERTYPE_8021Q9200 || - length_type == ETHERTYPE_8021QinQ) { + printed_length = 0; + while (length_type == ETHERTYPE_8021Q || + length_type == ETHERTYPE_8021Q9100 || + length_type == ETHERTYPE_8021Q9200 || + length_type == ETHERTYPE_8021QinQ) { /* + * It has a VLAN tag. * Print VLAN information, and then go back and process * the enclosed type field. */ if (caplen < 4) { - ND_PRINT((ndo, "[|vlan]")); + ndo->ndo_protocol = "vlan"; + nd_print_trunc(ndo); return (hdrlen + caplen); } if (length < 4) { - ND_PRINT((ndo, "[|vlan]")); + ndo->ndo_protocol = "vlan"; + nd_print_trunc(ndo); return (hdrlen + length); } - if (ndo->ndo_eflag) { - uint16_t tag = EXTRACT_16BITS(p); - - ND_PRINT((ndo, "%s, ", ieee8021q_tci_string(tag))); + if (ndo->ndo_eflag) { + uint16_t tag = GET_BE_U_2(p); + + ether_type_print(ndo, length_type); + if (!printed_length) { + ND_PRINT(", length %u: ", orig_length); + printed_length = 1; + } else + ND_PRINT(", "); + ND_PRINT("%s, ", ieee8021q_tci_string(tag)); } - length_type = EXTRACT_16BITS(p + 2); - if (ndo->ndo_eflag && length_type > ETHERMTU) - ND_PRINT((ndo, "ethertype %s, ", tok2str(ethertype_values,"0x%04x", length_type))); + length_type = GET_BE_U_2(p + 2); p += 4; length -= 4; caplen -= 4; hdrlen += 4; - goto recurse; - } else if (length_type == ETHERTYPE_MACSEC) { + } + + /* + * We now have the final length/type field. + */ + if (length_type <= MAX_ETHERNET_LENGTH_VAL) { /* - * MACsec, aka IEEE 802.1AE-2006 - * Print the header, and try to print the payload if it's not encrypted + * It's a length field, containing the length of the + * remaining payload; use it as such, as long as + * it's not too large (bigger than the actual payload). */ - int ret = macsec_print(ndo, &p, &length, &caplen, &hdrlen, &length_type); - if (ret < 0) - goto recurse; - else if (ret == 0) - goto raw; - else - return ret; + if (length_type < length) { + length = length_type; + if (caplen > length) + caplen = length; + } + + /* + * Cut off the snapshot length to the end of the + * payload. + */ + nd_push_snapend(ndo, p + length); + + if (ndo->ndo_eflag) { + ND_PRINT("802.3"); + if (!printed_length) + ND_PRINT(", length %u: ", length); + } + + /* + * An LLC header follows the length. Print that and + * higher layers. + */ + llc_hdrlen = llc_print(ndo, p, length, caplen, &src, &dst); + if (llc_hdrlen < 0) { + /* packet type not known, print raw packet */ + if (!ndo->ndo_suppress_default_print) + ND_DEFAULTPRINT(p, caplen); + llc_hdrlen = -llc_hdrlen; + } + hdrlen += llc_hdrlen; + nd_pop_packet_info(ndo); } else if (length_type == ETHERTYPE_JUMBO) { /* - * Alteon jumbo frames. + * It's a type field, with the type for Alteon jumbo frames. * See * - * http://tools.ietf.org/html/draft-ietf-isis-ext-eth-01 + * https://tools.ietf.org/html/draft-ietf-isis-ext-eth-01 * * which indicates that, following the type field, * there's an LLC header and payload. @@@ -246,14 -304,58 +318,59 @@@ llc_hdrlen = -llc_hdrlen; } hdrlen += llc_hdrlen; + } else if (length_type == ETHERTYPE_ARISTA) { + if (caplen < 2) { + ND_PRINT("[|arista]"); + return (hdrlen + caplen); + } + if (length < 2) { + ND_PRINT("[|arista]"); + return (hdrlen + length); + } + ether_type_print(ndo, length_type); + ND_PRINT(", length %u: ", orig_length); + int bytesConsumed = arista_ethertype_print(ndo, p, length); + if (bytesConsumed > 0) { + p += bytesConsumed; + length -= bytesConsumed; + caplen -= bytesConsumed; + hdrlen += bytesConsumed; + goto recurse; + } else { + /* subtype/version not known, print raw packet */ + if (!ndo->ndo_eflag && length_type > MAX_ETHERNET_LENGTH_VAL) { + ether_addresses_print(ndo, src.addr, dst.addr); + ether_type_print(ndo, length_type); + ND_PRINT(", length %u: ", orig_length); + } + if (!ndo->ndo_suppress_default_print) + ND_DEFAULTPRINT(p, caplen); + } } else { + /* + * It's a type field with some other value. + */ + if (ndo->ndo_eflag) { + ether_type_print(ndo, length_type); + if (!printed_length) + ND_PRINT(", length %u: ", orig_length); + else + ND_PRINT(", "); + } if (ethertype_print(ndo, length_type, p, length, caplen, &src, &dst) == 0) { +raw: /* type not known, print raw packet */ if (!ndo->ndo_eflag) { - if (print_encap_header != NULL) - (*print_encap_header)(ndo, encap_header_arg); - ether_hdr_print(ndo, (const u_char *)ep, orig_length); + /* + * We didn't print the full link-layer + * header, as -e wasn't specified, so + * print only the source and destination + * MAC addresses and the final Ethernet + * type. + */ + ether_addresses_print(ndo, src.addr, dst.addr); + ether_type_print(ndo, length_type); + ND_PRINT(", length %u: ", orig_length); } if (!ndo->ndo_suppress_default_print) @@@ -263,6 -365,44 +380,44 @@@ return (hdrlen); } + /* + * Print an Ethernet frame while specyfing a non-standard Ethernet header + * length. + * This might be encapsulated within another frame; we might be passed + * a pointer to a function that can print header information for that + * frame's protocol, and an argument to pass to that function. + * + * FIXME: caplen can and should be derived from ndo->ndo_snapend and p. + */ + u_int + ether_switch_tag_print(netdissect_options *ndo, const u_char *p, u_int length, + u_int caplen, + void (*print_switch_tag)(netdissect_options *, const u_char *), + u_int switch_tag_len) + { + return (ether_common_print(ndo, p, length, caplen, print_switch_tag, + switch_tag_len, NULL, NULL)); + } + + /* + * Print an Ethernet frame. + * This might be encapsulated within another frame; we might be passed + * a pointer to a function that can print header information for that + * frame's protocol, and an argument to pass to that function. + * + * FIXME: caplen can and should be derived from ndo->ndo_snapend and p. + */ + u_int + ether_print(netdissect_options *ndo, + const u_char *p, u_int length, u_int caplen, + void (*print_encap_header)(netdissect_options *ndo, const u_char *), + const u_char *encap_header_arg) + { + ndo->ndo_protocol = "ether"; + return (ether_common_print(ndo, p, length, caplen, NULL, 0, + print_encap_header, encap_header_arg)); + } + /* * This is the top level routine of the printer. 'p' points * to the ether header of the packet, 'h->len' is the length @@@ -271,8 -411,9 +426,9 @@@ */ u_int ether_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, - const u_char *p) + const u_char *p) { + ndo->ndo_protocol = "ether_if"; return (ether_print(ndo, p, h->len, h->caplen, NULL, NULL)); } @@@ -287,13 -428,14 +443,14 @@@ */ u_int netanalyzer_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, - const u_char *p) + const u_char *p) { /* * Fail if we don't have enough data for the Hilscher pseudo-header. */ - if (h->len < 4 || h->caplen < 4) { - ND_PRINT((ndo, "[|netanalyzer]")); + ndo->ndo_protocol = "netanalyzer_if"; + if (h->caplen < 4) { + nd_print_trunc(ndo); return (h->caplen); } @@@ -313,15 -455,16 +470,16 @@@ */ u_int netanalyzer_transparent_if_print(netdissect_options *ndo, - const struct pcap_pkthdr *h, - const u_char *p) + const struct pcap_pkthdr *h, + const u_char *p) { /* * Fail if we don't have enough data for the Hilscher pseudo-header, * preamble, and SOF. */ - if (h->len < 12 || h->caplen < 12) { - ND_PRINT((ndo, "[|netanalyzer-transparent]")); + ndo->ndo_protocol = "netanalyzer_transparent_if"; + if (h->caplen < 12) { + nd_print_trunc(ndo); return (h->caplen); } @@@ -338,14 -481,14 +496,14 @@@ int ethertype_print(netdissect_options *ndo, - u_short ether_type, const u_char *p, - u_int length, u_int caplen, - const struct lladdr_info *src, const struct lladdr_info *dst) + u_short ether_type, const u_char *p, + u_int length, u_int caplen, + const struct lladdr_info *src, const struct lladdr_info *dst) { switch (ether_type) { case ETHERTYPE_IP: - ip_print(ndo, p, length); + ip_print(ndo, p, length); return (1); case ETHERTYPE_IPV6: @@@ -354,7 -497,7 +512,7 @@@ case ETHERTYPE_ARP: case ETHERTYPE_REVARP: - arp_print(ndo, p, length, caplen); + arp_print(ndo, p, length, caplen); return (1); case ETHERTYPE_DN: @@@ -363,7 -506,7 +521,7 @@@ case ETHERTYPE_ATALK: if (ndo->ndo_vflag) - ND_PRINT((ndo, "et1 ")); + ND_PRINT("et1 "); atalk_print(ndo, p, length); return (1); @@@ -372,16 -515,17 +530,17 @@@ return (1); case ETHERTYPE_IPX: - ND_PRINT((ndo, "(NOV-ETHII) ")); + ND_PRINT("(NOV-ETHII) "); ipx_print(ndo, p, length); return (1); case ETHERTYPE_ISO: if (length == 0 || caplen == 0) { - ND_PRINT((ndo, " [|osi]")); + ndo->ndo_protocol = "isoclns"; + nd_print_trunc(ndo); return (1); } - isoclns_print(ndo, p + 1, length - 1, caplen - 1); + isoclns_print(ndo, p + 1, length - 1); return(1); case ETHERTYPE_PPPOED: @@@ -392,26 -536,26 +551,26 @@@ return (1); case ETHERTYPE_EAPOL: - eap_print(ndo, p, length); + eap_print(ndo, p, length); return (1); case ETHERTYPE_RRCP: - rrcp_print(ndo, p, length, src, dst); + rrcp_print(ndo, p, length, src, dst); return (1); case ETHERTYPE_PPP: if (length) { - ND_PRINT((ndo, ": ")); + ND_PRINT(": "); ppp_print(ndo, p, length); } return (1); case ETHERTYPE_MPCP: - mpcp_print(ndo, p, length); + mpcp_print(ndo, p, length); return (1); case ETHERTYPE_SLOW: - slow_print(ndo, p, length); + slow_print(ndo, p, length); return (1); case ETHERTYPE_CFM: @@@ -423,13 -567,13 +582,13 @@@ lldp_print(ndo, p, length); return (1); - case ETHERTYPE_NSH: - nsh_print(ndo, p, length); - return (1); + case ETHERTYPE_NSH: + nsh_print(ndo, p, length); + return (1); - case ETHERTYPE_LOOPBACK: + case ETHERTYPE_LOOPBACK: loopback_print(ndo, p, length); - return (1); + return (1); case ETHERTYPE_MPLS: case ETHERTYPE_MPLS_MULTI: @@@ -444,21 -588,21 +603,21 @@@ msnlb_print(ndo, p); return (1); - case ETHERTYPE_GEONET_OLD: - case ETHERTYPE_GEONET: - geonet_print(ndo, p, length, src); - return (1); + case ETHERTYPE_GEONET_OLD: + case ETHERTYPE_GEONET: + geonet_print(ndo, p, length, src); + return (1); - case ETHERTYPE_CALM_FAST: - calm_fast_print(ndo, p, length, src); - return (1); + case ETHERTYPE_CALM_FAST: + calm_fast_print(ndo, p, length, src); + return (1); case ETHERTYPE_AOE: aoe_print(ndo, p, length); return (1); - case ETHERTYPE_MEDSA: - medsa_print(ndo, p, length, caplen, src, dst); + case ETHERTYPE_PTP: + ptp_print(ndo, p, length); return (1); case ETHERTYPE_LAT: @@@ -471,12 -615,3 +630,3 @@@ return (0); } } - - - /* - * Local Variables: - * c-style: whitesmith - * c-basic-offset: 8 - * End: - */ - diff --combined tests/TESTLIST index 66dbb6e5,2cd4abb9..a023709d --- a/tests/TESTLIST +++ b/tests/TESTLIST @@@ -1,4 -1,5 +1,5 @@@ - # The Option -n is useless in TESTLIST. It is already set in TESTonce. + # The options -# and -n are useless in TESTLIST. They are already set + # in TESTonce. # Various flags applied to a TCP session. # @@@ -6,452 -7,786 +7,796 @@@ # "print-X.out" being different files - we might be running # this on a case-insensitive file system, e.g. a Windows # file system or a case-insensitive HFS+ file system on - # Mac OS X. + # macOS. # # Therefore, for "X" and "XX", we have "print-capX.out" # and "print-capXX.out". # - print-x print-flags.pcap print-x.out -t -x - print-xx print-flags.pcap print-xx.out -t -xx - print-X print-flags.pcap print-capX.out -t -X - print-XX print-flags.pcap print-capXX.out -t -XX - print-A print-flags.pcap print-A.out -t -A - print-AA print-flags.pcap print-AA.out -t -AA + print-x print-flags.pcap print-x.out -x + print-xx print-flags.pcap print-xx.out -xx + print-X print-flags.pcap print-capX.out -X + print-XX print-flags.pcap print-capXX.out -XX + print-A print-flags.pcap print-A.out -A + print-AA print-flags.pcap print-AA.out -AA # BGP tests - bgp_vpn_attrset bgp_vpn_attrset.pcap bgp_vpn_attrset.out -t -v - mpbgp-linklocal-nexthop mpbgp-linklocal-nexthop.pcap mpbgp-linklocal-nexthop.out -t -v - bgp_infloop-v bgp-infinite-loop.pcap bgp_infloop-v.out -t -v - bgp-aigp bgp-aigp.pcap bgp-aigp.out -t -v - bgp-large-community bgp-large-community.pcap bgp-large-community.out -t -v - bgp-shutdown-communication bgp-shutdown-communication.pcap bgp-shutdown-communication.out -t -v -n + 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-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 + bgp-4byte-asn bgp-4byte-asn.pcap bgp-4byte-asn.out -v + bgp-4byte-asdot bgp-4byte-asn.pcap bgp-4byte-asdot.out -vb + bgp-lu-multiple-labels bgp-lu-multiple-labels.pcap bgp-lu-multiple-labels.out -v + 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 + + # Broadcom tag tests + brcmtag brcm-tag.pcap brcm-tag.out + brcmtag-e brcm-tag.pcap brcm-tag-e.out -e + brcmtagprepend brcm-tag-prepend.pcap brcm-tag-prepend.out -e + + # Broadcom LI + bcm-li bcm-li.pcap bcm-li.out + 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 # EAP tests - eapon1 eapon1.pcap eapon1.out -t + eapon1 eapon1.pcap eapon1.out + + # Marvell DSA tag tests + edsa edsa.pcap edsa.out + edsa-e edsa.pcap edsa-e.out -e # ESP tests - esp0 02-sunrise-sunset-esp.pcap esp0.out -t + esp0 02-sunrise-sunset-esp.pcap esp0.out # more ESP tests in crypto.sh # ISAKMP tests - isakmp1 isakmp-delete-segfault.pcap isakmp1.out -t - isakmp2 isakmp-pointer-loop.pcap isakmp2.out -t - isakmp3 isakmp-identification-segfault.pcap isakmp3.out -t -v + 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 - isakmp5-v ISAKMP_sa_setup.pcap isakmp5-v.out -t -v + isakmp5-v ISAKMP_sa_setup.pcap isakmp5-v.out -v # Link Management Protocol tests - lmp lmp.pcap lmp.out -t -T lmp + lmp lmp.pcap lmp.out -T lmp # lmp-v is now conditionally handled by lmp-v.sh # MPLS tests - mpls-ldp-hello mpls-ldp-hello.pcap mpls-ldp-hello.out -t -v - ldp_infloop ldp-infinite-loop.pcap ldp_infloop.out -t - lspping-fec-ldp lspping-fec-ldp.pcap lspping-fec-ldp.out -t - lspping-fec-ldp-v lspping-fec-ldp.pcap lspping-fec-ldp-v.out -t -v - lspping-fec-ldp-vv lspping-fec-ldp.pcap lspping-fec-ldp-vv.out -t -vv - lspping-fec-rsvp lspping-fec-rsvp.pcap lspping-fec-rsvp.out -t - lspping-fec-rsvp-v lspping-fec-rsvp.pcap lspping-fec-rsvp-v.out -t -v - lspping-fec-rsvp-vv lspping-fec-rsvp.pcap lspping-fec-rsvp-vv.out -t -vv - mpls-traceroute mpls-traceroute.pcap mpls-traceroute.out -t - mpls-traceroute-v mpls-traceroute.pcap mpls-traceroute-v.out -t -v + mpls-ldp-hello mpls-ldp-hello.pcap mpls-ldp-hello.out -v + ldp_infloop ldp-infinite-loop.pcap ldp_infloop.out + lspping-fec-ldp lspping-fec-ldp.pcap lspping-fec-ldp.out + lspping-fec-ldp-v lspping-fec-ldp.pcap lspping-fec-ldp-v.out -v + lspping-fec-ldp-vv lspping-fec-ldp.pcap lspping-fec-ldp-vv.out -vv + lspping-fec-rsvp lspping-fec-rsvp.pcap lspping-fec-rsvp.out + lspping-fec-rsvp-v lspping-fec-rsvp.pcap lspping-fec-rsvp-v.out -v + lspping-fec-rsvp-vv lspping-fec-rsvp.pcap lspping-fec-rsvp-vv.out -vv + mpls-traceroute mpls-traceroute.pcap mpls-traceroute.out + mpls-traceroute-v mpls-traceroute.pcap mpls-traceroute-v.out -v + 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 -t -v - ospf3_ah-vv OSPFv3_with_AH.pcap ospf3_ah-vv.out -t -v -v - ospf3_auth-vv ospf3_auth.pcap ospf3_auth-vv.out -t -v -v - ospf3_bc-vv OSPFv3_broadcast_adjacency.pcap ospf3_bc-vv.out -t -v -v - ospf3_mp-vv OSPFv3_multipoint_adjacencies.pcap ospf3_mp-vv.out -t -v -v - ospf3_nbma-vv OSPFv3_NBMA_adjacencies.pcap ospf3_nbma-vv.out -t -v -v + ospf-gmpls ospf-gmpls.pcap ospf-gmpls.out -v + ospf3_ah-vv OSPFv3_with_AH.pcap ospf3_ah-vv.out -v -v + 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.pcap ospf2-seg-fault-1-v.out -t -v + ospf2-seg-fault-1-v ospf2-seg-fault-1.pcapng ospf2-seg-fault-1-v.out -v # IKEv2 tests - ikev2four ikev2four.pcap ikev2four.out -t -v - ikev2fourv ikev2four.pcap ikev2fourv.out -t -v -v -v - ikev2fourv4 ikev2four.pcap ikev2fourv4.out -t -v -v -v -v + 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-segfault ikev2pI2-segfault.pcap ikev2pI2-segfault.out -t - ikev2pI2-segfault-v ikev2pI2-segfault.pcap ikev2pI2-segfault-v.out -t -v + ikev2pI2-segfault ikev2pI2-segfault.pcapng ikev2pI2-segfault.out + ikev2pI2-segfault-v ikev2pI2-segfault.pcapng ikev2pI2-segfault-v.out -v # IETF ROLL RPL packets - dio02 rpl-19-pickdag.pcap rpl-19-pickdag.out -t -v -v - dio03 rpl-19-pickdag.pcap rpl-19-pickdagvvv.out -t -v -v -v - dao01 rpl-14-dao.pcap rpl-14-daovvv.out -t -v -v -v - daoack01 rpl-26-senddaoack.pcap rpl-26-senddaovv.out -t -v -v -v + dio02 rpl-19-pickdag.pcap rpl-19-pickdag.out -v -v + dio03 rpl-19-pickdag.pcap rpl-19-pickdagvvv.out -v -v -v + dao01 rpl-14-dao.pcap rpl-14-daovvv.out -v -v -v + daoack01 rpl-26-senddaoack.pcap rpl-26-senddaovv.out -v -v -v # IPNET encapsulated site - e1000g e1000g.pcap e1000g.out -t + e1000g e1000g.pcap e1000g.out + + # IPX/Netware packets + ipx ipx.pcap ipx.out + + # IPX/Netware invalid + ipx-invalid-length ipx-invalid-length.pcap ipx-invalid-length.out # IETF FORCES WG packets and printer - forces01 forces1.pcap forces1.out -t - forces01vvv forces1.pcap forces1vvv.out -t -v -v -v - forces01vvvv forces1.pcap forces1vvvv.out -t -v -v -v -v + forces01 forces1.pcap forces1.out + forces01vvv forces1.pcap forces1vvv.out -v -v -v + forces01vvvv forces1.pcap forces1vvvv.out -v -v -v -v # need new pcap file, not sure what the differences were? - #forces02 forces2.pcap forces2.out -t - #forces02v forces2.pcap forces2v.out -t -v - #forces02vv forces2.pcap forces2vv.out -t -v -v + #forces02 forces2.pcap forces2.out + #forces02v forces2.pcap forces2v.out -v + #forces02vv forces2.pcap forces2vv.out -v -v # 802.1ad, QinQ tests - qinq QinQpacket.pcap QinQpacket.out -t -e - qinqv QinQpacket.pcap QinQpacketv.out -t -e -v + qinq QinQpacket.pcap QinQpacket.out -e + qinqv QinQpacket.pcap QinQpacketv.out -e -v # now SFLOW tests - sflow1 sflow_multiple_counter_30_pdus.pcap sflow_multiple_counter_30_pdus.out -t -v - sflow2 sflow_multiple_counter_30_pdus.pcap sflow_multiple_counter_30_pdus-nv.out -t + 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 # AHCP and Babel tests - ahcp-vv ahcp.pcap ahcp-vv.out -t -vv - babel1 babel.pcap babel1.out -t - babel1v babel.pcap babel1v.out -t -v - babel_auth babel_auth.pcap babel_auth.out -t -v - babel_pad1 babel_pad1.pcap babel_pad1.out -t - babel_rtt babel_rtt.pcap babel_rtt.out -t -v + ahcp-vv ahcp.pcapng ahcp-vv.out -vv + babel1 babel.pcap babel1.out + babel1v babel.pcap babel1v.out -v + babel_auth babel_auth.pcap babel_auth.out -v + babel_pad1 babel_pad1.pcap babel_pad1.out + babel_rtt babel_rtt.pcap babel_rtt.out -v + babel_rfc6126bis babel_rfc6126bis.pcap babel_rfc6126bis.out -v # PPPoE tests - pppoe pppoe.pcap pppoe.out -t - pppoes pppoes.pcap pppoes.out -t - pppoes_id pppoes.pcap pppoes_id.out -t pppoes 0x3b + pppoe pppoe.pcap pppoe.out + pppoes pppoes.pcap pppoes.out + pppoes_id pppoes.pcap pppoes_id.out pppoes 0x3b - # PPP tests - truncated_aack truncated-aack.pcap trunc_aack.out -t + # PPP invalid + truncated_aack truncated-aack.pcap trunc_aack.out + ppp-invalid-lengths ppp-invalid-lengths.pcap ppp-invalid-lengths.out -v # IGMP tests - igmpv1 IGMP_V1.pcap igmpv1.out -t - igmpv2 IGMP_V2.pcap igmpv2.out -t - igmpv3-queries igmpv3-queries.pcap igmpv3-queries.out -t - mtrace mtrace.pcap mtrace.out -t - dvmrp mrinfo_query.pcap dvmrp.out -t + igmpv1 IGMP_V1.pcap igmpv1.out + igmpv2 IGMP_V2.pcap igmpv2.out + igmpv3-queries igmpv3-queries.pcap igmpv3-queries.out + mtrace mtrace.pcap mtrace.out + dvmrp mrinfo_query.pcap dvmrp.out # ICMPv6 - icmpv6 icmpv6.pcap icmpv6.out -t -vv - icmpv6_opt24-v icmpv6_opt24.pcap icmpv6_opt24-v.out -t -v + 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 # SPB tests - spb spb.pcap spb.out -t + spb spb.pcap spb.out # SPB BPDUv4 tests - spb_bpduv4 spb_bpduv4.pcap spb_bpduv4.out -t - spb_bpduv4-v spb_bpduv4.pcap spb_bpduv4-v.out -t -v + spb_bpduv4 spb_bpduv4.pcap spb_bpduv4.out + spb_bpduv4-v spb_bpduv4.pcap spb_bpduv4-v.out -v # DCB Tests - dcb_ets dcb_ets.pcap dcb_ets.out -t -vv - dcb_pfc dcb_pfc.pcap dcb_pfc.out -t -vv - dcb_qcn dcb_qcn.pcap dcb_qcn.out -t -vv + dcb_ets dcb_ets.pcap dcb_ets.out -vv + dcb_pfc dcb_pfc.pcap dcb_pfc.out -vv + dcb_qcn dcb_qcn.pcap dcb_qcn.out -vv # EVB tests - evb evb.pcap evb.out -t -vv + evb evb.pcap evb.out -vv # STP tests - mstp-v MSTP_Intra-Region_BPDUs.pcap mstp-v.out -t -v - stp-v 802.1D_spanning_tree.pcap stp-v.out -t -v - rstp-v 802.1w_rapid_STP.pcap rstp-v.out -t -v - rpvst-v rpvstp-trunk-native-vid5.pcap rpvst-v.out -t -v + mstp-v MSTP_Intra-Region_BPDUs.pcap mstp-v.out -v + stp-v 802.1D_spanning_tree.pcap stp-v.out -v + rstp-v 802.1w_rapid_STP.pcap rstp-v.out -v + rpvst-v rpvstp-trunk-native-vid5.pcap rpvst-v.out -v # RIP tests - ripv1v2 ripv1v2.pcap ripv1v2.out -t -v - ripv2_auth ripv2_auth.pcap ripv2_auth.out -t -v + ripv1v2 ripv1v2.pcap ripv1v2.out -v + ripv2_auth ripv2_auth.pcap ripv2_auth.out -v + + # RIP invalid + ripv2-invalid-length ripv2-invalid-length.pcap ripv2-invalid-length.out -v # DHCPv6 tests - dhcpv6-aftr-name dhcpv6-AFTR-Name-RFC6334.pcap dhcpv6-AFTR-Name-RFC6334.out -t -v - dhcpv6-ia-na dhcpv6-ia-na.pcap dhcpv6-ia-na.out -t -v - dhcpv6-ia-pd dhcpv6-ia-pd.pcap dhcpv6-ia-pd.out -t -v - dhcpv6-ia-ta dhcpv6-ia-ta.pcap dhcpv6-ia-ta.out -t -v - dhcpv6-ntp-server dhcpv6-ntp-server.pcap dhcpv6-ntp-server.out -t -v - dhcpv6-sip-server-d dhcpv6-sip-server-d.pcap dhcpv6-sip-server-d.out -t -v - dhcpv6-domain-list dhcpv6-domain-list.pcap dhcpv6-domain-list.out -t -v - dhcpv6-mud dhcpv6-mud.pcap dhcpv6-mud.out -t -vv + dhcpv6-aftr-name dhcpv6-AFTR-Name-RFC6334.pcap dhcpv6-AFTR-Name-RFC6334.out -v + dhcpv6-ia-na dhcpv6-ia-na.pcap dhcpv6-ia-na.out -v + dhcpv6-ia-pd dhcpv6-ia-pd.pcap dhcpv6-ia-pd.out -v + dhcpv6-ia-ta dhcpv6-ia-ta.pcap dhcpv6-ia-ta.out -v + dhcpv6-ntp-server dhcpv6-ntp-server.pcap dhcpv6-ntp-server.out -v + dhcpv6-sip-server-d dhcpv6-sip-server-d.pcap dhcpv6-sip-server-d.out -v + dhcpv6-domain-list dhcpv6-domain-list.pcap dhcpv6-domain-list.out -v + dhcpv6-mud dhcpv6-mud.pcap dhcpv6-mud.out -vv # ZeroMQ/PGM tests # ZMTP/1.0 over TCP - zmtp1v zmtp1.pcap zmtp1.out -t -v -T zmtp1 + zmtp1v zmtp1.pcap zmtp1.out -v -T zmtp1 # native PGM - pgmv pgm_zmtp1.pcap pgmv.out -t -v + pgmv pgm_zmtp1.pcap pgmv.out -v # UDP-encapsulated PGM - epgmv epgm_zmtp1.pcap epgmv.out -t -v -T pgm + epgmv epgm_zmtp1.pcap epgmv.out -v -T pgm # ZMTP/1.0 inside native PGM - pgm_zmtp1v pgm_zmtp1.pcap pgm_zmtp1v.out -t -v -T pgm_zmtp1 + pgm_zmtp1v pgm_zmtp1.pcap pgm_zmtp1v.out -v -T pgm_zmtp1 # ZMTP/1.0 inside UDP-encapsulated PGM - epgm_zmtp1v epgm_zmtp1.pcap epgm_zmtp1v.out -t -v -T pgm_zmtp1 + epgm_zmtp1v epgm_zmtp1.pcap epgm_zmtp1v.out -v -T pgm_zmtp1 # fuzzed pcap - zmtp1-inf-loop-1 zmtp1-inf-loop-1.pcap zmtp1-inf-loop-1.out -t -T zmtp1 + zmtp1-inf-loop-1 zmtp1-inf-loop-1.pcapng zmtp1-inf-loop-1.out -T zmtp1 + + # native PGM POLL/POLR + pgm_poll_polr pgm_poll_polr.pcap pgm_poll_polr.out -v # MS NLB tests - msnlb msnlb.pcap msnlb.out -t - msnlb2 msnlb2.pcap msnlb2.out -t + msnlb msnlb.pcap msnlb.out + msnlb2 msnlb2.pcapng msnlb2.out # MPTCP tests - mptcp mptcp.pcap mptcp.out -t - mptcp-fclose mptcp-fclose.pcap mptcp-fclose.out -t + mptcp-v0 mptcp-v0.pcap mptcp-v0.out + mptcp-v1 mptcp-v1.pcap mptcp-v1.out + mptcp-fclose mptcp-fclose.pcap mptcp-fclose.out + mptcp-aa-v1 mptcp-aa-v1.pcap mptcp-aa-v1.out + # TFO tests - tfo tfo-5c1fa7f9ae91.pcap tfo.out -t + tfo tfo-5c1fa7f9ae91.pcap tfo.out # SCPS - scps_invalid scps_invalid.pcap scps_invalid.out -t + scps_invalid scps_invalid.pcap scps_invalid.out # IEEE 802.11 tests - 802.11_exthdr ieee802.11_exthdr.pcap ieee802.11_exthdr.out -t -v - 802.11_rx-stbc ieee802.11_rx-stbc.pcap ieee802.11_rx-stbc.out -t + 802.11_exthdr ieee802.11_exthdr.pcap ieee802.11_exthdr.out -v + 802.11_rx-stbc ieee802.11_rx-stbc.pcap ieee802.11_rx-stbc.out # OpenFlow tests - of10_p3295-vv of10_p3295.pcap of10_p3295-vv.out -t -vv - of10_s4810-vvvv of10_s4810.pcap of10_s4810-vvvv.out -t -vvvv - of10_pf5240-vv of10_pf5240.pcap of10_pf5240-vv.out -t -vv - of10_7050q-v of10_7050q.pcap of10_7050q-v.out -t -v - of10_7050sx_bsn-vv of10_7050sx_bsn.pcap of10_7050sx_bsn-vv.out -t -vv + of10_p3295-vv of10_p3295.pcap of10_p3295-vv.out -vv + of10_s4810-vvvv of10_s4810.pcap of10_s4810-vvvv.out -vvvv + of10_pf5240-vv of10_pf5240.pcap of10_pf5240-vv.out -vv + of10_7050q-v of10_7050q.pcapng of10_7050q-v.out -v + of10_7050sx_bsn-vv of10_7050sx_bsn.pcap of10_7050sx_bsn-vv.out -vv + of10_7050sx_bsn-oobr of10_7050sx_bsn-oobr.pcap of10_7050sx_bsn-oobr.out -v # GeoNetworking and CALM FAST tests - geonet-calm-fast geonet_and_calm_fast.pcap geonet_and_calm_fast.out -t -vv + geonet-calm-fast geonet_and_calm_fast.pcap geonet_and_calm_fast.out -vv # M3UA tests - m3ua isup.pcap isup.out -t - m3ua-vv isup.pcap isupvv.out -t -vv + m3ua isup.pcap isup.out + m3ua-vv isup.pcap isupvv.out -vv - # NFLOG test case moved to nflog-e.sh + # NFLOG test case + nflog-e nflog.pcap nflog-e.out -e # syslog test case - syslog-v syslog_udp.pcap syslog-v.out -t -v + syslog-v syslog_udp.pcap syslog-v.out -v + + # DNS on non-standard ports. + dns_tcp_8053 dns_tcp_8053.pcap dns_tcp_8053.out -vv + dns_tcp_8053-T dns_tcp_8053.pcap dns_tcp_8053-T.out -vv -T domain + dns_udp_8053 dns_udp_8053.pcap dns_udp_8053.out -vv + dns_udp_8053-T dns_udp_8053.pcap dns_udp_8053-T.out -vv -T domain # DNSSEC from https://bugzilla.redhat.com/show_bug.cgi?id=205842, -vv exposes EDNS DO - dnssec-vv dnssec.pcap dnssec-vv.out -t -vv + dnssec-vv dnssec.pcap dnssec-vv.out -vv #IPv6 tests - ipv6-bad-version ipv6-bad-version.pcap ipv6-bad-version.out -t - ipv6-routing-header ipv6-routing-header.pcap ipv6-routing-header.out -t -v - + ipv6-bad-version ipv6-bad-version.pcap ipv6-bad-version.out + ipv6-routing-header ipv6-routing-header.pcap ipv6-routing-header.out -v + 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 # Loopback/CTP test case - loopback loopback.pcap loopback.out -t + loopback loopback.pcap loopback.out # DCCP partial checksums tests - dccp_partial_csum_v4_simple dccp_partial_csum_v4_simple.pcap dccp_partial_csum_v4_simple.out -t -vv - dccp_partial_csum_v4_longer dccp_partial_csum_v4_longer.pcap dccp_partial_csum_v4_longer.out -t -vv - dccp_partial_csum_v6_simple dccp_partial_csum_v6_simple.pcap dccp_partial_csum_v6_simple.out -t -vv - dccp_partial_csum_v6_longer dccp_partial_csum_v6_longer.pcap dccp_partial_csum_v6_longer.out -t -vv + dccp_partial_csum_v4_simple dccp_partial_csum_v4_simple.pcap dccp_partial_csum_v4_simple.out -vv + dccp_partial_csum_v4_longer dccp_partial_csum_v4_longer.pcap dccp_partial_csum_v4_longer.out -vv + dccp_partial_csum_v6_simple dccp_partial_csum_v6_simple.pcap dccp_partial_csum_v6_simple.out -vv + dccp_partial_csum_v6_longer dccp_partial_csum_v6_longer.pcap dccp_partial_csum_v6_longer.out -vv # VRRP tests - vrrp vrrp.pcap vrrp.out -t - vrrp-v vrrp.pcap vrrp-v.out -t -v + vrrp vrrp.pcap vrrp.out + vrrp-v vrrp.pcap vrrp-v.out -v # HSRP tests - hsrp_1 HSRP_coup.pcap hsrp_1.out -t - hsrp_1-v HSRP_coup.pcap hsrp_1-v.out -t -v - hsrp_2-v HSRP_election.pcap hsrp_2-v.out -t -v - hsrp_3-v HSRP_failover.pcap hsrp_3-v.out -t -v + hsrp_1 HSRP_coup.pcap hsrp_1.out + hsrp_1-v HSRP_coup.pcap hsrp_1-v.out -v + hsrp_2-v HSRP_election.pcap hsrp_2-v.out -v + hsrp_3-v HSRP_failover.pcap hsrp_3-v.out -v # PIMv2 tests - pimv2_dm-v PIM-DM_pruning.pcap pimv2_dm-v.out -t -v - pimv2_register-v PIM_register_register-stop.pcap pimv2_register-v.out -t -v - pimv2_sm-v PIM-SM_join_prune.pcap pimv2_sm-v.out -t -v - pimv2_bootstrap-v PIMv2_bootstrap.pcap pimv2_bootstrap-v.out -t -v - pimv2_hellos-v PIMv2_hellos.pcap pimv2_hellos-v.out -t -v + pimv2_dm-v PIM-DM_pruning.pcap pimv2_dm-v.out -v + pimv2_register-v PIM_register_register-stop.pcap pimv2_register-v.out -v + pimv2_sm-v PIM-SM_join_prune.pcap pimv2_sm-v.out -v + pimv2_bootstrap-v PIMv2_bootstrap.pcap pimv2_bootstrap-v.out -v + pimv2_hellos-v PIMv2_hellos.pcap pimv2_hellos-v.out -v + pim-packet-assortment pim-packet-assortment.pcap pim-packet-assortment.out + pim-packet-assortment-v pim-packet-assortment.pcap pim-packet-assortment-v.out -v + pim-packet-assortment-vv pim-packet-assortment.pcap pim-packet-assortment-vv.out -vv # IS-IS tests - isis_infloop-v isis-infinite-loop.pcap isis_infloop-v.out -t -v - isis_poi-v isis_poi.pcap isis_poi.out -t -v - isis_poi2-v isis_poi2.pcap isis_poi2.out -t -v - isis_1 ISIS_external_lsp.pcap isis_1.out -t - isis_1-v ISIS_external_lsp.pcap isis_1-v.out -t -v - isis_2-v ISIS_level1_adjacency.pcap isis_2-v.out -t -v - isis_3-v ISIS_level2_adjacency.pcap isis_3-v.out -t -v - isis_4-v ISIS_p2p_adjacency.pcap isis_4-v.out -t -v + isis_infloop-v isis-infinite-loop.pcap isis_infloop-v.out -v + isis_poi-v isis_poi.pcap isis_poi.out -v + isis_poi2-v isis_poi2.pcap isis_poi2.out -v + isis_1 ISIS_external_lsp.pcap isis_1.out + isis_1-v ISIS_external_lsp.pcap isis_1-v.out -v + isis_2-v ISIS_level1_adjacency.pcap isis_2-v.out -v + isis_3-v ISIS_level2_adjacency.pcap isis_3-v.out -v + isis_4-v ISIS_p2p_adjacency.pcap isis_4-v.out -v + 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-2-v isis-seg-fault-2.pcap isis-seg-fault-2-v.out -t -v - isis-seg-fault-3-v isis-seg-fault-3.pcap isis-seg-fault-3-v.out -t -v + 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 -t -v + rsvp_infloop-v rsvp-infinite-loop.pcap rsvp_infloop-v.out -v + rsvp_cap rsvp_cap.pcap rsvp_cap.out -v # fuzzed pcap - rsvp-inf-loop-2-v rsvp-inf-loop-2.pcap rsvp-inf-loop-2-v.out -t -v + rsvp-inf-loop-2-v rsvp-inf-loop-2.pcapng rsvp-inf-loop-2-v.out -v # HDLC tests - hdlc1 chdlc-slarp.pcap hdlc1.out -t - hdlc2 chdlc-slarp-short.pcap hdlc2.out -t - hdlc3 HDLC.pcap hdlc3.out -t - hdlc4 hdlc_slarp.pcap hdlc4.out -t + hdlc1 chdlc-slarp.pcap hdlc1.out + hdlc2 chdlc-slarp-short.pcap hdlc2.out + hdlc3 HDLC.pcap hdlc3.out + hdlc4 hdlc_slarp.pcapng hdlc4.out # DECnet test case - decnet DECnet_Phone.pcap decnet.out -t + decnet DECnet_Phone.pcap decnet.out # RADIUS tests - radius-v RADIUS.pcap radius-v.out -t -v - radius-rfc4675 RADIUS-RFC4675.pcap radius-rfc4675-v.out -t -v - radius-rfc5176 RADIUS-RFC5176.pcap radius-rfc5176-v.out -t -v - radius-port1700 RADIUS-port1700.pcap radius-port1700-v.out -t -v + radius-v RADIUS.pcap radius-v.out -v + radius-rfc3162 RADIUS-RFC3162.pcap radius-rfc3162-v.out -v + radius-rfc4675 RADIUS-RFC4675.pcap radius-rfc4675-v.out -v + radius-rfc5176 RADIUS-RFC5176.pcap radius-rfc5176-v.out -v + radius-port1700 RADIUS-port1700.pcap radius-port1700-v.out -v + radius-rfc5176-2 RADIUS-RFC5176-2.pcap radius-rfc5176-2-v.out -v + radius-rfc5447 RADIUS-RFC5447.pcap radius-rfc5447-v.out -v # link-level protocols - dtp-v DTP.pcap dtp-v.out -t -v - lacp-ev LACP.pcap lacp-ev.out -t -e -v - lldp_cdp-ev LLDP_and_CDP.pcap lldp_cdp-ev.out -t -e -v - cdp-v 3560_CDP.pcap cdp-v.out -t -v - udld-v UDLD.pcap udld-v.out -t -v - lldp_mud-v lldp_mudurl.pcap lldp_mudurl-v.out -t -e -v - lldp_mud-vv lldp_mudurl.pcap lldp_mudurl-vv.out -t -e -vv + dtp-v DTP.pcap dtp-v.out -v + lacp-ev LACP.pcap lacp-ev.out -e -v + lldp_cdp-ev LLDP_and_CDP.pcap lldp_cdp-ev.out -e -v + cdp-v 3560_CDP.pcap cdp-v.out -v + udld-v UDLD.pcap udld-v.out -v + lldp_mud-v lldp_mudurl.pcap lldp_mudurl-v.out -e -v + lldp_mud-vv lldp_mudurl.pcap lldp_mudurl-vv.out -e -vv # fuzzed pcap - udld-inf-loop-1-v udld-inf-loop-1.pcap udld-inf-loop-1-v.out -t -v + udld-inf-loop-1-v udld-inf-loop-1.pcapng udld-inf-loop-1-v.out -v # EIGRP tests - eigrp1-v EIGRP_adjacency.pcap eigrp1-v.out -t -v - eigrp2-v EIGRP_goodbye.pcap eigrp2-v.out -t -v - eigrp3-v EIGRP_subnet_down.pcap eigrp3-v.out -t -v - eigrp4-v EIGRP_subnet_up.pcap eigrp4-v.out -t -v + eigrp1-v EIGRP_adjacency.pcap eigrp1-v.out -v + eigrp2-v EIGRP_goodbye.pcap eigrp2-v.out -v + eigrp3-v EIGRP_subnet_down.pcap eigrp3-v.out -v + eigrp4-v EIGRP_subnet_up.pcap eigrp4-v.out -v + eigrp5 EIGRP_ipv6.pcap eigrp5.out # ATA-over-Ethernet tests - aoe_1 AoE_Linux.pcap aoe_1.out -t - aoe_1-v AoE_Linux.pcap aoe_1-v.out -t -v + aoe_1 AoE_Linux.pcap aoe_1.out + aoe_1-v AoE_Linux.pcap aoe_1-v.out -v # Geneve tests - geneve-v geneve.pcap geneve-vv.out -t -vv - geneve-vni geneve.pcap geneve-vni.out -t geneve 0xb - geneve-tcp geneve.pcap geneve-tcp.out -t "geneve && tcp" + geneve-vv geneve.pcap geneve-vv.out -vv + geneve-vni geneve.pcap geneve-vni.out geneve 0xb + geneve-tcp geneve.pcap geneve-tcp.out "geneve && tcp" # DHCP tests - dhcp-rfc3004 dhcp-rfc3004.pcap dhcp-rfc3004-v.out -t -v - dhcp-rfc5859 dhcp-rfc5859.pcap dhcp-rfc5859-v.out -t -v - dhcp-mud dhcp-mud.pcap dhcp-mud.out -t -vv - - # MEDSA tests - medsa medsa.pcap medsa.out -t - medsa-e medsa.pcap medsa-e.out -t -e + dhcp-rfc3004 dhcp-rfc3004.pcap dhcp-rfc3004-v.out -v + dhcp-rfc5859 dhcp-rfc5859.pcap dhcp-rfc5859-v.out -v + dhcp-mud dhcp-mud.pcap dhcp-mud.out -vv # VXLAN tests - vxlan vxlan.pcap vxlan.out -# -t -e + vxlan vxlan.pcap vxlan.out -e # CVEs 2014 malformed packets from Steffen Bauch - cve-2014-8767-OLSR cve-2014-8767-OLSR.pcap cve-2014-8767-OLSR.out -t -v - cve-2014-8768-Geonet cve-2014-8768-Geonet.pcap cve-2014-8768-Geonet.out -t -v - cve-2014-8769-AODV cve-2014-8769-AODV.pcap cve-2014-8769-AODV.out -t -v + cve-2014-8767-OLSR cve-2014-8767-OLSR.pcap cve-2014-8767-OLSR.out -v + cve-2014-8768-Geonet cve-2014-8768-Geonet.pcap cve-2014-8768-Geonet.out -v + cve-2014-8769-AODV cve-2014-8769-AODV.pcap cve-2014-8769-AODV.out -v # bad packets from Kevin Day # cve-2015-2155 -- fuzz testing on FORCES printer - kday1 kday1.pcap kday1.out -t -v + kday1 kday1.pcap kday1.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday2 kday2.pcap kday2.out -t -v + kday2 kday2.pcap kday2.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday3 kday3.pcap kday3.out -t -v + kday3 kday3.pcap kday3.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday4 kday4.pcap kday4.out -t -v + kday4 kday4.pcap kday4.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday5 kday5.pcap kday5.out -t -v + kday5 kday5.pcap kday5.out -v # cve-2015-2154 -- ethernet printer - kday6 kday6.pcap kday6.out -t -v + kday6 kday6.pcap kday6.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday7 kday7.pcap kday7.out -t -v + kday7 kday7.pcap kday7.out -v # cve-2015-2153 -- fuzz testing on TCP printer - kday8 kday8.pcap kday8.out -t -v + kday8 kday8.pcap kday8.out -v # bad packets from reversex86. - cve2015-0261_01 cve2015-0261-ipv6.pcap cve2015-0261-ipv6.out -t -v - cve2015-0261_02 cve2015-0261-crash.pcap cve2015-0261-crash.out -t -v + cve2015-0261_01 cve2015-0261-ipv6.pcap cve2015-0261-ipv6.out -v + cve2015-0261_02 cve2015-0261-crash.pcap cve2015-0261-crash.out -v # OLSRv1 tests - olsrv1_1 OLSRv1_HNA_sgw_1.pcap OLSRv1_HNA_sgw_1.out -t -v + olsrv1_1 OLSRv1_HNA_sgw_1.pcap OLSRv1_HNA_sgw_1.out -v # tests with unaligned data, to make sure they work on SPARC - unaligned-nfs-1 unaligned-nfs-1.pcap unaligned-nfs-1.out -t -v + unaligned-nfs-1 unaligned-nfs-1.pcap unaligned-nfs-1.out -v # LISP tests - lisp_eid_notify lisp_eid_notify.pcap lisp_eid_notify.out -t -v - lisp_eid_register lisp_eid_register.pcap lisp_eid_register.out -t -v - lisp_ipv6_eid lisp_ipv6.pcap lisp_ipv6.out -t -v + 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 -t - pcap-invalid-version-2 pcap-invalid-version-2.pcap pcap-invalid-version-2.out -t + 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 - # pcap-ng invalid version (first: version = 0.1 ; second: version = 1.1) - pcap-ng-invalid-vers-1 pcap-ng-invalid-vers-1.pcap pcap-ng-invalid-vers-1.out -t - pcap-ng-invalid-vers-2 pcap-ng-invalid-vers-2.pcap pcap-ng-invalid-vers-2.out -t + # 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 -t - nsh-vvv nsh.pcap nsh-vvv.out -t -vvv - nsh-over-vxlan-gpe nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe.out -t - nsh-over-vxlan-gpe-v nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-v.out -t -v - nsh-over-vxlan-gpe-vv nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-vv.out -t -vv - nsh-over-vxlan-gpe-vvv nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-vvv.out -t -vvv + nsh nsh.pcap nsh.out + nsh-vvv nsh.pcap nsh-vvv.out -vvv + nsh-over-vxlan-gpe nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe.out + nsh-over-vxlan-gpe-v nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-v.out -v + nsh-over-vxlan-gpe-vv nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-vv.out -vv + nsh-over-vxlan-gpe-vvv nsh-over-vxlan-gpe.pcap nsh-over-vxlan-gpe-vvv.out -vvv # RESP tests - resp_1 resp_1_benchmark.pcap resp_1.out -t - resp_2 resp_2_inline.pcap resp_2.out -t - resp_3 resp_3_malicious.pcap resp_3.out -t + resp_1 resp_1_benchmark.pcap resp_1.out + resp_2 resp_2_inline.pcap resp_2.out + resp_3 resp_3_malicious.pcap resp_3.out + + # TFTP tests + tftp tftp.pcap tftp.out + tftp-T tftp.pcap tftp-T.out -T tftp + + # WHOIS tests + whois whois.pcap whois.out + whois-v whois.pcap whois-v.out -v # HNCP tests - hncp hncp.pcap hncp.out -vvv -t + hncp hncp.pcap hncp.out -vvv # BFD tests with authentication fields - bfd-raw-auth-simple bfd-raw-auth-simple.pcap bfd-raw-auth-simple.out -t - bfd-raw-auth-simple-v bfd-raw-auth-simple.pcap bfd-raw-auth-simple-v.out -t -v - bfd-raw-auth-md5 bfd-raw-auth-md5.pcap bfd-raw-auth-md5.out -t - bfd-raw-auth-md5-v bfd-raw-auth-md5.pcap bfd-raw-auth-md5-v.out -t -v - bfd-raw-auth-sha1 bfd-raw-auth-sha1.pcap bfd-raw-auth-sha1.out -t - bfd-raw-auth-sha1-v bfd-raw-auth-sha1.pcap bfd-raw-auth-sha1-v.out -t -v + bfd-raw-auth-simple bfd-raw-auth-simple.pcap bfd-raw-auth-simple.out + bfd-raw-auth-simple-v bfd-raw-auth-simple.pcap bfd-raw-auth-simple-v.out -v + bfd-raw-auth-md5 bfd-raw-auth-md5.pcap bfd-raw-auth-md5.out + bfd-raw-auth-md5-v bfd-raw-auth-md5.pcap bfd-raw-auth-md5-v.out -v + bfd-raw-auth-sha1 bfd-raw-auth-sha1.pcap bfd-raw-auth-sha1.out + bfd-raw-auth-sha1-v bfd-raw-auth-sha1.pcap bfd-raw-auth-sha1-v.out -v # bad packets from Hanno Böck - heap-overflow-1 heap-overflow-1.pcap heap-overflow-1.out -t -v -n - heap-overflow-2 heap-overflow-2.pcap heap-overflow-2.out -t -v -n - heapoverflow-atalk_print heapoverflow-atalk_print.pcap heapoverflow-atalk_print.out -t -v -n - heapoverflow-EXTRACT_16BITS heapoverflow-EXTRACT_16BITS.pcap heapoverflow-EXTRACT_16BITS.out -t -v -n - heapoverflow-ppp_hdlc_if_print heapoverflow-ppp_hdlc_if_print.pcap heapoverflow-ppp_hdlc_if_print.out -t -v -n - heapoverflow-q933_printq heapoverflow-q933_printq.pcap heapoverflow-q933_printq.out -t -v -n - heapoverflow-sl_if_print heapoverflow-sl_if_print.pcap heapoverflow-sl_if_print.out -t -v -n - heapoverflow-ip_print_demux heapoverflow-ip_print_demux.pcap heapoverflow-ip_print_demux.out -t -v -n - heapoverflow-in_checksum heapoverflow-in_checksum.pcap heapoverflow-in_checksum.out -t -v -n - heapoverflow-tcp_print heapoverflow-tcp_print.pcap heapoverflow-tcp_print.out -t -v -n - gre-heapoverflow-1 gre-heapoverflow-1.pcap gre-heapoverflow-1.out -t -v -n - gre-heapoverflow-2 gre-heapoverflow-2.pcap gre-heapoverflow-2.out -t -v -n - calm-fast-mac-lookup-heapoverflow calm-fast-mac-lookup-heapoverflow.pcap calm-fast-mac-lookup-heapoverflow.out -t -v -n - geonet-mac-lookup-heapoverflow geonet-mac-lookup-heapoverflow.pcap geonet-mac-lookup-heapoverflow.out -t -v -n - radiotap-heapoverflow radiotap-heapoverflow.pcap radiotap-heapoverflow.out -t -v -n - isoclns-heapoverflow isoclns-heapoverflow.pcap isoclns-heapoverflow.out -t -v -n - tcp-auth-heapoverflow tcp-auth-heapoverflow.pcap tcp-auth-heapoverflow.out -t -v -n - frf15-heapoverflow frf15-heapoverflow.pcap frf15-heapoverflow.out -t -v -n - atm-oam-heapoverflow atm-oam-heapoverflow.pcap atm-oam-heapoverflow.out -t -v -n - tcp_header_heapoverflow tcp_header_heapoverflow.pcap tcp_header_heapoverflow.out -t -v -n - ipcomp-heapoverflow ipcomp-heapoverflow.pcap ipcomp-heapoverflow.out -t -v -n - llc-xid-heapoverflow llc-xid-heapoverflow.pcap llc-xid-heapoverflow.out -t -v -n - udp-length-heapoverflow udp-length-heapoverflow.pcap udp-length-heapoverflow.out -t -v -n - aarp-heapoverflow-1 aarp-heapoverflow-1.pcap aarp-heapoverflow-1.out -t -v -n - aarp-heapoverflow-2 aarp-heapoverflow-2.pcap aarp-heapoverflow-2.out -t -v -n - mpls-label-heapoverflow mpls-label-heapoverflow.pcap mpls-label-heapoverflow.out -t -v -n - bad-ipv4-version-pgm-heapoverflow bad-ipv4-version-pgm-heapoverflow.pcap bad-ipv4-version-pgm-heapoverflow.out -t -v -n - stp-heapoverflow-1 stp-heapoverflow-1.pcap stp-heapoverflow-1.out -t -v -n - stp-heapoverflow-2 stp-heapoverflow-2.pcap stp-heapoverflow-2.out -t -v -n - stp-heapoverflow-3 stp-heapoverflow-3.pcap stp-heapoverflow-3.out -t -v -n - stp-heapoverflow-4 stp-heapoverflow-4.pcap stp-heapoverflow-4.out -t -v -n - stp-heapoverflow-5 stp-heapoverflow-5.pcap stp-heapoverflow-5.out -t -v -n - arp-too-long-tha arp-too-long-tha.pcap arp-too-long-tha.out -t -v -n - juniper_header-heapoverflow juniper_header-heapoverflow.pcap juniper_header-heapoverflow.out -t -v -n - tftp-heapoverflow tftp-heapoverflow.pcap tftp-heapoverflow.out -t -v -n - relts-0x80000000 relts-0x80000000.pcap relts-0x80000000.out -t -v -n + heap-overflow-1 heap-overflow-1.pcap heap-overflow-1.out -v + 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-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 + heapoverflow-ip_demux_print heapoverflow-ip_demux_print.pcap heapoverflow-ip_demux_print.out -v + heapoverflow-in_checksum heapoverflow-in_checksum.pcap heapoverflow-in_checksum.out -v + heapoverflow-tcp_print heapoverflow-tcp_print.pcap heapoverflow-tcp_print.out -v + gre-heapoverflow-1 gre-heapoverflow-1.pcap gre-heapoverflow-1.out -v + gre-heapoverflow-2 gre-heapoverflow-2.pcap gre-heapoverflow-2.out -v + calm-fast-mac-lookup-heapoverflow calm-fast-mac-lookup-heapoverflow.pcap calm-fast-mac-lookup-heapoverflow.out -v + geonet-mac-lookup-heapoverflow geonet-mac-lookup-heapoverflow.pcap geonet-mac-lookup-heapoverflow.out -v + radiotap-heapoverflow radiotap-heapoverflow.pcap radiotap-heapoverflow.out -v + isoclns-heapoverflow isoclns-heapoverflow.pcap isoclns-heapoverflow.out -v + tcp-auth-heapoverflow tcp-auth-heapoverflow.pcap tcp-auth-heapoverflow.out -v + frf15-heapoverflow frf15-heapoverflow.pcap frf15-heapoverflow.out -v + atm-oam-heapoverflow atm-oam-heapoverflow.pcap atm-oam-heapoverflow.out -v + tcp_header_heapoverflow tcp_header_heapoverflow.pcap tcp_header_heapoverflow.out -v + ipcomp-heapoverflow ipcomp-heapoverflow.pcap ipcomp-heapoverflow.out -v + llc-xid-heapoverflow llc-xid-heapoverflow.pcap llc-xid-heapoverflow.out -v + udp-length-heapoverflow udp-length-heapoverflow.pcap udp-length-heapoverflow.out -v + aarp-heapoverflow-1 aarp-heapoverflow-1.pcap aarp-heapoverflow-1.out -v + aarp-heapoverflow-2 aarp-heapoverflow-2.pcap aarp-heapoverflow-2.out -v + mpls-label-heapoverflow mpls-label-heapoverflow.pcap mpls-label-heapoverflow.out -v + bad-ipv4-version-pgm-heapoverflow bad-ipv4-version-pgm-heapoverflow.pcap bad-ipv4-version-pgm-heapoverflow.out -v + stp-heapoverflow-1 stp-heapoverflow-1.pcap stp-heapoverflow-1.out -v + stp-heapoverflow-2 stp-heapoverflow-2.pcap stp-heapoverflow-2.out -v + stp-heapoverflow-3 stp-heapoverflow-3.pcap stp-heapoverflow-3.out -v + stp-heapoverflow-4 stp-heapoverflow-4.pcap stp-heapoverflow-4.out -v + arp-too-long-tha arp-too-long-tha.pcap arp-too-long-tha.out -v + juniper_header-heapoverflow juniper_header-heapoverflow.pcap juniper_header-heapoverflow.out -v + tftp-heapoverflow tftp-heapoverflow.pcap tftp-heapoverflow.out -v + relts-0x80000000 relts-0x80000000.pcap relts-0x80000000.out -v # bad packets from Brian Carpenter - ipv6hdr-heapoverflow ipv6hdr-heapoverflow.pcap ipv6hdr-heapoverflow.out -t - ipv6hdr-heapoverflow-v ipv6hdr-heapoverflow.pcap ipv6hdr-heapoverflow-v.out -t -v - otv-heapoverflow-1 otv-heapoverflow-1.pcap otv-heapoverflow-1.out -t -c10 - otv-heapoverflow-2 otv-heapoverflow-2.pcap otv-heapoverflow-2.out -t -c10 - q933-heapoverflow-2 q933-heapoverflow-2.pcap q933-heapoverflow-2.out -t - atm-heapoverflow atm-heapoverflow.pcap atm-heapoverflow.out -t -c1 -e + ipv6hdr-heapoverflow ipv6hdr-heapoverflow.pcap ipv6hdr-heapoverflow.out + ipv6hdr-heapoverflow-v ipv6hdr-heapoverflow.pcap ipv6hdr-heapoverflow-v.out -v + otv-heapoverflow-1 otv-heapoverflow-1.pcap otv-heapoverflow-1.out + otv-heapoverflow-2 otv-heapoverflow-2.pcap otv-heapoverflow-2.out + q933-heapoverflow-2 q933-heapoverflow-2.pcap q933-heapoverflow-2.out + atm-heapoverflow atm-heapoverflow.pcap atm-heapoverflow.out -e + ipv6-next-header-oobr-1 ipv6-next-header-oobr-1.pcap ipv6-next-header-oobr-1.out + ipv6-next-header-oobr-2 ipv6-next-header-oobr-2.pcap ipv6-next-header-oobr-2.out + ipv6-rthdr-oobr ipv6-rthdr-oobr.pcap ipv6-rthdr-oobr.out + ieee802.11_tim_ie_oobr ieee802.11_tim_ie_oobr.pcap ieee802.11_tim_ie_oobr.out + decnet-shorthdr-oobr decnet-shorthdr-oobr.pcap decnet-shorthdr-oobr.out + isakmp-3948-oobr-2 isakmp-3948-oobr-2.pcap isakmp-3948-oobr-2.out + ieee802.11_rates_oobr ieee802.11_rates_oobr.pcap ieee802.11_rates_oobr.out + ipv6-mobility-header-oobr ipv6-mobility-header-oobr.pcap ipv6-mobility-header-oobr.out + beep-oobr beep-oobr.pcap beep-oobr.out # bad packets from Kamil Frankowicz - snmp-heapoverflow-1 snmp-heapoverflow-1.pcap snmp-heapoverflow-1.out -t - snmp-heapoverflow-2 snmp-heapoverflow-2.pcap snmp-heapoverflow-2.out -t - isoclns-heapoverflow-2 isoclns-heapoverflow-2.pcap isoclns-heapoverflow-2.out -t -e -c1 - isoclns-heapoverflow-3 isoclns-heapoverflow-3.pcap isoclns-heapoverflow-3.out -t -e -c1 + snmp-heapoverflow-1 snmp-heapoverflow-1.pcap snmp-heapoverflow-1.out + snmp-heapoverflow-2 snmp-heapoverflow-2.pcap snmp-heapoverflow-2.out + isoclns-heapoverflow-2 isoclns-heapoverflow-2.pcap isoclns-heapoverflow-2.out -e + isoclns-heapoverflow-3 isoclns-heapoverflow-3.pcap isoclns-heapoverflow-3.out -e + stp-v4-length-sigsegv stp-v4-length-sigsegv.pcap stp-v4-length-sigsegv.out + hoobr_pimv1 hoobr_pimv1.pcap hoobr_pimv1.out + hoobr_safeputs hoobr_safeputs.pcap hoobr_safeputs.out + isakmp-rfc3948-oobr isakmp-rfc3948-oobr.pcap isakmp-rfc3948-oobr.out + isoclns-oobr isoclns-oobr.pcap isoclns-oobr.out + nfs-attr-oobr nfs-attr-oobr.pcap nfs-attr-oobr.out + decnet-oobr decnet-oobr.pcap decnet-oobr.out + oobr_parse_elements oobr_parse_elements.pcap oobr_parse_elements.out + hoobr_ripng_print hoobr_ripng_print.pcap hoobr_ripng_print.out + hoobr_juniper hoobr_juniper.pcap hoobr_juniper.out + hoobr_juniper2 hoobr_juniper2.pcap hoobr_juniper2.out + hoobr_juniper3 hoobr_juniper3.pcap hoobr_juniper3.out + hoobr_juniper4 hoobr_juniper4.pcap hoobr_juniper4.out + hoobr_parse_field hoobr_parse_field.pcap hoobr_parse_field.out + hoobr_chdlc_print hoobr_chdlc_print.pcap hoobr_chdlc_print.out + hoobr_lookup_nsap hoobr_lookup_nsap.pcap hoobr_lookup_nsap.out + hoobr_rt6_print hoobr_rt6_print.pcap hoobr_rt6_print.out + hoobr_nfs_printfh hoobr_nfs_printfh.pcap hoobr_nfs_printfh.out + hoobr_aodv_extension hoobr_aodv_extension.pcap hoobr_aodv_extension.out + hoobr_nfs_xid_map_enter hoobr_nfs_xid_map_enter.pcap hoobr_nfs_xid_map_enter.out + hoobr_bfd_print hoobr_bfd_print.pcap hoobr_bfd_print.out + + # bad packets from Wilfried Kirsch + slip-bad-direction slip-bad-direction.pcap slip-bad-direction.out -ve + + # bad packets from GitHub issues #676 and #677 + slip-compressed_sl_print-oobr slip-compressed_sl_print-oobr.pcap slip-compressed_sl_print-oobr.out -e + slip-sliplink_print-oobr slip-sliplink_print-oobr.pcap slip-sliplink_print-oobr.out -e + + # bad packets from Otto Airamo and Antti Levomäki + nbns-valgrind nbns-valgrind.pcap nbns-valgrind.out -vvv -e + arp-oobr arp-oobr.pcap arp-oobr.out -vvv -e + icmp-cksum-oobr-1 icmp-cksum-oobr-1.pcap icmp-cksum-oobr-1.out -vvv -e + icmp-cksum-oobr-2 icmp-cksum-oobr-2.pcap icmp-cksum-oobr-2.out -vvv -e + 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 + 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 + 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 + pimv2-oobr-1 pimv2-oobr-1.pcap pimv2-oobr-1.out -vvv -e + pimv2-oobr-2 pimv2-oobr-2.pcap pimv2-oobr-2.out -vvv -e + pimv2-oobr-3 pimv2-oobr-3.pcap pimv2-oobr-3.out -vvv -e + pimv2-oobr-4 pimv2-oobr-4.pcap pimv2-oobr-4.out -vvv -e + 802_15_4-oobr-1 802_15_4-oobr-1.pcap 802_15_4-oobr-1.out -vvv -e + 802_15_4-oobr-2 802_15_4-oobr-2.pcap 802_15_4-oobr-2.out -vvv -e + 802_15_4-data 802_15_4-data.pcap 802_15_4-data.out -vvv -e + 802_15_4_beacon 802_15_4_beacon.pcap 802_15_4_beacon.out -vvv -e + lmpv1_busyloop lmpv1_busyloop.pcap lmpv1_busyloop.out -vvv -e + juniper_atm1_oobr juniper_atm1_oobr.pcap juniper_atm1_oobr.out -vvv -e + 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 + wb-oobr wb-oobr.pcap wb-oobr.out -v + + # bad packets from Bhargava Shastry + lldp_asan lldp_asan.pcap lldp_asan.out -v + extract_read2_asan extract_read2_asan.pcap extract_read2_asan.out -v + getname_2_read4_asan getname_2_read4_asan.pcap getname_2_read4_asan.out -v + eap_extract_read2_asan eap_extract_read2_asan.pcap eap_extract_read2_asan.out -v + esis_snpa_asan esis_snpa_asan.pcap esis_snpa_asan.out -v + esis_snpa_asan-2 esis_snpa_asan-2.pcap esis_snpa_asan-2.out -v + esis_snpa_asan-3 esis_snpa_asan-3.pcap esis_snpa_asan-3.out -v + esis_snpa_asan-4 esis_snpa_asan-4.pcap esis_snpa_asan-4.out -v + esis_snpa_asan-5 esis_snpa_asan-5.pcap esis_snpa_asan-5.out -v + dhcp6_reconf_asan dhcp6_reconf_asan.pcap dhcp6_reconf_asan.out -v + pgm_opts_asan pgm_opts_asan.pcap pgm_opts_asan.out -v + pgm_opts_asan_2 pgm_opts_asan_2.pcap pgm_opts_asan_2.out -v + pgm_opts_asan_3 pgm_opts_asan_3.pcap pgm_opts_asan_3.out -v + pgm_group_addr_asan pgm_group_addr_asan.pcap pgm_group_addr_asan.out -v + vtp_asan vtp_asan.pcap vtp_asan.out -v + vtp_asan-2 vtp_asan-2.pcap vtp_asan-2.out -v + vtp_asan-3 vtp_asan-3.pcap vtp_asan-3.out -v + icmp6_mobileprefix_asan icmp6_mobileprefix_asan.pcap icmp6_mobileprefix_asan.out -v + ip_printroute_asan ip_printroute_asan.pcap ip_printroute_asan.out -v + mobility_opt_asan mobility_opt_asan.pcap mobility_opt_asan.out -v + mobility_opt_asan_2 mobility_opt_asan_2.pcap mobility_opt_asan_2.out -v + mobility_opt_asan_3 mobility_opt_asan_3.pcap mobility_opt_asan_3.out -v + mobility_opt_asan_4 mobility_opt_asan_4.pcap mobility_opt_asan_4.out -v + mobility_opt_asan_5 mobility_opt_asan_5.pcap mobility_opt_asan_5.out -v + mobility_opt_asan_6 mobility_opt_asan_6.pcap mobility_opt_asan_6.out -v + mobility_opt_asan_7 mobility_opt_asan_7.pcap mobility_opt_asan_7.out -v + mobility_opt_asan_8 mobility_opt_asan_8.pcap mobility_opt_asan_8.out -v + isis_stlv_asan isis_stlv_asan.pcap isis_stlv_asan.out -v + isis_stlv_asan-2 isis_stlv_asan-2.pcap isis_stlv_asan-2.out -v + isis_stlv_asan-3 isis_stlv_asan-3.pcap isis_stlv_asan-3.out -v + isis_stlv_asan-4 isis_stlv_asan-4.pcap isis_stlv_asan-4.out -v + isis_sysid_asan isis_sysid_asan.pcap isis_sysid_asan.out -v + lldp_mgmt_addr_tlv_asan lldp_mgmt_addr_tlv_asan.pcap lldp_mgmt_addr_tlv_asan.out -v + bootp_asan bootp_asan.pcap bootp_asan.out -v + bootp_asan-2 bootp_asan-2.pcap bootp_asan-2.out -v + ppp_ccp_config_deflate_option_asan ppp_ccp_config_deflate_option_asan.pcap ppp_ccp_config_deflate_option_asan.out -v + pim_header_asan pim_header_asan.pcap pim_header_asan.out -v + pim_header_asan-2 pim_header_asan-2.pcap pim_header_asan-2.out -v + pim_header_asan-3 pim_header_asan-3.pcap pim_header_asan-3.out -v + pim_header_asan-4 pim_header_asan-4.pcap pim_header_asan-4.out -v + ip6_frag_asan ip6_frag_asan.pcap ip6_frag_asan.out -v + radius_attr_asan radius_attr_asan.pcap radius_attr_asan.out -v + ospf6_decode_v3_asan ospf6_decode_v3_asan.pcap ospf6_decode_v3_asan.out -v + ip_ts_opts_asan ip_ts_opts_asan.pcap ip_ts_opts_asan.out -v + isakmpv1-attr-oobr isakmpv1-attr-oobr.pcap isakmpv1-attr-oobr.out -v + isakmp-ikev1_n_print-oobr isakmp-ikev1_n_print-oobr.pcap isakmp-ikev1_n_print-oobr.out -v + ldp-ldp_tlv_print-oobr ldp-ldp_tlv_print-oobr.pcap ldp-ldp_tlv_print-oobr.out -v + icmp-icmp_print-oobr-1 icmp-icmp_print-oobr-1.pcap icmp-icmp_print-oobr-1.out -v + icmp-icmp_print-oobr-2 icmp-icmp_print-oobr-2.pcap icmp-icmp_print-oobr-2.out -v + rsvp-rsvp_obj_print-oobr rsvp-rsvp_obj_print-oobr.pcap rsvp-rsvp_obj_print-oobr.out -v + vrrp-vrrp_print-oobr vrrp-vrrp_print-oobr.pcap vrrp-vrrp_print-oobr.out -v + vrrp-vrrp_print-oobr-2 vrrp-vrrp_print-oobr-2.pcap vrrp-vrrp_print-oobr-2.out -v + bgp-bgp_capabilities_print-oobr-1 bgp-bgp_capabilities_print-oobr-1.pcap bgp-bgp_capabilities_print-oobr-1.out -v + bgp-bgp_capabilities_print-oobr-2 bgp-bgp_capabilities_print-oobr-2.pcap bgp-bgp_capabilities_print-oobr-2.out -v + lmp-lmp_print_data_link_subobjs-oobr lmp-lmp_print_data_link_subobjs-oobr.pcap lmp-lmp_print_data_link_subobjs-oobr.out -v + # The .pcap file is truncated after the 1st packet. + hncp_dhcpv6data-oobr hncp_dhcpv6data-oobr.pcap hncp_dhcpv6data-oobr.out -v + hncp_dhcpv4data-oobr hncp_dhcpv4data-oobr.pcap hncp_dhcpv4data-oobr.out -v + vqp-oobr vqp-oobr.pcap vqp-oobr.out -v + bgp_pmsi_tunnel-oobr bgp_pmsi_tunnel-oobr.pcap bgp_pmsi_tunnel-oobr.out -v + bgp_mvpn_6_and_7_oobr bgp_mvpn_6_and_7_oobr.pcap bgp_mvpn_6_and_7_oobr.out -v + rsvp_fast_reroute-oobr rsvp_fast_reroute-oobr.pcap rsvp_fast_reroute-oobr.out -v + esis_opt_prot-oobr esis_opt_prot-oobr.pcap esis_opt_prot-oobr.out -v + rsvp_uni-oobr-1 rsvp_uni-oobr-1.pcap rsvp_uni-oobr-1.out -v + rsvp_uni-oobr-2 rsvp_uni-oobr-2.pcap rsvp_uni-oobr-2.out -v + rsvp_uni-oobr-3 rsvp_uni-oobr-3.pcap rsvp_uni-oobr-3.out -v + rpki-rtr-oobr rpki-rtr-oobr.pcap rpki-rtr-oobr.out -v + lldp_8023_mtu-oobr lldp_8023_mtu-oobr.pcap lldp_8023_mtu-oobr.out -v + bgp_vpn_rt-oobr bgp_vpn_rt-oobr.pcap bgp_vpn_rt-oobr.out -v -c1 + cfm_sender_id-oobr cfm_sender_id-oobr.pcap cfm_sender_id-oobr.out -v + isis-extd-isreach-oobr isis-extd-isreach-oobr.pcap isis-extd-isreach-oobr.out -v + olsr-oobr-1 olsr-oobr-1.pcap olsr-oobr-1.out -v + olsr-oobr-2 olsr-oobr-2.pcap olsr-oobr-2.out -v + ikev1_id_ipv6_addr_subnet-oobr ikev1_id_ipv6_addr_subnet-oobr.pcap ikev1_id_ipv6_addr_subnet-oobr.out -v + isakmp-various-oobr isakmp-various-oobr.pcap isakmp-various-oobr.out -v + aoe-oobr-1 aoe-oobr-1.pcap aoe-oobr-1.out -v + frf16_magic_ie-oobr frf16_magic_ie-oobr.pcap frf16_magic_ie-oobr.out -v + rx_serviceid_oobr rx_serviceid_oobr.pcap rx_serviceid_oobr.out + bgp_mp_reach_nlri-oobr bgp_mp_reach_nlri-oobr.pcap bgp_mp_reach_nlri-oobr.out -v + + # bad packets from Katie Holly + mlppp-oobr mlppp-oobr.pcap mlppp-oobr.out + kh-timed-001-oobr kh-timed-001-oobr.pcap kh-timed-001-oobr.out + kh-timed-002-oobr kh-timed-002-oobr.pcap kh-timed-002-oobr.out + kh-timed-004-oobr kh-timed-004-oobr.pcap kh-timed-004-oobr.out + + # bad packets from Kim Gwan Yeong + mptcp-dss-oobr mptcp-dss-oobr.pcap mptcp-dss-oobr.out -v + icmp6_nodeinfo_oobr icmp6_nodeinfo_oobr.pcap icmp6_nodeinfo_oobr.out + + # bad packets from Henri Salo + rx_ubik-oobr rx_ubik-oobr.pcap rx_ubik-oobr.out + babel_update_oobr babel_update_oobr.pcap babel_update_oobr.out + + # bad packets from Junjie Wang + ospf6_print_lshdr-oobr ospf6_print_lshdr-oobr.pcap ospf6_print_lshdr-oobr.out -vv + rpl-dao-oobr rpl-dao-oobr.pcap rpl-dao-oobr.out -vv + hncp_prefix-oobr hncp_prefix-oobr.pcap hncp_prefix-oobr.out -vvv + smb_print_trans-oobr1 smb_print_trans-oobr1.pcap smb_print_trans-oobr1.out -vv + + # bad packets from Ryan Ackroyd + ieee802.11_meshhdr-oobr ieee802.11_meshhdr-oobr.pcap ieee802.11_meshhdr-oobr.out -H + dccp_options-oobr dccp_options-oobr.pcap dccp_options-oobr.out -vv + + # bad packets from Philippe Antoine + smb_print_trans-oobr2 smb_print_trans-oobr2.pcap smb_print_trans-oobr2.out -vv # RTP tests # fuzzed pcap - rtp-seg-fault-1 rtp-seg-fault-1.pcap rtp-seg-fault-1.out -t -v -T rtp - rtp-seg-fault-2 rtp-seg-fault-2.pcap rtp-seg-fault-2.out -t -v -T rtp + rtp-seg-fault-1 rtp-seg-fault-1.pcapng rtp-seg-fault-1.out -v -T rtp + rtp-seg-fault-2 rtp-seg-fault-2.pcapng rtp-seg-fault-2.out -v -T rtp - # NFS tests - # fuzzed pcap - nfs-seg-fault-1 nfs-seg-fault-1.pcap nfs-seg-fault-1.out -t + # SSH tests + ssh ssh.pcap ssh.out +# MACsec +macsec-encrypted macsec-encrypted.pcap macsec-encrypted.out -t -e +macsec-changed macsec-changed.pcap macsec-changed.out -t -e +macsec-integonly macsec-integonly.pcap macsec-integonly.out -t -e +macsec-snap macsec-snap.pcap macsec-snap.out -t -e +macsec-short-shorter macsec-short-shorter.pcap macsec-short-shorter.out -t -e +macsec-short-longer macsec-short-longer.pcap macsec-short-longer.out -t -e +macsec-short-valid macsec-short-valid.pcap macsec-short-valid.out -t -e ++ + # NFS tests ++# fuzzed pcap + nfs-write-verf-cookie nfs-write-verf-cookie.pcapng nfs-write-verf-cookie.out -vv + + # NFS fuzzed + nfs-seg-fault-1 nfs-seg-fault-1.pcapng nfs-seg-fault-1.out + # NFS invalid + nfs-cannot-pad-32-bit nfs-cannot-pad-32-bit.pcap nfs-cannot-pad-32-bit.out + + # DNS infinite loop tests + # + # 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 + + # NTP tests + ntp ntp.pcap ntp.out + ntp-v ntp.pcap ntp-v.out -v + ntp-time ntp-time.pcap ntp-time.out + ntp-time--v ntp-time.pcap ntp-time--v.out -v + ntp-time--vv ntp-time.pcap ntp-time--vv.out -vv + ntp-time--vvv ntp-time.pcap ntp-time--vvv.out -vvv + ntp-control ntp-control.pcap ntp-control.out + ntp-control--v ntp-control.pcap ntp-control--v.out -v + ntp-control--vv ntp-control.pcap ntp-control--vv.out -vv + ntp-control--vvv ntp-control.pcap ntp-control--vvv.out -vvv + ntp-mode7 ntp-mode7.pcap ntp-mode7.out + ntp-mode7--v ntp-mode7.pcap ntp-mode7--v.out -v + ntp-mode7--vv ntp-mode7.pcap ntp-mode7--vv.out -vv + ntp-mode7--vvv ntp-mode7.pcap ntp-mode7--vvv.out -vvv + + # RX/AFS + rx afs.pcap rx.out + rx-v afs.pcap rx-v.out -v + + # Empty pcap/pcapng tests + empty-pcap empty.pcap empty.out + empty-pcapng empty.pcapng empty.out + + # DNS Extended rcode tests + dns-badcookie dns-badcookie.pcap dns-badcookie.out + dns-badvers dns-badvers.pcap dns-badvers.out + + # LLDP + lldp-app-priority lldp-app-priority.pcap lldp-app-priority.out -v + + # DNS URI RR support tests + dns-uri dns-uri.pcap dns-uri.out + + # AF_VSOCK tests + vsock-1 vsock-1.pcapng vsock-1.out + vsock-1-v vsock-1.pcapng vsock-1-v.out -v + vsock-1-vv vsock-1.pcapng vsock-1-vv.out -vv + #IP over infinband (ipoib) + ipoib ipoib.pcap ipoib.out + ipoib-e ipoib.pcap ipoib-e.out -e + + # BFD multihop and lag (RFC5883 & 7130) + bfd-multihop bfd-multihop.pcap bfd-multihop.out + bfd-multihop-v bfd-multihop.pcap bfd-multihop-v.out -v + bfd-lag bfd-lag.pcap bfd-lag.out + bfd-lag-v bfd-lag.pcap bfd-lag-v.out -v + + # Arista Vendor Specific Tests + arista-ether arista_ether.pcap arista_ether.out + arista-ether-e arista_ether.pcap arista_ether-e.out -e + arista-ether-ev arista_ether.pcap arista_ether-ev.out -ev + + # TIPC length field test + 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 + smb_data_print-oobr smb_data_print-oobr.pcapng smb_data_print-oobr.out -vv + smb_data_print-segv smb_data_print-segv.pcapng smb_data_print-segv.out -vv + #ptp tests + ptp ptp.pcap ptp.out + ptp_ethernet ptp_ethernet.pcap ptp_ethernet.out -e + + # bad packets from Jason Xiaole + ldp_tlv_print-oobr ldp_tlv_print-oobr.pcap ldp_tlv_print-oobr.out -v + + #someip tests + someip1 someip1.pcap someip1.out + someip2 someip2.pcap someip2.out + + # EDNS Options + edns-opts edns-opts.pcap edns-opts.out + edns-opts-v edns-opts.pcap edns-opts-v.out -v + edns-opts-vv edns-opts.pcap edns-opts-vv.out -vv