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> |