diff options
author | Michael Richardson <mcr@sandelman.ca> | 2013-03-24 17:49:18 -0400 |
---|---|---|
committer | Michael Richardson <mcr@sandelman.ca> | 2013-03-24 17:49:18 -0400 |
commit | 624c208a6b5da63a928c08426065fe89ea68c947 (patch) | |
tree | ec325cafcbfe715b8b6c5e3e16bd7bdca5b5f195 | |
parent | a7820fc2ab7a1075ac70923051dcf071a82138a1 (diff) | |
parent | 8117cc7e3db0a18f7a64882a754419947d9f6d17 (diff) | |
download | tcpdump_4_4rel0.tar.gz |
Merge remote-tracking branch 'origin/master' into tcpdump_4_4rel0tcpdump_4_4rel0tcpdump-4.4.0
-rw-r--r-- | Makefile.in | 98 | ||||
-rw-r--r-- | README | 22 | ||||
-rw-r--r-- | ethertype.h | 3 | ||||
-rw-r--r-- | interface.h | 1 | ||||
-rw-r--r-- | netdissect.h | 2 | ||||
-rw-r--r-- | print-bgp.c | 4 | ||||
-rw-r--r-- | print-ether.c | 5 | ||||
-rw-r--r-- | print-msnlb.c | 66 | ||||
-rw-r--r-- | print-otv.c | 79 | ||||
-rw-r--r-- | print-udp.c | 7 | ||||
-rw-r--r-- | print-vxlan.c | 74 | ||||
-rw-r--r-- | tcpdump.1.in | 3 | ||||
-rw-r--r-- | tcpdump.c | 2 | ||||
-rw-r--r-- | tests/TESTLIST | 10 | ||||
-rw-r--r-- | tests/igmpv3-queries.out | 6 | ||||
-rw-r--r-- | tests/igmpv3-queries.pcap | bin | 0 -> 420 bytes | |||
-rw-r--r-- | tests/mpbgp-linklocal-nexthop.out | 10 | ||||
-rw-r--r-- | tests/mpbgp-linklocal-nexthop.pcap | bin | 0 -> 196 bytes | |||
-rw-r--r-- | tests/msnlb.out | 2 | ||||
-rw-r--r-- | tests/msnlb.pcap | bin | 0 -> 248 bytes | |||
-rw-r--r-- | tests/msnlb2.out | 2 | ||||
-rw-r--r-- | tests/msnlb2.pcap | bin | 0 -> 188 bytes | |||
-rw-r--r-- | udp.h | 1 | ||||
-rw-r--r-- | win32/Include/bittypes.h (renamed from Win32/Include/bittypes.h) | 0 |
24 files changed, 298 insertions, 99 deletions
diff --git a/Makefile.in b/Makefile.in index 16b45ecb..dda4eb5e 100644 --- a/Makefile.in +++ b/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 print-zeromq.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) @@ -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 + + http://github.com/mcr/tcpdump/tree/master + +and issuing a pull request. -Current versions can be found at www.tcpdump.org, or the SourceForge -site for tcpdump. +Current versions can be found at www.tcpdump.org. - The TCPdump team diff --git a/ethertype.h b/ethertype.h index 8c063396..385da5d7 100644 --- a/ethertype.h +++ b/ethertype.h @@ -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 diff --git a/interface.h b/interface.h index 57d4636d..2dff9d81 100644 --- a/interface.h +++ b/interface.h @@ -73,6 +73,7 @@ extern char *strsep(char **, const char *); #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)) diff --git a/netdissect.h b/netdissect.h index f187fd5d..be6fb119 100644 --- a/netdissect.h +++ b/netdissect.h @@ -182,6 +182,7 @@ struct netdissect_options { #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)) @@ -286,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 *, diff --git a/print-bgp.c b/print-bgp.c index c1e382fd..4f7053c2 100644 --- a/print-bgp.c +++ b/print-bgp.c @@ -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): diff --git a/print-ether.c b/print-ether.c index e2f487c2..f783341d 100644 --- a/print-ether.c +++ b/print-ether.c @@ -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: diff --git a/print-msnlb.c b/print-msnlb.c new file mode 100644 index 00000000..4c5fb0cb --- /dev/null +++ b/print-msnlb.c @@ -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]")); +} diff --git a/print-otv.c b/print-otv.c new file mode 100644 index 00000000..f312b0ba --- /dev/null +++ b/print-otv.c @@ -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; +} diff --git a/print-udp.c b/print-udp.c index e321f218..3c5ed8bc 100644 --- a/print-udp.c +++ b/print-udp.c @@ -474,6 +474,11 @@ udp_print(register const u_char *bp, u_int length, 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; } @@ -663,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))); diff --git a/print-vxlan.c b/print-vxlan.c new file mode 100644 index 00000000..9f8c3fb4 --- /dev/null +++ b/print-vxlan.c @@ -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; +} diff --git a/tcpdump.1.in b/tcpdump.1.in index d2223261..cb2fbdd3 100644 --- a/tcpdump.1.in +++ b/tcpdump.1.in @@ -527,8 +527,9 @@ Currently known types are \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 -\fBzmtp1\fR (ZeroMQ Message Transport Protocol 1.0). +\fBvxlan\fR (Virtual eXtensible Local Area Network). .TP .B \-t \fIDon't\fP print a timestamp on each dump line. @@ -1013,6 +1013,8 @@ main(int argc, char **argv) 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; diff --git a/tests/TESTLIST b/tests/TESTLIST index aed8e064..4ee9633d 100644 --- a/tests/TESTLIST +++ b/tests/TESTLIST @@ -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 @@ -65,6 +66,9 @@ 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 @@ -86,3 +90,7 @@ 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 diff --git a/tests/igmpv3-queries.out b/tests/igmpv3-queries.out new file mode 100644 index 00000000..9db6f9bf --- /dev/null +++ b/tests/igmpv3-queries.out @@ -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] diff --git a/tests/igmpv3-queries.pcap b/tests/igmpv3-queries.pcap Binary files differnew file mode 100644 index 00000000..df653ce6 --- /dev/null +++ b/tests/igmpv3-queries.pcap diff --git a/tests/mpbgp-linklocal-nexthop.out b/tests/mpbgp-linklocal-nexthop.out new file mode 100644 index 00000000..337f0d8d --- /dev/null +++ b/tests/mpbgp-linklocal-nexthop.out @@ -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 diff --git a/tests/mpbgp-linklocal-nexthop.pcap b/tests/mpbgp-linklocal-nexthop.pcap Binary files differnew file mode 100644 index 00000000..1ac823de --- /dev/null +++ b/tests/mpbgp-linklocal-nexthop.pcap diff --git a/tests/msnlb.out b/tests/msnlb.out new file mode 100644 index 00000000..194dbcd1 --- /dev/null +++ b/tests/msnlb.out @@ -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 diff --git a/tests/msnlb.pcap b/tests/msnlb.pcap Binary files differnew file mode 100644 index 00000000..dab88fe2 --- /dev/null +++ b/tests/msnlb.pcap diff --git a/tests/msnlb2.out b/tests/msnlb2.out new file mode 100644 index 00000000..00fc1a66 --- /dev/null +++ b/tests/msnlb2.out @@ -0,0 +1,2 @@ +[|MS NLB] +[|MS NLB] diff --git a/tests/msnlb2.pcap b/tests/msnlb2.pcap Binary files differnew file mode 100644 index 00000000..270476d2 --- /dev/null +++ b/tests/msnlb2.pcap @@ -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*/ diff --git a/Win32/Include/bittypes.h b/win32/Include/bittypes.h index 95aa9faa..95aa9faa 100644 --- a/Win32/Include/bittypes.h +++ b/win32/Include/bittypes.h |