mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-16 15:11:52 +00:00
Vendor import of tcpdump 4.4.0.
This commit is contained in:
parent
0de8253a2f
commit
f3d019c7d2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/tcpdump/dist/; revision=251127 svn path=/vendor/tcpdump/4.4.0/; revision=251128; tag=vendor/tcpdump/4.4.0
34
CHANGES
34
CHANGES
@ -1,3 +1,37 @@
|
||||
Thursday February 19, 2013 guy@alum.mit.edu.
|
||||
Summary for 4.4.0 tcpdump release
|
||||
RPKI-RTR (RFC6810) is now official (TCP Port 323)
|
||||
Fix detection of OpenSSL libcrypto.
|
||||
Add DNSSL (RFC6106) support.
|
||||
Add "radius" as an option for -T.
|
||||
Update Action codes for handle_action function according to
|
||||
802.11s amendment.
|
||||
Decode DHCPv6 AFTR-Name option (RFC6334).
|
||||
Updates for Babel.
|
||||
Fix printing of infinite lifetime in ICMPv6.
|
||||
Added support for SPB, SPBM Service Identifier, and Unicast
|
||||
Address sub-TLV in ISIS.
|
||||
Decode RIPv2 authentication up to RFC4822.
|
||||
Fix RIP Request/full table decoding issues.
|
||||
On Linux systems with cap-ng.h, drop root privileges
|
||||
using Linux Capabilities.
|
||||
Add support for reading multiple files.
|
||||
|
||||
Wednesday November 28, 2012 guy@alum.mit.edu.
|
||||
Summary for 4.3.1 tcpdump release
|
||||
Print "LLDP, length N" for LLDP packets even when not in verbose
|
||||
mode, so something is printed even if only the timestamp is
|
||||
present
|
||||
Document "-T carp"
|
||||
Print NTP poll interval correctly (it's an exponent, so print
|
||||
both its raw value and 2^value)
|
||||
Document that "-e" is used to get MAC addresses
|
||||
More clearly document that you need to escape or quote
|
||||
backslashes in filter expressions on the command line
|
||||
Fix some "the the" in the man page
|
||||
Use the right maximum path length
|
||||
Don't treat 192_1_2, when passed to -i, as an interface number
|
||||
|
||||
Friday April 3, 2011. mcr@sandelman.ca.
|
||||
Summary for 4.3.0 tcpdump release
|
||||
fixes for forces: SPARSE data (per RFC 5810)
|
||||
|
1
CREDITS
1
CREDITS
@ -52,6 +52,7 @@ Additional people who have contributed patches:
|
||||
David Horn <dhorn2000 at gmail dot com>
|
||||
David Smith <dsmith at redhat dot com>
|
||||
David Young <dyoung at ojctech dot com>
|
||||
Denis Ovsienko <infrastation at yandex dot ru>
|
||||
Dmitry Eremin-Solenikov <dbaryshkov at gmail dot com>
|
||||
Don Ebright <Don dot Ebright at compuware dot com>
|
||||
Eddie Kohler <xexd at sourceforge dot net>
|
||||
|
98
Makefile.in
98
Makefile.in
@ -84,7 +84,7 @@ CSRC = addrtoname.c af.c checksum.c cpack.c gmpls.c oui.c gmt2local.c ipproto.c
|
||||
print-l2tp.c print-lane.c print-ldp.c print-lldp.c print-llc.c \
|
||||
print-lmp.c print-lspping.c print-lwapp.c \
|
||||
print-lwres.c print-mobile.c print-mpcp.c print-mpls.c print-msdp.c \
|
||||
print-nfs.c print-ntp.c print-null.c print-olsr.c print-ospf.c \
|
||||
print-msnlb.c print-nfs.c print-ntp.c print-null.c print-olsr.c print-ospf.c \
|
||||
print-pgm.c print-pim.c \
|
||||
print-ppi.c print-ppp.c print-pppoe.c print-pptp.c \
|
||||
print-radius.c print-raw.c print-rip.c print-rpki-rtr.c print-rrcp.c print-rsvp.c \
|
||||
@ -93,7 +93,7 @@ CSRC = addrtoname.c af.c checksum.c cpack.c gmpls.c oui.c gmt2local.c ipproto.c
|
||||
print-symantec.c print-syslog.c print-tcp.c print-telnet.c print-tftp.c \
|
||||
print-timed.c print-tipc.c print-token.c print-udld.c print-udp.c \
|
||||
print-usb.c print-vjc.c print-vqp.c print-vrrp.c print-vtp.c \
|
||||
print-wb.c print-zephyr.c signature.c setsignal.c tcpdump.c util.c
|
||||
print-wb.c print-zephyr.c print-zeromq.c print-vxlan.c print-otv.c signature.c setsignal.c tcpdump.c util.c
|
||||
|
||||
LIBNETDISSECT_SRC=print-isakmp.c
|
||||
LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o)
|
||||
@ -263,93 +263,8 @@ EXTRA_DIST = \
|
||||
stime.awk \
|
||||
strcasecmp.c \
|
||||
tcpdump.1.in \
|
||||
tests/02-sunrise-sunset-esp.pcap \
|
||||
tests/08-sunrise-sunset-aes.pcap \
|
||||
tests/08-sunrise-sunset-esp2.pcap \
|
||||
tests/QinQpacket.out \
|
||||
tests/QinQpacket.pcap \
|
||||
tests/QinQpacketv.out \
|
||||
tests/TESTLIST \
|
||||
tests/TESTonce \
|
||||
tests/TESTrun.sh \
|
||||
tests/babel.pcap \
|
||||
tests/babel1.out \
|
||||
tests/babel1v.out \
|
||||
tests/bgp-infinite-loop.pcap \
|
||||
tests/bgp_vpn_attrset.out \
|
||||
tests/bgp_vpn_attrset.pcap \
|
||||
tests/chdlc-slarp-short.pcap \
|
||||
tests/chdlc-slarp.pcap \
|
||||
tests/dio.out \
|
||||
tests/dio.pcap \
|
||||
tests/e1000g.out \
|
||||
tests/e1000g.pcap \
|
||||
tests/eapon1.gdbinit \
|
||||
tests/eapon1.out \
|
||||
tests/eapon1.pcap \
|
||||
tests/empty.uu \
|
||||
tests/esp-secrets.txt \
|
||||
tests/esp0.out \
|
||||
tests/esp1.gdbinit \
|
||||
tests/esp1.out \
|
||||
tests/esp2.gdbinit \
|
||||
tests/esp2.out \
|
||||
tests/esp3.gdbinit \
|
||||
tests/esp4.gdbinit \
|
||||
tests/esp5.gdbinit \
|
||||
tests/esp5.out \
|
||||
tests/espudp1.out \
|
||||
tests/espudp1.pcap \
|
||||
tests/forces1.out \
|
||||
tests/forces1.pcap \
|
||||
tests/forces1vvv.out \
|
||||
tests/forces1vvvv.out \
|
||||
tests/forces2v.out \
|
||||
tests/forces2vv.out \
|
||||
tests/forces3vvv.out \
|
||||
tests/icmpv6.out \
|
||||
tests/icmpv6.pcap \
|
||||
tests/ikev2four.out \
|
||||
tests/ikev2four.pcap \
|
||||
tests/ikev2fourv.out \
|
||||
tests/ikev2fourv4.out \
|
||||
tests/ikev2pI2-secrets.txt \
|
||||
tests/ikev2pI2.out \
|
||||
tests/ikev2pI2.pcap \
|
||||
tests/isakmp-delete-segfault.pcap \
|
||||
tests/isakmp-identification-segfault.pcap \
|
||||
tests/isakmp-pointer-loop.pcap \
|
||||
tests/isakmp1.out \
|
||||
tests/isakmp2.out \
|
||||
tests/isakmp3.out \
|
||||
tests/isakmp4.out \
|
||||
tests/isakmp4500.pcap \
|
||||
tests/isis-infinite-loop.pcap \
|
||||
tests/ldp-infinite-loop.pcap \
|
||||
tests/lmp.out \
|
||||
tests/lmp.pcap \
|
||||
tests/lmp.sh \
|
||||
tests/lspping-fec-ldp.pcap \
|
||||
tests/lspping-fec-rsvp.pcap \
|
||||
tests/mpls-ldp-hello.out \
|
||||
tests/mpls-ldp-hello.pcap \
|
||||
tests/mpls-traceroute.pcap \
|
||||
tests/ospf-gmpls.out \
|
||||
tests/ospf-gmpls.pcap \
|
||||
tests/pppoe.out \
|
||||
tests/pppoe.pcap \
|
||||
tests/print-A.out \
|
||||
tests/print-AA.out \
|
||||
tests/print-capX.out \
|
||||
tests/print-capXX.out \
|
||||
tests/print-flags.pcap \
|
||||
tests/print-flags.sh \
|
||||
tests/print-x.out \
|
||||
tests/print-xx.out \
|
||||
tests/rsvp-infinite-loop.pcap \
|
||||
tests/sflow_multiple_counter_30_pdus.out \
|
||||
tests/sflow_multiple_counter_30_pdus.pcap \
|
||||
vfprintf.c \
|
||||
win32/Include/bittypes.h \
|
||||
win32/Include/errno.h \
|
||||
win32/Include/getopt.h \
|
||||
win32/Include/w32_fzs.h \
|
||||
@ -358,6 +273,8 @@ EXTRA_DIST = \
|
||||
win32/prj/WinDump.dsp \
|
||||
win32/prj/WinDump.dsw
|
||||
|
||||
TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print`
|
||||
|
||||
all: $(PROG)
|
||||
|
||||
$(PROG): $(OBJ) @V_PCAPDEP@
|
||||
@ -443,9 +360,12 @@ TAGS: $(TAGFILES)
|
||||
releasetar:
|
||||
@cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \
|
||||
mkdir $$name; \
|
||||
tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) | (cd $$name; tar xf -); \
|
||||
tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST) | (cd $$name; tar xf -); \
|
||||
tar -c -z -f $$name.tar.gz $$name; \
|
||||
rm -rf $$name
|
||||
|
||||
testlist:
|
||||
echo $(TEST_DIST)
|
||||
|
||||
depend: $(GENSRC)
|
||||
${srcdir}/mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC)
|
||||
|
22
README
22
README
@ -13,8 +13,11 @@ Anonymous Git is available via:
|
||||
Version 4.x.y of TCPDUMP can be retrieved with the CVS tag "tcpdump_4_xrely":
|
||||
cvs -d :pserver:cvs.tcpdump.org:/tcpdump/master checkout -r tcpdump_4_xrely tcpdump
|
||||
|
||||
Please submit patches against the master copy to the tcpdump project on
|
||||
sourceforge.net.
|
||||
Please submit patches by forking the branch on GitHub at
|
||||
|
||||
http://github.com/mcr/tcpdump/tree/master
|
||||
|
||||
and issuing a pull request.
|
||||
|
||||
formerly from Lawrence Berkeley National Laboratory
|
||||
Network Research Group <tcpdump@ee.lbl.gov>
|
||||
@ -68,16 +71,19 @@ documentation.
|
||||
|
||||
Problems, bugs, questions, desirable enhancements, etc. should be sent
|
||||
to the address "tcpdump-workers@lists.tcpdump.org". Bugs, support
|
||||
requests, and feature requests may also be submitted on the SourceForge
|
||||
site for tcpdump at
|
||||
requests, and feature requests may also be submitted on the GitHub issue
|
||||
tracker for tcpdump at
|
||||
|
||||
http://sourceforge.net/projects/tcpdump/
|
||||
https://github.com/mcr/tcpdump/issues
|
||||
|
||||
Source code contributions, etc. should be sent to the email address
|
||||
submitted as patches on the SourceForge site for tcpdump.
|
||||
above or submitted by forking the branch on GitHub at
|
||||
|
||||
Current versions can be found at www.tcpdump.org, or the SourceForge
|
||||
site for tcpdump.
|
||||
http://github.com/mcr/tcpdump/tree/master
|
||||
|
||||
and issuing a pull request.
|
||||
|
||||
Current versions can be found at www.tcpdump.org.
|
||||
|
||||
- The TCPdump team
|
||||
|
||||
|
@ -381,6 +381,9 @@ lookup_bytestring(register const u_char *bs, const unsigned int nlen)
|
||||
tp->e_addr2 = k;
|
||||
|
||||
tp->e_bs = (u_char *) calloc(1, nlen + 1);
|
||||
if (tp->e_bs == NULL)
|
||||
error("lookup_bytestring: calloc");
|
||||
|
||||
memcpy(tp->e_bs, bs, nlen);
|
||||
tp->e_nxt = (struct enamemem *)calloc(1, sizeof(*tp));
|
||||
if (tp->e_nxt == NULL)
|
||||
|
@ -152,8 +152,6 @@ create_osi_cksum (const u_int8_t *pptr, int checksum_offset, int length)
|
||||
u_int16_t checksum;
|
||||
int index;
|
||||
|
||||
checksum = 0;
|
||||
|
||||
c0 = 0;
|
||||
c1 = 0;
|
||||
|
||||
|
73
configure.in
73
configure.in
@ -994,13 +994,13 @@ AC_LBL_UNALIGNED_ACCESS
|
||||
|
||||
AC_VAR_H_ERRNO
|
||||
|
||||
# Check for SSLeay
|
||||
AC_MSG_CHECKING(whether to use SSLeay libcrypto)
|
||||
# Check for OpenSSL libcrypto
|
||||
AC_MSG_CHECKING(whether to use OpenSSL libcrypto)
|
||||
# Specify location for both includes and libraries.
|
||||
want_libcrypto=youmama
|
||||
want_libcrypto=ifavailable
|
||||
AC_ARG_WITH(crypto,
|
||||
AS_HELP_STRING([--with-crypto@<:@=PATH@:>@],
|
||||
[use SSLeay libcrypto (located in directory PATH, if supplied). @<:@default=yes, if available@:>@]),
|
||||
AS_HELP_STRING([--with-crypto],
|
||||
[use OpenSSL libcrypto @<:@default=yes, if available@:>@]),
|
||||
[
|
||||
if test $withval = no
|
||||
then
|
||||
@ -1010,10 +1010,6 @@ AC_ARG_WITH(crypto,
|
||||
then
|
||||
want_libcrypto=yes
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
want_libcrypto=yes
|
||||
AC_MSG_RESULT(yes)
|
||||
crypto_dir=$withval
|
||||
fi
|
||||
],[
|
||||
#
|
||||
@ -1023,63 +1019,8 @@ AC_ARG_WITH(crypto,
|
||||
AC_MSG_RESULT([yes, if available])
|
||||
])
|
||||
if test "$want_libcrypto" != "no"; then
|
||||
ac_cv_ssleay_path=no
|
||||
incdir=no
|
||||
if test "x$crypto_dir" = x; then
|
||||
#
|
||||
# Location not specified; check the default locations.
|
||||
#
|
||||
AC_MSG_CHECKING(where SSLeay is located)
|
||||
dirs="/usr /usr/local /usr/local/ssl /usr/pkg"
|
||||
if test "x${host_alias}" != x; then
|
||||
dirs="/usr/${host_alias} $dirs"
|
||||
fi
|
||||
for dir in $dirs; do
|
||||
AC_LBL_SSLEAY($dir)
|
||||
|
||||
if test "$ac_cv_ssleay_path" != "no" -a "$incdir" != "no"; then
|
||||
break;
|
||||
else
|
||||
ac_cv_ssleay_path=no
|
||||
incdir=no
|
||||
fi
|
||||
done
|
||||
if test "$ac_cv_ssleay_path" != no; then
|
||||
AC_MSG_RESULT($ac_cv_ssleay_path)
|
||||
fi
|
||||
else
|
||||
AC_MSG_CHECKING(for SSLeay in $crypto_dir)
|
||||
AC_LBL_SSLEAY($crypto_dir)
|
||||
if test "$ac_cv_ssleay_path" != no; then
|
||||
AC_MSG_RESULT(found)
|
||||
fi
|
||||
fi
|
||||
if test "$ac_cv_ssleay_path" != no; then
|
||||
V_INCLS="$V_INCLS $incdir"
|
||||
if test "$dir" != "/usr"; then
|
||||
LDFLAGS="-L$dir/lib $LDFLAGS"
|
||||
fi
|
||||
if test -f $ac_cv_ssleay_path/lib/libRSAglue.a; then
|
||||
LIBS="$LIBS -lRSAglue"
|
||||
fi
|
||||
if test -f $ac_cv_ssleay_path/lib/librsaref.a; then
|
||||
LIBS="$LIBS -lrsaref"
|
||||
fi
|
||||
AC_CHECK_LIB(crypto, DES_cbc_encrypt)
|
||||
|
||||
savedcppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $V_INCLS"
|
||||
AC_CHECK_HEADERS(openssl/evp.h)
|
||||
CPPFLAGS="$savedcppflags"
|
||||
else
|
||||
#
|
||||
# Not found. Did the user explicitly ask for it?
|
||||
#
|
||||
AC_MSG_RESULT(not found)
|
||||
if test "$want_libcrypto" = yes; then
|
||||
AC_MSG_ERROR(SSLeay not found)
|
||||
fi
|
||||
fi
|
||||
AC_CHECK_LIB(crypto, DES_cbc_encrypt)
|
||||
AC_CHECK_HEADERS(openssl/evp.h)
|
||||
fi
|
||||
|
||||
dnl
|
||||
|
@ -153,6 +153,9 @@
|
||||
#ifndef ETHERTYPE_PPPOES2
|
||||
#define ETHERTYPE_PPPOES2 0x3c13
|
||||
#endif
|
||||
#ifndef ETHERTYPE_MS_NLB_HB
|
||||
#define ETHERTYPE_MS_NLB_HB 0x886f /* MS Network Load Balancing Heartbeat */
|
||||
#endif
|
||||
#ifndef ETHERTYPE_JUMBO
|
||||
#define ETHERTYPE_JUMBO 0x8870
|
||||
#endif
|
||||
|
11
icmp6.h
11
icmp6.h
@ -277,6 +277,7 @@ struct nd_opt_hdr { /* Neighbor discovery option header */
|
||||
#define ND_OPT_HOMEAGENT_INFO 8
|
||||
#define ND_OPT_ROUTE_INFO 9 /* draft-ietf-ipngwg-router-preference, not officially assigned yet */
|
||||
#define ND_OPT_RDNSS 25
|
||||
#define ND_OPT_DNSSL 31
|
||||
|
||||
struct nd_opt_prefix_info { /* prefix information */
|
||||
u_int8_t nd_opt_pi_type;
|
||||
@ -308,7 +309,7 @@ struct nd_opt_mtu { /* MTU option */
|
||||
u_int32_t nd_opt_mtu_mtu;
|
||||
};
|
||||
|
||||
struct nd_opt_rdnss { /* RDNSS RFC 5006 */
|
||||
struct nd_opt_rdnss { /* RDNSS RFC 6106 5.1 */
|
||||
u_int8_t nd_opt_rdnss_type;
|
||||
u_int8_t nd_opt_rdnss_len;
|
||||
u_int16_t nd_opt_rdnss_reserved;
|
||||
@ -316,6 +317,14 @@ struct nd_opt_rdnss { /* RDNSS RFC 5006 */
|
||||
struct in6_addr nd_opt_rdnss_addr[1]; /* variable-length */
|
||||
};
|
||||
|
||||
struct nd_opt_dnssl { /* DNSSL RFC 6106 5.2 */
|
||||
u_int8_t nd_opt_dnssl_type;
|
||||
u_int8_t nd_opt_dnssl_len;
|
||||
u_int16_t nd_opt_dnssl_reserved;
|
||||
u_int32_t nd_opt_dnssl_lifetime;
|
||||
/* followed by list of DNS search domains, variable-length */
|
||||
};
|
||||
|
||||
struct nd_opt_advinterval { /* Advertisement interval option */
|
||||
u_int8_t nd_opt_adv_type;
|
||||
u_int8_t nd_opt_adv_len;
|
||||
|
@ -70,7 +70,10 @@ extern char *strsep(char **, const char *);
|
||||
#define PT_CNFP 7 /* Cisco NetFlow protocol */
|
||||
#define PT_TFTP 8 /* trivial file transfer protocol */
|
||||
#define PT_AODV 9 /* Ad-hoc On-demand Distance Vector Protocol */
|
||||
#define PT_CARP 10 /* Common Address Redundancy Protocol */
|
||||
#define PT_CARP 10 /* Common Address Redundancy Protocol */
|
||||
#define PT_RADIUS 11 /* RADIUS authentication Protocol */
|
||||
#define PT_ZMTP1 12 /* ZeroMQ Message Transport Protocol 1.0 */
|
||||
#define PT_VXLAN 13 /* Virtual eXtensible Local Area Network */
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) ((a)>(b)?(b):(a))
|
||||
@ -215,6 +218,7 @@ extern void msdp_print(const unsigned char *, u_int);
|
||||
extern void nfsreply_print(const u_char *, u_int, const u_char *);
|
||||
extern void nfsreq_print(const u_char *, u_int, const u_char *);
|
||||
extern void ns_print(const u_char *, u_int, int);
|
||||
extern const u_char * ns_nprint (register const u_char *, register const u_char *);
|
||||
extern void ntp_print(const u_char *, u_int);
|
||||
extern u_int null_if_print(const struct pcap_pkthdr *, const u_char *);
|
||||
extern void ospf_print(const u_char *, u_int, const u_char *);
|
||||
@ -309,6 +313,7 @@ extern void forces_print(const u_char *, u_int);
|
||||
extern void mpls_print(const u_char *, u_int);
|
||||
extern void mpls_lsp_ping_print(const u_char *, u_int);
|
||||
extern void zephyr_print(const u_char *, int);
|
||||
extern void zmtp1_print(const u_char *, u_int);
|
||||
extern void hsrp_print(const u_char *, u_int);
|
||||
extern void bfd_print(const u_char *, u_int, u_int);
|
||||
extern void sip_print(const u_char *, u_int);
|
||||
|
21
netdissect.h
21
netdissect.h
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 1988-1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Copyright (c) 1998-2004 Michael Richardson <mcr@tcpdump.org>
|
||||
* Copyright (c) 1998-2012 Michael Richardson <mcr@tcpdump.org>
|
||||
* The TCPDUMP project
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -110,7 +110,7 @@ struct netdissect_options {
|
||||
int ndo_jflag; /* packet time stamp source */
|
||||
int ndo_pflag; /* don't go promiscuous */
|
||||
|
||||
int ndo_Cflag; /* rotate dump files after this many bytes */
|
||||
int ndo_Cflag; /* rotate dump files after this many bytes */
|
||||
int ndo_Cflag_count; /* Keep track of which file number we're writing */
|
||||
int ndo_Gflag; /* rotate dump files after this many seconds */
|
||||
int ndo_Gflag_count; /* number of files created with Gflag rotation */
|
||||
@ -177,6 +177,12 @@ struct netdissect_options {
|
||||
#define PT_RTCP 5 /* Real-Time Applications control protocol */
|
||||
#define PT_SNMP 6 /* Simple Network Management Protocol */
|
||||
#define PT_CNFP 7 /* Cisco NetFlow protocol */
|
||||
#define PT_TFTP 8 /* trivial file transfer protocol */
|
||||
#define PT_AODV 9 /* Ad-hoc On-demand Distance Vector Protocol */
|
||||
#define PT_CARP 10 /* Common Address Redundancy Protocol */
|
||||
#define PT_RADIUS 11 /* RADIUS authentication Protocol */
|
||||
#define PT_ZMTP1 12 /* ZeroMQ Message Transport Protocol 1.0 */
|
||||
#define PT_VXLAN 13 /* Virtual eXtensible Local Area Network */
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) ((a)>(b)?(b):(a))
|
||||
@ -234,7 +240,7 @@ struct netdissect_options {
|
||||
#define ND_PRINT(STUFF) (*ndo->ndo_printf)STUFF
|
||||
#define ND_DEFAULTPRINT(ap, length) (*ndo->ndo_default_print)(ndo, ap, length)
|
||||
|
||||
#if 0
|
||||
#if 0
|
||||
extern void ts_print(netdissect_options *ipdo,
|
||||
const struct timeval *);
|
||||
extern void relts_print(int);
|
||||
@ -281,6 +287,7 @@ extern int esp_print(netdissect_options *,
|
||||
int *nhdr, int *padlen);
|
||||
extern void arp_print(netdissect_options *,const u_char *, u_int, u_int);
|
||||
extern void tipc_print(netdissect_options *, const u_char *, u_int, u_int);
|
||||
extern void msnlb_print(netdissect_options *, const u_char *, u_int);
|
||||
extern void icmp6_print(netdissect_options *ndo, const u_char *,
|
||||
u_int, const u_char *, int);
|
||||
extern void isakmp_print(netdissect_options *,const u_char *,
|
||||
@ -298,11 +305,11 @@ extern void ether_print(netdissect_options *,
|
||||
void (*)(netdissect_options *, const u_char *),
|
||||
const u_char *);
|
||||
|
||||
extern u_int ether_if_print(netdissect_options *,
|
||||
extern u_int ether_if_print(netdissect_options *,
|
||||
const struct pcap_pkthdr *,const u_char *);
|
||||
extern u_int netanalyzer_if_print(netdissect_options *,
|
||||
extern u_int netanalyzer_if_print(netdissect_options *,
|
||||
const struct pcap_pkthdr *,const u_char *);
|
||||
extern u_int netanalyzer_transparent_if_print(netdissect_options *,
|
||||
extern u_int netanalyzer_transparent_if_print(netdissect_options *,
|
||||
const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
|
||||
@ -407,7 +414,7 @@ extern void rip_print(netdissect_options *,const u_char *, u_int);
|
||||
extern void rpki_rtr_print(netdissect_options *,const u_char *, u_int);
|
||||
|
||||
extern void sctp_print(netdissect_options *ndo,
|
||||
const u_char *bp, const u_char *bp2,
|
||||
const u_char *bp, const u_char *bp2,
|
||||
u_int sctpPacketLength);
|
||||
|
||||
extern void sl_if_print(u_char *,const struct pcap_pkthdr *, const u_char *);
|
||||
|
1
nlpid.c
1
nlpid.c
@ -36,6 +36,7 @@ const struct tok nlpid_values[] = {
|
||||
{ NLPID_ISIS, "IS-IS" },
|
||||
{ NLPID_CONS, "CONS" },
|
||||
{ NLPID_IDRP, "IDRP" },
|
||||
{ NLPID_SPB, "ISIS_SPB" },
|
||||
{ NLPID_MFR, "FRF.15" },
|
||||
{ NLPID_IP, "IPv4" },
|
||||
{ NLPID_PPP, "PPP" },
|
||||
|
9
nlpid.h
9
nlpid.h
@ -16,16 +16,17 @@
|
||||
|
||||
extern const struct tok nlpid_values[];
|
||||
|
||||
#define NLPID_NULLNS 0x00
|
||||
#define NLPID_NULLNS 0x00
|
||||
#define NLPID_Q933 0x08 /* ANSI T1.617 Annex D or ITU-T Q.933 Annex A */
|
||||
#define NLPID_LMI 0x09 /* The original, aka Cisco, aka Gang of Four */
|
||||
#define NLPID_SNAP 0x80
|
||||
#define NLPID_CLNP 0x81 /* iso9577 */
|
||||
#define NLPID_ESIS 0x82 /* iso9577 */
|
||||
#define NLPID_ISIS 0x83 /* iso9577 */
|
||||
#define NLPID_CLNP 0x81 /* iso9577 */
|
||||
#define NLPID_ESIS 0x82 /* iso9577 */
|
||||
#define NLPID_ISIS 0x83 /* iso9577 */
|
||||
#define NLPID_CONS 0x84
|
||||
#define NLPID_IDRP 0x85
|
||||
#define NLPID_MFR 0xb1 /* FRF.15 */
|
||||
#define NLPID_SPB 0xc1 /* IEEE 802.1aq/D4.5 */
|
||||
#define NLPID_IP 0xcc
|
||||
#define NLPID_PPP 0xcf
|
||||
#define NLPID_X25_ESIS 0x8a
|
||||
|
@ -1223,6 +1223,34 @@ handle_deauth(const struct mgmt_header_t *pmh, const u_char *p, u_int length)
|
||||
printf("Act#%d", (v)) \
|
||||
)
|
||||
|
||||
#define PRINT_MESH_ACTION(v) (\
|
||||
(v) == 0 ? printf("MeshLink") : \
|
||||
(v) == 1 ? printf("HWMP") : \
|
||||
(v) == 2 ? printf("Gate Announcement") : \
|
||||
(v) == 3 ? printf("Congestion Control") : \
|
||||
(v) == 4 ? printf("MCCA Setup Request") : \
|
||||
(v) == 5 ? printf("MCCA Setup Reply") : \
|
||||
(v) == 6 ? printf("MCCA Advertisement Request") : \
|
||||
(v) == 7 ? printf("MCCA Advertisement") : \
|
||||
(v) == 8 ? printf("MCCA Teardown") : \
|
||||
(v) == 9 ? printf("TBTT Adjustment Request") : \
|
||||
(v) == 10 ? printf("TBTT Adjustment Response") : \
|
||||
printf("Act#%d", (v)) \
|
||||
)
|
||||
#define PRINT_MULTIHOP_ACTION(v) (\
|
||||
(v) == 0 ? printf("Proxy Update") : \
|
||||
(v) == 1 ? printf("Proxy Update Confirmation") : \
|
||||
printf("Act#%d", (v)) \
|
||||
)
|
||||
#define PRINT_SELFPROT_ACTION(v) (\
|
||||
(v) == 1 ? printf("Peering Open") : \
|
||||
(v) == 2 ? printf("Peering Confirm") : \
|
||||
(v) == 3 ? printf("Peering Close") : \
|
||||
(v) == 4 ? printf("Group Key Inform") : \
|
||||
(v) == 5 ? printf("Group Key Acknowledge") : \
|
||||
printf("Act#%d", (v)) \
|
||||
)
|
||||
|
||||
static int
|
||||
handle_action(const struct mgmt_header_t *pmh, const u_char *p, u_int length)
|
||||
{
|
||||
@ -1241,12 +1269,13 @@ handle_action(const struct mgmt_header_t *pmh, const u_char *p, u_int length)
|
||||
case 2: printf("DLS Act#%d", p[1]); break;
|
||||
case 3: printf("BA "); PRINT_BA_ACTION(p[1]); break;
|
||||
case 7: printf("HT "); PRINT_HT_ACTION(p[1]); break;
|
||||
case 13: printf("MeshLMetric "); PRINT_MESHLINK_ACTION(p[1]); break;
|
||||
case 15: printf("Interwork Act#%d", p[1]); break;
|
||||
case 16: printf("Resource Act#%d", p[1]); break;
|
||||
case 17: printf("Proxy Act#%d", p[1]); break;
|
||||
case 30: printf("MeshPeering "); PRINT_MESHPEERING_ACTION(p[1]); break;
|
||||
case 32: printf("MeshPath "); PRINT_MESHPATH_ACTION(p[1]); break;
|
||||
case 13: printf("MeshAction "); PRINT_MESH_ACTION(p[1]); break;
|
||||
case 14:
|
||||
printf("MultiohopAction ");
|
||||
PRINT_MULTIHOP_ACTION(p[1]); break;
|
||||
case 15:
|
||||
printf("SelfprotectAction ");
|
||||
PRINT_SELFPROT_ACTION(p[1]); break;
|
||||
case 127: printf("Vendor Act#%d", p[1]); break;
|
||||
default:
|
||||
printf("Reserved(%d) Act#%d", p[0], p[1]);
|
||||
|
@ -81,6 +81,8 @@ babel_print(const u_char *cp, u_int length) {
|
||||
#define MESSAGE_UPDATE 8
|
||||
#define MESSAGE_REQUEST 9
|
||||
#define MESSAGE_MH_REQUEST 10
|
||||
#define MESSAGE_TSPC 11
|
||||
#define MESSAGE_HMAC 12
|
||||
|
||||
static const char *
|
||||
format_id(const u_char *id)
|
||||
@ -102,7 +104,11 @@ format_prefix(const u_char *prefix, unsigned char plen)
|
||||
if(plen >= 96 && memcmp(prefix, v4prefix, 12) == 0)
|
||||
snprintf(buf, 50, "%s/%u", ipaddr_string(prefix + 12), plen - 96);
|
||||
else
|
||||
#ifdef INET6
|
||||
snprintf(buf, 50, "%s/%u", ip6addr_string(prefix), plen);
|
||||
#else
|
||||
snprintf(buf, 50, "IPv6 addresses not supported");
|
||||
#endif
|
||||
buf[49] = '\0';
|
||||
return buf;
|
||||
}
|
||||
@ -113,7 +119,11 @@ format_address(const u_char *prefix)
|
||||
if(memcmp(prefix, v4prefix, 12) == 0)
|
||||
return ipaddr_string(prefix + 12);
|
||||
else
|
||||
#ifdef INET6
|
||||
return ip6addr_string(prefix);
|
||||
#else
|
||||
return "IPv6 addresses not supported";
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
@ -199,7 +209,7 @@ babel_print_v2(const u_char *cp, u_int length) {
|
||||
i = 0;
|
||||
while(i < bodylen) {
|
||||
const u_char *message;
|
||||
u_char type, len;
|
||||
u_int type, len;
|
||||
|
||||
message = cp + 4 + i;
|
||||
TCHECK2(*message, 2);
|
||||
@ -394,6 +404,29 @@ babel_print_v2(const u_char *cp, u_int length) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MESSAGE_TSPC :
|
||||
if(!vflag)
|
||||
printf(" tspc");
|
||||
else {
|
||||
printf("\n\tTS/PC ");
|
||||
if(len < 6) goto corrupt;
|
||||
printf("timestamp %u packetcounter %u", EXTRACT_32BITS (message + 4),
|
||||
EXTRACT_16BITS(message + 2));
|
||||
}
|
||||
break;
|
||||
case MESSAGE_HMAC : {
|
||||
if(!vflag)
|
||||
printf(" hmac");
|
||||
else {
|
||||
unsigned j;
|
||||
printf("\n\tHMAC ");
|
||||
if(len < 18) goto corrupt;
|
||||
printf("key-id %u digest-%u ", EXTRACT_16BITS(message + 2), len - 2);
|
||||
for (j = 0; j < len - 2; j++)
|
||||
printf ("%02X", message[4 + j]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if(!vflag)
|
||||
printf(" unknown");
|
||||
|
@ -1531,8 +1531,12 @@ bgp_attr_print(u_int atype, const u_char *pptr, u_int len)
|
||||
tptr++;
|
||||
|
||||
if (tlen) {
|
||||
int nnh = 0;
|
||||
printf("\n\t nexthop: ");
|
||||
while (tlen > 0) {
|
||||
if ( nnh++ > 0 ) {
|
||||
printf( ", " );
|
||||
}
|
||||
switch(af<<8 | safi) {
|
||||
case (AFNUM_INET<<8 | SAFNUM_UNICAST):
|
||||
case (AFNUM_INET<<8 | SAFNUM_MULTICAST):
|
||||
|
@ -29,13 +29,14 @@
|
||||
/*
|
||||
* RFC3315: DHCPv6
|
||||
* supported DHCPv6 options:
|
||||
* RFC3319,
|
||||
* RFC3633,
|
||||
* RFC3646,
|
||||
* RFC3898,
|
||||
* RFC4075,
|
||||
* RFC4242,
|
||||
* RFC4280,
|
||||
* RFC3319: Session Initiation Protocol (SIP) Servers options,
|
||||
* RFC3633: IPv6 Prefix options,
|
||||
* RFC3646: DNS Configuration options,
|
||||
* RFC3898: Network Information Service (NIS) Configuration options,
|
||||
* RFC4075: Simple Network Time Protocol (SNTP) Configuration option,
|
||||
* RFC4242: Information Refresh Time option,
|
||||
* RFC4280: Broadcast and Multicast Control Servers options,
|
||||
* RFC6334: Dual-Stack Lite option,
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@ -170,6 +171,7 @@ struct dhcp6_relay {
|
||||
#define DH6OPT_CLT_TIME 46
|
||||
#define DH6OPT_LQ_RELAY_DATA 47
|
||||
#define DH6OPT_LQ_CLIENT_LINK 48
|
||||
#define DH6OPT_AFTR_NAME 64
|
||||
|
||||
struct dhcp6opt {
|
||||
u_int16_t dh6opt_type;
|
||||
@ -278,6 +280,8 @@ dhcp6opt_name(int type)
|
||||
return "LQ-relay-data";
|
||||
case DH6OPT_LQ_CLIENT_LINK:
|
||||
return "LQ-client-link";
|
||||
case DH6OPT_AFTR_NAME:
|
||||
return "AFTR-Name";
|
||||
default:
|
||||
snprintf(genstr, sizeof(genstr), "opt_%d", type);
|
||||
return(genstr);
|
||||
@ -338,6 +342,7 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
if (ep < cp + sizeof(*dh6o))
|
||||
goto trunc;
|
||||
dh6o = (struct dhcp6opt *)cp;
|
||||
TCHECK(*dh6o);
|
||||
optlen = EXTRACT_16BITS(&dh6o->dh6opt_len);
|
||||
if (ep < cp + sizeof(*dh6o) + optlen)
|
||||
goto trunc;
|
||||
@ -410,7 +415,7 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
EXTRACT_32BITS(&tp[20]));
|
||||
if (optlen > 24) {
|
||||
/* there are sub-options */
|
||||
dhcp6opt_print(tp + 24, tp + 24 + optlen);
|
||||
dhcp6opt_print(tp + 24, tp + optlen);
|
||||
}
|
||||
printf(")");
|
||||
break;
|
||||
@ -610,7 +615,7 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
EXTRACT_32BITS(&tp[8]));
|
||||
if (optlen > 12) {
|
||||
/* there are sub-options */
|
||||
dhcp6opt_print(tp + 12, tp + 12 + optlen);
|
||||
dhcp6opt_print(tp + 12, tp + optlen);
|
||||
}
|
||||
printf(")");
|
||||
break;
|
||||
@ -623,7 +628,7 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
printf(" IAID:%u", EXTRACT_32BITS(tp));
|
||||
if (optlen > 4) {
|
||||
/* there are sub-options */
|
||||
dhcp6opt_print(tp + 4, tp + 4 + optlen);
|
||||
dhcp6opt_print(tp + 4, tp + optlen);
|
||||
}
|
||||
printf(")");
|
||||
break;
|
||||
@ -639,7 +644,7 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
EXTRACT_32BITS(&tp[4]));
|
||||
if (optlen > 25) {
|
||||
/* there are sub-options */
|
||||
dhcp6opt_print(tp + 25, tp + 25 + optlen);
|
||||
dhcp6opt_print(tp + 25, tp + optlen);
|
||||
}
|
||||
printf(")");
|
||||
break;
|
||||
@ -712,6 +717,30 @@ dhcp6opt_print(const u_char *cp, const u_char *ep)
|
||||
printf("%02x", tp[i]);
|
||||
printf("...)");
|
||||
break;
|
||||
case DH6OPT_AFTR_NAME:
|
||||
if (optlen < 3) {
|
||||
printf(" ?)");
|
||||
break;
|
||||
}
|
||||
tp = (u_char *)(dh6o + 1);
|
||||
int remain_len = optlen;
|
||||
printf(" ");
|
||||
/* Encoding is described in section 3.1 of RFC 1035 */
|
||||
int label_len; /* Label length */
|
||||
while (remain_len && *tp) {
|
||||
label_len = *tp++;
|
||||
if (label_len < remain_len - 1) {
|
||||
printf("%.*s", label_len, tp);
|
||||
tp += label_len;
|
||||
remain_len -= (label_len + 1);
|
||||
if(*tp) printf(".");
|
||||
} else {
|
||||
printf(" ?");
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf(")");
|
||||
break;
|
||||
default:
|
||||
printf(")");
|
||||
break;
|
||||
|
@ -144,7 +144,7 @@ labellen(const u_char *cp)
|
||||
return(i);
|
||||
}
|
||||
|
||||
static const u_char *
|
||||
const u_char *
|
||||
ns_nprint(register const u_char *cp, register const u_char *bp)
|
||||
{
|
||||
register u_int i, l;
|
||||
|
@ -76,6 +76,7 @@ const struct tok ethertype_values[] = {
|
||||
{ ETHERTYPE_PPPOES, "PPPoE S" },
|
||||
{ ETHERTYPE_EAPOL, "EAPOL" },
|
||||
{ ETHERTYPE_RRCP, "RRCP" },
|
||||
{ ETHERTYPE_MS_NLB_HB, "MS NLB heartbeat" },
|
||||
{ ETHERTYPE_JUMBO, "Jumbo" },
|
||||
{ ETHERTYPE_LOOPBACK, "Loopback" },
|
||||
{ ETHERTYPE_ISO, "OSI" },
|
||||
@ -412,6 +413,10 @@ ethertype_print(netdissect_options *ndo,
|
||||
tipc_print(ndo, p, length, caplen);
|
||||
return (1);
|
||||
|
||||
case ETHERTYPE_MS_NLB_HB:
|
||||
msnlb_print(ndo, p, length);
|
||||
return (1);
|
||||
|
||||
case ETHERTYPE_LAT:
|
||||
case ETHERTYPE_SCA:
|
||||
case ETHERTYPE_MOPRC:
|
||||
|
@ -136,6 +136,7 @@ static struct tok icmp6_opt_values[] = {
|
||||
{ ND_OPT_REDIRECTED_HEADER, "redirected header"},
|
||||
{ ND_OPT_MTU, "mtu"},
|
||||
{ ND_OPT_RDNSS, "rdnss"},
|
||||
{ ND_OPT_DNSSL, "dnssl"},
|
||||
{ ND_OPT_ADVINTERVAL, "advertisement interval"},
|
||||
{ ND_OPT_HOMEAGENT_INFO, "homeagent information"},
|
||||
{ ND_OPT_ROUTE_INFO, "route info"},
|
||||
@ -174,7 +175,7 @@ get_lifetime(u_int32_t v)
|
||||
if (v == (u_int32_t)~0UL)
|
||||
return "infinity";
|
||||
else {
|
||||
snprintf(buf, sizeof(buf), "%u", v);
|
||||
snprintf(buf, sizeof(buf), "%us", v);
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
@ -439,7 +440,7 @@ icmp6_print(netdissect_options *ndo,
|
||||
if (length == MLD_MINLEN) {
|
||||
mld6_print((const u_char *)dp);
|
||||
} else if (length >= MLDV2_MINLEN) {
|
||||
printf("v2 ");
|
||||
printf(" v2");
|
||||
mldv2_query_print((const u_char *)dp, length);
|
||||
} else {
|
||||
printf(" unknown-version (len %u) ", length);
|
||||
@ -673,10 +674,11 @@ icmp6_opt_print(const u_char *bp, int resid)
|
||||
const struct icmp6_opts_redirect *opr;
|
||||
const struct nd_opt_mtu *opm;
|
||||
const struct nd_opt_rdnss *oprd;
|
||||
const struct nd_opt_dnssl *opds;
|
||||
const struct nd_opt_advinterval *opa;
|
||||
const struct nd_opt_homeagent_info *oph;
|
||||
const struct nd_opt_route_info *opri;
|
||||
const u_char *cp, *ep;
|
||||
const u_char *cp, *ep, *domp;
|
||||
struct in6_addr in6, *in6p;
|
||||
size_t l;
|
||||
u_int i;
|
||||
@ -718,13 +720,13 @@ icmp6_opt_print(const u_char *bp, int resid)
|
||||
case ND_OPT_PREFIX_INFORMATION:
|
||||
opp = (struct nd_opt_prefix_info *)op;
|
||||
TCHECK(opp->nd_opt_pi_prefix);
|
||||
printf("%s/%u%s, Flags [%s], valid time %ss",
|
||||
printf("%s/%u%s, Flags [%s], valid time %s",
|
||||
ip6addr_string(&opp->nd_opt_pi_prefix),
|
||||
opp->nd_opt_pi_prefix_len,
|
||||
(op->nd_opt_len != 4) ? "badlen" : "",
|
||||
bittok2str(icmp6_opt_pi_flag_values, "none", opp->nd_opt_pi_flags_reserved),
|
||||
get_lifetime(EXTRACT_32BITS(&opp->nd_opt_pi_valid_time)));
|
||||
printf(", pref. time %ss", get_lifetime(EXTRACT_32BITS(&opp->nd_opt_pi_preferred_time)));
|
||||
printf(", pref. time %s", get_lifetime(EXTRACT_32BITS(&opp->nd_opt_pi_preferred_time)));
|
||||
break;
|
||||
case ND_OPT_REDIRECTED_HEADER:
|
||||
opr = (struct icmp6_opts_redirect *)op;
|
||||
@ -749,6 +751,18 @@ icmp6_opt_print(const u_char *bp, int resid)
|
||||
ip6addr_string(&oprd->nd_opt_rdnss_addr[i]));
|
||||
}
|
||||
break;
|
||||
case ND_OPT_DNSSL:
|
||||
opds = (struct nd_opt_dnssl *)op;
|
||||
printf(" lifetime %us, domain(s):",
|
||||
EXTRACT_32BITS(&opds->nd_opt_dnssl_lifetime));
|
||||
domp = cp + 8; /* domain names, variable-sized, RFC1035-encoded */
|
||||
while (domp < cp + (op->nd_opt_len << 3) && *domp != '\0')
|
||||
{
|
||||
printf (" ");
|
||||
if ((domp = ns_nprint (domp, bp)) == NULL)
|
||||
goto trunc;
|
||||
}
|
||||
break;
|
||||
case ND_OPT_ADVINTERVAL:
|
||||
opa = (struct nd_opt_advinterval *)op;
|
||||
TCHECK(opa->nd_opt_adv_interval);
|
||||
|
350
print-isoclns.c
350
print-isoclns.c
@ -126,6 +126,8 @@ static struct tok isis_pdu_values[] = {
|
||||
#define ISIS_TLV_EXTD_IP_REACH 135 /* draft-ietf-isis-traffic-05 */
|
||||
#define ISIS_TLV_HOSTNAME 137 /* rfc2763 */
|
||||
#define ISIS_TLV_SHARED_RISK_GROUP 138 /* draft-ietf-isis-gmpls-extensions */
|
||||
#define ISIS_TLV_MT_PORT_CAP 143 /* rfc6165 */
|
||||
#define ISIS_TLV_MT_CAPABILITY 144 /* rfc6329 */
|
||||
#define ISIS_TLV_NORTEL_PRIVATE1 176
|
||||
#define ISIS_TLV_NORTEL_PRIVATE2 177
|
||||
#define ISIS_TLV_RESTART_SIGNALING 211 /* rfc3847 */
|
||||
@ -170,6 +172,8 @@ static struct tok isis_tlv_values[] = {
|
||||
{ ISIS_TLV_TE_ROUTER_ID, "Traffic Engineering Router ID"},
|
||||
{ ISIS_TLV_EXTD_IP_REACH, "Extended IPv4 Reachability"},
|
||||
{ ISIS_TLV_SHARED_RISK_GROUP, "Shared Risk Link Group"},
|
||||
{ ISIS_TLV_MT_PORT_CAP, "Multi-Topology-Aware Port Capability"},
|
||||
{ ISIS_TLV_MT_CAPABILITY, "Multi-Topology Capability"},
|
||||
{ ISIS_TLV_NORTEL_PRIVATE1, "Nortel Proprietary"},
|
||||
{ ISIS_TLV_NORTEL_PRIVATE2, "Nortel Proprietary"},
|
||||
{ ISIS_TLV_HOSTNAME, "Hostname"},
|
||||
@ -350,6 +354,8 @@ static struct tok clnp_option_qos_global_values[] = {
|
||||
#define ISIS_SUBTLV_EXT_IS_REACH_INTF_SW_CAP_DESCR 21 /* rfc4205 */
|
||||
#define ISIS_SUBTLV_EXT_IS_REACH_BW_CONSTRAINTS 22 /* rfc4124 */
|
||||
|
||||
#define ISIS_SUBTLV_SPB_METRIC 29 /* rfc6329 */
|
||||
|
||||
static struct tok isis_ext_is_reach_subtlv_values[] = {
|
||||
{ ISIS_SUBTLV_EXT_IS_REACH_ADMIN_GROUP, "Administrative groups" },
|
||||
{ ISIS_SUBTLV_EXT_IS_REACH_LINK_LOCAL_REMOTE_ID, "Link Local/Remote Identifier" },
|
||||
@ -365,6 +371,7 @@ static struct tok isis_ext_is_reach_subtlv_values[] = {
|
||||
{ ISIS_SUBTLV_EXT_IS_REACH_INTF_SW_CAP_DESCR, "Interface Switching Capability" },
|
||||
{ ISIS_SUBTLV_EXT_IS_REACH_BW_CONSTRAINTS_OLD, "Bandwidth Constraints (old)" },
|
||||
{ ISIS_SUBTLV_EXT_IS_REACH_BW_CONSTRAINTS, "Bandwidth Constraints" },
|
||||
{ ISIS_SUBTLV_SPB_METRIC, "SPB Metric" },
|
||||
{ 250, "Reserved for cisco specific extensions" },
|
||||
{ 251, "Reserved for cisco specific extensions" },
|
||||
{ 252, "Reserved for cisco specific extensions" },
|
||||
@ -417,6 +424,53 @@ static struct tok isis_subtlv_idrp_values[] = {
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
#define ISIS_SUBTLV_SPB_MCID 4
|
||||
#define ISIS_SUBTLV_SPB_DIGEST 5
|
||||
#define ISIS_SUBTLV_SPB_BVID 6
|
||||
|
||||
#define ISIS_SUBTLV_SPB_INSTANCE 1
|
||||
#define ISIS_SUBTLV_SPBM_SI 3
|
||||
|
||||
#define ISIS_SPB_MCID_LEN 51
|
||||
#define ISIS_SUBTLV_SPB_MCID_MIN_LEN 102
|
||||
#define ISIS_SUBTLV_SPB_DIGEST_MIN_LEN 33
|
||||
#define ISIS_SUBTLV_SPB_BVID_MIN_LEN 6
|
||||
#define ISIS_SUBTLV_SPB_INSTANCE_MIN_LEN 19
|
||||
#define ISIS_SUBTLV_SPB_INSTANCE_VLAN_TUPLE_LEN 8
|
||||
|
||||
static struct tok isis_mt_port_cap_subtlv_values[] = {
|
||||
{ ISIS_SUBTLV_SPB_MCID, "SPB MCID" },
|
||||
{ ISIS_SUBTLV_SPB_DIGEST, "SPB Digest" },
|
||||
{ ISIS_SUBTLV_SPB_BVID, "SPB BVID" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static struct tok isis_mt_capability_subtlv_values[] = {
|
||||
{ ISIS_SUBTLV_SPB_INSTANCE, "SPB Instance" },
|
||||
{ ISIS_SUBTLV_SPBM_SI, "SPBM Service Identifier and Unicast Address" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
struct isis_spb_mcid {
|
||||
u_int8_t format_id;
|
||||
u_int8_t name[32];
|
||||
u_int8_t revision_lvl[2];
|
||||
u_int8_t digest[16];
|
||||
};
|
||||
|
||||
struct isis_subtlv_spb_mcid {
|
||||
struct isis_spb_mcid mcid;
|
||||
struct isis_spb_mcid aux_mcid;
|
||||
};
|
||||
|
||||
struct isis_subtlv_spb_instance {
|
||||
u_int8_t cist_root_id[8];
|
||||
u_int8_t cist_external_root_path_cost[4];
|
||||
u_int8_t bridge_priority[2];
|
||||
u_int8_t spsourceid[4];
|
||||
u_int8_t no_of_trees;
|
||||
};
|
||||
|
||||
#define CLNP_SEGMENT_PART 0x80
|
||||
#define CLNP_MORE_SEGMENTS 0x40
|
||||
#define CLNP_REQUEST_ER 0x20
|
||||
@ -1247,6 +1301,258 @@ esis_print(const u_int8_t *pptr, u_int length)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
isis_print_mcid (const struct isis_spb_mcid *mcid)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf( "ID: %d, Name: ", mcid->format_id);
|
||||
|
||||
for(i=0; i<32; i++)
|
||||
{
|
||||
printf("%c", mcid->name[i]);
|
||||
if(mcid->name[i] == '\0')
|
||||
break;
|
||||
}
|
||||
|
||||
printf("\n\t Lvl: %d",
|
||||
EXTRACT_16BITS(mcid->revision_lvl));
|
||||
|
||||
printf( ", Digest: ");
|
||||
|
||||
for(i=0;i<16;i++)
|
||||
printf("%.2x ",mcid->digest[i]);
|
||||
}
|
||||
|
||||
static int
|
||||
isis_print_mt_port_cap_subtlv (const u_int8_t *tptr, int len)
|
||||
{
|
||||
int stlv_type, stlv_len;
|
||||
const struct isis_subtlv_spb_mcid *subtlv_spb_mcid;
|
||||
int i;
|
||||
|
||||
while (len > 0)
|
||||
{
|
||||
stlv_type = *(tptr++);
|
||||
stlv_len = *(tptr++);
|
||||
|
||||
/* first lets see if we know the subTLVs name*/
|
||||
printf("\n\t %s subTLV #%u, length: %u",
|
||||
tok2str(isis_mt_port_cap_subtlv_values, "unknown", stlv_type),
|
||||
stlv_type,
|
||||
stlv_len);
|
||||
|
||||
/*len -= TLV_TYPE_LEN_OFFSET;*/
|
||||
len = len -2;
|
||||
|
||||
switch (stlv_type)
|
||||
{
|
||||
case ISIS_SUBTLV_SPB_MCID:
|
||||
{
|
||||
if (!TTEST2(*(tptr), ISIS_SUBTLV_SPB_MCID_MIN_LEN))
|
||||
goto trunctlv;
|
||||
|
||||
subtlv_spb_mcid = (struct isis_subtlv_spb_mcid *)tptr;
|
||||
|
||||
printf( "\n\t MCID: ");
|
||||
isis_print_mcid (&(subtlv_spb_mcid->mcid));
|
||||
|
||||
/*tptr += SPB_MCID_MIN_LEN;
|
||||
len -= SPB_MCID_MIN_LEN; */
|
||||
|
||||
printf( "\n\t AUX-MCID: ");
|
||||
isis_print_mcid (&(subtlv_spb_mcid->aux_mcid));
|
||||
|
||||
/*tptr += SPB_MCID_MIN_LEN;
|
||||
len -= SPB_MCID_MIN_LEN; */
|
||||
tptr = tptr + sizeof(struct isis_subtlv_spb_mcid);
|
||||
len = len - sizeof(struct isis_subtlv_spb_mcid);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case ISIS_SUBTLV_SPB_DIGEST:
|
||||
{
|
||||
if (!TTEST2(*(tptr), ISIS_SUBTLV_SPB_DIGEST_MIN_LEN))
|
||||
goto trunctlv;
|
||||
|
||||
printf ("\n\t RES: %d V: %d A: %d D: %d",
|
||||
(*(tptr) >> 5), (((*tptr)>> 4) & 0x01),
|
||||
((*(tptr) >> 2) & 0x03), ((*tptr) & 0x03));
|
||||
|
||||
tptr++;
|
||||
|
||||
printf( "\n\t Digest: ");
|
||||
|
||||
for(i=1;i<=8; i++)
|
||||
{
|
||||
printf("%08x ", EXTRACT_32BITS(tptr));
|
||||
if (i%4 == 0 && i != 8)
|
||||
printf("\n\t ");
|
||||
tptr = tptr + 4;
|
||||
}
|
||||
|
||||
len = len - ISIS_SUBTLV_SPB_DIGEST_MIN_LEN;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case ISIS_SUBTLV_SPB_BVID:
|
||||
{
|
||||
if (!TTEST2(*(tptr), stlv_len))
|
||||
goto trunctlv;
|
||||
|
||||
while (len)
|
||||
{
|
||||
if (!TTEST2(*(tptr), ISIS_SUBTLV_SPB_BVID_MIN_LEN))
|
||||
goto trunctlv;
|
||||
|
||||
printf("\n\t ECT: %08x",
|
||||
EXTRACT_32BITS(tptr));
|
||||
|
||||
tptr = tptr+4;
|
||||
|
||||
printf(" BVID: %d, U:%01x M:%01x ",
|
||||
(EXTRACT_16BITS (tptr) >> 4) ,
|
||||
(EXTRACT_16BITS (tptr) >> 3) & 0x01,
|
||||
(EXTRACT_16BITS (tptr) >> 2) & 0x01);
|
||||
|
||||
tptr = tptr + 2;
|
||||
len = len - ISIS_SUBTLV_SPB_BVID_MIN_LEN;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
trunctlv:
|
||||
printf("\n\t\t packet exceeded snapshot");
|
||||
return(1);
|
||||
}
|
||||
|
||||
static int
|
||||
isis_print_mt_capability_subtlv (const u_int8_t *tptr, int len)
|
||||
{
|
||||
int stlv_type, stlv_len, tmp;
|
||||
|
||||
while (len > 0)
|
||||
{
|
||||
stlv_type = *(tptr++);
|
||||
stlv_len = *(tptr++);
|
||||
|
||||
/* first lets see if we know the subTLVs name*/
|
||||
printf("\n\t %s subTLV #%u, length: %u",
|
||||
tok2str(isis_mt_capability_subtlv_values, "unknown", stlv_type),
|
||||
stlv_type,
|
||||
stlv_len);
|
||||
|
||||
len = len - 2;
|
||||
|
||||
switch (stlv_type)
|
||||
{
|
||||
case ISIS_SUBTLV_SPB_INSTANCE:
|
||||
|
||||
if (!TTEST2(*(tptr), ISIS_SUBTLV_SPB_INSTANCE_MIN_LEN))
|
||||
goto trunctlv;
|
||||
|
||||
printf("\n\t CIST Root-ID: %08x", EXTRACT_32BITS(tptr));
|
||||
tptr = tptr+4;
|
||||
printf(" %08x", EXTRACT_32BITS(tptr));
|
||||
tptr = tptr+4;
|
||||
printf(", Path Cost: %08x", EXTRACT_32BITS(tptr));
|
||||
tptr = tptr+4;
|
||||
printf(", Prio: %d", EXTRACT_16BITS(tptr));
|
||||
tptr = tptr + 2;
|
||||
printf("\n\t RES: %d",
|
||||
EXTRACT_16BITS(tptr) >> 5);
|
||||
printf(", V: %d",
|
||||
(EXTRACT_16BITS(tptr) >> 4) & 0x0001);
|
||||
printf(", SPSource-ID: %d",
|
||||
(EXTRACT_32BITS(tptr) & 0x000fffff));
|
||||
tptr = tptr+4;
|
||||
printf(", No of Trees: %x", *(tptr));
|
||||
|
||||
tmp = *(tptr++);
|
||||
|
||||
len = len - ISIS_SUBTLV_SPB_INSTANCE_MIN_LEN;
|
||||
|
||||
while (tmp)
|
||||
{
|
||||
if (!TTEST2(*(tptr), ISIS_SUBTLV_SPB_INSTANCE_VLAN_TUPLE_LEN))
|
||||
goto trunctlv;
|
||||
|
||||
printf ("\n\t U:%d, M:%d, A:%d, RES:%d",
|
||||
*(tptr) >> 7, (*(tptr) >> 6) & 0x01,
|
||||
(*(tptr) >> 5) & 0x01, (*(tptr) & 0x1f));
|
||||
|
||||
tptr++;
|
||||
|
||||
printf (", ECT: %08x", EXTRACT_32BITS(tptr));
|
||||
|
||||
tptr = tptr + 4;
|
||||
|
||||
printf (", BVID: %d, SPVID: %d",
|
||||
(EXTRACT_24BITS(tptr) >> 12) & 0x000fff,
|
||||
EXTRACT_24BITS(tptr) & 0x000fff);
|
||||
|
||||
tptr = tptr + 3;
|
||||
len = len - ISIS_SUBTLV_SPB_INSTANCE_VLAN_TUPLE_LEN;
|
||||
tmp--;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ISIS_SUBTLV_SPBM_SI:
|
||||
|
||||
if (!TTEST2(*(tptr), 6))
|
||||
goto trunctlv;
|
||||
|
||||
printf("\n\t BMAC: %08x", EXTRACT_32BITS(tptr));
|
||||
tptr = tptr+4;
|
||||
printf("%04x", EXTRACT_16BITS(tptr));
|
||||
tptr = tptr+2;
|
||||
|
||||
printf (", RES: %d, VID: %d", EXTRACT_16BITS(tptr) >> 12,
|
||||
(EXTRACT_16BITS(tptr)) & 0x0fff);
|
||||
|
||||
tptr = tptr+2;
|
||||
len = len - 8;
|
||||
stlv_len = stlv_len - 8;
|
||||
|
||||
while (stlv_len)
|
||||
{
|
||||
printf("\n\t T: %d, R: %d, RES: %d, ISID: %d",
|
||||
(EXTRACT_32BITS(tptr) >> 31),
|
||||
(EXTRACT_32BITS(tptr) >> 30) & 0x01,
|
||||
(EXTRACT_32BITS(tptr) >> 24) & 0x03f,
|
||||
(EXTRACT_32BITS(tptr)) & 0x0ffffff);
|
||||
|
||||
tptr = tptr + 4;
|
||||
len = len - 4;
|
||||
stlv_len = stlv_len - 4;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
trunctlv:
|
||||
printf("\n\t\t packet exceeded snapshot");
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* shared routine for printing system, node and lsp-ids */
|
||||
static char *
|
||||
isis_print_id(const u_int8_t *cp, int id_len)
|
||||
@ -1504,6 +1810,14 @@ isis_print_is_reach_subtlv (const u_int8_t *tptr,u_int subt,u_int subl,const cha
|
||||
*(tptr+1));
|
||||
}
|
||||
break;
|
||||
case ISIS_SUBTLV_SPB_METRIC:
|
||||
if (subl >= 6) {
|
||||
printf (", LM: %u", EXTRACT_24BITS(tptr));
|
||||
tptr=tptr+3;
|
||||
printf (", P: %u", *(tptr));
|
||||
printf (", P-ID: %u", EXTRACT_16BITS(++tptr));
|
||||
}
|
||||
break;
|
||||
case ISIS_SUBTLV_EXT_IS_REACH_INTF_SW_CAP_DESCR:
|
||||
if (subl >= 36) {
|
||||
gmpls_switch_cap = *tptr;
|
||||
@ -2445,6 +2759,42 @@ static int isis_print (const u_int8_t *p, u_int length)
|
||||
}
|
||||
break;
|
||||
|
||||
case ISIS_TLV_MT_PORT_CAP:
|
||||
{
|
||||
if (!TTEST2(*(tptr), 2))
|
||||
goto trunctlv;
|
||||
|
||||
printf("\n\t RES: %d, MTID(s): %d",
|
||||
(EXTRACT_16BITS (tptr) >> 12),
|
||||
(EXTRACT_16BITS (tptr) & 0x0fff));
|
||||
|
||||
tmp = tmp-2;
|
||||
tptr = tptr+2;
|
||||
|
||||
if (tmp)
|
||||
isis_print_mt_port_cap_subtlv (tptr, tmp);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case ISIS_TLV_MT_CAPABILITY:
|
||||
|
||||
if (!TTEST2(*(tptr), 2))
|
||||
goto trunctlv;
|
||||
|
||||
printf("\n\t O: %d, RES: %d, MTID(s): %d",
|
||||
(EXTRACT_16BITS(tptr) >> 15) & 0x01,
|
||||
(EXTRACT_16BITS(tptr) >> 12) & 0x07,
|
||||
EXTRACT_16BITS(tptr) & 0x0fff);
|
||||
|
||||
tmp = tmp-2;
|
||||
tptr = tptr+2;
|
||||
|
||||
if (tmp)
|
||||
isis_print_mt_capability_subtlv (tptr, tmp);
|
||||
|
||||
break;
|
||||
|
||||
case ISIS_TLV_TE_ROUTER_ID:
|
||||
if (!TTEST2(*pptr, sizeof(struct in_addr)))
|
||||
goto trunctlv;
|
||||
|
14
print-lldp.c
14
print-lldp.c
@ -1184,9 +1184,7 @@ lldp_print(register const u_char *pptr, register u_int len) {
|
||||
tptr = pptr;
|
||||
tlen = len;
|
||||
|
||||
if (vflag) {
|
||||
printf("LLDP, length %u", len);
|
||||
}
|
||||
printf("LLDP, length %u", len);
|
||||
|
||||
while (tlen >= sizeof(tlv)) {
|
||||
|
||||
@ -1322,14 +1320,8 @@ lldp_print(register const u_char *pptr, register u_int len) {
|
||||
* The system name is also print in non-verbose mode
|
||||
* similar to the CDP printer.
|
||||
*/
|
||||
if (vflag) {
|
||||
printf(": ");
|
||||
safeputs((const char *)tptr, tlv_len);
|
||||
} else {
|
||||
printf("LLDP, name ");
|
||||
safeputs((const char *)tptr, tlv_len);
|
||||
printf(", length %u", len);
|
||||
}
|
||||
printf(": ");
|
||||
safeputs((const char *)tptr, tlv_len);
|
||||
break;
|
||||
|
||||
case LLDP_SYSTEM_DESCR_TLV:
|
||||
|
66
print-msnlb.c
Normal file
66
print-msnlb.c
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Romain Francoise <romain@orebokech.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the project nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <tcpdump-stdinc.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "netdissect.h"
|
||||
#include "addrtoname.h"
|
||||
#include "extract.h"
|
||||
|
||||
struct msnlb_heartbeat_pkt {
|
||||
u_int32_t unknown1;
|
||||
u_int32_t unknown2;
|
||||
u_int32_t host_prio; /* little-endian */
|
||||
u_int32_t virtual_ip;
|
||||
u_int32_t host_ip;
|
||||
/* the protocol is undocumented so we ignore the rest */
|
||||
};
|
||||
|
||||
void
|
||||
msnlb_print(netdissect_options *ndo, const u_char *bp, u_int length)
|
||||
{
|
||||
const struct msnlb_heartbeat_pkt *hb;
|
||||
|
||||
hb = (struct msnlb_heartbeat_pkt *)bp;
|
||||
ND_TCHECK(*hb);
|
||||
|
||||
ND_PRINT((ndo, "MS NLB heartbeat, host priority: %u,",
|
||||
EXTRACT_LE_32BITS(&(hb->host_prio))));
|
||||
ND_PRINT((ndo, " cluster IP: %s,", ipaddr_string(&(hb->virtual_ip))));
|
||||
ND_PRINT((ndo, " host IP: %s", ipaddr_string(&(hb->host_ip))));
|
||||
return;
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|MS NLB]"));
|
||||
}
|
@ -117,7 +117,7 @@ ntp_print(register const u_char *cp, u_int length)
|
||||
tok2str(ntp_stratum_values, (bp->stratum >=2 && bp->stratum<=15) ? "secondary reference" : "reserved", bp->stratum));
|
||||
|
||||
TCHECK(bp->ppoll);
|
||||
printf(", poll %us", bp->ppoll);
|
||||
printf(", poll %u (%us)", bp->ppoll, 1 << bp->ppoll);
|
||||
|
||||
/* Can't TCHECK bp->precision bitfield so bp->distance + 0 instead */
|
||||
TCHECK2(bp->root_delay, 0);
|
||||
|
79
print-otv.c
Normal file
79
print-otv.c
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that: (1) source code
|
||||
* distributions retain the above copyright notice and this paragraph
|
||||
* in its entirety, and (2) distributions including binary code include
|
||||
* the above copyright notice and this paragraph in its entirety in
|
||||
* the documentation or other materials provided with the distribution.
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND
|
||||
* WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
|
||||
* LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Original code by Francesco Fondelli (francesco dot fondelli, gmail dot com)
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <tcpdump-stdinc.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "interface.h"
|
||||
#include "extract.h"
|
||||
#include "addrtoname.h"
|
||||
|
||||
#include "udp.h"
|
||||
|
||||
/*
|
||||
* OTV header, draft-hasmit-otv-04
|
||||
*
|
||||
* 0 1 2 3
|
||||
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* |R|R|R|R|I|R|R|R| Overlay ID |
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* | Instance ID | Reserved |
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
*/
|
||||
|
||||
void
|
||||
otv_print(const u_char *bp, u_int len, u_int port)
|
||||
{
|
||||
u_int8_t flags;
|
||||
u_int32_t overlay_id;
|
||||
u_int32_t instance_id;
|
||||
|
||||
if (len < 8) {
|
||||
printf("[|OTV]");
|
||||
return;
|
||||
}
|
||||
|
||||
flags = *bp;
|
||||
bp += 1;
|
||||
|
||||
overlay_id = EXTRACT_24BITS(bp);
|
||||
bp += 3;
|
||||
|
||||
instance_id = EXTRACT_24BITS(bp);
|
||||
bp += 4;
|
||||
|
||||
printf("OTV, ");
|
||||
|
||||
fputs("flags [", stdout);
|
||||
if (flags & 0x08)
|
||||
fputs("I", stdout);
|
||||
else
|
||||
fputs(".", stdout);
|
||||
fputs("] ", stdout);
|
||||
|
||||
printf("(0x%02x), ", flags);
|
||||
printf("overlay %u, ", overlay_id);
|
||||
printf("instance %u\n", instance_id);
|
||||
|
||||
ether_print(gndo, bp, len - 8, len - 8, NULL, NULL);
|
||||
return;
|
||||
}
|
@ -159,7 +159,7 @@ pppoe_print(register const u_char *bp, u_int length)
|
||||
|
||||
if (tag_len) {
|
||||
unsigned isascii = 0, isgarbage = 0;
|
||||
const u_char *v = p;
|
||||
const u_char *v;
|
||||
char tag_str[MAXTAGPRINT];
|
||||
unsigned tag_str_len = 0;
|
||||
|
||||
|
67
print-rip.c
67
print-rip.c
@ -102,7 +102,7 @@ rip_entry_print_v1(register const struct rip_netinfo *ni)
|
||||
|
||||
/* RFC 1058 */
|
||||
family = EXTRACT_16BITS(&ni->rip_family);
|
||||
if (family != BSD_AFNUM_INET) {
|
||||
if (family != BSD_AFNUM_INET && family != 0) {
|
||||
printf("\n\t AFI %s, ", tok2str(bsd_af_values, "Unknown (%u)", family));
|
||||
print_unknown_data((u_int8_t *)&ni->rip_family,"\n\t ",RIP_ROUTELEN);
|
||||
return;
|
||||
@ -113,41 +113,55 @@ rip_entry_print_v1(register const struct rip_netinfo *ni)
|
||||
/* MBZ fields not zero */
|
||||
print_unknown_data((u_int8_t *)&ni->rip_family,"\n\t ",RIP_ROUTELEN);
|
||||
return;
|
||||
}
|
||||
if (family == 0) {
|
||||
printf("\n\t AFI 0, %s, metric: %u",
|
||||
ipaddr_string(&ni->rip_dest),
|
||||
EXTRACT_32BITS(&ni->rip_metric));
|
||||
return;
|
||||
} /* BSD_AFNUM_INET */
|
||||
printf("\n\t %s, metric: %u",
|
||||
ipaddr_string(&ni->rip_dest),
|
||||
EXTRACT_32BITS(&ni->rip_metric));
|
||||
}
|
||||
|
||||
static void
|
||||
rip_entry_print_v2(register const struct rip_netinfo *ni)
|
||||
static unsigned
|
||||
rip_entry_print_v2(register const struct rip_netinfo *ni, const unsigned remaining)
|
||||
{
|
||||
register u_char *p;
|
||||
register u_short family;
|
||||
u_char buf[RIP_AUTHLEN];
|
||||
|
||||
family = EXTRACT_16BITS(&ni->rip_family);
|
||||
if (family == 0xFFFF) { /* 16 bytes authentication ? */
|
||||
if (EXTRACT_16BITS(&ni->rip_tag) == 2) { /* simple text authentication ? */
|
||||
memcpy(buf, &ni->rip_dest, sizeof(buf));
|
||||
buf[sizeof(buf)-1] = '\0';
|
||||
for (p = buf; *p; p++) {
|
||||
if (!isprint(*p))
|
||||
break;
|
||||
}
|
||||
printf("\n\t Simple Text Authentication data: %s", buf);
|
||||
if (family == 0xFFFF) { /* variable-sized authentication structures */
|
||||
u_int16_t auth_type = EXTRACT_16BITS(&ni->rip_tag);
|
||||
if (auth_type == 2) {
|
||||
register u_char *p = (u_char *)&ni->rip_dest;
|
||||
u_int i = 0;
|
||||
printf("\n\t Simple Text Authentication data: ");
|
||||
for (; i < RIP_AUTHLEN; p++, i++)
|
||||
putchar (isprint(*p) ? *p : '.');
|
||||
} else if (auth_type == 3) {
|
||||
printf("\n\t Auth header:");
|
||||
printf(" Packet Len %u,", EXTRACT_16BITS(&ni->rip_dest));
|
||||
printf(" Key-ID %u,", *((u_int8_t *)ni + 6));
|
||||
printf(" Auth Data Len %u,", *((u_int8_t *)ni + 7));
|
||||
printf(" SeqNo %u,", EXTRACT_32BITS(&ni->rip_dest_mask));
|
||||
printf(" MBZ %u,", EXTRACT_32BITS(&ni->rip_router));
|
||||
printf(" MBZ %u", EXTRACT_32BITS(&ni->rip_metric));
|
||||
} else if (auth_type == 1) {
|
||||
printf("\n\t Auth trailer:");
|
||||
print_unknown_data((u_int8_t *)&ni->rip_dest,"\n\t ",remaining);
|
||||
return remaining; /* AT spans till the packet end */
|
||||
} else {
|
||||
printf("\n\t Unknown (%u) Authentication data:",
|
||||
EXTRACT_16BITS(&ni->rip_tag));
|
||||
print_unknown_data((u_int8_t *)&ni->rip_dest,"\n\t ",RIP_AUTHLEN);
|
||||
print_unknown_data((u_int8_t *)&ni->rip_dest,"\n\t ",remaining);
|
||||
}
|
||||
} else if (family != BSD_AFNUM_INET) {
|
||||
} else if (family != BSD_AFNUM_INET && family != 0) {
|
||||
printf("\n\t AFI %s", tok2str(bsd_af_values, "Unknown (%u)", family));
|
||||
print_unknown_data((u_int8_t *)&ni->rip_tag,"\n\t ",RIP_ROUTELEN-2);
|
||||
return;
|
||||
} else { /* BSD_AFNUM_INET */
|
||||
} else { /* BSD_AFNUM_INET or AFI 0 */
|
||||
printf("\n\t AFI %s, %15s/%-2d, tag 0x%04x, metric: %u, next-hop: ",
|
||||
tok2str(bsd_af_values, "Unknown (%u)", family),
|
||||
tok2str(bsd_af_values, "%u", family),
|
||||
ipaddr_string(&ni->rip_dest),
|
||||
mask2plen(EXTRACT_32BITS(&ni->rip_dest_mask)),
|
||||
EXTRACT_16BITS(&ni->rip_tag),
|
||||
@ -157,6 +171,7 @@ rip_entry_print_v2(register const struct rip_netinfo *ni)
|
||||
else
|
||||
printf("self");
|
||||
}
|
||||
return sizeof (*ni);
|
||||
}
|
||||
|
||||
void
|
||||
@ -165,7 +180,6 @@ rip_print(const u_char *dat, u_int length)
|
||||
register const struct rip *rp;
|
||||
register const struct rip_netinfo *ni;
|
||||
register u_int i, j;
|
||||
register int trunc;
|
||||
|
||||
if (snapend < dat) {
|
||||
printf(" [|rip]");
|
||||
@ -213,25 +227,26 @@ rip_print(const u_char *dat, u_int length)
|
||||
return;
|
||||
|
||||
switch (rp->rip_cmd) {
|
||||
case RIPCMD_REQUEST:
|
||||
case RIPCMD_RESPONSE:
|
||||
j = length / sizeof(*ni);
|
||||
printf(", routes: %u",j);
|
||||
trunc = (i / sizeof(*ni)) != j;
|
||||
printf(", routes: %u%s", j, rp->rip_vers == 2 ? " or less" : "");
|
||||
ni = (struct rip_netinfo *)(rp + 1);
|
||||
for (; i >= sizeof(*ni); ++ni) {
|
||||
if (rp->rip_vers == 1)
|
||||
{
|
||||
rip_entry_print_v1(ni);
|
||||
i -= sizeof(*ni);
|
||||
}
|
||||
else if (rp->rip_vers == 2)
|
||||
rip_entry_print_v2(ni);
|
||||
i -= rip_entry_print_v2(ni, i);
|
||||
else
|
||||
break;
|
||||
i -= sizeof(*ni);
|
||||
}
|
||||
if (trunc)
|
||||
if (i)
|
||||
printf("[|rip]");
|
||||
break;
|
||||
|
||||
case RIPCMD_REQUEST:
|
||||
case RIPCMD_TRACEOFF:
|
||||
case RIPCMD_POLL:
|
||||
case RIPCMD_POLLENTRY:
|
||||
|
@ -12,7 +12,7 @@
|
||||
* LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* support for the The RPKI/Router Protocol Protocol as per draft-ietf-sidr-rpki-rtr-12
|
||||
* support for the The RPKI/Router Protocol as RFC6810
|
||||
*
|
||||
* Original code by Hannes Gredler (hannes@juniper.net)
|
||||
*/
|
||||
@ -46,7 +46,7 @@ typedef struct rpki_rtr_pdu_ {
|
||||
u_char version; /* Version number */
|
||||
u_char pdu_type; /* PDU type */
|
||||
union {
|
||||
u_char cache_nonce[2]; /* Cache Nonce */
|
||||
u_char session_id[2]; /* Session id */
|
||||
u_char error_code[2]; /* Error code */
|
||||
} u;
|
||||
u_char length[4];
|
||||
@ -167,7 +167,7 @@ indent_string (u_int indent)
|
||||
* Trailing zero.
|
||||
*/
|
||||
buf[idx] = '\0';
|
||||
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
@ -201,9 +201,9 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
|
||||
case RPKI_RTR_SERIAL_QUERY_PDU:
|
||||
case RPKI_RTR_END_OF_DATA_PDU:
|
||||
msg = (const u_char *)(pdu_header + 1);
|
||||
printf("%sCache-Nonce: 0x%04x, Serial: %u",
|
||||
printf("%sSession ID: 0x%04x, Serial: %u",
|
||||
indent_string(indent+2),
|
||||
EXTRACT_16BITS(pdu_header->u.cache_nonce),
|
||||
EXTRACT_16BITS(pdu_header->u.session_id),
|
||||
EXTRACT_32BITS(msg));
|
||||
break;
|
||||
|
||||
@ -219,9 +219,9 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
|
||||
break;
|
||||
|
||||
case RPKI_RTR_CACHE_RESPONSE_PDU:
|
||||
printf("%sCache-Nonce: 0x%04x",
|
||||
printf("%sSession ID: 0x%04x",
|
||||
indent_string(indent+2),
|
||||
EXTRACT_16BITS(pdu_header->u.cache_nonce));
|
||||
EXTRACT_16BITS(pdu_header->u.session_id));
|
||||
break;
|
||||
|
||||
case RPKI_RTR_IPV4_PREFIX_PDU:
|
||||
@ -320,7 +320,7 @@ rpki_rtr_print(register const u_char *pptr, register u_int len) {
|
||||
u_int tlen, pdu_type, pdu_len;
|
||||
const u_char *tptr;
|
||||
const rpki_rtr_pdu *pdu_header;
|
||||
|
||||
|
||||
tptr = pptr;
|
||||
tlen = len;
|
||||
|
||||
|
145
print-stp.c
145
print-stp.c
@ -52,11 +52,13 @@ struct stp_bpdu_ {
|
||||
#define STP_PROTO_REGULAR 0x00
|
||||
#define STP_PROTO_RAPID 0x02
|
||||
#define STP_PROTO_MSTP 0x03
|
||||
#define STP_PROTO_SPB 0x04
|
||||
|
||||
struct tok stp_proto_values[] = {
|
||||
{ STP_PROTO_REGULAR, "802.1d" },
|
||||
{ STP_PROTO_RAPID, "802.1w" },
|
||||
{ STP_PROTO_MSTP, "802.1s" },
|
||||
{ STP_PROTO_SPB, "802.1aq" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
@ -164,6 +166,30 @@ stp_print_config_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
* 1 - byte CIST Remaining Hops
|
||||
* 16 - bytes MSTI information [Max 64 MSTI, each 16 bytes]
|
||||
*
|
||||
*
|
||||
* SPB BPDU
|
||||
* Ref. IEEE 802.1aq. Section 14
|
||||
*
|
||||
* 2 - bytes Version 4 length
|
||||
* 1 - byte Aux Config Identifier
|
||||
* 32 - bytes Aux Config Name
|
||||
* 2 - bytes Aux Revision level
|
||||
* 16 - bytes Aux Config Digest [MD5]
|
||||
* 1 - byte (1 - 2) Agreement Number
|
||||
* (3 - 4) Discarded Agreement Number
|
||||
* (5) Agreement Valid Flag
|
||||
* (6) Restricted Role Flag
|
||||
* (7 - 8) Unused sent zero
|
||||
* 1 - byte Unused
|
||||
* 1 - byte (1 - 4) Agreement Digest Format Identifier
|
||||
* (5 - 8) Agreement Digest Format Capabilities
|
||||
* 1 - byte (1 - 4) Agreement Digest Convention Identifier
|
||||
* (5 - 8) Agreement Digest Convention Capabilities
|
||||
* 2 - bytes Agreement Digest Edge Count
|
||||
* 8 - byte Reserved Set
|
||||
* 20 - bytes Computed Topology Digest
|
||||
*
|
||||
*
|
||||
* MSTI Payload
|
||||
*
|
||||
* 1 - byte MSTI flag
|
||||
@ -172,6 +198,7 @@ stp_print_config_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
* 1 - byte MSTI Bridge Priority
|
||||
* 1 - byte MSTI Port Priority
|
||||
* 1 - byte MSTI Remaining Hops
|
||||
*
|
||||
*/
|
||||
|
||||
#define MST_BPDU_MSTI_LENGTH 16
|
||||
@ -192,18 +219,32 @@ stp_print_config_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
#define MST_BPDU_MSTI_PORT_PRIO_OFFSET 14
|
||||
#define MST_BPDU_MSTI_REMAIN_HOPS_OFFSET 15
|
||||
|
||||
#define SPB_BPDU_MIN_LEN 87
|
||||
#define SPB_BPDU_CONFIG_NAME_OFFSET 3
|
||||
#define SPB_BPDU_CONFIG_REV_OFFSET SPB_BPDU_CONFIG_NAME_OFFSET + 32
|
||||
#define SPB_BPDU_CONFIG_DIGEST_OFFSET SPB_BPDU_CONFIG_REV_OFFSET + 2
|
||||
#define SPB_BPDU_AGREEMENT_OFFSET SPB_BPDU_CONFIG_DIGEST_OFFSET + 16
|
||||
#define SPB_BPDU_AGREEMENT_UNUSED_OFFSET SPB_BPDU_AGREEMENT_OFFSET + 1
|
||||
#define SPB_BPDU_AGREEMENT_FORMAT_OFFSET SPB_BPDU_AGREEMENT_UNUSED_OFFSET + 1
|
||||
#define SPB_BPDU_AGREEMENT_CON_OFFSET SPB_BPDU_AGREEMENT_FORMAT_OFFSET + 1
|
||||
#define SPB_BPDU_AGREEMENT_EDGE_OFFSET SPB_BPDU_AGREEMENT_CON_OFFSET + 1
|
||||
#define SPB_BPDU_AGREEMENT_RES1_OFFSET SPB_BPDU_AGREEMENT_EDGE_OFFSET + 2
|
||||
#define SPB_BPDU_AGREEMENT_RES2_OFFSET SPB_BPDU_AGREEMENT_RES1_OFFSET + 4
|
||||
#define SPB_BPDU_AGREEMENT_DIGEST_OFFSET SPB_BPDU_AGREEMENT_RES2_OFFSET + 4
|
||||
|
||||
|
||||
static void
|
||||
stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
{
|
||||
const u_char *ptr;
|
||||
const u_char *ptr;
|
||||
u_int16_t v3len;
|
||||
u_int16_t len;
|
||||
u_int16_t msti;
|
||||
u_int16_t offset;
|
||||
|
||||
ptr = (const u_char *)stp_bpdu;
|
||||
printf(", CIST Flags [%s]",
|
||||
bittok2str(stp_bpdu_flag_values, "none", stp_bpdu->flags));
|
||||
printf(", CIST Flags [%s], length %u",
|
||||
bittok2str(stp_bpdu_flag_values, "none", stp_bpdu->flags), length);
|
||||
|
||||
/*
|
||||
* in non-verbose mode just print the flags. We dont read that much
|
||||
@ -213,10 +254,18 @@ stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
return;
|
||||
}
|
||||
|
||||
printf(", CIST bridge-id %s.%04x, length %u",
|
||||
stp_print_bridge_id(ptr + MST_BPDU_CIST_BRIDGE_ID_OFFSET),
|
||||
EXTRACT_16BITS(&stp_bpdu->port_id), length);
|
||||
printf("\n\tport-role %s, ",
|
||||
tok2str(rstp_obj_port_role_values, "Unknown",
|
||||
RSTP_EXTRACT_PORT_ROLE(stp_bpdu->flags)));
|
||||
|
||||
printf("CIST root-id %s, CIST ext-pathcost %u ",
|
||||
stp_print_bridge_id((const u_char *)&stp_bpdu->root_id),
|
||||
EXTRACT_32BITS(&stp_bpdu->root_path_cost));
|
||||
|
||||
printf("\n\tCIST regional-root-id %s, ",
|
||||
stp_print_bridge_id((const u_char *)&stp_bpdu->bridge_id));
|
||||
|
||||
printf("CIST port-id %04x, ", EXTRACT_16BITS(&stp_bpdu->port_id));
|
||||
|
||||
printf("\n\tmessage-age %.2fs, max-age %.2fs"
|
||||
", hello-time %.2fs, forwarding-delay %.2fs",
|
||||
@ -225,27 +274,23 @@ stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
(float)EXTRACT_16BITS(&stp_bpdu->hello_time) / STP_TIME_BASE,
|
||||
(float)EXTRACT_16BITS(&stp_bpdu->forward_delay) / STP_TIME_BASE);
|
||||
|
||||
printf("\n\tCIST root-id %s, ext-pathcost %u int-pathcost %u",
|
||||
stp_print_bridge_id((const u_char *)&stp_bpdu->root_id),
|
||||
EXTRACT_32BITS(&stp_bpdu->root_path_cost),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CIST_INT_PATH_COST_OFFSET));
|
||||
printf ("\n\tv3len %d, ", EXTRACT_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET));
|
||||
printf("MCID Name %s, rev %u, "
|
||||
"\n\t\tdigest %08x%08x%08x%08x, ",
|
||||
ptr + MST_BPDU_CONFIG_NAME_OFFSET,
|
||||
EXTRACT_16BITS(ptr + MST_BPDU_CONFIG_NAME_OFFSET + 32),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 4),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 8),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12));
|
||||
|
||||
printf(", port-role %s",
|
||||
tok2str(rstp_obj_port_role_values, "Unknown",
|
||||
RSTP_EXTRACT_PORT_ROLE(stp_bpdu->flags)));
|
||||
printf ("CIST int-root-pathcost %u, ",
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CIST_INT_PATH_COST_OFFSET));
|
||||
|
||||
printf("\n\tCIST regional-root-id %s",
|
||||
stp_print_bridge_id((const u_char *)&stp_bpdu->bridge_id));
|
||||
printf("\n\tCIST bridge-id %s, ",
|
||||
stp_print_bridge_id(ptr + MST_BPDU_CIST_BRIDGE_ID_OFFSET));
|
||||
|
||||
printf("\n\tMSTP Configuration Name %s, revision %u, digest %08x%08x%08x%08x",
|
||||
ptr + MST_BPDU_CONFIG_NAME_OFFSET,
|
||||
EXTRACT_16BITS(ptr + MST_BPDU_CONFIG_NAME_OFFSET + 32),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 4),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 8),
|
||||
EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12));
|
||||
|
||||
printf("\n\tCIST remaining-hops %d", ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]);
|
||||
printf("CIST remaining-hops %d", ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]);
|
||||
|
||||
/* Dump all MSTI's */
|
||||
v3len = EXTRACT_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET);
|
||||
@ -275,16 +320,48 @@ stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
|
||||
offset += MST_BPDU_MSTI_LENGTH;
|
||||
}
|
||||
}
|
||||
|
||||
if ((length-offset) >= SPB_BPDU_MIN_LEN)
|
||||
{
|
||||
printf("\n\tv4len %d AUXMCID Name %s, Rev %u, \n\t\tdigest %08x%08x%08x%08x",
|
||||
EXTRACT_16BITS (ptr + offset),
|
||||
ptr + offset + SPB_BPDU_CONFIG_NAME_OFFSET,
|
||||
EXTRACT_16BITS(ptr + offset + SPB_BPDU_CONFIG_REV_OFFSET),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_CONFIG_DIGEST_OFFSET),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_CONFIG_DIGEST_OFFSET + 4),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_CONFIG_DIGEST_OFFSET + 8),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_CONFIG_DIGEST_OFFSET + 12));
|
||||
|
||||
printf("\n\tAgreement num %d, Discarded Agreement num %d, Agreement valid-"
|
||||
"flag %d, \n\tRestricted role-flag: %d, Format id %d cap %d, "
|
||||
"Convention id %d cap %d, \n\tEdge count %d, "
|
||||
"Agreement digest %08x%08x%08x%08x%08x\n",
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>6,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>4 & 0x3,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>3 & 0x1,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>2 & 0x1,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET]>>4,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET]&0x00ff,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_CON_OFFSET]>>4,
|
||||
ptr[offset + SPB_BPDU_AGREEMENT_CON_OFFSET]&0x00ff,
|
||||
EXTRACT_16BITS(ptr + offset + SPB_BPDU_AGREEMENT_EDGE_OFFSET),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET),
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET)+4,
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET)+8,
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET)+12,
|
||||
EXTRACT_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET)+16);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Print 802.1d / 802.1w / 802.1q (mstp) packets.
|
||||
* Print 802.1d / 802.1w / 802.1q (mstp) / 802.1aq (spb) packets.
|
||||
*/
|
||||
void
|
||||
stp_print(const u_char *p, u_int length)
|
||||
{
|
||||
const struct stp_bpdu_ *stp_bpdu;
|
||||
u_int16_t mstp_len;
|
||||
u_int16_t spb_len;
|
||||
|
||||
stp_bpdu = (struct stp_bpdu_*)p;
|
||||
|
||||
@ -304,6 +381,7 @@ stp_print(const u_char *p, u_int length)
|
||||
case STP_PROTO_REGULAR:
|
||||
case STP_PROTO_RAPID:
|
||||
case STP_PROTO_MSTP:
|
||||
case STP_PROTO_SPB:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
@ -326,20 +404,35 @@ stp_print(const u_char *p, u_int length)
|
||||
goto trunc;
|
||||
}
|
||||
stp_print_config_bpdu(stp_bpdu, length);
|
||||
} else if (stp_bpdu->protocol_version == STP_PROTO_MSTP) {
|
||||
} else if (stp_bpdu->protocol_version == STP_PROTO_MSTP ||
|
||||
stp_bpdu->protocol_version == STP_PROTO_SPB) {
|
||||
if (length < STP_BPDU_MSTP_MIN_LEN) {
|
||||
goto trunc;
|
||||
}
|
||||
|
||||
if (stp_bpdu->v1_length != 0) {
|
||||
/* FIX ME: Emit a message here ? */
|
||||
goto trunc;
|
||||
}
|
||||
|
||||
/* Validate v3 length */
|
||||
mstp_len = EXTRACT_16BITS(p + MST_BPDU_VER3_LEN_OFFSET);
|
||||
mstp_len += 2; /* length encoding itself is 2 bytes */
|
||||
if (length < (sizeof(struct stp_bpdu_) + mstp_len)) {
|
||||
goto trunc;
|
||||
}
|
||||
|
||||
if (stp_bpdu->protocol_version == STP_PROTO_SPB)
|
||||
{
|
||||
/* Validate v4 length */
|
||||
spb_len = EXTRACT_16BITS (p + MST_BPDU_VER3_LEN_OFFSET + mstp_len);
|
||||
spb_len += 2;
|
||||
if (length < (sizeof(struct stp_bpdu_) + mstp_len + spb_len) ||
|
||||
spb_len < SPB_BPDU_MIN_LEN) {
|
||||
goto trunc;
|
||||
}
|
||||
}
|
||||
|
||||
stp_print_mstp_bpdu(stp_bpdu, length);
|
||||
}
|
||||
break;
|
||||
|
@ -639,6 +639,15 @@ tcp_print(register const u_char *bp, register u_int length,
|
||||
return;
|
||||
}
|
||||
|
||||
if (packettype) {
|
||||
switch (packettype) {
|
||||
case PT_ZMTP1:
|
||||
zmtp1_print(bp, length);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (sport == TELNET_PORT || dport == TELNET_PORT) {
|
||||
if (!qflag && vflag)
|
||||
telnet_print(bp, length);
|
||||
|
12
print-udp.c
12
print-udp.c
@ -469,6 +469,16 @@ udp_print(register const u_char *bp, u_int length,
|
||||
0);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case PT_RADIUS:
|
||||
udpipaddr_print(ip, sport, dport);
|
||||
radius_print(cp, length);
|
||||
break;
|
||||
|
||||
case PT_VXLAN:
|
||||
udpipaddr_print(ip, sport, dport);
|
||||
vxlan_print((const u_char *)(up + 1), length);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -658,6 +668,8 @@ udp_print(register const u_char *bp, u_int length,
|
||||
sip_print((const u_char *)(up + 1), length);
|
||||
else if (ISPORT(SYSLOG_PORT))
|
||||
syslog_print((const u_char *)(up + 1), length);
|
||||
else if (ISPORT(OTV_PORT))
|
||||
otv_print((const u_char *)(up + 1), length);
|
||||
else
|
||||
(void)printf("UDP, length %u",
|
||||
(u_int32_t)(ulen - sizeof(*up)));
|
||||
|
74
print-vxlan.c
Normal file
74
print-vxlan.c
Normal file
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that: (1) source code
|
||||
* distributions retain the above copyright notice and this paragraph
|
||||
* in its entirety, and (2) distributions including binary code include
|
||||
* the above copyright notice and this paragraph in its entirety in
|
||||
* the documentation or other materials provided with the distribution.
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND
|
||||
* WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
|
||||
* LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Original code by Francesco Fondelli (francesco dot fondelli, gmail dot com)
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <tcpdump-stdinc.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "interface.h"
|
||||
#include "extract.h"
|
||||
#include "addrtoname.h"
|
||||
|
||||
#include "udp.h"
|
||||
|
||||
/*
|
||||
* VXLAN header, draft-mahalingam-dutt-dcops-vxlan-03
|
||||
*
|
||||
* 0 1 2 3
|
||||
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* |R|R|R|R|I|R|R|R| Reserved |
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* | VXLAN Network Identifier (VNI) | Reserved |
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
*/
|
||||
|
||||
void
|
||||
vxlan_print(const u_char *bp, u_int len, u_int port)
|
||||
{
|
||||
u_int8_t flags;
|
||||
u_int32_t vni;
|
||||
|
||||
if (len < 8) {
|
||||
printf("[|VXLAN]");
|
||||
return;
|
||||
}
|
||||
|
||||
flags = *bp;
|
||||
bp += 4;
|
||||
|
||||
vni = EXTRACT_24BITS(bp);
|
||||
bp += 4;
|
||||
|
||||
printf("VXLAN, ");
|
||||
|
||||
fputs("flags [", stdout);
|
||||
if (flags & 0x08)
|
||||
fputs("I", stdout);
|
||||
else
|
||||
fputs(".", stdout);
|
||||
fputs("] ", stdout);
|
||||
|
||||
printf("(0x%02x), ", flags);
|
||||
printf("vni %u\n", vni);
|
||||
|
||||
ether_print(gndo, bp, len - 8, len - 8, NULL, NULL);
|
||||
return;
|
||||
}
|
148
print-zeromq.c
Normal file
148
print-zeromq.c
Normal file
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* This file implements decoding of ZeroMQ network protocol(s).
|
||||
*
|
||||
*
|
||||
* Copyright (c) 2013 The TCPDUMP project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <tcpdump-stdinc.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "interface.h"
|
||||
#include "extract.h"
|
||||
|
||||
/* Maximum number of ZMTP/1.0 frame body bytes (without the flags) to dump in
|
||||
* hex and ASCII under a single "-v" flag.
|
||||
*/
|
||||
#define VBYTES 128
|
||||
|
||||
/*
|
||||
* Below is an excerpt from the "13/ZMTP" specification:
|
||||
*
|
||||
* A ZMTP message consists of 1 or more frames.
|
||||
*
|
||||
* A ZMTP frame consists of a length, followed by a flags field and a frame
|
||||
* body of (length - 1) octets. Note: the length includes the flags field, so
|
||||
* an empty frame has a length of 1.
|
||||
*
|
||||
* For frames with a length of 1 to 254 octets, the length SHOULD BE encoded
|
||||
* as a single octet. The minimum valid length of a frame is 1 octet, thus a
|
||||
* length of 0 is invalid and such frames SHOULD be discarded silently.
|
||||
*
|
||||
* For frames with lengths of 255 and greater, the length SHALL BE encoded as
|
||||
* a single octet with the value 255, followed by the length encoded as a
|
||||
* 64-bit unsigned integer in network byte order. For frames with lengths of
|
||||
* 1 to 254 octets this encoding MAY be also used.
|
||||
*
|
||||
* The flags field consists of a single octet containing various control
|
||||
* flags. Bit 0 is the least significant bit.
|
||||
*
|
||||
* - Bit 0 (MORE): More frames to follow. A value of 0 indicates that there
|
||||
* are no more frames to follow. A value of 1 indicates that more frames
|
||||
* will follow. On messages consisting of a single frame the MORE flag MUST
|
||||
* be 0.
|
||||
*
|
||||
* - Bits 1-7: Reserved. Bits 1-7 are reserved for future use and SHOULD be
|
||||
* zero.
|
||||
*/
|
||||
|
||||
static const u_char *
|
||||
zmtp1_print_frame(const u_char *cp, const u_char *ep) {
|
||||
u_int64_t body_len_declared, body_len_captured, header_len;
|
||||
u_int8_t flags;
|
||||
|
||||
printf("\n\t");
|
||||
TCHECK2(*cp, 1); /* length/0xFF */
|
||||
|
||||
if (cp[0] != 0xFF) {
|
||||
header_len = 1; /* length */
|
||||
body_len_declared = cp[0];
|
||||
if (body_len_declared == 0)
|
||||
return cp + header_len; /* skip to next frame */
|
||||
printf(" frame flags+body (8-bit) length %"PRIu8"", cp[0]);
|
||||
TCHECK2(*cp, header_len + 1); /* length, flags */
|
||||
flags = cp[1];
|
||||
} else {
|
||||
header_len = 1 + 8; /* 0xFF, length */
|
||||
printf(" frame flags+body (64-bit) length");
|
||||
TCHECK2(*cp, header_len); /* 0xFF, length */
|
||||
body_len_declared = EXTRACT_64BITS(cp + 1);
|
||||
if (body_len_declared == 0)
|
||||
return cp + header_len; /* skip to next frame */
|
||||
printf(" %"PRIu64"", body_len_declared);
|
||||
TCHECK2(*cp, header_len + 1); /* 0xFF, length, flags */
|
||||
flags = cp[9];
|
||||
}
|
||||
|
||||
body_len_captured = ep - cp - header_len;
|
||||
if (body_len_declared > body_len_captured)
|
||||
printf(" (%"PRIu64" captured)", body_len_captured);
|
||||
printf(", flags 0x%02"PRIx8"", flags);
|
||||
|
||||
if (vflag) {
|
||||
u_int64_t body_len_printed = MIN(body_len_captured, body_len_declared);
|
||||
|
||||
printf(" (%s|%s|%s|%s|%s|%s|%s|%s)",
|
||||
flags & 0x80 ? "MBZ" : "-",
|
||||
flags & 0x40 ? "MBZ" : "-",
|
||||
flags & 0x20 ? "MBZ" : "-",
|
||||
flags & 0x10 ? "MBZ" : "-",
|
||||
flags & 0x08 ? "MBZ" : "-",
|
||||
flags & 0x04 ? "MBZ" : "-",
|
||||
flags & 0x02 ? "MBZ" : "-",
|
||||
flags & 0x01 ? "MORE" : "-");
|
||||
|
||||
if (vflag == 1)
|
||||
body_len_printed = MIN(VBYTES + 1, body_len_printed);
|
||||
if (body_len_printed > 1) {
|
||||
printf(", first %"PRIu64" byte(s) of body:", body_len_printed - 1);
|
||||
hex_and_ascii_print("\n\t ", cp + header_len + 1, body_len_printed - 1);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
TCHECK2(*cp, header_len + body_len_declared); /* Next frame within the buffer ? */
|
||||
return cp + header_len + body_len_declared;
|
||||
|
||||
trunc:
|
||||
printf(" [|zmtp1]");
|
||||
return ep;
|
||||
}
|
||||
|
||||
void
|
||||
zmtp1_print(const u_char *cp, u_int len) {
|
||||
const u_char *ep = MIN(snapend, cp + len);
|
||||
|
||||
printf(": ZMTP/1.0");
|
||||
while (cp < ep)
|
||||
cp = zmtp1_print_frame(cp, ep);
|
||||
}
|
||||
|
2
tcp.h
2
tcp.h
@ -105,7 +105,7 @@ struct tcphdr {
|
||||
#define NFS_PORT 2049
|
||||
#endif
|
||||
#define MSDP_PORT 639
|
||||
#define RPKI_RTR_PORT 2222 /* experimental up until sidr-wg registers a well-known port */
|
||||
#define RPKI_RTR_PORT 323
|
||||
#define LDP_PORT 646
|
||||
#ifndef SMB_PORT
|
||||
#define SMB_PORT 445
|
||||
|
68
tcpdump.1.in
68
tcpdump.1.in
@ -22,7 +22,7 @@
|
||||
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
.\"
|
||||
.TH TCPDUMP 1 "05 March 2009"
|
||||
.TH TCPDUMP 1 "12 July 2012"
|
||||
.SH NAME
|
||||
tcpdump \- dump traffic on a network
|
||||
.SH SYNOPSIS
|
||||
@ -74,6 +74,10 @@ tcpdump \- dump traffic on a network
|
||||
.I file
|
||||
]
|
||||
[
|
||||
.B \-V
|
||||
.I file
|
||||
]
|
||||
[
|
||||
.B \-s
|
||||
.I snaplen
|
||||
]
|
||||
@ -127,8 +131,10 @@ flag, which causes it to save the packet data to a file for later
|
||||
analysis, and/or with the
|
||||
.B \-r
|
||||
flag, which causes it to read from a saved packet file rather than to
|
||||
read packets from a network interface. In all cases, only packets that
|
||||
match
|
||||
read packets from a network interface. It can also be run with the
|
||||
.B \-V
|
||||
flag, which causes it to read a list of saved packet files. In all cases,
|
||||
only packets that match
|
||||
.I expression
|
||||
will be processed by
|
||||
.IR tcpdump .
|
||||
@ -256,7 +262,9 @@ that lacks the
|
||||
function.
|
||||
.TP
|
||||
.B \-e
|
||||
Print the link-level header on each dump line.
|
||||
Print the link-level header on each dump line. This can be used, for
|
||||
example, to print MAC layer addresses for protocols such as Ethernet and
|
||||
IEEE 802.11.
|
||||
.TP
|
||||
.B \-E
|
||||
Use \fIspi@ipaddr algo:secret\fP for decrypting IPsec ESP packets that
|
||||
@ -276,7 +284,7 @@ The default is \fBdes-cbc\fP.
|
||||
The ability to decrypt packets is only present if \fItcpdump\fP was compiled
|
||||
with cryptography enabled.
|
||||
.IP
|
||||
\fIsecret\fP is the ASCII text for ESP secret key.
|
||||
\fIsecret\fP is the ASCII text for ESP secret key.
|
||||
If preceded by 0x, then a hex value will be read.
|
||||
.IP
|
||||
The option assumes RFC2406 ESP, not RFC1827 ESP.
|
||||
@ -288,7 +296,7 @@ you make it visible to others, via
|
||||
and other occasions.
|
||||
.IP
|
||||
In addition to the above syntax, the syntax \fIfile name\fP may be used
|
||||
to have tcpdump read the provided file in. The file is opened upon
|
||||
to have tcpdump read the provided file in. The file is opened upon
|
||||
receiving the first ESP packet, so any special permissions that tcpdump
|
||||
may have been given should already have been given up.
|
||||
.TP
|
||||
@ -509,15 +517,19 @@ Force packets selected by "\fIexpression\fP" to be interpreted the
|
||||
specified \fItype\fR.
|
||||
Currently known types are
|
||||
\fBaodv\fR (Ad-hoc On-demand Distance Vector protocol),
|
||||
\fBcarp\fR (Common Address Redundancy Protocol),
|
||||
\fBcnfp\fR (Cisco NetFlow protocol),
|
||||
\fBradius\fR (RADIUS),
|
||||
\fBrpc\fR (Remote Procedure Call),
|
||||
\fBrtp\fR (Real-Time Applications protocol),
|
||||
\fBrtcp\fR (Real-Time Applications control protocol),
|
||||
\fBsnmp\fR (Simple Network Management Protocol),
|
||||
\fBtftp\fR (Trivial File Transfer Protocol),
|
||||
\fBvat\fR (Visual Audio Tool),
|
||||
\fBwb\fR (distributed White Board),
|
||||
\fBzmtp1\fR (ZeroMQ Message Transport Protocol 1.0)
|
||||
and
|
||||
\fBwb\fR (distributed White Board).
|
||||
\fBvxlan\fR (Virtual eXtensible Local Area Network).
|
||||
.TP
|
||||
.B \-t
|
||||
\fIDon't\fP print a timestamp on each dump line.
|
||||
@ -590,6 +602,10 @@ With
|
||||
.B \-X
|
||||
Telnet options are printed in hex as well.
|
||||
.TP
|
||||
.B \-V
|
||||
Read a list of filenames from \fIfile\fR. Standard input is used
|
||||
if \fIfile\fR is ``-''.
|
||||
.TP
|
||||
.B \-w
|
||||
Write the raw packets to \fIfile\fR rather than parsing and printing
|
||||
them out.
|
||||
@ -602,21 +618,30 @@ amount of time after they are received. Use the
|
||||
.B \-U
|
||||
flag to cause packets to be written as soon as they are received.
|
||||
.IP
|
||||
The MIME type \fIapplication/vnd.tcpdump.pcap\fP has been registered
|
||||
with IANA for \fIpcap\fP files. The filename extension \fI.pcap\fP
|
||||
appears to be the most commonly used along with \fI.cap\fP and
|
||||
\fI.dmp\fP. \fITcpdump\fP itself doesn't check the extension when
|
||||
reading capture files and doesn't add an extension when writing them
|
||||
(it uses magic numbers in the file header instead). However, many
|
||||
operating systems and applications will use the extension if it is
|
||||
present and adding one (e.g. .pcap) is recommended.
|
||||
.IP
|
||||
See
|
||||
.BR pcap-savefile (@MAN_FILE_FORMATS@)
|
||||
for a description of the file format.
|
||||
.TP
|
||||
.B \-W
|
||||
Used in conjunction with the
|
||||
.B \-C
|
||||
Used in conjunction with the
|
||||
.B \-C
|
||||
option, this will limit the number
|
||||
of files created to the specified number, and begin overwriting files
|
||||
from the beginning, thus creating a 'rotating' buffer.
|
||||
from the beginning, thus creating a 'rotating' buffer.
|
||||
In addition, it will name
|
||||
the files with enough leading 0s to support the maximum number of
|
||||
files, allowing them to sort correctly.
|
||||
.IP
|
||||
Used in conjunction with the
|
||||
Used in conjunction with the
|
||||
.B \-G
|
||||
option, this will limit the number of rotated dump files that get
|
||||
created, exiting with status 0 when reaching the limit. If used with
|
||||
@ -626,7 +651,7 @@ as well, the behavior will result in cyclical files per timeslice.
|
||||
.B \-x
|
||||
When parsing and printing,
|
||||
in addition to printing the headers of each packet, print the data of
|
||||
each packet (minus its link level header) in hex.
|
||||
each packet (minus its link level header) in hex.
|
||||
The smaller of the entire packet or
|
||||
.I snaplen
|
||||
bytes will be printed. Note that this is the entire link-layer
|
||||
@ -705,8 +730,10 @@ For the \fIexpression\fP syntax, see
|
||||
.LP
|
||||
Expression arguments can be passed to \fItcpdump\fP as either a single
|
||||
argument or as multiple arguments, whichever is more convenient.
|
||||
Generally, if the expression contains Shell metacharacters, it is
|
||||
easier to pass it as a single, quoted argument.
|
||||
Generally, if the expression contains Shell metacharacters, such as
|
||||
backslashes used to escape protocol names, it is easier to pass it as
|
||||
a single, quoted argument rather than to escape the Shell
|
||||
metacharacters.
|
||||
Multiple arguments are concatenated with spaces before being parsed.
|
||||
.SH EXAMPLES
|
||||
.LP
|
||||
@ -1225,7 +1252,7 @@ tcp-push, tcp-act, tcp-urg.
|
||||
.PP
|
||||
This can be demonstrated as:
|
||||
.RS
|
||||
.B
|
||||
.B
|
||||
tcpdump -i xl0 'tcp[tcpflags] & tcp-push != 0'
|
||||
.RE
|
||||
.PP
|
||||
@ -1480,11 +1507,11 @@ not be useful to people who are not familiar with the workings of
|
||||
AFS and RX.
|
||||
.LP
|
||||
If the -v (verbose) flag is given twice, acknowledgement packets and
|
||||
additional header information is printed, such as the the RX call ID,
|
||||
additional header information is printed, such as the RX call ID,
|
||||
call number, sequence number, serial number, and the RX packet flags.
|
||||
.LP
|
||||
If the -v flag is given twice, additional information is printed,
|
||||
such as the the RX call ID, serial number, and the RX packet flags.
|
||||
such as the RX call ID, serial number, and the RX packet flags.
|
||||
The MTU negotiation information is also printed from RX ack packets.
|
||||
.LP
|
||||
If the -v flag is given three times, the security index and service id
|
||||
@ -1708,6 +1735,11 @@ serviced the `new packet' interrupt.
|
||||
.SH "SEE ALSO"
|
||||
stty(1), pcap(3PCAP), bpf(4), nit(4P), pcap-savefile(@MAN_FILE_FORMATS@),
|
||||
pcap-filter(@MAN_MISC_INFO@), pcap-tstamp-type(@MAN_MISC_INFO@)
|
||||
.LP
|
||||
.RS
|
||||
.I http://www.iana.org/assignments/media-types/application/vnd.tcpdump.pcap
|
||||
.RE
|
||||
.LP
|
||||
.SH AUTHORS
|
||||
The original authors are:
|
||||
.LP
|
||||
@ -1727,7 +1759,7 @@ The current version is available via http:
|
||||
The original distribution is available via anonymous ftp:
|
||||
.LP
|
||||
.RS
|
||||
.I ftp://ftp.ee.lbl.gov/tcpdump.tar.Z
|
||||
.I ftp://ftp.ee.lbl.gov/old/tcpdump.tar.Z
|
||||
.RE
|
||||
.LP
|
||||
IPv6/IPsec support is added by WIDE/KAME project.
|
||||
|
308
tcpdump.c
308
tcpdump.c
@ -74,6 +74,10 @@ extern int SIZE_BUF;
|
||||
#include <errno.h>
|
||||
#endif /* WIN32 */
|
||||
|
||||
/* capabilities convinience library */
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
#include <cap-ng.h>
|
||||
#endif /* HAVE_CAP_NG_H */
|
||||
|
||||
#include "netdissect.h"
|
||||
#include "interface.h"
|
||||
@ -83,8 +87,8 @@ extern int SIZE_BUF;
|
||||
#include "gmt2local.h"
|
||||
#include "pcap-missing.h"
|
||||
|
||||
#ifndef NAME_MAX
|
||||
#define NAME_MAX 255
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024
|
||||
#endif
|
||||
|
||||
#ifdef SIGINFO
|
||||
@ -461,7 +465,9 @@ show_dlts_and_exit(const char *device, pcap_t *pd)
|
||||
dlts[n_dlts]);
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_PCAP_FREE_DATALINKS
|
||||
pcap_free_datalinks(dlts);
|
||||
#endif
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@ -532,6 +538,19 @@ droproot(const char *username, const char *chroot_dir)
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
int ret = capng_change_id(pw->pw_uid, pw->pw_gid, CAPNG_NO_FLAG);
|
||||
if (ret < 0) {
|
||||
printf("error : ret %d\n", ret);
|
||||
}
|
||||
/* We don't need CAP_SETUID and CAP_SETGID */
|
||||
capng_update(CAPNG_DROP, CAPNG_EFFECTIVE, CAP_SETUID);
|
||||
capng_update(CAPNG_DROP, CAPNG_EFFECTIVE, CAP_SETUID);
|
||||
capng_update(CAPNG_DROP, CAPNG_PERMITTED, CAP_SETUID);
|
||||
capng_update(CAPNG_DROP, CAPNG_PERMITTED, CAP_SETUID);
|
||||
capng_apply(CAPNG_SELECT_BOTH);
|
||||
|
||||
#else
|
||||
if (initgroups(pw->pw_name, pw->pw_gid) != 0 ||
|
||||
setgid(pw->pw_gid) != 0 || setuid(pw->pw_uid) != 0) {
|
||||
fprintf(stderr, "tcpdump: Couldn't change to '%.32s' uid=%lu gid=%lu: %s\n",
|
||||
@ -541,6 +560,7 @@ droproot(const char *username, const char *chroot_dir)
|
||||
pcap_strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
#endif /* HAVE_CAP_NG_H */
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "tcpdump: Couldn't find user '%.32s'\n",
|
||||
@ -568,7 +588,9 @@ getWflagChars(int x)
|
||||
static void
|
||||
MakeFilename(char *buffer, char *orig_name, int cnt, int max_chars)
|
||||
{
|
||||
char *filename = malloc(NAME_MAX + 1);
|
||||
char *filename = malloc(PATH_MAX + 1);
|
||||
if (filename == NULL)
|
||||
error("Makefilename: malloc");
|
||||
|
||||
/* Process with strftime if Gflag is set. */
|
||||
if (Gflag != 0) {
|
||||
@ -582,17 +604,17 @@ MakeFilename(char *buffer, char *orig_name, int cnt, int max_chars)
|
||||
/* There's no good way to detect an error in strftime since a return
|
||||
* value of 0 isn't necessarily failure.
|
||||
*/
|
||||
strftime(filename, NAME_MAX, orig_name, local_tm);
|
||||
strftime(filename, PATH_MAX, orig_name, local_tm);
|
||||
} else {
|
||||
strncpy(filename, orig_name, NAME_MAX);
|
||||
strncpy(filename, orig_name, PATH_MAX);
|
||||
}
|
||||
|
||||
if (cnt == 0 && max_chars == 0)
|
||||
strncpy(buffer, filename, NAME_MAX + 1);
|
||||
strncpy(buffer, filename, PATH_MAX + 1);
|
||||
else
|
||||
if (snprintf(buffer, NAME_MAX + 1, "%s%0*d", filename, max_chars, cnt) > NAME_MAX)
|
||||
if (snprintf(buffer, PATH_MAX + 1, "%s%0*d", filename, max_chars, cnt) > PATH_MAX)
|
||||
/* Report an error if the filename is too large */
|
||||
error("too many output files or filename is too long (> %d)", NAME_MAX);
|
||||
error("too many output files or filename is too long (> %d)", PATH_MAX);
|
||||
free(filename);
|
||||
}
|
||||
|
||||
@ -610,14 +632,55 @@ static int tcpdump_printf(netdissect_options *ndo _U_,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct print_info
|
||||
get_print_info(int type)
|
||||
{
|
||||
struct print_info printinfo;
|
||||
|
||||
printinfo.ndo_type = 1;
|
||||
printinfo.ndo = gndo;
|
||||
printinfo.p.ndo_printer = lookup_ndo_printer(type);
|
||||
if (printinfo.p.ndo_printer == NULL) {
|
||||
printinfo.p.printer = lookup_printer(type);
|
||||
printinfo.ndo_type = 0;
|
||||
if (printinfo.p.printer == NULL) {
|
||||
gndo->ndo_dltname = pcap_datalink_val_to_name(type);
|
||||
if (gndo->ndo_dltname != NULL)
|
||||
error("packet printing is not supported for link type %s: use -w",
|
||||
gndo->ndo_dltname);
|
||||
else
|
||||
error("packet printing is not supported for link type %d: use -w", type);
|
||||
}
|
||||
}
|
||||
return (printinfo);
|
||||
}
|
||||
|
||||
static char *
|
||||
get_next_file(FILE *VFile, char *ptr)
|
||||
{
|
||||
char *ret;
|
||||
|
||||
ret = fgets(ptr, PATH_MAX, VFile);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
|
||||
if (ptr[strlen(ptr) - 1] == '\n')
|
||||
ptr[strlen(ptr) - 1] = '\0';
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
register int cnt, op, i;
|
||||
bpf_u_int32 localnet, netmask;
|
||||
register char *cp, *infile, *cmdbuf, *device, *RFileName, *WFileName;
|
||||
register char *cp, *infile, *cmdbuf, *device, *RFileName, *VFileName, *WFileName;
|
||||
pcap_handler callback;
|
||||
int type;
|
||||
int dlt;
|
||||
int new_dlt;
|
||||
const char *dlt_name;
|
||||
struct bpf_program fcode;
|
||||
#ifndef WIN32
|
||||
RETSIGTYPE (*oldhandler)(int);
|
||||
@ -626,13 +689,17 @@ main(int argc, char **argv)
|
||||
struct dump_info dumpinfo;
|
||||
u_char *pcap_userdata;
|
||||
char ebuf[PCAP_ERRBUF_SIZE];
|
||||
char VFileLine[PATH_MAX + 1];
|
||||
char *username = NULL;
|
||||
char *chroot_dir = NULL;
|
||||
char *ret = NULL;
|
||||
char *end;
|
||||
#ifdef HAVE_PCAP_FINDALLDEVS
|
||||
pcap_if_t *devpointer;
|
||||
int devnum;
|
||||
#endif
|
||||
int status;
|
||||
FILE *VFile;
|
||||
#ifdef WIN32
|
||||
if(wsockinit() != 0) return 1;
|
||||
#endif /* WIN32 */
|
||||
@ -651,7 +718,10 @@ main(int argc, char **argv)
|
||||
device = NULL;
|
||||
infile = NULL;
|
||||
RFileName = NULL;
|
||||
VFileName = NULL;
|
||||
VFile = NULL;
|
||||
WFileName = NULL;
|
||||
dlt = -1;
|
||||
if ((cp = strrchr(argv[0], '/')) != NULL)
|
||||
program_name = cp + 1;
|
||||
else
|
||||
@ -665,7 +735,7 @@ main(int argc, char **argv)
|
||||
#endif
|
||||
|
||||
while (
|
||||
(op = getopt(argc, argv, "aAb" B_FLAG "c:C:d" D_FLAG "eE:fF:G:hHi:" I_FLAG j_FLAG J_FLAG "KlLm:M:nNOpqr:Rs:StT:u" U_FLAG "vw:W:xXy:Yz:Z:")) != -1)
|
||||
(op = getopt(argc, argv, "aAb" B_FLAG "c:C:d" D_FLAG "eE:fF:G:hHi:" I_FLAG j_FLAG J_FLAG "KlLm:M:nNOpqr:Rs:StT:u" U_FLAG "V:vw:W:xXy:Yz:Z:")) != -1)
|
||||
switch (op) {
|
||||
|
||||
case 'a':
|
||||
@ -781,7 +851,8 @@ main(int argc, char **argv)
|
||||
* It can be useful on Windows, where more than
|
||||
* one interface can have the same name.
|
||||
*/
|
||||
if ((devnum = atoi(optarg)) != 0) {
|
||||
devnum = strtol(optarg, &end, 10);
|
||||
if (optarg != end && *end == '\0') {
|
||||
if (devnum < 0)
|
||||
error("Invalid adapter index");
|
||||
|
||||
@ -900,9 +971,7 @@ main(int argc, char **argv)
|
||||
Rflag = 0;
|
||||
break;
|
||||
|
||||
case 's': {
|
||||
char *end;
|
||||
|
||||
case 's':
|
||||
snaplen = strtol(optarg, &end, 0);
|
||||
if (optarg == end || *end != '\0'
|
||||
|| snaplen < 0 || snaplen > MAXIMUM_SNAPLEN)
|
||||
@ -910,7 +979,6 @@ main(int argc, char **argv)
|
||||
else if (snaplen == 0)
|
||||
snaplen = MAXIMUM_SNAPLEN;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'S':
|
||||
++Sflag;
|
||||
@ -941,6 +1009,12 @@ main(int argc, char **argv)
|
||||
packettype = PT_AODV;
|
||||
else if (strcasecmp(optarg, "carp") == 0)
|
||||
packettype = PT_CARP;
|
||||
else if (strcasecmp(optarg, "radius") == 0)
|
||||
packettype = PT_RADIUS;
|
||||
else if (strcasecmp(optarg, "zmtp1") == 0)
|
||||
packettype = PT_ZMTP1;
|
||||
else if (strcasecmp(optarg, "vxlan") == 0)
|
||||
packettype = PT_VXLAN;
|
||||
else
|
||||
error("unknown packet type `%s'", optarg);
|
||||
break;
|
||||
@ -959,6 +1033,10 @@ main(int argc, char **argv)
|
||||
++vflag;
|
||||
break;
|
||||
|
||||
case 'V':
|
||||
VFileName = optarg;
|
||||
break;
|
||||
|
||||
case 'w':
|
||||
WFileName = optarg;
|
||||
break;
|
||||
@ -1044,6 +1122,12 @@ main(int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
|
||||
if (fflag != 0 && (VFileName != NULL || RFileName != NULL))
|
||||
error("-f can not be used with -V or -r");
|
||||
|
||||
if (VFileName != NULL && RFileName != NULL)
|
||||
error("-V and -r are mutually exclusive.");
|
||||
|
||||
#ifdef WITH_CHROOT
|
||||
/* if run as root, prepare for chrooting */
|
||||
if (getuid() == 0 || geteuid() == 0) {
|
||||
@ -1062,10 +1146,16 @@ main(int argc, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (RFileName != NULL) {
|
||||
int dlt;
|
||||
const char *dlt_name;
|
||||
|
||||
if (RFileName != NULL || VFileName != NULL) {
|
||||
/*
|
||||
* If RFileName is non-null, it's the pathname of a
|
||||
* savefile to read. If VFileName is non-null, it's
|
||||
* the pathname of a file containing a list of pathnames
|
||||
* (one per line) of savefiles to read.
|
||||
*
|
||||
* In either case, we're reading a savefile, not doing
|
||||
* a live capture.
|
||||
*/
|
||||
#ifndef WIN32
|
||||
/*
|
||||
* We don't need network access, so relinquish any set-UID
|
||||
@ -1079,6 +1169,21 @@ main(int argc, char **argv)
|
||||
if (setgid(getgid()) != 0 || setuid(getuid()) != 0 )
|
||||
fprintf(stderr, "Warning: setgid/setuid failed !\n");
|
||||
#endif /* WIN32 */
|
||||
if (VFileName != NULL) {
|
||||
if (VFileName[0] == '-' && VFileName[1] == '\0')
|
||||
VFile = stdin;
|
||||
else
|
||||
VFile = fopen(VFileName, "r");
|
||||
|
||||
if (VFile == NULL)
|
||||
error("Unable to open file: %s\n", strerror(errno));
|
||||
|
||||
ret = get_next_file(VFile, VFileLine);
|
||||
if (!ret)
|
||||
error("Nothing in %s\n", VFileName);
|
||||
RFileName = VFileLine;
|
||||
}
|
||||
|
||||
pd = pcap_open_offline(RFileName, ebuf);
|
||||
if (pd == NULL)
|
||||
error("%s", ebuf);
|
||||
@ -1095,15 +1200,20 @@ main(int argc, char **argv)
|
||||
}
|
||||
localnet = 0;
|
||||
netmask = 0;
|
||||
if (fflag != 0)
|
||||
error("-f and -r options are incompatible");
|
||||
} else {
|
||||
/*
|
||||
* We're doing a live capture.
|
||||
*/
|
||||
if (device == NULL) {
|
||||
device = pcap_lookupdev(ebuf);
|
||||
if (device == NULL)
|
||||
error("%s", ebuf);
|
||||
}
|
||||
#ifdef WIN32
|
||||
/*
|
||||
* Print a message to the standard error on Windows.
|
||||
* XXX - why do it here, with a different message?
|
||||
*/
|
||||
if(strlen(device) == 1) //we assume that an ASCII string is always longer than 1 char
|
||||
{ //a Unicode string has a \0 as second byte (so strlen() is 1)
|
||||
fprintf(stderr, "%s: listening on %ws\n", program_name, device);
|
||||
@ -1254,10 +1364,10 @@ main(int argc, char **argv)
|
||||
|
||||
if (pcap_compile(pd, &fcode, cmdbuf, Oflag, netmask) < 0)
|
||||
error("%s", pcap_geterr(pd));
|
||||
free(cmdbuf);
|
||||
if (dflag) {
|
||||
bpf_dump(&fcode, dflag);
|
||||
pcap_close(pd);
|
||||
free(cmdbuf);
|
||||
exit(0);
|
||||
}
|
||||
init_addrtoname(localnet, netmask);
|
||||
@ -1295,9 +1405,31 @@ main(int argc, char **argv)
|
||||
* Switching to the -Z user ID only after opening the first
|
||||
* savefile doesn't handle the general case.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
/* We are running as root and we will be writing to savefile */
|
||||
if ((getuid() == 0 || geteuid() == 0) && WFileName) {
|
||||
if (username) {
|
||||
/* Drop all capabilities from effective set */
|
||||
capng_clear(CAPNG_EFFECTIVE);
|
||||
/* Add capabilities we will need*/
|
||||
capng_update(CAPNG_ADD, CAPNG_PERMITTED, CAP_SETUID);
|
||||
capng_update(CAPNG_ADD, CAPNG_PERMITTED, CAP_SETGID);
|
||||
capng_update(CAPNG_ADD, CAPNG_PERMITTED, CAP_DAC_OVERRIDE);
|
||||
|
||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE, CAP_SETUID);
|
||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE, CAP_SETGID);
|
||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE, CAP_DAC_OVERRIDE);
|
||||
|
||||
capng_apply(CAPNG_SELECT_BOTH);
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_CAP_NG_H */
|
||||
|
||||
if (getuid() == 0 || geteuid() == 0) {
|
||||
if (username || chroot_dir)
|
||||
droproot(username, chroot_dir);
|
||||
|
||||
}
|
||||
#endif /* WIN32 */
|
||||
|
||||
@ -1305,8 +1437,8 @@ main(int argc, char **argv)
|
||||
error("%s", pcap_geterr(pd));
|
||||
if (WFileName) {
|
||||
pcap_dumper_t *p;
|
||||
/* Do not exceed the default NAME_MAX for files. */
|
||||
dumpinfo.CurrentFileName = (char *)malloc(NAME_MAX + 1);
|
||||
/* Do not exceed the default PATH_MAX for files. */
|
||||
dumpinfo.CurrentFileName = (char *)malloc(PATH_MAX + 1);
|
||||
|
||||
if (dumpinfo.CurrentFileName == NULL)
|
||||
error("malloc of dumpinfo.CurrentFileName");
|
||||
@ -1318,6 +1450,10 @@ main(int argc, char **argv)
|
||||
MakeFilename(dumpinfo.CurrentFileName, WFileName, 0, 0);
|
||||
|
||||
p = pcap_dump_open(pd, dumpinfo.CurrentFileName);
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
/* Give up capabilities, clear Effective set */
|
||||
capng_clear(CAPNG_EFFECTIVE);
|
||||
#endif
|
||||
if (p == NULL)
|
||||
error("%s", pcap_geterr(pd));
|
||||
if (Cflag != 0 || Gflag != 0) {
|
||||
@ -1336,21 +1472,7 @@ main(int argc, char **argv)
|
||||
#endif
|
||||
} else {
|
||||
type = pcap_datalink(pd);
|
||||
printinfo.ndo_type = 1;
|
||||
printinfo.ndo = gndo;
|
||||
printinfo.p.ndo_printer = lookup_ndo_printer(type);
|
||||
if (printinfo.p.ndo_printer == NULL) {
|
||||
printinfo.p.printer = lookup_printer(type);
|
||||
printinfo.ndo_type = 0;
|
||||
if (printinfo.p.printer == NULL) {
|
||||
gndo->ndo_dltname = pcap_datalink_val_to_name(type);
|
||||
if (gndo->ndo_dltname != NULL)
|
||||
error("packet printing is not supported for link type %s: use -w",
|
||||
gndo->ndo_dltname);
|
||||
else
|
||||
error("packet printing is not supported for link type %d: use -w", type);
|
||||
}
|
||||
}
|
||||
printinfo = get_print_info(type);
|
||||
callback = print_packet;
|
||||
pcap_userdata = (u_char *)&printinfo;
|
||||
}
|
||||
@ -1382,9 +1504,11 @@ main(int argc, char **argv)
|
||||
|
||||
#ifndef WIN32
|
||||
if (RFileName == NULL) {
|
||||
int dlt;
|
||||
const char *dlt_name;
|
||||
|
||||
/*
|
||||
* Live capture (if -V was specified, we set RFileName
|
||||
* to a file from the -V file). Print a message to
|
||||
* the standard error on UN*X.
|
||||
*/
|
||||
if (!vflag && !WFileName) {
|
||||
(void)fprintf(stderr,
|
||||
"%s: verbose output suppressed, use -v or -vv for full protocol decode\n",
|
||||
@ -1404,37 +1528,69 @@ main(int argc, char **argv)
|
||||
(void)fflush(stderr);
|
||||
}
|
||||
#endif /* WIN32 */
|
||||
status = pcap_loop(pd, cnt, callback, pcap_userdata);
|
||||
if (WFileName == NULL) {
|
||||
/*
|
||||
* We're printing packets. Flush the printed output,
|
||||
* so it doesn't get intermingled with error output.
|
||||
*/
|
||||
if (status == -2) {
|
||||
do {
|
||||
status = pcap_loop(pd, cnt, callback, pcap_userdata);
|
||||
if (WFileName == NULL) {
|
||||
/*
|
||||
* We got interrupted, so perhaps we didn't
|
||||
* manage to finish a line we were printing.
|
||||
* Print an extra newline, just in case.
|
||||
* We're printing packets. Flush the printed output,
|
||||
* so it doesn't get intermingled with error output.
|
||||
*/
|
||||
putchar('\n');
|
||||
if (status == -2) {
|
||||
/*
|
||||
* We got interrupted, so perhaps we didn't
|
||||
* manage to finish a line we were printing.
|
||||
* Print an extra newline, just in case.
|
||||
*/
|
||||
putchar('\n');
|
||||
}
|
||||
(void)fflush(stdout);
|
||||
}
|
||||
if (status == -1) {
|
||||
/*
|
||||
* Error. Report it.
|
||||
*/
|
||||
(void)fprintf(stderr, "%s: pcap_loop: %s\n",
|
||||
program_name, pcap_geterr(pd));
|
||||
}
|
||||
if (RFileName == NULL) {
|
||||
/*
|
||||
* We're doing a live capture. Report the capture
|
||||
* statistics.
|
||||
*/
|
||||
info(1);
|
||||
}
|
||||
pcap_close(pd);
|
||||
if (VFileName != NULL) {
|
||||
ret = get_next_file(VFile, VFileLine);
|
||||
if (ret) {
|
||||
RFileName = VFileLine;
|
||||
pd = pcap_open_offline(RFileName, ebuf);
|
||||
if (pd == NULL)
|
||||
error("%s", ebuf);
|
||||
new_dlt = pcap_datalink(pd);
|
||||
if (WFileName && new_dlt != dlt)
|
||||
error("%s: new dlt does not match original", RFileName);
|
||||
printinfo = get_print_info(new_dlt);
|
||||
dlt_name = pcap_datalink_val_to_name(new_dlt);
|
||||
if (dlt_name == NULL) {
|
||||
fprintf(stderr, "reading from file %s, link-type %u\n",
|
||||
RFileName, new_dlt);
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"reading from file %s, link-type %s (%s)\n",
|
||||
RFileName, dlt_name,
|
||||
pcap_datalink_val_to_description(new_dlt));
|
||||
}
|
||||
if (pcap_compile(pd, &fcode, cmdbuf, Oflag, netmask) < 0)
|
||||
error("%s", pcap_geterr(pd));
|
||||
if (pcap_setfilter(pd, &fcode) < 0)
|
||||
error("%s", pcap_geterr(pd));
|
||||
}
|
||||
}
|
||||
(void)fflush(stdout);
|
||||
}
|
||||
if (status == -1) {
|
||||
/*
|
||||
* Error. Report it.
|
||||
*/
|
||||
(void)fprintf(stderr, "%s: pcap_loop: %s\n",
|
||||
program_name, pcap_geterr(pd));
|
||||
}
|
||||
if (RFileName == NULL) {
|
||||
/*
|
||||
* We're doing a live capture. Report the capture
|
||||
* statistics.
|
||||
*/
|
||||
info(1);
|
||||
}
|
||||
pcap_close(pd);
|
||||
while (ret != NULL);
|
||||
|
||||
free(cmdbuf);
|
||||
exit(status == -1 ? 1 : 0);
|
||||
}
|
||||
|
||||
@ -1635,7 +1791,7 @@ dump_packet_and_trunc(u_char *user, const struct pcap_pkthdr *h, const u_char *s
|
||||
if (dump_info->CurrentFileName != NULL)
|
||||
free(dump_info->CurrentFileName);
|
||||
/* Allocate space for max filename + \0. */
|
||||
dump_info->CurrentFileName = (char *)malloc(NAME_MAX + 1);
|
||||
dump_info->CurrentFileName = (char *)malloc(PATH_MAX + 1);
|
||||
if (dump_info->CurrentFileName == NULL)
|
||||
error("dump_packet_and_trunc: malloc");
|
||||
/*
|
||||
@ -1649,7 +1805,15 @@ dump_packet_and_trunc(u_char *user, const struct pcap_pkthdr *h, const u_char *s
|
||||
else
|
||||
MakeFilename(dump_info->CurrentFileName, dump_info->WFileName, 0, 0);
|
||||
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE, CAP_DAC_OVERRIDE);
|
||||
capng_apply(CAPNG_EFFECTIVE);
|
||||
#endif /* HAVE_CAP_NG_H */
|
||||
dump_info->p = pcap_dump_open(dump_info->pd, dump_info->CurrentFileName);
|
||||
#ifdef HAVE_CAP_NG_H
|
||||
capng_update(CAPNG_DROP, CAPNG_EFFECTIVE, CAP_DAC_OVERRIDE);
|
||||
capng_apply(CAPNG_EFFECTIVE);
|
||||
#endif /* HAVE_CAP_NG_H */
|
||||
if (dump_info->p == NULL)
|
||||
error("%s", pcap_geterr(pd));
|
||||
}
|
||||
@ -1679,7 +1843,7 @@ dump_packet_and_trunc(u_char *user, const struct pcap_pkthdr *h, const u_char *s
|
||||
}
|
||||
if (dump_info->CurrentFileName != NULL)
|
||||
free(dump_info->CurrentFileName);
|
||||
dump_info->CurrentFileName = (char *)malloc(NAME_MAX + 1);
|
||||
dump_info->CurrentFileName = (char *)malloc(PATH_MAX + 1);
|
||||
if (dump_info->CurrentFileName == NULL)
|
||||
error("dump_packet_and_trunc: malloc");
|
||||
MakeFilename(dump_info->CurrentFileName, dump_info->WFileName, Cflag_count, WflagChars);
|
||||
@ -1918,7 +2082,7 @@ usage(void)
|
||||
(void)fprintf(stderr,
|
||||
"\t\t[ -i interface ]" j_FLAG_USAGE " [ -M secret ]\n");
|
||||
(void)fprintf(stderr,
|
||||
"\t\t[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]\n");
|
||||
"\t\t[ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]\n");
|
||||
(void)fprintf(stderr,
|
||||
"\t\t[ -W filecount ] [ -y datalinktype ] [ -z command ]\n");
|
||||
(void)fprintf(stderr,
|
||||
|
@ -1,5 +1,6 @@
|
||||
# BGP test
|
||||
# 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
|
||||
|
||||
# EAP tests
|
||||
eapon1 eapon1.pcap eapon1.out -t
|
||||
@ -60,9 +61,36 @@ sflow1 sflow_multiple_counter_30_pdus.pcap sflow_multiple_counter_3
|
||||
# Babel tests
|
||||
babel1 babel.pcap babel1.out -t
|
||||
babel1v babel.pcap babel1v.out -t -v
|
||||
babel_auth babel_auth.pcap babel_auth.out -t -v
|
||||
|
||||
# PPPoE tests
|
||||
pppoe pppoe.pcap pppoe.out -t
|
||||
|
||||
# IGMP tests
|
||||
igmpv3-queries igmpv3-queries.pcap igmpv3-queries.out -t
|
||||
|
||||
# ICMPv6
|
||||
icmpv6 icmpv6.pcap icmpv6.out -t -vv -c1
|
||||
icmpv6 icmpv6.pcap icmpv6.out -t -vv
|
||||
|
||||
# SPB tests
|
||||
spb spb.pcap spb.out -t
|
||||
|
||||
# SPB BPDUv4 tests
|
||||
spb_bpduv4 spb_bpduv4.pcap spb_bpduv4.out -t
|
||||
|
||||
# RIP tests
|
||||
ripv1v2 ripv1v2.pcap ripv1v2.out -t -v
|
||||
ripv2_auth ripv2_auth.pcap ripv2_auth.out -t -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
|
||||
|
||||
# ZeroMQ tests
|
||||
zmtp1v zmtp1.pcap zmtp1.out -t -v -T zmtp1
|
||||
|
||||
# MS NLB tests
|
||||
msnlb msnlb.pcap msnlb.out -t
|
||||
msnlb2 msnlb2.pcap msnlb2.out -t
|
||||
|
@ -4,6 +4,7 @@ mkdir -p NEW
|
||||
mkdir -p DIFF
|
||||
passed=0
|
||||
failed=0
|
||||
cat /dev/null > failure-outputs.txt
|
||||
|
||||
# first run any specific tests.
|
||||
for i in *.sh
|
||||
@ -42,6 +43,10 @@ do
|
||||
echo $name: failed.
|
||||
failed=`expr $failed + 1`
|
||||
echo $failed >.failed
|
||||
echo "Failed test: $name" >> failure-outputs.txt
|
||||
echo >> failure-outputs.txt
|
||||
cat DIFF/$output.diff >> failure-outputs.txt
|
||||
echo >> failure-outputs.txt
|
||||
fi
|
||||
done
|
||||
|
||||
@ -56,6 +61,9 @@ printf "%4u tests failed\n" $failed
|
||||
printf "%4u tests passed\n" $passed
|
||||
echo
|
||||
echo
|
||||
cat failure-outputs.txt
|
||||
echo
|
||||
echo
|
||||
exit $failed
|
||||
|
||||
|
||||
|
13
tests/babel_auth.out
Normal file
13
tests/babel_auth.out
Normal file
@ -0,0 +1,13 @@
|
||||
IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 436) fe80::b299:28ff:fec8:d646.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (424)
|
||||
Hello seqno 58134 interval 400
|
||||
Update/id ::/0 metric 65535 seqno 41391 interval 65535
|
||||
Request for any
|
||||
TS/PC timestamp 1339081200 packetcounter 2
|
||||
HMAC key-id 30 digest-20 AD0FA7CD8D5A1898EC5409C8EDDA68B3ACA21B80
|
||||
HMAC key-id 50 digest-32 8239F283D985047FA4B88597FDE3246455C6E4DD917B1441C2F3A82B9F737674
|
||||
HMAC key-id 1000 digest-64 6718CB4C2BB0976C127AB3CCCBFA1105A1D158F035BC9FAD86B0610A7ACD27E5A3D5A3090FFB0312D7CBB31834E5D3EA2B68CD1FEC3CFB9CE731D16BA8FEBA8C
|
||||
HMAC key-id 1000 digest-48 D2A5B80FF9D006907E3B6601C0C255D7D12D6EC61815E413A334E2A0D9271C75AFBC086C070C714E3EFF3496C20C56FB
|
||||
HMAC key-id 100 digest-20 7213CED66FE7154034EC64CD14AE4142A092DF33
|
||||
HMAC key-id 2000 digest-64 2A5D9D55393B19E440FAC49BDA521E18A7FE77F7AB4A90377009E46E2FFE49336435C7E4E7BE215996DF4F59C167EA1CCCDB4FF788DA29A30E34D974307ADFF4
|
||||
HMAC key-id 2000 digest-48 FE91AF27EEE137EF489F37FEE449100CDA8CCB3E794D0C4A225D12724A8CE2FFC85811B879CC566FD172269847091ED1
|
||||
HMAC key-id 3000 digest-64 38C4D82883A5778500D728D1E243E7579DE96FA726C9DB7F0805C52E96FEFDCE7A5FB9AF2CB845703926EAAB43C3E44989D6CCB158FC06DB455E9F8D0550B54F
|
BIN
tests/babel_auth.pcap
Normal file
BIN
tests/babel_auth.pcap
Normal file
Binary file not shown.
4
tests/dhcpv6-AFTR-Name-RFC6334.out
Normal file
4
tests/dhcpv6-AFTR-Name-RFC6334.out
Normal file
@ -0,0 +1,4 @@
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 56) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=d81eb8 (client-ID hwaddr type 1 000102030405) (option-request DNS-server AFTR-Name) (elapsed-time 0) (IA_PD IAID:33752069 T1:3600 T2:5400))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 142) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 advertise (xid=d81eb8 (IA_PD IAID:33752069 T1:150 T2:250 (IA_PD-prefix 2a00:1:1:100::/56 pltime:250 vltime:300)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 406802160 001122334455) (preference 10) (DNS-server 2a01::1) (AFTR-Name aftr-name.mydomain.net))
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 103) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=1e291d (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 406802160 001122334455) (option-request DNS-server AFTR-Name) (elapsed-time 0) (IA_PD IAID:33752069 T1:3600 T2:5400 (IA_PD-prefix 2a00:1:1:100::/56 pltime:7200 vltime:7500)))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 142) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 reply (xid=1e291d (IA_PD IAID:33752069 T1:150 T2:250 (IA_PD-prefix 2a00:1:1:100::/56 pltime:250 vltime:300)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 406802160 001122334455) (preference 10) (DNS-server 2a01::1) (AFTR-Name aftr-name.mydomain.net))
|
BIN
tests/dhcpv6-AFTR-Name-RFC6334.pcap
Normal file
BIN
tests/dhcpv6-AFTR-Name-RFC6334.pcap
Normal file
Binary file not shown.
4
tests/dhcpv6-ia-na.out
Normal file
4
tests/dhcpv6-ia-na.out
Normal file
@ -0,0 +1,4 @@
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 56) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=90b45c (client-ID hwaddr type 1 000102030405) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_NA IAID:33752069 T1:3600 T2:5400))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 88) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 advertise (xid=90b45c (IA_NA IAID:33752069 T1:3600 T2:5400 (IA_ADDR 2a00:1:1:200:38e6:b22e:c440:acdf pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259276 001122334455))
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 102) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=2ffdd1 (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259276 001122334455) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_NA IAID:33752069 T1:3600 T2:5400 (IA_ADDR 2a00:1:1:200:38e6:b22e:c440:acdf pltime:7200 vltime:7500)))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 88) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 reply (xid=2ffdd1 (IA_NA IAID:33752069 T1:3600 T2:5400 (IA_ADDR 2a00:1:1:200:38e6:b22e:c440:acdf pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259276 001122334455))
|
BIN
tests/dhcpv6-ia-na.pcap
Normal file
BIN
tests/dhcpv6-ia-na.pcap
Normal file
Binary file not shown.
4
tests/dhcpv6-ia-pd.out
Normal file
4
tests/dhcpv6-ia-pd.out
Normal file
@ -0,0 +1,4 @@
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 56) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=e1e093 (client-ID hwaddr type 1 000102030405) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_PD IAID:33752069 T1:3600 T2:5400))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 89) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 advertise (xid=e1e093 (IA_PD IAID:33752069 T1:3600 T2:5400 (IA_PD-prefix 2a00:1:1:100::/56 pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259545 001122334455))
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 103) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=12b08a (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259545 001122334455) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_PD IAID:33752069 T1:3600 T2:5400 (IA_PD-prefix 2a00:1:1:100::/56 pltime:7200 vltime:7500)))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 89) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 reply (xid=12b08a (IA_PD IAID:33752069 T1:3600 T2:5400 (IA_PD-prefix 2a00:1:1:100::/56 pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259545 001122334455))
|
BIN
tests/dhcpv6-ia-pd.pcap
Normal file
BIN
tests/dhcpv6-ia-pd.pcap
Normal file
Binary file not shown.
4
tests/dhcpv6-ia-ta.out
Normal file
4
tests/dhcpv6-ia-ta.out
Normal file
@ -0,0 +1,4 @@
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 48) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=28b040 (client-ID hwaddr type 1 000102030405) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_TA IAID:33752069))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 80) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 advertise (xid=28b040 (IA_TA IAID:33752069 (IA_ADDR 2a00:1:1:200:5da2:f920:84c4:88cc pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259120 001122334455))
|
||||
IP6 (class 0xc0, hlim 64, next-header UDP (17) payload length: 94) fe80::201:2ff:fe03:405.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=2b0e45 (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259120 001122334455) (option-request DNS-server DNS-search-list) (elapsed-time 0) (IA_TA IAID:33752069 (IA_ADDR 2a00:1:1:200:5da2:f920:84c4:88cc pltime:7200 vltime:7500)))
|
||||
IP6 (hlim 64, next-header UDP (17) payload length: 80) fe80::211:22ff:fe33:4455.547 > fe80::201:2ff:fe03:405.546: [udp sum ok] dhcp6 reply (xid=2b0e45 (IA_TA IAID:33752069 (IA_ADDR 2a00:1:1:200:5da2:f920:84c4:88cc pltime:4500 vltime:7200)) (client-ID hwaddr type 1 000102030405) (server-ID hwaddr/time type 1 time 407259120 001122334455))
|
BIN
tests/dhcpv6-ia-ta.pcap
Normal file
BIN
tests/dhcpv6-ia-ta.pcap
Normal file
Binary file not shown.
0
tests/failure-outputs.txt
Normal file
0
tests/failure-outputs.txt
Normal file
BIN
tests/forces2.pcap
Normal file
BIN
tests/forces2.pcap
Normal file
Binary file not shown.
751
tests/forces2vvv.out
Normal file
751
tests/forces2vvv.out
Normal file
@ -0,0 +1,751 @@
|
||||
05:12:46.942414 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [INIT] [init tag: 2926667004] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 1498547998]
|
||||
05:12:46.943161 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [INIT ACK] [init tag: 3861163764] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 2413889661]
|
||||
05:12:46.943242 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [COOKIE ECHO]
|
||||
05:12:46.943643 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [COOKIE ACK]
|
||||
05:12:47.944776 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [INIT] [init tag: 3153359751] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 3738337023]
|
||||
05:12:47.946163 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [INIT ACK] [init tag: 562272820] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 2275981483]
|
||||
05:12:47.946319 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [COOKIE ECHO]
|
||||
05:12:47.947214 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [COOKIE ACK]
|
||||
05:12:48.948471 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [INIT] [init tag: 1637919099] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 922703190]
|
||||
05:12:48.949179 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [INIT ACK] [init tag: 2538997808] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 2244318871]
|
||||
05:12:48.949212 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [COOKIE ECHO]
|
||||
05:12:48.950191 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [COOKIE ACK]
|
||||
05:12:49.951610 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 1498547998] [SID: 0] [SSEQ 0] [PPID 0x0]
|
||||
ForCES Association Setup
|
||||
ForCES Version 1 len 24B flags 0xf8000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x1
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=7, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:12:49.952213 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 1498547998] [a_rwnd 57320] [#gap acks 0] [#dup tsns 0]
|
||||
05:12:49.983328 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 2413889661] [SID: 0] [SSEQ 0] [PPID 0x0]
|
||||
ForCES Association Response
|
||||
ForCES Version 1 len 32B flags 0x38100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x1
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=7, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:12:49.983414 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 2413889661] [a_rwnd 57312] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:09.990457 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318871] [SID: 0] [SSEQ 0] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x1
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:09.990576 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318871] [a_rwnd 57320] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:10.977285 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 922703190] [SID: 0] [SSEQ 0] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x1
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:10.977790 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703190] [a_rwnd 57320] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:20.110083 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:13:20.110531 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:13:20.668242 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:13:20.668307 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:13:21.822790 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:13:21.822849 IP (tos 0x2,ECT(0), ttl 64, id 3, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:13:22.926155 IP (tos 0x2,ECT(0), ttl 64, id 4, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:13:22.926561 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:13:30.012956 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318872] [SID: 0] [SSEQ 1] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x2
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:30.213362 IP (tos 0x2,ECT(0), ttl 64, id 3, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318872] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:30.998747 IP (tos 0x2,ECT(0), ttl 64, id 4, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 922703191] [SID: 0] [SSEQ 1] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x2
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:31.199633 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703191] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:50.022950 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318873] [SID: 0] [SSEQ 2] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x3
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:50.222804 IP (tos 0x2,ECT(0), ttl 64, id 5, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318873] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:50.957859 IP (tos 0x2,ECT(0), ttl 64, id 3, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:13:50.958254 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:13:51.017217 IP (tos 0x2,ECT(0), ttl 64, id 6, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 922703192] [SID: 0] [SSEQ 2] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x3
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:13:51.218065 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703192] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:13:52.029041 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:13:52.029131 IP (tos 0x2,ECT(0), ttl 64, id 4, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:13:52.668078 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:13:52.668129 IP (tos 0x2,ECT(0), ttl 64, id 5, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:13:54.157975 IP (tos 0x2,ECT(0), ttl 64, id 6, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:13:54.158408 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:14:10.034601 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318874] [SID: 0] [SSEQ 3] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x4
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:10.036750 IP (tos 0x2,ECT(0), ttl 64, id 7, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318874] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703193] [SID: 0] [SSEQ 3] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x4
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:10.237566 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703193] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:14:22.318623 IP (tos 0x2,ECT(0), ttl 64, id 5, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:14:22.319118 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:14:23.004801 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:14:23.004855 IP (tos 0x2,ECT(0), ttl 64, id 6, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:14:23.644941 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:14:23.645019 IP (tos 0x2,ECT(0), ttl 64, id 7, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:14:25.517659 IP (tos 0x2,ECT(0), ttl 64, id 8, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:14:25.518177 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:14:30.056428 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318875] [SID: 0] [SSEQ 4] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x5
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:30.058780 IP (tos 0x2,ECT(0), ttl 64, id 8, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318875] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703194] [SID: 0] [SSEQ 4] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x5
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:30.260069 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703194] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:14:50.070392 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318876] [SID: 0] [SSEQ 5] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x6
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:50.078619 IP (tos 0x2,ECT(0), ttl 64, id 9, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318876] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703195] [SID: 0] [SSEQ 5] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x6
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:14:50.278482 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703195] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:14:52.910320 IP (tos 0x2,ECT(0), ttl 64, id 7, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:14:52.910757 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:14:54.236596 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:14:54.236684 IP (tos 0x2,ECT(0), ttl 64, id 8, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:14:54.236747 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:14:54.236765 IP (tos 0x2,ECT(0), ttl 64, id 9, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:14:56.494447 IP (tos 0x2,ECT(0), ttl 64, id 10, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:14:56.494903 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:15:10.087164 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318877] [SID: 0] [SSEQ 6] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x7
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:10.099646 IP (tos 0x2,ECT(0), ttl 64, id 10, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318877] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703196] [SID: 0] [SSEQ 6] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x7
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:10.300908 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703196] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:15:24.142057 IP (tos 0x2,ECT(0), ttl 64, id 9, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:15:24.142436 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:15:25.468346 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:15:25.468420 IP (tos 0x2,ECT(0), ttl 64, id 10, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:15:25.724070 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:15:25.724132 IP (tos 0x2,ECT(0), ttl 64, id 11, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:15:27.854217 IP (tos 0x2,ECT(0), ttl 64, id 12, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:15:27.854637 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:15:30.103924 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318878] [SID: 0] [SSEQ 7] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x8
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:30.121626 IP (tos 0x2,ECT(0), ttl 64, id 11, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318878] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703197] [SID: 0] [SSEQ 7] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x8
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:30.322461 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703197] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:15:50.116903 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318879] [SID: 0] [SSEQ 8] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x9
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:50.141079 IP (tos 0x2,ECT(0), ttl 64, id 12, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318879] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703198] [SID: 0] [SSEQ 8] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x9
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:50.341982 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703198] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:15:51.957705 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 140)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 2413889662] [SID: 0] [SSEQ 1] [PPID 0x0]
|
||||
ForCES Config
|
||||
ForCES Version 1 len 92B flags 0x78400000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x10
|
||||
ForCES flags:
|
||||
SuccessACK(0x1), prio=7, execute-all-or-none(0x1),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:52.144354 IP (tos 0x2,ECT(0), ttl 64, id 13, offset 0, flags [DF], proto SCTP (132), length 156)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 2413889662] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 1498547999] [SID: 0] [SSEQ 1] [PPID 0x0]
|
||||
ForCES Config Response
|
||||
ForCES Version 1 len 92B flags 0x38400000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x10
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=7, execute-all-or-none(0x1),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:15:52.344974 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 1498547999] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:15:55.629842 IP (tos 0x2,ECT(0), ttl 64, id 11, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:15:55.630342 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:15:56.189088 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:15:56.189160 IP (tos 0x2,ECT(0), ttl 64, id 12, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:16:11.972673 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318880] [SID: 0] [SSEQ 9] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x11
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:12.163738 IP (tos 0x2,ECT(0), ttl 64, id 13, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318880] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703199] [SID: 0] [SSEQ 9] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x11
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:12.364365 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703199] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:16:22.766463 IP (tos 0x2,ECT(0), ttl 64, id 14, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:16:22.766888 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:16:22.812607 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:16:22.812641 IP (tos 0x2,ECT(0), ttl 64, id 15, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:16:26.908770 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:16:26.908850 IP (tos 0x2,ECT(0), ttl 64, id 13, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:16:27.118570 IP (tos 0x2,ECT(0), ttl 64, id 14, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:16:27.118998 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:16:31.990056 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318881] [SID: 0] [SSEQ 10] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x12
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:32.184118 IP (tos 0x2,ECT(0), ttl 64, id 14, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318881] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703200] [SID: 0] [SSEQ 10] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x12
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:32.384948 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703200] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:16:52.009081 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 72)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [DATA] (B)(E) [TSN: 2244318882] [SID: 0] [SSEQ 11] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0xc0100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x13
|
||||
ForCES flags:
|
||||
AlwaysACK(0x3), prio=0, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:52.205727 IP (tos 0x2,ECT(0), ttl 64, id 15, offset 0, flags [DF], proto SCTP (132), length 88)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 2244318882] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
2) [DATA] (B)(E) [TSN: 922703201] [SID: 0] [SSEQ 11] [PPID 0x0]
|
||||
ForCES HeartBeat
|
||||
ForCES Version 1 len 24B flags 0x08000000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x13
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=1, EMReserved(0x0),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:52.406443 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SACK] [cum ack 922703201] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:16:53.532328 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:16:53.532396 IP (tos 0x2,ECT(0), ttl 64, id 16, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:16:53.998215 IP (tos 0x2,ECT(0), ttl 64, id 17, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [HB REQ]
|
||||
05:16:53.998632 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [HB ACK]
|
||||
05:16:57.965660 IP (tos 0x2,ECT(0), ttl 64, id 15, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:16:57.966179 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:16:58.268666 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [HB REQ]
|
||||
05:16:58.268737 IP (tos 0x2,ECT(0), ttl 64, id 16, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [HB ACK]
|
||||
05:16:58.751669 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 124)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 2413889663] [SID: 0] [SSEQ 2] [PPID 0x0]
|
||||
ForCES Query
|
||||
ForCES Version 1 len 76B flags 0x78400000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x14
|
||||
ForCES flags:
|
||||
SuccessACK(0x1), prio=7, execute-all-or-none(0x1),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:58.952418 IP (tos 0x2,ECT(0), ttl 64, id 18, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 2413889663] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:16:59.213890 IP (tos 0x2,ECT(0), ttl 64, id 19, offset 0, flags [DF], proto SCTP (132), length 140)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 1498548000] [SID: 0] [SSEQ 2] [PPID 0x0]
|
||||
ForCES Query Response
|
||||
ForCES Version 1 len 92B flags 0x38400000
|
||||
SrcID 0x2(FE) DstID 0x40000003(CE) Correlator 0x14
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=7, execute-all-or-none(0x1),
|
||||
Standalone(0x0), StartofTransaction(0x0)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:16:59.414572 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 1498548000] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:17:06.275584 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 80)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [DATA] (B)(E) [TSN: 2413889664] [SID: 0] [SSEQ 3] [PPID 0x0]
|
||||
ForCES Association TearDown
|
||||
ForCES Version 1 len 32B flags 0x38100000
|
||||
SrcID 0x40000003(CE) DstID 0x2(FE) Correlator 0x0
|
||||
ForCES flags:
|
||||
NoACK(0x0), prio=7, EMReserved(0x0),
|
||||
Standalone(0x0), EndofTransaction(0x2)
|
||||
Extra flags: rsv(b5-7) 0x0 rsv(b13-31) 0x0
|
||||
|
||||
|
||||
05:17:06.475558 IP (tos 0x2,ECT(0), ttl 64, id 20, offset 0, flags [DF], proto SCTP (132), length 48)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SACK] [cum ack 2413889664] [a_rwnd 57344] [#gap acks 0] [#dup tsns 0]
|
||||
05:17:07.278281 IP (tos 0x2,ECT(0), ttl 64, id 21, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:07.278648 IP (tos 0x2,ECT(0), ttl 64, id 17, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:07.278805 IP (tos 0x2,ECT(0), ttl 64, id 16, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:07.278894 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6704 > 192.168.1.142.53333: sctp[ForCES HP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:07.278986 IP (tos 0x2,ECT(0), ttl 64, id 22, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.53333 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SHUTDOWN COMPLETE]
|
||||
05:17:07.279062 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6705 > 192.168.1.142.48432: sctp[ForCES MP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:07.279086 IP (tos 0x2,ECT(0), ttl 64, id 18, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.48432 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [SHUTDOWN COMPLETE]
|
||||
05:17:07.279125 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6706 > 192.168.1.142.57793: sctp[ForCES LP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:07.279383 IP (tos 0x2,ECT(0), ttl 64, id 17, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.57793 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SHUTDOWN COMPLETE]
|
||||
05:17:08.224255 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.60979 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [INIT] [init tag: 893123932] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 4001675829]
|
||||
05:17:08.224782 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6704 > 192.168.1.142.60979: sctp[ForCES HP]
|
||||
1) [INIT ACK] [init tag: 3751052708] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 2904779402]
|
||||
05:17:08.224834 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.60979 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [COOKIE ECHO]
|
||||
05:17:08.225194 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6704 > 192.168.1.142.60979: sctp[ForCES HP]
|
||||
1) [COOKIE ACK]
|
||||
05:17:09.226814 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.41874 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [INIT] [init tag: 2631831000] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 3186084970]
|
||||
05:17:09.227378 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6705 > 192.168.1.142.41874: sctp[ForCES MP]
|
||||
1) [INIT ACK] [init tag: 1025500394] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 492081856]
|
||||
05:17:09.227470 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.41874 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [COOKIE ECHO]
|
||||
05:17:09.227843 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6705 > 192.168.1.142.41874: sctp[ForCES MP]
|
||||
1) [COOKIE ACK]
|
||||
05:17:10.234920 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 68)
|
||||
192.168.1.142.43249 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [INIT] [init tag: 1071698335] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 1223456824]
|
||||
05:17:10.235259 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 292)
|
||||
192.168.1.143.6706 > 192.168.1.142.43249: sctp[ForCES LP]
|
||||
1) [INIT ACK] [init tag: 2401559485] [rwnd: 57344] [OS: 1] [MIS: 1] [init TSN: 4176597732]
|
||||
05:17:10.235295 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 264)
|
||||
192.168.1.142.43249 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [COOKIE ECHO]
|
||||
05:17:10.235559 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6706 > 192.168.1.142.43249: sctp[ForCES LP]
|
||||
1) [COOKIE ACK]
|
||||
05:17:10.432954 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.60979 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:10.433287 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.41874 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:10.433473 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6704 > 192.168.1.142.60979: sctp[ForCES HP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:10.433517 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.60979 > 192.168.1.143.6704: sctp[ForCES HP]
|
||||
1) [SHUTDOWN COMPLETE]
|
||||
05:17:10.433629 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6705 > 192.168.1.142.41874: sctp[ForCES MP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:10.433866 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.41874 > 192.168.1.143.6705: sctp[ForCES MP]
|
||||
1) [SHUTDOWN COMPLETE]
|
||||
05:17:10.434075 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 40)
|
||||
192.168.1.142.43249 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SHUTDOWN]
|
||||
05:17:10.434365 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.143.6706 > 192.168.1.142.43249: sctp[ForCES LP]
|
||||
1) [SHUTDOWN ACK]
|
||||
05:17:10.434388 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 36)
|
||||
192.168.1.142.43249 > 192.168.1.143.6706: sctp[ForCES LP]
|
||||
1) [SHUTDOWN COMPLETE]
|
BIN
tests/forces3.pcap
Normal file
BIN
tests/forces3.pcap
Normal file
Binary file not shown.
@ -1,13 +1,26 @@
|
||||
IP6 (hlim 255, next-header ICMPv6 (58) payload length: 80) fe80::d498:f9ff:fee7:896 > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 80
|
||||
IP6 (hlim 255, next-header ICMPv6 (58) payload length: 176) fe80::b299:28ff:fec8:d66c > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 176
|
||||
hop limit 64, Flags [home agent], pref medium, router lifetime 15s, reachable time 0s, retrans time 0s
|
||||
homeagent information option (8), length 8 (1): preference 50001, lifetime 15
|
||||
0x0000: 0000 c351 000f
|
||||
advertisement interval option (7), length 8 (1): 5000ms
|
||||
0x0000: 0000 0000 1388
|
||||
prefix info option (3), length 32 (4): 2222:3333:4444:5555:6600::/72, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
|
||||
0x0000: 48c0 0027 8d00 0009 3a80 0000 0000 2222
|
||||
0x0010: 3333 4444 5555 6600 0000 0000 0000
|
||||
source link-address option (1), length 8 (1): d6:98:f9:e7:08:96
|
||||
0x0000: d698 f9e7 0896
|
||||
rdnss option (25), length 40 (5): lifetime 5s, addr: abcd::efef addr: 1234:5678::1
|
||||
0x0000: 0000 0000 0005 abcd 0000 0000 0000 0000
|
||||
0x0010: 0000 0000 efef 1234 5678 0000 0000 0000
|
||||
0x0020: 0000 0000 0001
|
||||
dnssl option (31), length 56 (7): lifetime 5s, domain(s): example.com. example.org. dom1.dom2.tld.
|
||||
0x0000: 0000 0000 0005 0765 7861 6d70 6c65 0363
|
||||
0x0010: 6f6d 0007 6578 616d 706c 6503 6f72 6700
|
||||
0x0020: 0464 6f6d 3104 646f 6d32 0374 6c64 0000
|
||||
0x0030: 0000 0000 0000
|
||||
mtu option (5), length 8 (1): 100
|
||||
0x0000: 0000 0000 0064
|
||||
source link-address option (1), length 8 (1): b0:99:28:c8:d6:6c
|
||||
0x0000: b099 28c8 d66c
|
||||
advertisement interval option (7), length 8 (1): 5000ms
|
||||
0x0000: 0000 0000 1388
|
||||
homeagent information option (8), length 8 (1): preference 50001, lifetime 15
|
||||
0x0000: 0000 c351 000f
|
||||
IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::215:17ff:fecc:e546 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::db8:1122:3344 to_ex { }]
|
||||
IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::b2a8:6eff:fe0c:d4e8 > ff02::1: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener query v2 [max resp delay=10000] [gaddr :: robustness=2 qqi=60]
|
||||
IP6 (hlim 1, next-header Options (0) payload length: 96) fe80::215:17ff:fecc:e546 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 4 group record(s) [gaddr ff02::db8:1122:3344 is_ex { }] [gaddr ff02::1:ffcc:e546 is_ex { }] [gaddr ff02::1:ffa7:10ad is_ex { }] [gaddr ff02::1:ff00:2 is_ex { }]
|
||||
IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::215:17ff:fecc:e546 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::db8:1122:3344 to_in { }]
|
||||
|
Binary file not shown.
6
tests/igmpv3-queries.out
Normal file
6
tests/igmpv3-queries.out
Normal file
@ -0,0 +1,6 @@
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3 [max resp time 51m12s]
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3 [max resp time 51m12s]
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3 [max resp time 1.0s]
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3 [max resp time 1.0s]
|
||||
IP 192.2.0.2 > 224.0.0.1: igmp query v3 [max resp time 1.0s]
|
BIN
tests/igmpv3-queries.pcap
Normal file
BIN
tests/igmpv3-queries.pcap
Normal file
Binary file not shown.
10
tests/mpbgp-linklocal-nexthop.out
Normal file
10
tests/mpbgp-linklocal-nexthop.out
Normal file
@ -0,0 +1,10 @@
|
||||
IP (tos 0xc0, ttl 64, id 22725, offset 0, flags [DF], proto TCP (6), length 142)
|
||||
30.0.0.1.49038 > 30.0.0.2.179: Flags [P.], cksum 0xd6dc (correct), seq 1284816775:1284816865, ack 1288709908, win 29, options [nop,nop,TS val 184150022 ecr 184150021], length 90: BGP, length: 90
|
||||
Update Message (2), length: 90
|
||||
Origin (1), length: 1, Flags [T]: Incomplete
|
||||
AS Path (2), length: 4, Flags [T]: 1
|
||||
Next Hop (3), length: 4, Flags [T]: 0.0.0.0
|
||||
Multi-Protocol Reach NLRI (14), length: 46, Flags [O]:
|
||||
AFI: IPv6 (2), SAFI: Unicast (1)
|
||||
nexthop: dead:beef::1, fe80::1ff:fe01:0, nh-length: 32, no SNPA
|
||||
4:5::/64
|
BIN
tests/mpbgp-linklocal-nexthop.pcap
Normal file
BIN
tests/mpbgp-linklocal-nexthop.pcap
Normal file
Binary file not shown.
2
tests/msnlb.out
Normal file
2
tests/msnlb.out
Normal file
@ -0,0 +1,2 @@
|
||||
MS NLB heartbeat, host priority: 2, cluster IP: 192.168.100.80, host IP: 192.168.100.82
|
||||
MS NLB heartbeat, host priority: 1, cluster IP: 192.168.100.80, host IP: 192.168.100.81
|
BIN
tests/msnlb.pcap
Normal file
BIN
tests/msnlb.pcap
Normal file
Binary file not shown.
2
tests/msnlb2.out
Normal file
2
tests/msnlb2.out
Normal file
@ -0,0 +1,2 @@
|
||||
[|MS NLB]
|
||||
[|MS NLB]
|
BIN
tests/msnlb2.pcap
Normal file
BIN
tests/msnlb2.pcap
Normal file
Binary file not shown.
@ -9,31 +9,31 @@ E..4.j@.@.!X.........p.P7X..7z.... .7......
|
||||
M...M...
|
||||
22:57:35.939423 IP 127.0.0.1.55920 > 127.0.0.1.80: Flags [P.], seq 1:203, ack 1, win 8192, options [nop,nop,TS val 1306300951 ecr 1306300950], length 202
|
||||
E....l@.@. ..........p.P7X..7z.... ........
|
||||
M...M...GET / HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: ELinks/0.10.4-7-debian (textmode; Linux 2.6.11-1-686-smp i686; 132x56-2)
|
||||
Accept: */*
|
||||
Accept-Encoding: gzip
|
||||
Accept-Language: en
|
||||
Connection: Keep-Alive
|
||||
|
||||
M...M...GET / HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: ELinks/0.10.4-7-debian (textmode; Linux 2.6.11-1-686-smp i686; 132x56-2)
|
||||
Accept: */*
|
||||
Accept-Encoding: gzip
|
||||
Accept-Language: en
|
||||
Connection: Keep-Alive
|
||||
|
||||
|
||||
22:57:35.940474 IP 127.0.0.1.80 > 127.0.0.1.55920: Flags [.], ack 203, win 8192, options [nop,nop,TS val 1306300952 ecr 1306300951], length 0
|
||||
E..4..@.@............P.p7z..7X.I.. .7......
|
||||
M...M...
|
||||
22:57:35.941232 IP 127.0.0.1.80 > 127.0.0.1.55920: Flags [P.], seq 1:5560, ack 203, win 8192, options [nop,nop,TS val 1306300953 ecr 1306300951], length 5559
|
||||
E.....@.@..%.........P.p7z..7X.I.. ........
|
||||
M...M...HTTP/1.1 200 OK
|
||||
Date: Wed, 06 Jul 2005 03:57:35 GMT
|
||||
Server: Apache/1.3.33
|
||||
Last-Modified: Sun, 15 Aug 2004 00:43:41 GMT
|
||||
ETag: "6e80f0-148a-411eb1bd"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 5258
|
||||
Keep-Alive: timeout=15, max=100
|
||||
Connection: Keep-Alive
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
M...M...HTTP/1.1 200 OK
|
||||
Date: Wed, 06 Jul 2005 03:57:35 GMT
|
||||
Server: Apache/1.3.33
|
||||
Last-Modified: Sun, 15 Aug 2004 00:43:41 GMT
|
||||
ETag: "6e80f0-148a-411eb1bd"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 5258
|
||||
Keep-Alive: timeout=15, max=100
|
||||
Connection: Keep-Alive
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
@ -9,31 +9,31 @@ M...M.......
|
||||
M...M...
|
||||
22:57:35.939423 IP 127.0.0.1.55920 > 127.0.0.1.80: Flags [P.], seq 1:203, ack 1, win 8192, options [nop,nop,TS val 1306300951 ecr 1306300950], length 202
|
||||
..............E....l@.@. ..........p.P7X..7z.... ........
|
||||
M...M...GET / HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: ELinks/0.10.4-7-debian (textmode; Linux 2.6.11-1-686-smp i686; 132x56-2)
|
||||
Accept: */*
|
||||
Accept-Encoding: gzip
|
||||
Accept-Language: en
|
||||
Connection: Keep-Alive
|
||||
|
||||
M...M...GET / HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: ELinks/0.10.4-7-debian (textmode; Linux 2.6.11-1-686-smp i686; 132x56-2)
|
||||
Accept: */*
|
||||
Accept-Encoding: gzip
|
||||
Accept-Language: en
|
||||
Connection: Keep-Alive
|
||||
|
||||
|
||||
22:57:35.940474 IP 127.0.0.1.80 > 127.0.0.1.55920: Flags [.], ack 203, win 8192, options [nop,nop,TS val 1306300952 ecr 1306300951], length 0
|
||||
..............E..4..@.@............P.p7z..7X.I.. .7......
|
||||
M...M...
|
||||
22:57:35.941232 IP 127.0.0.1.80 > 127.0.0.1.55920: Flags [P.], seq 1:5560, ack 203, win 8192, options [nop,nop,TS val 1306300953 ecr 1306300951], length 5559
|
||||
..............E.....@.@..%.........P.p7z..7X.I.. ........
|
||||
M...M...HTTP/1.1 200 OK
|
||||
Date: Wed, 06 Jul 2005 03:57:35 GMT
|
||||
Server: Apache/1.3.33
|
||||
Last-Modified: Sun, 15 Aug 2004 00:43:41 GMT
|
||||
ETag: "6e80f0-148a-411eb1bd"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 5258
|
||||
Keep-Alive: timeout=15, max=100
|
||||
Connection: Keep-Alive
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
M...M...HTTP/1.1 200 OK
|
||||
Date: Wed, 06 Jul 2005 03:57:35 GMT
|
||||
Server: Apache/1.3.33
|
||||
Last-Modified: Sun, 15 Aug 2004 00:43:41 GMT
|
||||
ETag: "6e80f0-148a-411eb1bd"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 5258
|
||||
Keep-Alive: timeout=15, max=100
|
||||
Connection: Keep-Alive
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
16
tests/ripv1v2.out
Normal file
16
tests/ripv1v2.out
Normal file
@ -0,0 +1,16 @@
|
||||
IP (tos 0xc0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 52)
|
||||
10.0.0.20.520 > 10.0.0.255.520:
|
||||
RIPv1, Request, length: 24, routes: 1
|
||||
AFI 0, 0.0.0.0, metric: 16
|
||||
IP (tos 0xc0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 52)
|
||||
10.0.0.20.520 > 10.0.0.255.520:
|
||||
RIPv1, Response, length: 24, routes: 1
|
||||
10.70.178.0, metric: 1
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 52)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 24, routes: 1 or less
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 52)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 24, routes: 1 or less
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
BIN
tests/ripv1v2.pcap
Normal file
BIN
tests/ripv1v2.pcap
Normal file
Binary file not shown.
94
tests/ripv2_auth.out
Normal file
94
tests/ripv2_auth.out
Normal file
@ -0,0 +1,94 @@
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 72)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 44, routes: 2 or less
|
||||
Simple Text Authentication data: abcdefghijklmnop
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 72)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 44, routes: 2 or less
|
||||
Simple Text Authentication data: abcdefghijklmnop
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 92)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 64, routes: 3 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 16, SeqNo 1339429688, MBZ 0, MBZ 0
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: a2fe c865 f120 8808 2326 1369 d6c2 3593
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 92)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 64, routes: 3 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 16, SeqNo 1339429692, MBZ 0, MBZ 0
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 6d21 5dd5 6d27 a6f4 8a51 e2c2 fcc2 af0f
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 96)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 68, routes: 3 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 20, SeqNo 1339429713, MBZ 0, MBZ 0
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 728c 5b16 9a1b 3913 0021 a73f 7a73 bc1b
|
||||
0x0010: eee0 e6a2
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 96)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 68, routes: 3 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 20, SeqNo 1339429716, MBZ 0, MBZ 0
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 375c 8a50 f77f 543b 2425 a695 a27d 6b95
|
||||
0x0010: 3375 fc89
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 108)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 80, routes: 4 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 32, SeqNo 1339429740, MBZ 0, MBZ 0
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 4ae5 fb9c 9702 03b8 5a93 812d 0258 6740
|
||||
0x0010: 451a bd20 cee4 8a3d a466 17a0 e550 5b4b
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 108)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 80, routes: 4 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 32, SeqNo 1339429744, MBZ 0, MBZ 0
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 3965 b755 535a 3375 e83a 973c 60c9 1693
|
||||
0x0010: f2de 8132 9e87 3f7f b763 3cb0 b3dc 3ba2
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 124)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 96, routes: 4 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 48, SeqNo 1339429761, MBZ 0, MBZ 0
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: a1f2 20f6 6f72 f45b e8e0 291f 2322 a198
|
||||
0x0010: 1b6b 67bc 9279 7d3b 8e05 c683 8b7e 05bc
|
||||
0x0020: 230c abc8 1470 8e30 5470 fb27 6fe3 4506
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 124)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 96, routes: 4 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 48, SeqNo 1339429765, MBZ 0, MBZ 0
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 64de 1dec 3632 e210 0258 2404 0b32 a947
|
||||
0x0010: aa86 59a1 fef3 9248 3115 c266 0386 f183
|
||||
0x0020: 4f31 1df0 0681 e1cc ba10 b4c1 7795 9773
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 140)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Request, length: 112, routes: 5 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 64, SeqNo 1339429781, MBZ 0, MBZ 0
|
||||
AFI 0, 0.0.0.0/0 , tag 0x0000, metric: 16, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: 73ad b6e3 5fe6 07bd 0bc5 ca25 41cc 63ec
|
||||
0x0010: bd06 55b1 77a4 e223 ef52 8ea2 7480 e39c
|
||||
0x0020: ee51 96bd 4e35 8cb7 f185 ba49 9892 e683
|
||||
0x0030: e756 788d aa23 bf90 0b01 5c2d 241d 2d8e
|
||||
IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 140)
|
||||
10.0.0.20.520 > 224.0.0.9.520:
|
||||
RIPv2, Response, length: 112, routes: 5 or less
|
||||
Auth header: Packet Len 44, Key-ID 45, Auth Data Len 64, SeqNo 1339429785, MBZ 0, MBZ 0
|
||||
AFI IPv4, 10.70.178.0/24, tag 0x0000, metric: 1, next-hop: self
|
||||
Auth trailer:
|
||||
0x0000: ad5a 5d8a a1a8 b023 1ec3 5c1c ba6a 45fb
|
||||
0x0010: bee1 5584 6b1c 724d b1b7 f02e 7365 f038
|
||||
0x0020: 7558 0914 6762 00d1 a92f d499 5da2 43ad
|
||||
0x0030: 202c 7a9b 8065 49ad 260b 2142 0f8d d83f
|
BIN
tests/ripv2_auth.pcap
Normal file
BIN
tests/ripv2_auth.pcap
Normal file
Binary file not shown.
53
tests/spb.out
Normal file
53
tests/spb.out
Normal file
@ -0,0 +1,53 @@
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, L1 LSP, lsp-id 2222.2222.2222.00-00, seq 0x0000000f, lifetime 1200s, length 149
|
||||
IS-IS, L1 PSNP, src-id 8888.8888.8888.00, length 35
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, L1 LSP, lsp-id 2222.2222.2222.00-00, seq 0x00000010, lifetime 1200s, length 149
|
||||
IS-IS, L1 PSNP, src-id 8888.8888.8888.00, length 35
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
||||
IS-IS, p2p IIH, src-id 2222.2222.2222, length 1492
|
||||
IS-IS, p2p IIH, src-id 8888.8888.8888, length 1492
|
BIN
tests/spb.pcap
Normal file
BIN
tests/spb.pcap
Normal file
Binary file not shown.
25
tests/spb_bpduv4.out
Normal file
25
tests/spb_bpduv4.out
Normal file
@ -0,0 +1,25 @@
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
||||
STP 802.1aq, Rapid STP, CIST Flags [Learn, Forward], length 205
|
BIN
tests/spb_bpduv4.pcap
Normal file
BIN
tests/spb_bpduv4.pcap
Normal file
Binary file not shown.
73
tests/zmtp1.out
Normal file
73
tests/zmtp1.out
Normal file
@ -0,0 +1,73 @@
|
||||
IP (tos 0x0, ttl 64, id 17993, offset 0, flags [DF], proto TCP (6), length 60)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [S], cksum 0xfe30 (incorrect -> 0x1a9d), seq 2523978814, win 32792, options [mss 16396,sackOK,TS val 245537399 ecr 0,nop,wscale 7], length 0
|
||||
IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [S.], cksum 0xfe30 (incorrect -> 0x31b6), seq 3988083230, ack 2523978815, win 32768, options [mss 16396,sackOK,TS val 245537399 ecr 245537399,nop,wscale 7], length 0
|
||||
IP (tos 0x0, ttl 64, id 17994, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [.], cksum 0xfe28 (incorrect -> 0x19da), ack 1, win 257, options [nop,nop,TS val 245537399 ecr 245537399], length 0
|
||||
IP (tos 0x0, ttl 64, id 17995, offset 0, flags [DF], proto TCP (6), length 54)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [P.], cksum 0xfe2a (incorrect -> 0x18d0), seq 1:3, ack 1, win 257, options [nop,nop,TS val 245537399 ecr 245537399], length 2: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x00 (-|-|-|-|-|-|-|-)
|
||||
IP (tos 0x0, ttl 64, id 51304, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [.], cksum 0xfe28 (incorrect -> 0x19d9), ack 3, win 256, options [nop,nop,TS val 245537399 ecr 245537399], length 0
|
||||
IP (tos 0x0, ttl 64, id 51305, offset 0, flags [DF], proto TCP (6), length 54)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [P.], cksum 0xfe2a (incorrect -> 0x18cf), seq 1:3, ack 3, win 256, options [nop,nop,TS val 245537399 ecr 245537399], length 2: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x00 (-|-|-|-|-|-|-|-)
|
||||
IP (tos 0x0, ttl 64, id 17996, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [.], cksum 0xfe28 (incorrect -> 0x19d6), ack 3, win 257, options [nop,nop,TS val 245537399 ecr 245537399], length 0
|
||||
IP (tos 0x0, ttl 64, id 17997, offset 0, flags [DF], proto TCP (6), length 148)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [P.], cksum 0xfe88 (incorrect -> 0x11da), seq 3:99, ack 3, win 257, options [nop,nop,TS val 245537399 ecr 245537399], length 96: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (8-bit) length 93, flags 0x00 (-|-|-|-|-|-|-|-), first 92 byte(s) of body:
|
||||
0x0000: 5468 6973 2069 7320 6120 7368 6f72 7420 This.is.a.short.
|
||||
0x0010: 4153 4349 4920 6d65 7373 6167 6520 666f ASCII.message.fo
|
||||
0x0020: 6c6c 6f77 6564 2062 7920 6120 7368 6f72 llowed.by.a.shor
|
||||
0x0030: 7420 6269 6e61 7279 206d 6573 7361 6765 t.binary.message
|
||||
0x0040: 2061 6e64 2061 206c 6f6e 6765 7220 4153 .and.a.longer.AS
|
||||
0x0050: 4349 4920 6d65 7373 6167 652e CII.message.
|
||||
|
||||
IP (tos 0x0, ttl 64, id 51306, offset 0, flags [DF], proto TCP (6), length 84)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [P.], cksum 0xfe48 (incorrect -> 0xc80f), seq 3:35, ack 99, win 256, options [nop,nop,TS val 245537399 ecr 245537399], length 32: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (8-bit) length 29, flags 0x00 (-|-|-|-|-|-|-|-), first 28 byte(s) of body:
|
||||
0x0000: 5468 6973 2069 7320 6120 7368 6f72 7420 This.is.a.short.
|
||||
0x0010: 4153 4349 4920 7265 706c 792e ASCII.reply.
|
||||
|
||||
IP (tos 0x0, ttl 64, id 17998, offset 0, flags [DF], proto TCP (6), length 72)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [P.], cksum 0xfe3c (incorrect -> 0xcef8), seq 99:119, ack 35, win 257, options [nop,nop,TS val 245537399 ecr 245537399], length 20: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (8-bit) length 17, flags 0x00 (-|-|-|-|-|-|-|-), first 16 byte(s) of body:
|
||||
0x0000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................
|
||||
|
||||
IP (tos 0x0, ttl 64, id 51307, offset 0, flags [DF], proto TCP (6), length 84)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [P.], cksum 0xfe48 (incorrect -> 0xc7da), seq 35:67, ack 119, win 256, options [nop,nop,TS val 245537400 ecr 245537399], length 32: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (8-bit) length 29, flags 0x00 (-|-|-|-|-|-|-|-), first 28 byte(s) of body:
|
||||
0x0000: 5468 6973 2069 7320 6120 7368 6f72 7420 This.is.a.short.
|
||||
0x0010: 4153 4349 4920 7265 706c 792e ASCII.reply.
|
||||
|
||||
IP (tos 0x0, ttl 64, id 17999, offset 0, flags [DF], proto TCP (6), length 603)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [P.], cksum 0x0050 (incorrect -> 0xafc1), seq 119:670, ack 67, win 257, options [nop,nop,TS val 245537400 ecr 245537400], length 551: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (64-bit) length 540, flags 0x00 (-|-|-|-|-|-|-|-), first 128 byte(s) of body:
|
||||
0x0000: 5468 6520 7175 6963 6b20 6272 6f77 6e20 The.quick.brown.
|
||||
0x0010: 666f 7820 6a75 6d70 7320 6f76 6572 2074 fox.jumps.over.t
|
||||
0x0020: 6865 206c 617a 7920 646f 672e 2054 6865 he.lazy.dog..The
|
||||
0x0030: 2071 7569 636b 2062 726f 776e 2066 6f78 .quick.brown.fox
|
||||
0x0040: 206a 756d 7073 206f 7665 7220 7468 6520 .jumps.over.the.
|
||||
0x0050: 6c61 7a79 2064 6f67 2e20 5468 6520 7175 lazy.dog..The.qu
|
||||
0x0060: 6963 6b20 6272 6f77 6e20 666f 7820 6a75 ick.brown.fox.ju
|
||||
0x0070: 6d70 7320 6f76 6572 2074 6865 206c 617a mps.over.the.laz
|
||||
|
||||
IP (tos 0x0, ttl 64, id 51308, offset 0, flags [DF], proto TCP (6), length 84)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [P.], cksum 0xfe48 (incorrect -> 0xc592), seq 67:99, ack 670, win 256, options [nop,nop,TS val 245537400 ecr 245537400], length 32: ZMTP/1.0
|
||||
frame flags+body (8-bit) length 1, flags 0x01 (-|-|-|-|-|-|-|MORE)
|
||||
frame flags+body (8-bit) length 29, flags 0x00 (-|-|-|-|-|-|-|-), first 28 byte(s) of body:
|
||||
0x0000: 5468 6973 2069 7320 6120 7368 6f72 7420 This.is.a.short.
|
||||
0x0010: 4153 4349 4920 7265 706c 792e ASCII.reply.
|
||||
|
||||
IP (tos 0x0, ttl 64, id 18000, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [F.], cksum 0xfe28 (incorrect -> 0x16d8), seq 670, ack 99, win 257, options [nop,nop,TS val 245537400 ecr 245537400], length 0
|
||||
IP (tos 0x0, ttl 64, id 51309, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.33000 > 127.0.0.1.55358: Flags [F.], cksum 0xfe28 (incorrect -> 0x16d8), seq 99, ack 671, win 256, options [nop,nop,TS val 245537400 ecr 245537400], length 0
|
||||
IP (tos 0x0, ttl 64, id 18001, offset 0, flags [DF], proto TCP (6), length 52)
|
||||
127.0.0.1.55358 > 127.0.0.1.33000: Flags [.], cksum 0xfe28 (incorrect -> 0x16d7), ack 100, win 257, options [nop,nop,TS val 245537400 ecr 245537400], length 0
|
BIN
tests/zmtp1.pcap
Normal file
BIN
tests/zmtp1.pcap
Normal file
Binary file not shown.
1
udp.h
1
udp.h
@ -85,6 +85,7 @@ struct udphdr {
|
||||
#define SFLOW_PORT 6343 /* http://www.sflow.org/developers/specifications.php */
|
||||
#define LWAPP_DATA_PORT 12222 /* draft-ohara-capwap-lwapp-04.txt */
|
||||
#define LWAPP_CONTROL_PORT 12223 /* draft-ohara-capwap-lwapp-04.txt */
|
||||
#define OTV_PORT 8472 /* draft-hasmit-otv-04 */
|
||||
|
||||
#ifdef INET6
|
||||
#define RIPNG_PORT 521 /*XXX*/
|
||||
|
89
win32/Include/bittypes.h
Normal file
89
win32/Include/bittypes.h
Normal file
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (C) 1999 WIDE Project.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the project nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef _BITTYPES_H
|
||||
#define _BITTYPES_H
|
||||
|
||||
#ifndef HAVE_U_INT8_T
|
||||
typedef unsigned char u_int8_t;
|
||||
typedef signed char int8_t;
|
||||
#endif /* HAVE_U_INT8_T */
|
||||
|
||||
#ifndef HAVE_U_INT16_T
|
||||
typedef unsigned short u_int16_t;
|
||||
typedef signed short int16_t;
|
||||
#endif /* HAVE_U_INT16_T */
|
||||
|
||||
#ifndef HAVE_U_INT32_T
|
||||
typedef unsigned int u_int32_t;
|
||||
typedef signed int int32_t;
|
||||
#endif /* HAVE_U_INT32_T */
|
||||
|
||||
#ifndef HAVE_U_INT64_T
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
typedef unsigned _int64 u_int64_t;
|
||||
typedef _int64 int64_t;
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
typedef unsigned long long u_int64_t;
|
||||
typedef long long int64_t;
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* HAVE_U_INT64_T */
|
||||
|
||||
#ifndef PRId64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRId64 "I64d"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRId64 "lld"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRId64 */
|
||||
|
||||
#ifndef PRIo64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIo64 "I64o"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIo64 "llo"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIo64 */
|
||||
|
||||
#ifndef PRIx64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIx64 "I64x"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIx64 "llx"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIx64 */
|
||||
|
||||
#ifndef PRIu64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIu64 "I64u"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIu64 "llu"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIu64 */
|
||||
|
||||
#endif /* _BITTYPES_H */
|
Loading…
Reference in New Issue
Block a user