diff options
Diffstat (limited to 'usr.sbin/mrouted/defs.h')
-rw-r--r-- | usr.sbin/mrouted/defs.h | 102 |
1 files changed, 86 insertions, 16 deletions
diff --git a/usr.sbin/mrouted/defs.h b/usr.sbin/mrouted/defs.h index c75dd8e8f881..b239557e6f93 100644 --- a/usr.sbin/mrouted/defs.h +++ b/usr.sbin/mrouted/defs.h @@ -7,7 +7,7 @@ * Leland Stanford Junior University. * * - * $Id: defs.h,v 1.2 1994/09/08 02:51:13 wollman Exp $ + * $Id: defs.h,v 3.5 1995/05/09 01:00:39 fenner Exp $ */ @@ -27,11 +27,22 @@ #include <netinet/ip.h> #include <netinet/igmp.h> #include <netinet/ip_mroute.h> +#ifdef RSRR +#include <sys/un.h> +#endif /* RSRR */ + +/*XXX*/ +typedef u_int u_int32; #include "dvmrp.h" #include "vif.h" #include "route.h" #include "prune.h" +#include "pathnames.h" +#ifdef RSRR +#include "rsrr.h" +#include "rsrr_var.h" +#endif /* RSRR */ /* * Miscellaneous constants and macros. @@ -45,25 +56,47 @@ #define PROTOCOL_VERSION 3 /* increment when packet format/content changes */ -#define MROUTED_VERSION 4 /* increment on local changes or bug fixes, */ +#define MROUTED_VERSION 5 /* increment on local changes or bug fixes, */ /* reset to 0 whever PROTOCOL_VERSION increments */ -#define MROUTED_LEVEL ( (MROUTED_VERSION << 8) | PROTOCOL_VERSION ) +#define MROUTED_LEVEL ( (MROUTED_VERSION << 8) | PROTOCOL_VERSION | \ + ((NF_PRUNE | NF_GENID | NF_MTRACE) << 16)) /* for IGMP 'group' field of DVMRP messages */ +#define LEAF_FLAGS (( vifs_with_neighbors == 1 ) ? 0x010000 : 0) + /* more for IGMP 'group' field of DVMRP messages */ #define DEL_RTE_GROUP 0 #define DEL_ALL_ROUTES 1 /* for Deleting kernel table entries */ +/* obnoxious gcc gives an extraneous warning about this constant... */ +#if defined(__STDC__) || defined(__GNUC__) +#define JAN_1970 2208988800UL /* 1970 - 1900 in seconds */ +#else +#define JAN_1970 2208988800L /* 1970 - 1900 in seconds */ +#endif + +#ifdef RSRR +#define BIT_ZERO(X) ((X) = 0) +#define BIT_SET(X,n) ((X) |= 1 << (n)) +#define BIT_CLR(X,n) ((X) &= ~(1 << (n))) +#define BIT_TST(X,n) ((X) & 1 << (n)) +#endif /* RSRR */ + /* * External declarations for global variables and functions. */ -extern char recv_buf[MAX_IP_PACKET_LEN]; -extern char send_buf[MAX_IP_PACKET_LEN]; +#define RECV_BUF_SIZE MAX_IP_PACKET_LEN +extern char *recv_buf; +extern char *send_buf; extern int igmp_socket; -extern u_long allhosts_group; -extern u_long dvmrp_group; -extern u_long dvmrp_genid; +#ifdef RSRR +extern int rsrr_socket; +#endif /* RSRR */ +extern u_int32 allhosts_group; +extern u_int32 allrtrs_group; +extern u_int32 dvmrp_group; +extern u_int32 dvmrp_genid; #define DEFAULT_DEBUG 2 /* default if "-d" given without value */ @@ -78,14 +111,16 @@ extern struct uvif uvifs[MAXVIFS]; extern vifi_t numvifs; extern int vifs_down; extern int udp_socket; +extern int vifs_with_neighbors; extern char s1[]; extern char s2[]; extern char s3[]; +extern char s4[]; +#if !(defined(BSD) && (BSD >= 199103)) extern int errno; extern int sys_nerr; -#ifndef __FreeBSD__ extern char * sys_errlist[]; #endif @@ -118,12 +153,16 @@ extern vifi_t find_vif(); extern void age_vifs(); extern void dump_vifs(); extern void stop_all_vifs(); +extern struct listaddr *neighbor_info(); extern void accept_group_report(); extern void query_groups(); extern void probe_for_neighbors(); extern int update_neighbor(); extern void accept_neighbor_request(); +extern void accept_neighbor_request2(); +extern void accept_neighbors(); +extern void accept_neighbors2(); extern void config_vifs_from_kernel(); extern void config_vifs_from_file(); @@ -132,13 +171,12 @@ extern int inet_valid_host(); extern int inet_valid_subnet(); extern char * inet_fmt(); extern char * inet_fmts(); -extern u_long inet_parse(); +extern u_int32 inet_parse(); extern int inet_cksum(); extern struct rtentry * determine_route(); extern void init_ktable(); -extern int grplst_mem(); extern void add_table_entry(); extern void del_table_entry(); extern void update_table_entry(); @@ -146,27 +184,59 @@ extern void update_lclgrp(); extern void delete_lclgrp(); extern unsigned kroutes; -extern void send_prune(); extern void accept_prune(); extern int no_entry_exists(); -extern struct ktable * find_src_grp(); extern int rtr_cnt(); extern void free_all_prunes(); extern void age_table_entry(); extern void dump_cache(); +#ifdef SNMP +extern struct rtentry * snmp_find_route(); +extern struct gtable * find_grp(); +extern struct stable * find_grp_src(); +#endif + extern void chkgrp_graft(); extern void accept_graft(); extern void send_graft_ack(); -extern void send_graft(); extern void accept_g_ack(); -extern void mtrace(); +extern void accept_mtrace(); +extern void accept_leave_message(); +extern void accept_membership_query(); +#ifdef RSRR +extern struct gtable *kernel_table; +extern struct gtable *gtp; +extern int find_src_grp(); +extern int grplst_mem(); +extern int scoped_addr(); +#endif /* RSRR */ + +extern void k_set_rcvbuf(); +extern void k_hdr_include(); +extern void k_set_ttl(); +extern void k_set_loop(); +extern void k_set_if(); +extern void k_join(); +extern void k_leave(); +extern void k_init_dvmrp(); +extern void k_stop_dvmrp(); +extern void k_add_vif(); +extern void k_del_vif(); +extern void k_add_rg(); +extern int k_del_rg(); +extern int k_get_version(); extern char * malloc(); extern char * fgets(); extern FILE * fopen(); -#ifndef htonl +#if !defined(htonl) && !defined(__osf__) extern u_long htonl(); extern u_long ntohl(); #endif + +#ifdef RSRR +extern void rsrr_init(); +extern void rsrr_read(); +#endif /* RSRR */ |