# VPATH
srcdir = @srcdir@
+ top_srcdir = @top_srcdir@
VPATH = @srcdir@
#
@rm -f $@
$(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
- CSRC = setsignal.c tcpdump.c
+ CSRC = fptype.c tcpdump.c
LIBNETDISSECT_SRC=\
addrtoname.c \
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 \
print-aoe.c \
print-ap1394.c \
print-arcnet.c \
+ print-arista.c \
print-arp.c \
print-ascii.c \
print-atalk.c \
print-atm.c \
print-babel.c \
+ print-bcm-li.c \
print-beep.c \
print-bfd.c \
print-bgp.c \
print-bootp.c \
+ print-brcmtag.c \
print-bt.c \
print-calm-fast.c \
print-carp.c \
print-decnet.c \
print-dhcp6.c \
print-domain.c \
+ print-dsa.c \
print-dtp.c \
print-dvmrp.c \
print-eap.c \
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 \
print-lwapp.c \
print-lwres.c \
print-m3ua.c \
- print-medsa.c \
+ print-macsec.c \
print-mobile.c \
print-mobility.c \
print-mpcp.c \
print-ppp.c \
print-pppoe.c \
print-pptp.c \
+ print-ptp.c \
print-radius.c \
print-raw.c \
print-resp.c \
print-slow.c \
print-smtp.c \
print-snmp.c \
+ print-someip.c \
+ print-ssh.c \
print-stp.c \
print-sunatm.c \
print-sunrpc.c \
print-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 \
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 \
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 \
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 \
/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 \
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 \
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 $@
$(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
$(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) ] || \
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'
rm -rf autom4te.cache tests/DIFF tests/NEW
check: tcpdump
- (cd tests && ./TESTrun.sh)
+ $(srcdir)/tests/TESTrun
extags: $(TAGFILES)
ctags $(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; \
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)
* 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.
*
#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
#ifndef ETHERTYPE_8021QinQ
#define ETHERTYPE_8021QinQ 0x88a8
#endif
+#ifndef ETHERTYPE_MACSEC
+#define ETHERTYPE_MACSEC 0x88e5
+#endif
#ifndef ETHERTYPE_IPX
#define ETHERTYPE_IPX 0x8137
#endif
#ifndef ETHERTYPE_AOE
#define ETHERTYPE_AOE 0x88a2
#endif
+ #ifndef ETHERTYPE_PTP
+ #define ETHERTYPE_PTP 0x88f7
+ #endif
#ifndef ETHERTYPE_LOOPBACK
#define ETHERTYPE_LOOPBACK 0x9000
#endif
#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[];
#include "os-proto.h"
#endif
#include <sys/types.h>
-
- #ifndef HAVE___ATTRIBUTE__
- #define __attribute__(x)
- #endif
+ #include <setjmp.h>
+ #include "status-exit-codes.h"
/*
* Data types corresponding to multi-byte integral values within data
* 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];
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 <stdarg.h>
#include <pcap.h>
#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
#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 */
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 */
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 */
#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))
* 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)
*
* 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.
* 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
*/
/*
*/
#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 *);
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().
#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()
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) \
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;
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
/* 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);
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);
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 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 int macsec_print(netdissect_options *, const u_char **,
+ u_int *, u_int *, u_int *,
+ u_short *);
+ 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);
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);
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);
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);
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 */
/* \summary: Ethernet printer */
#ifdef HAVE_CONFIG_H
- #include "config.h"
+ #include <config.h>
#endif
- #include <netdissect-stdinc.h>
+ #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" },
{ 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"},
{ 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.
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)
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
*/
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));
}
*/
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);
}
*/
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);
}
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:
case ETHERTYPE_ARP:
case ETHERTYPE_REVARP:
- arp_print(ndo, p, length, caplen);
+ arp_print(ndo, p, length, caplen);
return (1);
case ETHERTYPE_DN:
case ETHERTYPE_ATALK:
if (ndo->ndo_vflag)
- ND_PRINT((ndo, "et1 "));
+ ND_PRINT("et1 ");
atalk_print(ndo, p, length);
return (1);
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:
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:
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:
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:
return (0);
}
}
-
-
- /*
- * Local Variables:
- * c-style: whitesmith
- * c-basic-offset: 8
- * End:
- */
-
- # 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.
#
# "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