Deleted Added
full compact
defs.h (20287) defs.h (20342)
1/*
2 * Copyright (c) 1983, 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)defs.h 8.1 (Berkeley) 6/5/93
1/*
2 * Copyright (c) 1983, 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)defs.h 8.1 (Berkeley) 6/5/93
34 * $Id: defs.h,v 1.3 1996/11/19 20:42:11 wollman Exp $
34 * $Id: defs.h,v 1.4 1996/12/10 17:07:36 wollman Exp $
35 */
36
37/* Definitions for RIPv2 routing process.
38 *
39 * This code is based on the 4.4BSD `routed` daemon, with extensions to
40 * support:
41 * RIPv2, including variable length subnet masks.
42 * Router Discovery

--- 71 unchanged lines hidden (view full) ---

114#define _HAVE_SIN_LEN
115#endif
116
117/* Turn on if IP_DROP_MEMBERSHIP and IP_ADD_MEMBERSHIP do not look at
118 * the dstaddr of point-to-point interfaces.
119 */
120/* #define MCAST_PPP_BUG */
121
35 */
36
37/* Definitions for RIPv2 routing process.
38 *
39 * This code is based on the 4.4BSD `routed` daemon, with extensions to
40 * support:
41 * RIPv2, including variable length subnet masks.
42 * Router Discovery

--- 71 unchanged lines hidden (view full) ---

114#define _HAVE_SIN_LEN
115#endif
116
117/* Turn on if IP_DROP_MEMBERSHIP and IP_ADD_MEMBERSHIP do not look at
118 * the dstaddr of point-to-point interfaces.
119 */
120/* #define MCAST_PPP_BUG */
121
122#define NEVER (24*60*60) /* a long time */
122#define DAY (24*60*60)
123#define NEVER DAY /* a long time */
123#define EPOCH NEVER /* bias time by this to avoid <0 */
124
125/* Scan the kernel regularly to see if any interfaces have appeared or been
126 * turned off. These must be less than STALE_TIME.
127 */
128#define CHECK_BAD_INTERVAL 5 /* when an interface is known bad */
129#define CHECK_ACT_INTERVAL 30 /* when advertising */
130#define CHECK_QUIET_INTERVAL 300 /* when not */

--- 152 unchanged lines hidden (view full) ---

283 u_int ierrors;
284 u_int opackets;
285 u_int oerrors;
286#ifdef sgi
287 u_int odrops;
288#endif
289 time_t ts; /* timestamp on network stats */
290 } int_data;
124#define EPOCH NEVER /* bias time by this to avoid <0 */
125
126/* Scan the kernel regularly to see if any interfaces have appeared or been
127 * turned off. These must be less than STALE_TIME.
128 */
129#define CHECK_BAD_INTERVAL 5 /* when an interface is known bad */
130#define CHECK_ACT_INTERVAL 30 /* when advertising */
131#define CHECK_QUIET_INTERVAL 300 /* when not */

--- 152 unchanged lines hidden (view full) ---

