xref: /csrg-svn/sbin/XNSrouted/defs.h (revision 61474)
124306Ssklower /*
2*61474Sbostic  * Copyright (c) 1983, 1993
3*61474Sbostic  *	The Regents of the University of California.  All rights reserved.
424327Ssklower  *
542698Sbostic  * %sccs.include.redist.c%
635551Sbostic  *
7*61474Sbostic  *	@(#)defs.h	8.1 (Berkeley) 06/05/93
824306Ssklower  */
924327Ssklower 
1024306Ssklower #include <sys/types.h>
1124306Ssklower #include <sys/socket.h>
1224306Ssklower 
1324306Ssklower #include <net/route.h>
1424317Ssklower #include <netns/ns.h>
1524317Ssklower #include <netns/idp.h>
1626170Ssklower #if defined(vax) || defined(pdp11)
1726170Ssklower #define xnnet(x) ((u_long) (x)->rip_dst[1] << 16 | (u_long) (x)->rip_dst[0] )
1826170Ssklower #else
1926170Ssklower #define xnnet(x) ((u_long) (x)->rip_dst[0] << 16 | (u_long) (x)->rip_dst[1] )
2026170Ssklower #endif
2124317Ssklower #define	IDPPORT_RIF	1
2224306Ssklower 
2324306Ssklower #include <stdio.h>
2424875Ssklower #include <syslog.h>
2524306Ssklower 
2624306Ssklower #include "protocol.h"
2724306Ssklower #include "trace.h"
2824306Ssklower #include "interface.h"
2924306Ssklower #include "table.h"
3024306Ssklower #include "af.h"
3124306Ssklower 
3224306Ssklower 
3324306Ssklower /*
3424306Ssklower  * When we find any interfaces marked down we rescan the
3524306Ssklower  * kernel every CHECK_INTERVAL seconds to see if they've
3624306Ssklower  * come up.
3724306Ssklower  */
3826170Ssklower #define	CHECK_INTERVAL	(5*60)
3924306Ssklower 
4024306Ssklower #define equal(a1, a2) \
4124306Ssklower 	(bcmp((caddr_t)(a1), (caddr_t)(a2), sizeof (struct sockaddr)) == 0)
4224306Ssklower #define	min(a,b)	((a)>(b)?(b):(a))
4324306Ssklower 
4424317Ssklower struct	sockaddr_ns addr;	/* Daemon's Address */
4524317Ssklower int	s;			/* Socket to listen on */
4624306Ssklower int	kmem;
4724306Ssklower int	supplier;		/* process should supply updates */
4824306Ssklower int	install;		/* if 1 call kernel */
4924306Ssklower int	lookforinterfaces;	/* if 1 probe kernel for new up interfaces */
5024306Ssklower int	performnlist;		/* if 1 check if /vmunix has changed */
5124306Ssklower int	externalinterfaces;	/* # of remote and local interfaces */
5224306Ssklower int	timeval;		/* local idea of time */
5324875Ssklower int	noteremoterequests;	/* squawk on requests from non-local nets */
5452623Ssklower int	r;			/* Routing socket to install updates with */
5552623Ssklower struct	sockaddr_ns ns_netmask;	/* Used in installing routes */
5624306Ssklower 
5724306Ssklower char	packet[MAXPACKETSIZE+sizeof(struct idp)+1];
5824306Ssklower struct	rip *msg;
5924306Ssklower 
6024306Ssklower char	**argv0;
6124306Ssklower 
6246704Sbostic int	sndmsg();
6324306Ssklower int	supply();
6424306Ssklower int	cleanup();
6552623Ssklower int	rtioctl();
6652623Ssklower #define	ADD	1
6752623Ssklower #define	DELETE	2
6852623Ssklower #define CHANGE	3
69