Ethereal-dev: [Ethereal-dev] (no subject)

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Ed Warnicke <hagbard@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Mar 2001 00:57:33 -0500 (EST)
I've finished excising the packet.c's dependency on 
packet-{osi,vines,ipv6}.{c,h}.  The attached patch 
contains the changes to existing code and the tarball contains
the {osi,vines,ipv6}-utils.{c,h} files that are new.

You should also be able to remove packet-osi.h and packet-vines.h, 
but need to leave the packet-ipv6.h around in it's post-patched form
( dissect_ipv6 is still needed in various places).  

This should leave only the packet-frame.{c.h} dependency in packet.c 
and the proto.c dependency on register.{c,h}.  These are not 
as mechanical as lifting the other dependencies, and so I will 
leave them for a time when I am better rested.

I'd be most appreciative if someone would do a quick glance over 
for sanity and then check these changes in.

Ed
? epan/osi-utils.c
? epan/osi-utils.h
? epan/vines-utils.c
? epan/vines-utils.h
? epan/ipv6-utils.h
Index: Makefile.am
===================================================================
RCS file: /cvsroot/ethereal/Makefile.am,v
retrieving revision 1.294
diff -u -r1.294 Makefile.am
--- Makefile.am	2001/03/22 23:54:44	1.294
+++ Makefile.am	2001/03/23 05:31:22
@@ -277,7 +277,6 @@
 	packet-nlm.h   \
 	packet-ntp.h  \
 	packet-null.h  \
-	packet-osi.h   \
 	packet-osi-options.h \
 	packet-portmap.h   \
 	packet-ppp.h   \
@@ -307,7 +306,6 @@
 	packet-tpkt.h  \
 	packet-tr.h    \
 	packet-udp.h   \
-	packet-vines.h \
 	packet-vlan.h \
 	packet-wccp.h \
 	packet-wap.h \