284 u_int ierrors;
285 u_int opackets;
286 u_int oerrors;
287#ifdef sgi
288 u_int odrops;
289#endif
290 time_t ts; /* timestamp on network stats */
291 } int_data;
292# define MAX_AUTH_KEYS 5
291 struct auth { /* authentication info */
292 u_char type;
293 struct auth { /* authentication info */
294 u_char type;
293# define MAX_AUTH_KEYS 3
294 struct auth_key {
295 u_char key[RIP_AUTH_PW_LEN];
296 u_char keyid;
297 time_t start, end;
298 } keys[MAX_AUTH_KEYS];
299 } int_auth;
295 u_char key[RIP_AUTH_PW_LEN];
296 u_char keyid;
297 time_t start, end;
298 } int_auth[MAX_AUTH_KEYS];
300 int int_rdisc_pref; /* advertised rdisc preference */
301 int int_rdisc_int; /* MaxAdvertiseInterval */
302 int int_rdisc_cnt;
303 struct timeval int_rdisc_timer;
304};
305
306/* bits in int_state */
307#define IS_ALIAS 0x0000001 /* interface alias */
308#define IS_SUBNET 0x0000002 /* interface on subnetted network */
309#define IS_REMOTE 0x0000004 /* interface is not on this machine */
310#define IS_PASSIVE 0x0000008 /* remote and does not do RIP */
311#define IS_EXTERNAL 0x0000010 /* handled by EGP or something */
312#define IS_CHECKED 0x0000020 /* still exists */
313#define IS_ALL_HOSTS 0x0000040 /* in INADDR_ALLHOSTS_GROUP */
314#define IS_ALL_ROUTERS 0x0000080 /* in INADDR_ALLROUTERS_GROUP */
315#define IS_DISTRUST 0x0000100 /* ignore untrusted routers */
299 int int_rdisc_pref; /* advertised rdisc preference */
300 int int_rdisc_int; /* MaxAdvertiseInterval */
301 int int_rdisc_cnt;
302 struct timeval int_rdisc_timer;
303};
304
305/* bits in int_state */
306#define IS_ALIAS 0x0000001 /* interface alias */
307#define IS_SUBNET 0x0000002 /* interface on subnetted network */
308#define IS_REMOTE 0x0000004 /* interface is not on this machine */
309#define IS_PASSIVE 0x0000008 /* remote and does not do RIP */
310#define IS_EXTERNAL 0x0000010 /* handled by EGP or something */
311#define IS_CHECKED 0x0000020 /* still exists */
312#define IS_ALL_HOSTS 0x0000040 /* in INADDR_ALLHOSTS_GROUP */
313#define IS_ALL_ROUTERS 0x0000080 /* in INADDR_ALLROUTERS_GROUP */
314#define IS_DISTRUST 0x0000100 /* ignore untrusted routers */
316#define IS_BROKE 0x0000200 /* seems to be broken */
317#define IS_SICK 0x0000400 /* seems to be broken */
318#define IS_DUP 0x0000800 /* has a duplicate address */
319/* 0x0001000 spare */
315#define IS_REDIRECT_OK 0x0000200 /* accept ICMP redirects */
316#define IS_BROKE 0x0000400 /* seems to be broken */
317#define IS_SICK 0x0000800 /* seems to be broken */
318#define IS_DUP 0x0001000 /* has a duplicate address */
320#define IS_NEED_NET_SYN 0x0002000 /* need RS_NET_SYN route */
321#define IS_NO_AG 0x0004000 /* do not aggregate subnets */
322#define IS_NO_SUPER_AG 0x0008000 /* do not aggregate networks */
323#define IS_NO_RIPV1_IN 0x0010000 /* no RIPv1 input at all */
324#define IS_NO_RIPV2_IN 0x0020000 /* no RIPv2 input at all */
325#define IS_NO_RIP_IN (IS_NO_RIPV1_IN | IS_NO_RIPV2_IN)
326#define IS_RIP_IN_OFF(s) (((s) & IS_NO_RIP_IN) == IS_NO_RIP_IN)
327#define IS_NO_RIPV1_OUT 0x0040000 /* no RIPv1 output at all */

--- 62 unchanged lines hidden (view full) ---

390 char parm_name[IFNAMSIZ+1];
391 naddr parm_net;
392 naddr parm_mask;
393
394 char parm_d_metric;
395 u_int parm_int_state;
396 int parm_rdisc_pref;
397 int parm_rdisc_int;
319#define IS_NEED_NET_SYN 0x0002000 /* need RS_NET_SYN route */
320#define IS_NO_AG 0x0004000 /* do not aggregate subnets */
321#define IS_NO_SUPER_AG 0x0008000 /* do not aggregate networks */
322#define IS_NO_RIPV1_IN 0x0010000 /* no RIPv1 input at all */
323#define IS_NO_RIPV2_IN 0x0020000 /* no RIPv2 input at all */
324#define IS_NO_RIP_IN (IS_NO_RIPV1_IN | IS_NO_RIPV2_IN)
325#define IS_RIP_IN_OFF(s) (((s) & IS_NO_RIP_IN) == IS_NO_RIP_IN)
326#define IS_NO_RIPV1_OUT 0x0040000 /* no RIPv1 output at all */

--- 62 unchanged lines hidden (view full) ---

