| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | /*- * Copyright (c) 1983, 1989, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)routed.h	8.1 (Berkeley) 6/2/93 */#ifndef _PROTOCOLS_ROUTED_H#define	_PROTOCOLS_ROUTED_H 1#include <sys/socket.h>/* * Routing Information Protocol * * Derived from Xerox NS Routing Information Protocol * by changing 32-bit net numbers to sockaddr's and * padding stuff to 32-bit boundaries. */#define	RIPVERSION	1struct netinfo {	struct	sockaddr rip_dst;	/* destination net/host */	int	rip_metric;		/* cost of route */};struct rip {	u_char	rip_cmd;		/* request/response */	u_char	rip_vers;		/* protocol version # */	u_char	rip_res1[2];		/* pad to 32-bit boundary */	union {		struct	netinfo ru_nets[1];	/* variable length... */		char	ru_tracefile[1];	/* ditto ... */	} ripun;#define	rip_nets	ripun.ru_nets#define	rip_tracefile	ripun.ru_tracefile};/* * Packet types. */#define	RIPCMD_REQUEST		1	/* want info */#define	RIPCMD_RESPONSE		2	/* responding to request */#define	RIPCMD_TRACEON		3	/* turn tracing on */#define	RIPCMD_TRACEOFF		4	/* turn it off */#define	RIPCMD_MAX		5#ifdef RIPCMDSchar *ripcmds[RIPCMD_MAX] =  { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" };#endif#define	HOPCNT_INFINITY		16	/* per Xerox NS */#define	MAXPACKETSIZE		512	/* max broadcast size *//* * Timer values used in managing the routing table. * Complete tables are broadcast every SUPPLY_INTERVAL seconds. * If changes occur between updates, dynamic updates containing only changes * may be sent.  When these are sent, a timer is set for a random value * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates * are sent until the timer expires. * * Every update of a routing entry forces an entry's timer to be reset. * After EXPIRE_TIME without updates, the entry is marked invalid, * but held onto until GARBAGE_TIME so that others may * see it "be deleted". */#define	TIMER_RATE		30	/* alarm clocks every 30 seconds */#define	SUPPLY_INTERVAL		30	/* time to supply tables */#define	MIN_WAITTIME		2	/* min. interval to broadcast changes */#define	MAX_WAITTIME		5	/* max. time to delay changes */#define	EXPIRE_TIME		180	/* time to mark entry invalid */#define	GARBAGE_TIME		240	/* time to garbage collect */#endif /* protocols/routed.h */
 |