Index: packet-bgp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-bgp.c,v
retrieving revision 1.33
diff -u -r1.33 packet-bgp.c
--- packet-bgp.c	2001/01/22 03:33:45	1.33
+++ packet-bgp.c	2001/03/23 05:31:23
@@ -64,7 +64,7 @@
 
 #include "packet.h"
 #include "packet-bgp.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 
 static const value_string bgptypevals[] = {
     { BGP_OPEN, "OPEN Message" },
Index: packet-clnp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-clnp.c,v
retrieving revision 1.26
diff -u -r1.26 packet-clnp.c
--- packet-clnp.c	2001/03/15 06:41:12	1.26
+++ packet-clnp.c	2001/03/23 05:31:25
@@ -40,7 +40,7 @@
 #include <glib.h>
 #include "prefs.h"
 #include "packet.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-osi-options.h"
 #include "packet-isis.h"
 #include "packet-esis.h"
Index: packet-cops.c
===================================================================
RCS file: /cvsroot/ethereal/packet-cops.c,v
retrieving revision 1.11
diff -u -r1.11 packet-cops.c
--- packet-cops.c	2001/01/22 08:03:45	1.11
+++ packet-cops.c	2001/03/23 05:31:25
@@ -36,7 +36,7 @@
 #include <string.h>
 #include <glib.h>
 #include "packet.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 
 #define TCP_PORT_COPS 3288
 
Index: packet-esis.c
===================================================================
RCS file: /cvsroot/ethereal/packet-esis.c,v
retrieving revision 1.13
diff -u -r1.13 packet-esis.c
--- packet-esis.c	2001/01/22 08:03:45	1.13
+++ packet-esis.c	2001/03/23 05:31:26
@@ -40,7 +40,7 @@
 #include <glib.h>
 #include "packet.h"
 #include "nlpid.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-osi-options.h"
 #include "packet-esis.h"
 
Index: packet-ethertype.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ethertype.c,v
retrieving revision 1.12
diff -u -r1.12 packet-ethertype.c
--- packet-ethertype.c	2001/02/01 07:34:29	1.12
+++ packet-ethertype.c	2001/03/23 05:31:26
@@ -38,7 +38,7 @@
 #include "packet-ip.h"
 #include "packet-ipx.h"
 #include "packet-vlan.h"
-#include "packet-vines.h"
+#include "vines-utils.h"
 #include "etypes.h"
 
 static dissector_table_t ethertype_dissector_table;
Index: packet-icmpv6.c
===================================================================
RCS file: /cvsroot/ethereal/packet-icmpv6.c,v
retrieving revision 1.37
diff -u -r1.37 packet-icmpv6.c
--- packet-icmpv6.c	2001/02/28 19:33:49	1.37
+++ packet-icmpv6.c	2001/03/23 05:31:27
@@ -52,6 +52,7 @@
 #endif
 
 #include "packet.h"
+#include "ipv6-utils.h"
 #include "packet-ipv6.h"
 #include "packet-ip.h"
 #include "packet-dns.h"
Index: packet-ipv6.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ipv6.c,v
retrieving revision 1.51
diff -u -r1.51 packet-ipv6.c
--- packet-ipv6.c	2001/01/23 02:49:55	1.51
+++ packet-ipv6.c	2001/03/23 05:31:28
@@ -50,6 +50,7 @@
 #include "packet.h"
 #include "packet-ip.h"
 #include "packet-ipsec.h"
+#include "ipv6-utils.h"
 #include "packet-ipv6.h"
 #include "packet-tcp.h"
 #include "packet-udp.h"
Index: packet-ipv6.h
===================================================================
RCS file: /cvsroot/ethereal/packet-ipv6.h,v
retrieving revision 1.18
diff -u -r1.18 packet-ipv6.h
--- packet-ipv6.h	2001/01/23 02:49:55	1.18
+++ packet-ipv6.h	2001/03/23 05:31:28
@@ -30,561 +30,4 @@
 
 void dissect_ipv6(const u_char *, int, frame_data *, proto_tree *);
 
-struct e_in6_addr {
-	union {
-		guint32  u6_addr32[4];
-		guint16  u6_addr16[8];
-		guint8   u6_addr8[16];
-	} u6_addr;			/* 128 bit IP6 address */
-};
-
-#ifdef s6_addr32
-#undef s6_addr32
-#endif
-
-#ifdef s6_addr16
-#undef s6_addr16
-#endif
-
-#ifdef s6_addr8
-#undef s6_addr8
-#endif
-
-#ifdef s6_addr
-#undef s6_addr
-#endif
-
-#define s6_addr32 u6_addr.u6_addr32
-#define s6_addr16 u6_addr.u6_addr16
-#define s6_addr8  u6_addr.u6_addr8
-#define s6_addr   u6_addr.u6_addr8
-
-#define INET6_ADDRSTRLEN	46
-
-/*
- * Definition for internet protocol version 6.
- * RFC 1883
- */
-struct ip6_hdr {
-	union {
-		struct ip6_hdrctl {
-			guint32 ip6_un1_flow;	/* 20 bits of flow-ID */
-			guint16 ip6_un1_plen;	/* payload length */
-			guint8  ip6_un1_nxt;	/* next header */
-			guint8  ip6_un1_hlim;	/* hop limit */
-		} ip6_un1;
-		guint8 ip6_un2_vfc;	/* 4 bits version, 4 bits class */
-	} ip6_ctlun;
-	struct e_in6_addr ip6_src;	/* source address */
-	struct e_in6_addr ip6_dst;	/* destination address */
-};
-
-#define ip6_vfc		ip6_ctlun.ip6_un2_vfc
-#define ip6_flow	ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen	ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt		ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim	ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops	ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-/* Offsets of fields within an IPv6 header. */
-#define	IP6H_CTL	0
-#define	IP6H_CTL_FLOW	0
-#define	IP6H_CTL_PLEN	4
-#define	IP6H_CTL_NXT	6
-#define	IP6H_CTL_HLIM	7
-#define	IP6H_CTL_VFC	0
-#define	IP6H_SRC	8
-#define	IP6H_DST	24
-
-#define IPV6_FLOWINFO_MASK	0x0fffffff	/* flow info (28 bits) */
-#define IPV6_FLOWLABEL_MASK	0x000fffff	/* flow label (20 bits) */
-
-/*
- * Extension Headers
- */
-
-struct	ip6_ext {
-	u_char	ip6e_nxt;
-	u_char	ip6e_len;
-};
-
-/* Hop-by-Hop options header */
-/* XXX should we pad it to force alignment on an 8-byte boundary? */
-struct ip6_hbh {
-	guint8 ip6h_nxt;	/* next header */
-	guint8 ip6h_len;	/* length in units of 8 octets */
-	/* followed by options */
-};
-
-/* Destination options header */
-/* XXX should we pad it to force alignment on an 8-byte boundary? */
-struct ip6_dest {
-	guint8 ip6d_nxt;	/* next header */
-	guint8 ip6d_len;	/* length in units of 8 octets */
-	/* followed by options */
-};
-
-/* Option types and related macros */
-#define IP6OPT_PAD1		0x00	/* 00 0 00000 */
-#define IP6OPT_PADN		0x01	/* 00 0 00001 */
-#define IP6OPT_JUMBO		0xC2	/* 11 0 00010 = 194 */
-#define IP6OPT_JUMBO_LEN	6
-#define IP6OPT_RTALERT		0x05	/* 00 0 00101 */
-#define IP6OPT_RTALERT_LEN	4
-#define IP6OPT_RTALERT_MLD	0	/* Datagram contains MLD message */
-#define IP6OPT_RTALERT_RSVP	1	/* Datagram contains RSVP message */
-#define IP6OPT_MINLEN		2
-
-#define IP6OPT_TYPE(o)		((o) & 0xC0)
-#define IP6OPT_TYPE_SKIP	0x00
-#define IP6OPT_TYPE_DISCARD	0x40
-#define IP6OPT_TYPE_FORCEICMP	0x80
-#define IP6OPT_TYPE_ICMP	0xC0
-
-#define IP6OPT_MUTABLE		0x20
-
-/* BT INSERT BEGIN  */
-/* Mobile IP option types and sub-option types*/
-#define IP6OPT_BINDING_UPDATE 0xC6  /* 11 0 00110 */
-#define IP6OPT_BINDING_ACK 0x07  /* 00 0 00111 */
-#define IP6OPT_BINDING_REQUEST 0x08  /* 00 0 01000 */
-#define IP6OPT_HOME_ADDRESS 0xC9  /* 11 0 01001 */
-#define IP6OPT_MIPv6_UNIQUE_ID_SUB 0x02  /* 00 0 00010 */
-#define IP6OPT_MIPv6_ALTERNATIVE_COA_SUB 0x04  /* 00 0 00100 */
-
-/* MIPv6 Lifetime */
-#define MIP_INFINITY 0xffffffff /* Infinity lifetime */
-
-/*	Binding Update Flags */
-#define IP6_MIPv6_BU_A_FLAG 0x80 /* 1000 0000 - Acknowledge */
-#define IP6_MIPv6_BU_H_FLAG 0x40 /* 0100 0000 - Home Registration */
-#define IP6_MIPv6_BU_R_FLAG 0x20 /* 0010 0000 - Router */
-#define IP6_MIPv6_BU_D_FLAG 0x10 /* 0001 0000 - Duplicate Address Detection */
-#define IP6_MIPv6_BU_M_FLAG 0x8  /* 0000 1000 - MAP Registration */
-#define IP6_MIPv6_BU_B_FLAG 0x4  /* 0000 0100 - Request for bicasting */
-
-#define IP6_MIPv6_OPTION_TYPE_LENGTH	1
-#define IP6_MIPv6_OPTION_LENGTH_LENGTH	1
-#define IP6_MIPv6_FLAGS_LENGTH	1
-#define IP6_MIPv6_PREFIX_LENGTH_LENGTH	1
-#define IP6_MIPv6_SEQUENCE_NUMBER_LENGTH	2
-#define IP6_MIPv6_LIFE_TIME_LENGTH	4
-#define IP6_MIPv6_REFRESH_LENGTH	4
-#define IP6_MIPv6_STATUS_LENGTH	1
-#define IP6_MIPv6_HOME_ADDRESS_LENGTH	16
-#define IP6_MIPv6_SUB_TYPE_LENGTH	1
-#define IP6_MIPv6_SUB_LENGTH_LENGTH	1
-#define IP6_MIPv6_SUB_UNIQUE_ID_LENGTH	2
-#define IP6_MIPv6_SUB_ALTERNATIVE_COA_LENGTH	16
-
-/* Binding Ackonwledgement Status */
-#define BA_OK 0 /* Binding update accepted */
-#define BA_REAS_UNSPEC 128 /*Reason unspecified */
-#define BA_ADMIN_PROH 130 /* Administratively prohibited */
-#define BA_INSUF_RES 131 /* Insufficient resources */
-#define BA_NO_HR 132 /* Home registration not supported */
-#define BA_NO_SUBNET 133 /* Not home subnet */
-#define BA_ERR_ID_LEN 136 /* Incorrect interface identifier length */
-#define BA_NO_HA 137 /* Not home agent for this mobile node */
-#define BA_DUPL_ADDR 138 /* Duplicate Address Detection failed */
-
-/* Binding Update flag description */
-static const true_false_string ipv6_mipv6_bu_a_flag_value =
-{
-	"Binding Acknowledgement requested",
-	"Binding Acknowledgement not requested"
-};
-static const true_false_string ipv6_mipv6_bu_h_flag_value =
-{
-	"Home Registration",
-	"No Home Registration"
-};
-static const true_false_string ipv6_mipv6_bu_r_flag_value =
-{
-	"Router",
-	"Not a Router"
-};
-static const true_false_string ipv6_mipv6_bu_d_flag_value =
-{
-	"Perform Duplicate Address Detection",
-	"Do not perform Duplicate Address Detection"
-};
-static const true_false_string ipv6_mipv6_bu_m_flag_value =
-{
-	"MAP Registration",
-	"No MAP Registration"
-};
-static const true_false_string ipv6_mipv6_bu_b_flag_value =
-{
-	"Request for bicasting",
-	"Do not request for bicasting"
-};
-/* BT INSERT END */
-
-/* Routing header */
-struct ip6_rthdr {
-	guint8  ip6r_nxt;	/* next header */
-	guint8  ip6r_len;	/* length in units of 8 octets */
-	guint8  ip6r_type;	/* routing type */
-	guint8  ip6r_segleft;	/* segments left */
-	/* followed by routing type specific data */
-};
-
-/* Type 0 Routing header */
-struct ip6_rthdr0 {
-	guint8  ip6r0_nxt;		/* next header */
-	guint8  ip6r0_len;		/* length in units of 8 octets */
-	guint8  ip6r0_type;		/* always zero */
-	guint8  ip6r0_segleft;	/* segments left */
-	guint8  ip6r0_reserved;	/* reserved field */
-	guint8  ip6r0_slmap[3];	/* strict/loose bit map */
-	struct e_in6_addr  ip6r0_addr[1];	/* up to 23 addresses */
-};
-
-/* Fragment header */
-struct ip6_frag {
-	guint8  ip6f_nxt;		/* next header */
-	guint8  ip6f_reserved;	/* reserved field */
-	guint16 ip6f_offlg;		/* offset, reserved, and flag */
-	guint32 ip6f_ident;		/* identification */
-};
-
-#define IP6F_OFF_MASK		0xfff8	/* mask out offset from _offlg */
-#define IP6F_RESERVED_MASK	0x0006	/* reserved bits in ip6f_offlg */
-#define IP6F_MORE_FRAG		0x0001	/* more-fragments flag */
-
-/*
- * Definition for ICMPv6.
- * RFC 1885
- */
-
-#define ICMPV6_PLD_MAXLEN	1232	/* IPV6_MMTU - sizeof(struct ip6_hdr)
-					   - sizeof(struct icmp6_hdr) */
-
-struct icmp6_hdr {
-	guint8	icmp6_type;	/* type field */
-	guint8	icmp6_code;	/* code field */
-	guint16	icmp6_cksum;	/* checksum field */
-	union {
-		guint32	icmp6_un_data32[1]; /* type-specific field */
-		guint16	icmp6_un_data16[2]; /* type-specific field */
-		guint8	icmp6_un_data8[4];  /* type-specific field */
-	} icmp6_dataun;
-};
-
-#define icmp6_data32	icmp6_dataun.icmp6_un_data32
-#define icmp6_data16	icmp6_dataun.icmp6_un_data16
-#define icmp6_data8	icmp6_dataun.icmp6_un_data8
-#define icmp6_pptr	icmp6_data32[0]		/* parameter prob */
-#define icmp6_mtu	icmp6_data32[0]		/* packet too big */
-#define icmp6_id	icmp6_data16[0]		/* echo request/reply */
-#define icmp6_seq	icmp6_data16[1]		/* echo request/reply */
-#define icmp6_maxdelay	icmp6_data16[0]		/* mcast group membership */
-
-#define ICMP6_DST_UNREACH		1	/* dest unreachable, codes: */
-#define ICMP6_PACKET_TOO_BIG		2	/* packet too big */
-#define ICMP6_TIME_EXCEEDED		3	/* time exceeded, code: */
-#define ICMP6_PARAM_PROB		4	/* ip6 header bad */
-
-#define ICMP6_ECHO_REQUEST		128	/* echo service */
-#define ICMP6_ECHO_REPLY		129	/* echo reply */
-#define ICMP6_MEMBERSHIP_QUERY		130	/* group membership query */
-#define MLD6_LISTENER_QUERY		130 	/* multicast listener query */
-#define ICMP6_MEMBERSHIP_REPORT		131	/* group membership report */
-#define MLD6_LISTENER_REPORT		131	/* multicast listener report */
-#define ICMP6_MEMBERSHIP_REDUCTION	132	/* group membership termination */
-#define MLD6_LISTENER_DONE		132	/* multicast listener done */
-
-#define ND_ROUTER_SOLICIT		133	/* router solicitation */
-#define ND_ROUTER_ADVERT		134	/* router advertisment */
-#define ND_NEIGHBOR_SOLICIT		135	/* neighbor solicitation */
-#define ND_NEIGHBOR_ADVERT		136	/* neighbor advertisment */
-#define ND_REDIRECT			137	/* redirect */
-
-#define ICMP6_ROUTER_RENUMBERING	138	/* router renumbering */
-
-#define ICMP6_WRUREQUEST		139	/* who are you request */
-#define ICMP6_WRUREPLY			140	/* who are you reply */
-#define ICMP6_FQDN_QUERY		139	/* FQDN query */
-#define ICMP6_FQDN_REPLY		140	/* FQDN reply */
-#define ICMP6_NI_QUERY			139	/* node information request */
-#define ICMP6_NI_REPLY			140	/* node information reply */
-
-/* The definitions below are experimental. TBA */
-#define MLD6_MTRACE_RESP		141	/* mtrace response(to sender) */
-#define MLD6_MTRACE			142	/* mtrace messages */
-
-#define ICMP6_MAXTYPE			142
-
-#define ICMP6_DST_UNREACH_NOROUTE	0	/* no route to destination */
-#define ICMP6_DST_UNREACH_ADMIN	 	1	/* administratively prohibited */
-#define ICMP6_DST_UNREACH_NOTNEIGHBOR	2	/* not a neighbor(obsolete) */
-#define ICMP6_DST_UNREACH_BEYONDSCOPE	2	/* beyond scope of source address */
-#define ICMP6_DST_UNREACH_ADDR		3	/* address unreachable */
-#define ICMP6_DST_UNREACH_NOPORT	4	/* port unreachable */
-
-#define ICMP6_TIME_EXCEED_TRANSIT 	0	/* ttl==0 in transit */
-#define ICMP6_TIME_EXCEED_REASSEMBLY	1	/* ttl==0 in reass */
-
-#define ICMP6_PARAMPROB_HEADER 	 	0	/* erroneous header field */
-#define ICMP6_PARAMPROB_NEXTHEADER	1	/* unrecognized next header */
-#define ICMP6_PARAMPROB_OPTION		2	/* unrecognized option */
-
-#define ICMP6_INFOMSG_MASK		0x80	/* all informational messages */
-
-#define ICMP6_NI_SUBJ_IPV6	0	/* Query Subject is an IPv6 address */
-#define ICMP6_NI_SUBJ_FQDN	1	/* Query Subject is a Domain name */
-#define ICMP6_NI_SUBJ_IPV4	2	/* Query Subject is an IPv4 address */
-
-#define ICMP6_NI_SUCCESS	0	/* node information successful reply */
-#define ICMP6_NI_REFUSED	1	/* node information request is refused */
-#define ICMP6_NI_UNKNOWN	2	/* unknown Qtype */
-
-#define ICMP6_ROUTER_RENUMBERING_COMMAND  0	/* rr command */
-#define ICMP6_ROUTER_RENUMBERING_RESULT   1	/* rr result */
-#define ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET   255	/* rr seq num reset */
-
-/*
- * Multicast Listener Discovery
- */
-struct mld6_hdr {
-	struct icmp6_hdr	mld6_hdr;
-	struct e_in6_addr		mld6_addr; /* multicast address */
-};
-
-#define mld6_type	mld6_hdr.icmp6_type
-#define mld6_code	mld6_hdr.icmp6_code
-#define mld6_cksum	mld6_hdr.icmp6_cksum
-#define mld6_maxdelay	mld6_hdr.icmp6_data16[0]
-#define mld6_reserved	mld6_hdr.icmp6_data16[1]
-
-/*
- * Neighbor Discovery
- */
-
-struct nd_router_solicit {	/* router solicitation */
-	struct icmp6_hdr 	nd_rs_hdr;
-	/* could be followed by options */
-};
-
-#define nd_rs_type	nd_rs_hdr.icmp6_type
-#define nd_rs_code	nd_rs_hdr.icmp6_code
-#define nd_rs_cksum	nd_rs_hdr.icmp6_cksum
-#define nd_rs_reserved	nd_rs_hdr.icmp6_data32[0]
-
-struct nd_router_advert {	/* router advertisement */
-	struct icmp6_hdr	nd_ra_hdr;
-	guint32		nd_ra_reachable;	/* reachable time */
-	guint32		nd_ra_retransmit;	/* retransmit timer */
-	/* could be followed by options */
-};
-
-#define nd_ra_type		nd_ra_hdr.icmp6_type
-#define nd_ra_code		nd_ra_hdr.icmp6_code
-#define nd_ra_cksum		nd_ra_hdr.icmp6_cksum
-#define nd_ra_curhoplimit	nd_ra_hdr.icmp6_data8[0]
-#define nd_ra_flags_reserved	nd_ra_hdr.icmp6_data8[1]
-#define ND_RA_FLAG_MANAGED	0x80
-#define ND_RA_FLAG_OTHER	0x40
-#define nd_ra_router_lifetime	nd_ra_hdr.icmp6_data16[1]
-
-struct nd_neighbor_solicit {	/* neighbor solicitation */
-	struct icmp6_hdr	nd_ns_hdr;
-	struct e_in6_addr		nd_ns_target;	/*target address */
-	/* could be followed by options */
-};
-
-#define nd_ns_type		nd_ns_hdr.icmp6_type
-#define nd_ns_code		nd_ns_hdr.icmp6_code
-#define nd_ns_cksum		nd_ns_hdr.icmp6_cksum
-#define nd_ns_reserved		nd_ns_hdr.icmp6_data32[0]
-
-struct nd_neighbor_advert {	/* neighbor advertisement */
-	struct icmp6_hdr	nd_na_hdr;
-	struct e_in6_addr		nd_na_target;	/* target address */
-	/* could be followed by options */
-};
-
-#define nd_na_type		nd_na_hdr.icmp6_type
-#define nd_na_code		nd_na_hdr.icmp6_code
-#define nd_na_cksum		nd_na_hdr.icmp6_cksum
-#define nd_na_flags_reserved	nd_na_hdr.icmp6_data32[0]
-#define ND_NA_FLAG_ROUTER		0x80000000
-#define ND_NA_FLAG_SOLICITED		0x40000000
-#define ND_NA_FLAG_OVERRIDE		0x20000000
-
-struct nd_redirect {		/* redirect */
-	struct icmp6_hdr	nd_rd_hdr;
-	struct e_in6_addr		nd_rd_target;	/* target address */
-	struct e_in6_addr		nd_rd_dst;	/* destination address */
-	/* could be followed by options */
-};
-
-#define nd_rd_type		nd_rd_hdr.icmp6_type
-#define nd_rd_code		nd_rd_hdr.icmp6_code
-#define nd_rd_cksum		nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved		nd_rd_hdr.icmp6_data32[0]
-
-struct nd_opt_hdr {		/* Neighbor discovery option header */
-	guint8	nd_opt_type;
-	guint8	nd_opt_len;
-	/* followed by option specific data*/
-};
-
-#define ND_OPT_SOURCE_LINKADDR		1
-#define ND_OPT_TARGET_LINKADDR		2
-#define ND_OPT_PREFIX_INFORMATION	3
-#define ND_OPT_REDIRECTED_HEADER	4
-/* BT INSERT BEGIN */
-#define ND_OPT_ADVERTISEMENT_INTERVAL	7
-#define ND_OPT_HOME_AGENT_INFORMATION	8
-/* BT INSERT END */
-#define ND_OPT_MTU			5
-
-struct nd_opt_prefix_info {	/* prefix information */
-	guint8	nd_opt_pi_type;
-	guint8	nd_opt_pi_len;
-	guint8	nd_opt_pi_prefix_len;
-	guint8	nd_opt_pi_flags_reserved;
-	guint32	nd_opt_pi_valid_time;
-	guint32	nd_opt_pi_preferred_time;
-	guint32	nd_opt_pi_reserved2;
-	struct e_in6_addr	nd_opt_pi_prefix;
-};
-
-#define ND_OPT_PI_FLAG_ONLINK		0x80
-#define ND_OPT_PI_FLAG_AUTO		0x40
-
-struct nd_opt_rd_hdr {         /* redirected header */
-	guint8	nd_opt_rh_type;
-	guint8	nd_opt_rh_len;
-	guint16	nd_opt_rh_reserved1;
-	guint32	nd_opt_rh_reserved2;
-	/* followed by IP header and data */
-};
-
-struct nd_opt_mtu {		/* MTU option */
-	guint8	nd_opt_mtu_type;
-	guint8	nd_opt_mtu_len;
-	guint16	nd_opt_mtu_reserved;
-	guint32	nd_opt_mtu_mtu;
-};
-/* BT INSERT BEGIN */
-struct nd_opt_adv_int {		/* Advertisement Interval option */
-	guint8	nd_opt_adv_int_type;
-	guint8	nd_opt_adv_int_len;
-	guint16	nd_opt_adv_int_reserved;
-	guint32	nd_opt_adv_int_advint;
-};
-
-struct nd_opt_ha_info {		/* Home Agent Information option */
-	guint8	nd_opt_ha_info_type;
-	guint8	nd_opt_ha_info_len;
-	guint16	nd_opt_ha_info_reserved;
-	guint16	nd_opt_ha_info_ha_pref;
-	guint16	nd_opt_ha_info_ha_life;
-};
-
-/* BT INSERT END */
-/*
- * icmp6 node information
- */
-struct icmp6_nodeinfo {
-	struct icmp6_hdr icmp6_ni_hdr;
-	guint8 icmp6_ni_nonce[8];
-	/* could be followed by reply data */
-};
-
-#define ni_type		icmp6_ni_hdr.icmp6_type
-#define ni_code		icmp6_ni_hdr.icmp6_code
-#define ni_cksum	icmp6_ni_hdr.icmp6_cksum
-#define ni_qtype	icmp6_ni_hdr.icmp6_data16[0]
-#define ni_flags	icmp6_ni_hdr.icmp6_data16[1]
-
-#define NI_QTYPE_NOOP		0 /* NOOP  */
-#define NI_QTYPE_SUPTYPES	1 /* Supported Qtypes */
-#define NI_QTYPE_FQDN		2 /* FQDN (draft 04) */
-#define NI_QTYPE_DNSNAME	2 /* DNS Name */
-#define NI_QTYPE_NODEADDR	3 /* Node Addresses */
-#define NI_QTYPE_IPV4ADDR	4 /* IPv4 Addresses */
-
-#define NI_SUPTYPE_FLAG_COMPRESS	0x1
-#define NI_FQDN_FLAG_VALIDTTL		0x1
-
-#define NI_NODEADDR_FLAG_TRUNCATE	0x1
-#define NI_NODEADDR_FLAG_ALL		0x2
-#define NI_NODEADDR_FLAG_COMPAT		0x4
-#define NI_NODEADDR_FLAG_LINKLOCAL	0x8
-#define NI_NODEADDR_FLAG_SITELOCAL	0x10
-#define NI_NODEADDR_FLAG_GLOBAL		0x20
-#define NI_NODEADDR_FLAG_ANYCAST	0x40 /* just experimental. not in spec */
-
-struct ni_reply_fqdn {
-	guint32	ni_fqdn_ttl;	/* TTL */
-	guint8	ni_fqdn_namelen; /* length in octets of the FQDN */
-	guint8	ni_fqdn_name[3]; /* XXX: alignment */
-};
-
-/*
- * Router Renumbering. as router-renum-05.txt
- */
-struct icmp6_router_renum {	/* router renumbering header */
-	struct icmp6_hdr	rr_hdr;
-	guint8		rr_segnum;
-	guint8		rr_flags;
-	guint16		rr_maxdelay;
-	guint32		rr_reserved;
-};
-
-#define rr_type			rr_hdr.icmp6_type
-#define rr_code			rr_hdr.icmp6_code
-#define rr_cksum		rr_hdr.icmp6_cksum
-#define rr_seqnum 		rr_hdr.icmp6_data32[0]
-
-struct rr_pco_match {		/* match prefix part */
-	guint8	rpm_code;
-	guint8	rpm_len;
-	guint8	rpm_ordinal;
-	guint8	rpm_matchlen;
-	guint8	rpm_minlen;
-	guint8	rpm_maxlen;
-	guint16	rpm_reserved;
-	struct e_in6_addr	rpm_prefix;
-};
-
-#define RPM_PCO_ADD		1
-#define RPM_PCO_CHANGE		2
-#define RPM_PCO_SETGLOBAL	3
-#define RPM_PCO_MAX		4
-
-struct rr_pco_use {		/* use prefix part */
-	guint8	rpu_uselen;
-	guint8	rpu_keeplen;
-	guint8	rpu_ramask;
-	guint8	rpu_raflags;
-	guint32	rpu_vltime;
-	guint32	rpu_pltime;
-	guint32	rpu_flags;
-	struct e_in6_addr rpu_prefix;
-};
-
-#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK  0x80
-#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO    0x40
-
-/* network endian */
-#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME	0x80000000
-#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME	0x40000000
-
-struct rr_result {		/* router renumbering result message */
-	guint16	rrr_flags;
-	guint8	rrr_ordinal;
-	guint8	rrr_matchedlen;
-	guint32	rrr_ifid;
-	struct e_in6_addr rrr_prefix;
-};
-
-/* network endian */
-#define ICMP6_RR_RESULT_FLAGS_OOB		0x0002
-#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN		0x0001
-
 #endif /* __PACKET_IPV6_H_DEFINED__ */
Index: packet-isis-clv.c
===================================================================
RCS file: /cvsroot/ethereal/packet-isis-clv.c,v
retrieving revision 1.8
diff -u -r1.8 packet-isis-clv.c
--- packet-isis-clv.c	2000/08/11 13:35:17	1.8
+++ packet-isis-clv.c	2001/03/23 05:31:28
@@ -43,7 +43,7 @@
 #endif
 
 #include "packet.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-clv.h"
 
Index: packet-isis-hello.c
===================================================================
RCS file: /cvsroot/ethereal/packet-isis-hello.c,v
retrieving revision 1.11
diff -u -r1.11 packet-isis-hello.c
--- packet-isis-hello.c	2001/01/03 06:55:29	1.11
+++ packet-isis-hello.c	2001/03/23 05:31:28
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <glib.h>
 #include "packet.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-clv.h"
 #include "packet-isis-hello.h"
Index: packet-isis-lsp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-isis-lsp.c,v
retrieving revision 1.10
diff -u -r1.10 packet-isis-lsp.c
--- packet-isis-lsp.c	2001/01/03 06:55:29	1.10
+++ packet-isis-lsp.c	2001/03/23 05:31:29
@@ -43,7 +43,7 @@
 #endif
 
 #include "packet.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-clv.h"
 #include "packet-isis-lsp.h"
Index: packet-isis-snp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-isis-snp.c,v
retrieving revision 1.8
diff -u -r1.8 packet-isis-snp.c
--- packet-isis-snp.c	2001/01/03 06:55:29	1.8
+++ packet-isis-snp.c	2001/03/23 05:31:29
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <glib.h>
 #include "packet.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-clv.h"
 #include "packet-isis-lsp.h"
Index: packet-isis.c
===================================================================
RCS file: /cvsroot/ethereal/packet-isis.c,v
retrieving revision 1.18
diff -u -r1.18 packet-isis.c
--- packet-isis.c	2001/01/10 09:07:35	1.18
+++ packet-isis.c	2001/03/23 05:31:29
@@ -40,7 +40,7 @@
 #include <glib.h>
 #include "packet.h"
 #include "nlpid.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-lsp.h"
 #include "packet-isis-hello.h"
Index: packet-llc.c
===================================================================
RCS file: /cvsroot/ethereal/packet-llc.c,v
retrieving revision 1.83
diff -u -r1.83 packet-llc.c
--- packet-llc.c	2001/03/22 16:24:14	1.83
+++ packet-llc.c	2001/03/23 05:31:30
@@ -42,7 +42,7 @@
 #include "packet-ip.h"
 #include "packet-ipx.h"
 #include "packet-netbios.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "sna-utils.h"
 
 #include "packet-llc.h"
Index: packet-null.c
===================================================================
RCS file: /cvsroot/ethereal/packet-null.c,v
retrieving revision 1.41
diff -u -r1.41 packet-null.c
--- packet-null.c	2001/03/22 16:24:14	1.41
+++ packet-null.c	2001/03/23 05:31:30
@@ -43,9 +43,9 @@
 #include "packet-null.h"
 #include "atalk-utils.h"
 #include "packet-ip.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "packet-ipx.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-ppp.h"
 #include "etypes.h"
 #include "aftypes.h"
Index: packet-osi-options.c
===================================================================
RCS file: /cvsroot/ethereal/packet-osi-options.c,v
retrieving revision 1.6
diff -u -r1.6 packet-osi-options.c
--- packet-osi-options.c	2001/03/09 04:35:22	1.6
+++ packet-osi-options.c	2001/03/23 05:31:30
@@ -43,7 +43,7 @@
 #include <glib.h>
 #include "packet.h"
 #include "nlpid.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-isis-clv.h"
 #include "packet-isis-hello.h"
Index: packet-osi.c
===================================================================
RCS file: /cvsroot/ethereal/packet-osi.c,v
retrieving revision 1.39
diff -u -r1.39 packet-osi.c
--- packet-osi.c	2001/01/09 06:31:39	1.39
+++ packet-osi.c	2001/03/23 05:31:31
@@ -43,7 +43,7 @@
 #include "llcsaps.h"
 #include "aftypes.h"
 #include "nlpid.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "packet-isis.h"
 #include "packet-esis.h"
 
Index: packet-pim.c
===================================================================
RCS file: /cvsroot/ethereal/packet-pim.c,v
retrieving revision 1.24
diff -u -r1.24 packet-pim.c
--- packet-pim.c	2001/02/08 08:38:58	1.24
+++ packet-pim.c	2001/03/23 05:31:31
@@ -45,6 +45,7 @@
 
 #include "packet.h"
 #include "packet-ip.h"
+#include "ipv6-utils.h"
 #include "packet-ipv6.h"
 #include "in_cksum.h"
 
Index: packet-ppp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ppp.c,v
retrieving revision 1.57
diff -u -r1.57 packet-ppp.c
--- packet-ppp.c	2001/03/22 16:24:14	1.57
+++ packet-ppp.c	2001/03/23 05:31:32
@@ -41,9 +41,9 @@
 #include "atalk-utils.h"
 #include "packet-chdlc.h"
 #include "packet-ip.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "packet-ipx.h"
-#include "packet-vines.h"
+#include "vines-utils.h"
 #include "nlpid.h"
 
 static int proto_ppp = -1;
Index: packet-ripng.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ripng.c,v
retrieving revision 1.18
diff -u -r1.18 packet-ripng.c
--- packet-ripng.c	2001/01/22 08:03:45	1.18
+++ packet-ripng.c	2001/03/23 05:31:32
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <glib.h>
 #include "packet.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "packet-ripng.h"
 
 #ifndef offsetof
Index: packet-ripng.h
===================================================================
RCS file: /cvsroot/ethereal/packet-ripng.h,v
retrieving revision 1.4
diff -u -r1.4 packet-ripng.h
--- packet-ripng.h	2000/08/11 13:34:28	1.4
+++ packet-ripng.h	2001/03/23 05:31:32
@@ -28,6 +28,7 @@
 #define __PACKET_RIPNG_H_DEFINED__
 
 #include "globals.h"
+#include "ipv6-utils.h"
 #include "packet-ipv6.h"
 
 /*
Index: packet-rsvp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-rsvp.c,v
retrieving revision 1.35
diff -u -r1.35 packet-rsvp.c
--- packet-rsvp.c	2001/02/04 09:37:28	1.35
+++ packet-rsvp.c	2001/03/23 05:31:34
@@ -70,7 +70,7 @@
 #include "packet.h"
 #include "in_cksum.h"
 #include "packet-ip.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "ieee-float.h"
 
 static int proto_rsvp = -1;
Index: packet-sap.c
===================================================================
RCS file: /cvsroot/ethereal/packet-sap.c,v
retrieving revision 1.20
diff -u -r1.20 packet-sap.c
--- packet-sap.c	2001/03/13 21:34:23	1.20
+++ packet-sap.c	2001/03/23 05:31:34
@@ -42,7 +42,7 @@
 #include <string.h>
 #include <glib.h>
 #include "packet.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 
 #define UDP_PORT_SAP	9875
 
Index: packet-srvloc.c
===================================================================
RCS file: /cvsroot/ethereal/packet-srvloc.c,v
retrieving revision 1.22
diff -u -r1.22 packet-srvloc.c
--- packet-srvloc.c	2001/03/09 04:35:22	1.22
+++ packet-srvloc.c	2001/03/23 05:31:35
@@ -53,7 +53,7 @@
 #endif
 
 #include "packet.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "strutil.h"
 
 static int proto_srvloc = -1;
Index: packet-udp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-udp.c,v
retrieving revision 1.88
diff -u -r1.88 packet-udp.c
--- packet-udp.c	2001/02/28 19:33:49	1.88
+++ packet-udp.c	2001/03/23 05:31:35
@@ -50,7 +50,7 @@
 
 #include "packet-ip.h"
 #include "conversation.h"
-#include "packet-vines.h"
+#include "vines-utils.h"
 
 static int proto_udp = -1;		
 static int hf_udp_srcport = -1;
Index: packet-vines.c
===================================================================
RCS file: /cvsroot/ethereal/packet-vines.c,v
retrieving revision 1.25
diff -u -r1.25 packet-vines.c
--- packet-vines.c	2001/03/13 21:34:24	1.25
+++ packet-vines.c	2001/03/23 05:31:35
@@ -43,7 +43,7 @@
 #include "etypes.h"
 #include "ppptypes.h"
 #include "packet.h"
-#include "packet-vines.h"
+#include "vines-utils.h"
 #include "packet-ip.h"
 
 #define UDP_PORT_VINES	573
Index: packet-x25.c
===================================================================
RCS file: /cvsroot/ethereal/packet-x25.c,v
retrieving revision 1.46
diff -u -r1.46 packet-x25.c
--- packet-x25.c	2001/02/12 09:06:17	1.46
+++ packet-x25.c	2001/03/23 05:31:37
@@ -40,7 +40,7 @@
 #include "llcsaps.h"
 #include "packet.h"
 #include "packet-ip.h"
-#include "packet-osi.h"
+#include "osi-utils.h"
 #include "nlpid.h"
 
 #define FROM_DCE			0x80
Index: epan/Makefile.am
===================================================================
RCS file: /cvsroot/ethereal/epan/Makefile.am,v
retrieving revision 1.17
diff -u -r1.17 Makefile.am
--- Makefile.am	2001/03/22 16:24:16	1.17
+++ Makefile.am	2001/03/23 05:31:37
@@ -51,6 +51,9 @@
 	gdebug.h		\
 	ipv4.c			\
 	ipv4.h			\
+	ipv6-utils.h		\
+	osi-utils.c		\
+	osi-utils.h		\
 	packet.c		\
 	packet.h		\
 	pint.h			\
@@ -65,7 +68,9 @@
 	strutil.c		\
 	strutil.h		\
 	tvbuff.c		\
-	tvbuff.h
+	tvbuff.h		\
+	vines-utils.c		\
+	vines-utils.h		
 
 EXTRA_libethereal_a_SOURCES =	\
         inet_aton.c		\
Index: epan/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/epan/Makefile.nmake,v
retrieving revision 1.8
diff -u -r1.8 Makefile.nmake
--- Makefile.nmake	2001/03/23 02:05:23	1.8
+++ Makefile.nmake	2001/03/23 05:31:37
@@ -28,6 +28,7 @@
 	inet_pton.obj	\
 	inet_ntop.obj	\
 	ipv4.obj         \
+	osi-utils.obj	\
 	packet.obj       \
 	plugins.obj      \
 	proto.obj        \
@@ -35,6 +36,7 @@
 	sna-utils.obj	\
 	strutil.obj      \
 	tvbuff.obj       \
+	vines-util.obj
 
 
 all: ftypes dfilter ethereal.lib
Index: epan/atalk-utils.h
===================================================================
RCS file: /cvsroot/ethereal/epan/atalk-utils.h,v
retrieving revision 1.1
diff -u -r1.1 atalk-utils.h
--- atalk-utils.h	2001/03/22 16:24:16	1.1
+++ atalk-utils.h	2001/03/23 05:31:37
@@ -50,4 +50,4 @@
  */
 extern gchar *atalk_addr_to_str(const struct atalk_ddp_addr *addrp);
 
-#endif
+#endif /* __ATALK_UTILS__ */
Index: epan/packet.c
===================================================================
RCS file: /cvsroot/ethereal/epan/packet.c,v
retrieving revision 1.22
diff -u -r1.22 packet.c
--- packet.c	2001/03/22 16:24:16	1.22
+++ packet.c	2001/03/23 05:31:38
@@ -75,10 +75,10 @@
 
 #include "atalk-utils.h"
 #include "packet-frame.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "sna-utils.h"
-#include "packet-vines.h"
-#include "packet-osi.h"
+#include "vines-utils.h"
+#include "osi-utils.h"
 
 #include "resolv.h"
 #include "tvbuff.h"
Index: epan/proto.c
===================================================================
RCS file: /cvsroot/ethereal/epan/proto.c,v
retrieving revision 1.14
diff -u -r1.14 proto.c
--- proto.c	2001/03/15 22:08:41	1.14
+++ proto.c	2001/03/23 05:31:40
@@ -44,7 +44,6 @@
 #include "resolv.h"
 #include "register.h"
 #include "plugins.h"
-#include "packet-ipv6.h"
 #include "proto.h"
 
 #define cVALS(x) (const value_string*)(x)
Index: epan/resolv.c
===================================================================
RCS file: /cvsroot/ethereal/epan/resolv.c,v
retrieving revision 1.5
diff -u -r1.5 resolv.c
--- resolv.c	2001/01/09 09:57:06	1.5
+++ resolv.c	2001/03/23 05:31:40
@@ -78,7 +78,7 @@
 #endif
 
 #include "packet.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "packet-ipx.h"
 #include "resolv.h"
 #include "util.h"
Index: epan/sna-utils.c
===================================================================
RCS file: /cvsroot/ethereal/epan/sna-utils.c,v
retrieving revision 1.1
diff -u -r1.1 sna-utils.c
--- sna-utils.c	2001/03/22 16:24:16	1.1
+++ sna-utils.c	2001/03/23 05:31:40
@@ -1,4 +1,4 @@
-/* packet-sna.c
+/* sna-utils.c
  * Routines for SNA
  * Gilbert Ramirez <gram@xxxxxxxxxx>
  *
Index: epan/sna-utils.h
===================================================================
RCS file: /cvsroot/ethereal/epan/sna-utils.h,v
retrieving revision 1.1
diff -u -r1.1 sna-utils.h
--- sna-utils.h	2001/03/22 16:24:16	1.1
+++ sna-utils.h	2001/03/23 05:31:40
@@ -1,5 +1,5 @@
 /* packet-sna.h
- * Definitions for SNA dissection.
+ * Definitions for SNA utilities.
  *
  * $Id: sna-utils.h,v 1.1 2001/03/22 16:24:16 gram Exp $
  *
@@ -40,4 +40,4 @@
  */
 extern gchar *sna_fid_type_4_addr_to_str(const struct sna_fid_type_4_addr *addrp);
 
-#endif
+#endif /* __SNA_UTILS_H__ */
Index: gtk/follow_dlg.c
===================================================================
RCS file: /cvsroot/ethereal/gtk/follow_dlg.c,v
retrieving revision 1.11
diff -u -r1.11 follow_dlg.c
--- follow_dlg.c	2000/11/21 23:54:09	1.11
+++ follow_dlg.c	2001/03/23 05:31:41
@@ -65,7 +65,7 @@
 #include "gtkglobals.h"
 #include "main.h"
 #include "simple_dialog.h"
-#include "packet-ipv6.h"
+#include "ipv6-utils.h"
 #include "prefs.h"
 #include "resolv.h"
 #include "util.h"

Attachment: osi_and_vines_and_ipv6.tar.gz
Description: Binary data