Home | History | Annotate | Line # | Download | only in mrouted
defs.h revision 1.2
      1 /*
      2  * The mrouted program is covered by the license in the accompanying file
      3  * named "LICENSE".  Use of the mrouted program represents acceptance of
      4  * the terms and conditions listed in that file.
      5  *
      6  * The mrouted program is COPYRIGHT 1989 by The Board of Trustees of
      7  * Leland Stanford Junior University.
      8  *
      9  *
     10  * From: Id: defs.h,v 1.4 1993/06/24 05:11:16 deering Exp
     11  *      $Id: defs.h,v 1.2 1994/05/08 15:08:52 brezak Exp $
     12  */
     13 
     14 
     15 #include <stdio.h>
     16 #include <ctype.h>
     17 #include <errno.h>
     18 #include <syslog.h>
     19 #include <signal.h>
     20 #include <sys/param.h>
     21 #include <sys/socket.h>
     22 #include <sys/ioctl.h>
     23 #include <net/if.h>
     24 #include <netinet/in.h>
     25 #include <netinet/in_systm.h>
     26 #include <netinet/ip.h>
     27 #include <netinet/igmp.h>
     28 #include <netinet/ip_mroute.h>
     29 
     30 #include "dvmrp.h"
     31 #include "vif.h"
     32 #include "route.h"
     33 #include "pathnames.h"
     34 
     35 /*
     36  * Miscellaneous constants and macros.
     37  */
     38 #define FALSE		0
     39 #define TRUE		1
     40 
     41 #define EQUAL(s1, s2)	(strcmp((s1), (s2)) == 0)
     42 
     43 #define TIMER_INTERVAL	ROUTE_MAX_REPORT_DELAY
     44 
     45 #define PROTOCOL_VERSION 2  /* increment when packet format/content changes */
     46 
     47 #define MROUTED_VERSION  2  /* increment on local changes or bug fixes, */
     48 			    /* reset to 0 whever PROTOCOL_VERSION increments */
     49 
     50 #define MROUTED_LEVEL ( (MROUTED_VERSION << 8) | PROTOCOL_VERSION )
     51 			    /* for IGMP 'group' field of DVMRP messages */
     52 
     53 /*
     54  * External declarations for global variables and functions.
     55  */
     56 extern char		recv_buf[MAX_IP_PACKET_LEN];
     57 extern char		send_buf[MAX_IP_PACKET_LEN];
     58 extern int		igmp_socket;
     59 extern u_long		allhosts_group;
     60 extern u_long		dvmrp_group;
     61 
     62 #define DEFAULT_DEBUG  2	/* default if "-d" given without value */
     63 
     64 extern int		debug;
     65 
     66 extern int		routes_changed;
     67 extern int		delay_change_reports;
     68 extern unsigned		nroutes;
     69 
     70 extern struct uvif	uvifs[MAXVIFS];
     71 extern vifi_t		numvifs;
     72 extern int		vifs_down;
     73 extern int		udp_socket;
     74 
     75 extern char		s1[];
     76 extern char		s2[];
     77 extern char		s3[];
     78 
     79 #ifndef __NetBSD__
     80 extern int		errno;
     81 extern int		sys_nerr;
     82 extern char *		sys_errlist[];
     83 #endif
     84 
     85 extern void		log();
     86 
     87 extern void		init_igmp();
     88 extern void		accept_igmp();
     89 extern void		send_igmp();
     90 
     91 extern void		init_routes();
     92 extern void		start_route_updates();
     93 extern void		update_route();
     94 extern void		age_routes();
     95 extern void		expire_all_routes();
     96 extern void		accept_probe();
     97 extern void		accept_report();
     98 extern void		report();
     99 extern void		report_to_all_neighbors();
    100 extern int		report_next_chunk();
    101 extern void		add_vif_to_routes();
    102 extern void		delete_vif_from_routes();
    103 extern void		delete_neighbor_from_routes();
    104 extern void		dump_routes();
    105 
    106 extern void		init_vifs();
    107 extern void		check_vif_state();
    108 extern vifi_t		find_vif();
    109 extern void		age_vifs();
    110 extern void		dump_vifs();
    111 extern void		accept_group_report();
    112 extern void		query_groups();
    113 extern void		probe_for_neighbors();
    114 extern int		update_neighbor();
    115 extern void		accept_neighbor_request();
    116 
    117 extern void		config_vifs_from_kernel();
    118 extern void		config_vifs_from_file();
    119 
    120 extern int		inet_valid_host();
    121 extern int		inet_valid_subnet();
    122 extern char *		inet_fmt();
    123 extern char *		inet_fmts();
    124 extern u_long		inet_parse();
    125 extern int		inet_cksum();
    126 
    127 extern char *		malloc();
    128 extern char *		fgets();
    129 extern FILE *		fopen();
    130 
    131 #ifndef htonl
    132 extern u_long		htonl();
    133 extern u_long		ntohl();
    134 #endif
    135