diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | packet-atalk.c | 8 | ||||
-rw-r--r-- | packet-eigrp.h | 26 | ||||
-rw-r--r-- | packet-ip.c | 6 | ||||
-rw-r--r-- | packet-ipx.c | 13 |
6 files changed, 51 insertions, 6 deletions
@@ -310,6 +310,7 @@ Yaniv Kaul <ykaul@checkpoint.com> { Paul Ionescu <ipaul@romsys.ro> { IPX over GRE support + EIGRP over Appletalk and EIGRP over IPX support } Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to diff --git a/Makefile.am b/Makefile.am index da18174cea..d3bf361f97 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Makefile.am # Automake file for Ethereal # -# $Id: Makefile.am,v 1.198 2000/05/15 06:48:08 gram Exp $ +# $Id: Makefile.am,v 1.199 2000/05/22 18:09:33 guy Exp $ # # Ethereal - Network traffic analyzer # By Gerald Combs <gerald@zing.org> @@ -170,6 +170,7 @@ noinst_HEADERS = \ packet-clnp.h \ packet-ddtp.h \ packet-dns.h \ + packet-eigrp.h \ packet-esis.h \ packet-eth.h \ packet-fddi.h \ diff --git a/packet-atalk.c b/packet-atalk.c index 6023821b1a..dc7b616794 100644 --- a/packet-atalk.c +++ b/packet-atalk.c @@ -1,7 +1,7 @@ /* packet-atalk.c * Routines for Appletalk packet disassembly (DDP, currently). * - * $Id: packet-atalk.c,v 1.34 2000/05/11 08:14:55 gram Exp $ + * $Id: packet-atalk.c,v 1.35 2000/05/22 18:09:33 guy Exp $ * * Simon Wilkinson <sxw@dcs.ed.ac.uk> * @@ -35,6 +35,7 @@ #include <glib.h> #include "packet.h" #include "packet-atalk.h" +#include "packet-eigrp.h" #include "etypes.h" #include "ppptypes.h" @@ -104,6 +105,7 @@ typedef struct _e_ddp { #define DDP_RTMPREQ 0x05 #define DDP_ZIP 0x06 #define DDP_ADSP 0x07 +#define DDP_EIGRP 0x58 #define DDP_HEADER_SIZE 13 gchar * @@ -132,6 +134,7 @@ static const value_string op_vals[] = { {DDP_RTMPREQ, "AppleTalk Routing Table request"}, {DDP_ZIP, "AppleTalk Zone Information Protocol packet"}, {DDP_ADSP, "AppleTalk Data Stream Protocol"}, + {DDP_EIGRP, "Cisco EIGRP for AppleTalk"}, {0, NULL} }; @@ -421,6 +424,9 @@ dissect_ddp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { offset += DDP_HEADER_SIZE; switch ( ddp.type ) { + case DDP_EIGRP: + dissect_eigrp(pd, offset, fd, tree); + break; case DDP_NBP: dissect_nbp(pd, offset, fd, tree); break; diff --git a/packet-eigrp.h b/packet-eigrp.h new file mode 100644 index 0000000000..6cdd53eb38 --- /dev/null +++ b/packet-eigrp.h @@ -0,0 +1,26 @@ +/* packet-eigrp.h + * + * $Id: packet-eigrp.h,v 1.1 2000/05/22 18:09:34 guy Exp $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@zing.org> + * Copyright 1998 Gerald Combs + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +void dissect_eigrp(const u_char *, int, frame_data *, proto_tree *); diff --git a/packet-ip.c b/packet-ip.c index 0cdd138b00..2d9647bfc8 100644 --- a/packet-ip.c +++ b/packet-ip.c @@ -1,7 +1,7 @@ /* packet-ip.c * Routines for IP and miscellaneous IP protocol packet disassembly * - * $Id: packet-ip.c,v 1.85 2000/05/11 08:15:11 gram Exp $ + * $Id: packet-ip.c,v 1.86 2000/05/22 18:09:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -55,8 +55,8 @@ #include "llcsaps.h" #include "packet-ip.h" #include "packet-ipsec.h" +#include "packet-eigrp.h" -static void dissect_eigrp(const u_char *, int, frame_data *, proto_tree *); static void dissect_icmp(const u_char *, int, frame_data *, proto_tree *); static void dissect_igmp(const u_char *, int, frame_data *, proto_tree *); @@ -1518,7 +1518,7 @@ static const value_string eigrp_opcode_vals[] = { { 0, NULL } }; -static void +void dissect_eigrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { e_eigrp ih; proto_tree *eigrp_tree; diff --git a/packet-ipx.c b/packet-ipx.c index 37cd4e986f..06330c3b0f 100644 --- a/packet-ipx.c +++ b/packet-ipx.c @@ -2,7 +2,7 @@ * Routines for NetWare's IPX * Gilbert Ramirez <gram@xiexie.org> * - * $Id: packet-ipx.c,v 1.58 2000/05/19 19:48:01 gram Exp $ + * $Id: packet-ipx.c,v 1.59 2000/05/22 18:09:36 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -41,6 +41,7 @@ #include "packet-ipx.h" #include "packet-nbipx.h" #include "packet-ncp.h" +#include "packet-eigrp.h" #include "resolv.h" #include "packet-snmp.h" @@ -111,6 +112,9 @@ dissect_ipxsap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree); static void dissect_ipxmsg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree); +static void +dissect_eigrp_ipx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree); + typedef void (dissect_func_t)(const u_char *, int, frame_data *, proto_tree *); #define UDP_PORT_IPX 213 /* RFC 1234 */ @@ -154,6 +158,7 @@ struct server_info { #define IPX_SOCKET_ATTACHMATE_GW 0x055d #define IPX_SOCKET_IPX_MESSAGE 0x4001 #define IPX_SOCKET_ADSM 0x8522 /* www.tivoli.com */ +#define IPX_SOCKET_EIGRP 0x85be /* cisco ipx eigrp */ #define IPX_SOCKET_WIDE_AREA_ROUTER 0x9001 #define IPX_SOCKET_SNMP_AGENT 0x900F /* RFC 1906 */ #define IPX_SOCKET_SNMP_SINK 0x9010 /* RFC 1906 */ @@ -190,6 +195,7 @@ static struct port_info ports[] = { { IPX_SOCKET_TCP_TUNNEL, NULL, "TCP Tunnel" }, { IPX_SOCKET_TCP_TUNNEL, NULL, "TCP Tunnel" }, { IPX_SOCKET_ADSM, NULL, "ADSM" }, + { IPX_SOCKET_EIGRP, dissect_eigrp_ipx, "Cisco EIGRP for IPX" }, { IPX_SOCKET_WIDE_AREA_ROUTER, NULL, "Wide Area Router" }, { 0x0000, NULL, NULL } @@ -819,6 +825,11 @@ dissect_ipxsap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } } +static void +dissect_eigrp_ipx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) +{ + dissect_eigrp(pd,offset,fd,tree); +} void proto_register_ipx(void) |