389 char parm_name[IFNAMSIZ+1];
390 naddr parm_net;
391 naddr parm_mask;
392
393 char parm_d_metric;
394 u_int parm_int_state;
395 int parm_rdisc_pref;
396 int parm_rdisc_int;
398 struct auth parm_auth;
397 struct auth parm_auth[MAX_AUTH_KEYS];
399} *parms;
400
401/* authority for internal networks */
402extern struct intnet {
403 struct intnet *intnet_next;
404 naddr intnet_addr;
405 naddr intnet_mask;
406 char intnet_metric;

--- 59 unchanged lines hidden (view full) ---

466extern struct interface *ifnet; /* all interfaces */
467extern struct interface *remote_if; /* remote interfaces */
468extern int have_ripv1_out; /* have a RIPv1 interface */
469extern int have_ripv1_in;
470extern int need_flash; /* flash update needed */
471extern struct timeval need_kern; /* need to update kernel table */
472extern int update_seqno; /* a route has changed */
473
398} *parms;
399
400/* authority for internal networks */
401extern struct intnet {
402 struct intnet *intnet_next;
403 naddr intnet_addr;
404 naddr intnet_mask;
405 char intnet_metric;

--- 59 unchanged lines hidden (view full) ---

465extern struct interface *ifnet; /* all interfaces */
466extern struct interface *remote_if; /* remote interfaces */
467extern int have_ripv1_out; /* have a RIPv1 interface */
468extern int have_ripv1_in;
469extern int need_flash; /* flash update needed */
470extern struct timeval need_kern; /* need to update kernel table */
471extern int update_seqno; /* a route has changed */
472
474extern u_int tracelevel, new_tracelevel;
473extern int tracelevel, new_tracelevel;
475#define MAX_TRACELEVEL 4
476#define TRACEKERNEL (tracelevel >= 4) /* log kernel changes */
477#define TRACECONTENTS (tracelevel >= 3) /* display packet contents */
478#define TRACEPACKETS (tracelevel >= 2) /* note packets */
479#define TRACEACTIONS (tracelevel != 0)
480extern FILE *ftrace; /* output trace file */
474#define MAX_TRACELEVEL 4
475#define TRACEKERNEL (tracelevel >= 4) /* log kernel changes */
476#define TRACECONTENTS (tracelevel >= 3) /* display packet contents */
477#define TRACEPACKETS (tracelevel >= 2) /* note packets */
478#define TRACEACTIONS (tracelevel != 0)
479extern FILE *ftrace; /* output trace file */
480extern char inittracename[MAXPATHLEN+1];
481
482extern struct radix_node_head *rhead;
483
484
485#ifdef sgi
486/* Fix conflicts */
487#define dup2(x,y) BSDdup2(x,y)
488#endif /* sgi */
489
490extern void fix_sock(int, char *);
491extern void fix_select(void);
492extern void rip_off(void);
493extern void rip_on(struct interface *);
494
495extern void bufinit(void);
496extern int output(enum output_type, struct sockaddr_in *,
497 struct interface *, struct rip *, int);
481
482extern struct radix_node_head *rhead;
483
484
485#ifdef sgi
486/* Fix conflicts */
487#define dup2(x,y) BSDdup2(x,y)
488#endif /* sgi */
489
490extern void fix_sock(int, char *);
491extern void fix_select(void);
492extern void rip_off(void);
493extern void rip_on(struct interface *);
494
495extern void bufinit(void);
496extern int output(enum output_type, struct sockaddr_in *,
497 struct interface *, struct rip *, int);
498extern void clr_ws_buf(struct ws_buf *, struct auth_key *, struct interface *);
498extern void clr_ws_buf(struct ws_buf *, struct auth *);
499extern void rip_query(void);
500extern void rip_bcast(int);
501extern void supply(struct sockaddr_in *, struct interface *,
502 enum output_type, int, int, int);
503
504extern void msglog(char *, ...);
505struct msg_limit {
499extern void rip_query(void);
500extern void rip_bcast(int);
501extern void supply(struct sockaddr_in *, struct interface *,
502 enum output_type, int, int, int);
503
504extern void msglog(char *, ...);
505struct msg_limit {
506 time_t reuse;
507 struct msg_sub {
506 naddr addr;
507 time_t until;
508 naddr addr;
509 time_t until;
510# define MSG_SUBJECT_N 8
511 } subs[MSG_SUBJECT_N];
508};
509extern void msglim(struct msg_limit *, naddr, char *, ...);
510#define LOGERR(msg) msglog(msg ": %s", strerror(errno))
511extern void logbad(int, char *, ...);
512#define BADERR(dump,msg) logbad(dump,msg ": %s", strerror(errno))
513#ifdef DEBUG
514#define DBGERR(dump,msg) BADERR(dump,msg)
515#else
516#define DBGERR(dump,msg) LOGERR(msg)
517#endif
518extern char *naddr_ntoa(naddr);
519extern char *saddr_ntoa(struct sockaddr *);
520
521extern void *rtmalloc(size_t, char *);
522extern void timevaladd(struct timeval *, struct timeval *);
523extern void intvl_random(struct timeval *, u_long, u_long);
524extern int getnet(char *, naddr *, naddr *);
525extern int gethost(char *, naddr *);
526extern void gwkludge(void);
512};
513extern void msglim(struct msg_limit *, naddr, char *, ...);
514#define LOGERR(msg) msglog(msg ": %s", strerror(errno))
515extern void logbad(int, char *, ...);
516#define BADERR(dump,msg) logbad(dump,msg ": %s", strerror(errno))
517#ifdef DEBUG
518#define DBGERR(dump,msg) BADERR(dump,msg)
519#else
520#define DBGERR(dump,msg) LOGERR(msg)
521#endif
522extern char *naddr_ntoa(naddr);
523extern char *saddr_ntoa(struct sockaddr *);
524
525extern void *rtmalloc(size_t, char *);
526extern void timevaladd(struct timeval *, struct timeval *);
527extern void intvl_random(struct timeval *, u_long, u_long);
528extern int getnet(char *, naddr *, naddr *);
529extern int gethost(char *, naddr *);
530extern void gwkludge(void);
527extern char *parse_parms(char *);
531extern char *parse_parms(char *, int);
528extern char *check_parms(struct parm *);
529extern void get_parms(struct interface *);
530
531extern void lastlog(void);
532extern char *check_parms(struct parm *);
533extern void get_parms(struct interface *);
534
535extern void lastlog(void);
532extern void trace_on(char *, int);
536extern void set_tracefile(char *, char *, int);
537extern void tracelevel_msg(char *, int);
533extern void trace_off(char*, ...);
538extern void trace_off(char*, ...);
539extern void set_tracelevel(void);
534extern void trace_flush(void);
540extern void trace_flush(void);
535extern void set_tracelevel(int);
536extern void trace_kernel(char *, ...);
537extern void trace_act(char *, ...);
538extern void trace_pkt(char *, ...);
539extern void trace_add_del(char *, struct rt_entry *);
540extern void trace_change(struct rt_entry *, u_int, naddr, naddr, int,
541 u_short, struct interface *, time_t, char *);
542extern void trace_if(char *, struct interface *);
543extern void trace_upslot(struct rt_entry *, struct rt_spare *,

--- 66 unchanged lines hidden (view full) ---

610extern void if_sick(struct interface *);
611extern void if_bad(struct interface *);
612extern void if_link(struct interface *);
613extern struct interface *ifwithaddr(naddr, int, int);
614extern struct interface *ifwithname(char *, naddr);
615extern struct interface *ifwithindex(u_short);
616extern struct interface *iflookup(naddr);
617
541extern void trace_kernel(char *, ...);
542extern void trace_act(char *, ...);
543extern void trace_pkt(char *, ...);
544extern void trace_add_del(char *, struct rt_entry *);
545extern void trace_change(struct rt_entry *, u_int, naddr, naddr, int,
546 u_short, struct interface *, time_t, char *);
547extern void trace_if(char *, struct interface *);
548extern void trace_upslot(struct rt_entry *, struct rt_spare *,

--- 66 unchanged lines hidden (view full) ---

615extern void if_sick(struct interface *);
616extern void if_bad(struct interface *);
617extern void if_link(struct interface *);
618extern struct interface *ifwithaddr(naddr, int, int);
619extern struct interface *ifwithname(char *, naddr);
620extern struct interface *ifwithindex(u_short);
621extern struct interface *iflookup(naddr);
622
618extern struct auth_key *find_auth(struct interface *);
619extern void end_md5_auth(struct ws_buf *, struct auth_key *);
623extern struct auth *find_auth(struct interface *);
624extern void end_md5_auth(struct ws_buf *, struct auth *);
620
621#include <md5.h>
625
626#include <md5.h>