📄 readme
字号:
KRT_RTREAD_RADIX For systems based on BSD 4.3 Reno and later that lack the getkerninfo() system interface to read the routing table. KRT_IFREAD_IOCTL For systems which read the interface list from the kernel with the SIOCGIFCONF ioctl interface. KRT_IFREAD_KINFO For systems which read the interface list from the kernel with the getkerninfo() system call. KRT_SYMBOLS_NLIST For systems that read interesting values from the kernel via the nlist() interface. KRT_SYMBOLS_SUNOS5 For SunOS 5 based systems. KRT_SYMBOLS_SYSCTL For BSD 4.4 (and some BSDI systems?). KRT_IFR_MTU (ifr_mtu) For systems that use KRT_IFREAD_IOCTL and have the SIOCGIFMTU ioctl, this option specifies which structure member contains the MTU. Another common one is ``ifr_metric''. For Auspex systems you may need ``ifr_mtu.off_net_mtu''. KRT_RT_IOCTL For systems with BSD 4.3 based networking which manipulate the kernel routing table via SIOCADDRT and SIOCDELRT ioctls. KRT_RT_SOCK For systems with BSD 4.3 Reno or later based networking which manipulate the kernel routing table via the routing socket. KRT_RT_SOCK_SUNOS5 For SunOS 5.6+ systems that support the routing socket. Should be specified in addition to the KRT_RT_SOCK option. KRT_RT_NOCHANGE For systems based on BSD 4.3 Reno or BSD 4.3 Net/2 where the kernel processing of RTM_CHANGE messages is broken. KRT_LLADDR_KMEM For systems which read the physical address of IEEE 802 devices from the kernel by assuming that an arpcom structure preceeds the ifnet. KRT_LLADDR_LINUX To use the linux SIOCGIFHWADDR ioctl to get the hardware address. KRT_LLADDR_SUNOS4 For systems which read the physical address of IEEE 802 devices from the kernel by way of the NIT interface. KRT_LLADDR_SUNOS5 For systems which read the physical address of IEEE 802 devices from the kernel by way of DLPI interface. KRT_LLADDR_NONE For systems where the normal interface scanning process will provide the physical address. KRT_NETOPTS For systems supporting SIOCGNETOPT (AIX 3), used to read additional symbols from the kernel. KRT_SOCKET_TYPE (PF_UNIX,SOCK_DGRAM,AF_UNSPEC) To specify the type of socket to obtain to manipulate the kernel forwarding table. Systems that use streams I/O and linux need (PF_INET,SOCK_DGRAM,AF_UNSPEC). Systems with the routing socket require (PF_ROUTE,SOCK_RAW,AF_UNSPEC). KVM_TYPE_SUNSOS4 For systems that use SunOS 4 style kvm libraries. KVM_TYPE_BSD44 For systems that use BSD 4.4 style kvm libraries. KVM_TYPE_RENO For systems that use BSD 4.3 Reno style kvm libraries. KVM_TYPE_OTHER For systems that do not have kvm libraries but require reading kernel information from /dev/mem. KVM_TYPE_NONE For systems where it is not necessary to read information from /dev/mem. ROUTES_WO_MBUFS For systems with the BSD 4.3 hash based routing table that do not store the entries in mbufs. P2P_RT_REMOTE For BSD 4.2 based systems where the gateway of a route to a P2P interface is the remote address of that interface. VARIABLE_MASKS For systems supporting variable subnet masks. SOCKET_LENGTHS For systems where the struct sockaddr* include a length. SOCKADDR_DL For systems where AF_LINK sockaddrs are supported. INCLUDE_IF_DL For system where <net/if_dl.h> should be included. IFL_NAMELEN The maxium number of characters in an interface name (not including the trailing zero). Must be at least as big as IFNAMSIZ. Kernel symbols: These first three may be set to a empty string (KSYM_XXX="""") when code that request them is present but then are not defined. KSYM_IPFORWARDING ("_ipforwarding") KSYM_UDPCKSUM ("_udpcksum") The name of the kernel symbol for these values, to be read by kvm_nlist(). Some systems (i.e. SunOS4.*) require an underscore after `ip' and `udp". KSYM_VERSION ("_version") The name of the kernel symbol that describes the kernel version. On later BSD systems with support for the kvm library it is more appropriate to use VRS_SYM, but it's value should be "_version". KSYM_RTHOST ("_rthost") KSYM_RTNET ("_rtnet") KSYM_RTHASHSIZE ("_rthashsize") Kernel symbol names used to locate the kernel forwarding table when KRT_RTREAD_KMEM is used. KSYM_RADIXHEAD ("_radix_node_head") Kernel symbol name used to locate the kernel forwarding table when KRT_RTREAD_RADIX is used. KSYM_IFNET ("_ifnet") Kernel symbol name used to locate the interface list when KERT_LLADDR_KMEM is used. Signal types: SIGTYPE (void) SIGRETURN (return 0) The type and expected return value of signal handlers. Older systems require: SIGTYPE=int SIGRETURN=return BSD_SIGNALS For systems using BSD signals SYSV_SIGNALS For systems using System V signals POSIX_SIGNALS For systems using POSIX signals HAVE_WAITPID For systems that have POSIX compatabile waitpid(). Other stuff: USE_MMAP Use mmap() to obtain pages of memory instead of sbrk(). Currently only works for use on systems which have MAP_ANON (BSD4.4 derivatives) ENVIRON (environ) Set to the name of the environement pointer variable set by exec, normally `environ' or `_environ'. NO_STAT Define this for systems that do not have the stat() system call. NO_FORK For systems where it is not possible or desirable to use fork when making a status dump. NO_IP_MULTICAST For use on systems where the IP multicast defines are present, but support does not exist in the kernel. HAVE_GETSYSTIMES For systems where the getsystems() system call should be used instead of gettimeofday(). INCLUDE_UNISTD Systems where we should include /usr/include/unistd.h. INCLUDE_STRING Systems where we should include <string.h> instead of <strings.h>. NO_MBUF_H Systems that do not have <sys/mbuf.h>. NO_STDDEF_H Systems that define __STDC__, but where <stddef.h> is missing, or broken. NO_INCLUDE_TIME Systems where it is not proper to include <time.h> in addition to <sys/time.h>. INCLUDE_FCNTL Systems where we need to include <sys/fcntl.h> when including <sys/file.h>. INCLUDE_TYPES Systems where <sys/param.h> does not include <sys/types.h>. INCLUDE_BSDTYPES Systems where we also need to include <sys/bsdtypes.h>. USE_STREAMIO Systems where we need to use streams ioctls instead of BSD ioctls. INCLUDE_STREAMIO Systems where <sys/stream.h> should be included as well as including <sys/stropts.h> instead of <sys/ioctl.h>. USE_SYSCTL Systems (BSD 4.4) where sysctl performs the same function as getkerninfo. INCLUDE_SOCKIO Systems using streamio where we need to include <sys/sockio.h>. INCLUDE_SIOCTL Systems using streamio where we need to include <sys/sioctl.h>. ICMP_NOIP_HEADER Systems where ICMP packets are received without IP headers. LINGER_NO_PARAM Systems where SO_LINGER does not take a parameter. INCLUDE_PATHS Systems that have <paths.h>. NLIST_NOUNDER Systems where kernel variables do not have a leading underscore. USE_SETPGRP Systems that use setpgrp() instead of TIOCNOTTY. NEED_STRERROR For systems that do not have the strerror() system call. NEED_INET_ATON For systems that do not have the inet_aton() system call. NEED_SIGNAME For systems that do not have the external definitions of signal names, sys_signame. SYS_SIGNAME () Definition for SYS_SIGNAME if not defined in a system header file. Usually SYS_SIGNAME="char *sys_signame[]", `extern' is assumed. Do not use if NEED_SIGNAME is defined. NEED_FLOCK For systems that have lockf() but not flock(), defines an emulation of flock() using lockf(). NEED_SETVBUF For systems that do not have setvbuf(). Defines an emulation that uses setlinebuf(). NEED_HERRS If h_nerr or h_errlist are undefined at link time. NEED_HERRNO If h_errno is undefined at link time. NEED_FFS If ffs() is undefined at link time. NEED_SYSCONF If sysconf() is undefined at link time. NEED_UNSETENV If unsetenv() is undefined at link time. NEED_STRCASECMP If strcasecmp() or strncasecmp() are undefined at link time. MUST_FFLUSH For systems where setlinebuf() does not work properly and an fflush is required after every line written to the trace file. Most notably Ultrix. FLAT_FS For systems that have no heirarchy to their file systems, such as when gated is imbedded into a rotuer. Prevents attempts to prepend a path to all file names. VOID_T (void *) Definition of a void pointer, for systems that do not support a void pointer, use caddr_t. GID_T The type of the array elements in the second parameter to the getgroups() system call. UNDEF_RCVBUF Systems that incorrectly define RCVBUF. HAVE_DIRENT For systems that have <dirent.h>. BYTE_ORDER () If your system has little endian byte order (x86, VAX, PMAX, ...) and your system does not define this, use BYTE_ORDER=LITTLE_ENDIAN. RTBIT_SIZE (1) This roughly controls the number of targets you can send routing updates to. If you get an assertion failure in rtbit_alloc, increase this number for another 32 targets. SOCK_BUF_PAGES (1) This controls the size of the buffer for temporary sockaddr's. If you are supporting many interfaces and are experiencing assertion failures in sockishos t, you most likely need to increase this value. A situation where raising this value was required was for an Internet access provider who was supporting greater than 64 dial connections on a BSDI platform. The actual size of the buffer for temporary sockaddr's will be SOCK_BUF_PAGES multipled by your respective system's page size. For example, use the config statement "options SOCK_BUF_PAGES=2" to increase the buffer size to 2 pages. LOCAL_VERSION () Used to specify local version information to be contained in the version information string. It is recommended that the value be enclosed in parens, i.e. (ANS 1.2). Double quotes should not be used. NLIST_T (struct nlist) The name of the structure used for nlist calls. NLIST(fd,nl,sz) (nlist(fd,nl)) The routine to read the kernel namelist. GA2S (((u_long)(void_t)(x))) A macro used for converting from a pointer to a scalar. GS2A (((void_t)(u_long)(x))) A macro used for converting from a scalar to a pointer. Word sizes: U_INT8 (unsigned char) S_INT8 (char) U_INT16 (unsigned short) S_INT16 (short) U_INT32 (unsigned int) S_INT32 (int) U_INT64 () S_INT64 () These defines can be changed to adapt gated to the word sizes of different hardware. Other useful info: Some of these might be useful to support routines not provided on some systems: bcmp(b1,b2,l)="memcmp(b1, b2, (size_t) l)" bcopy(s,d,l)="memcpy(d, s, (size_t) l)" bzero(s,l)="memset(s, 0, (size_t) l)" getpagesize()=BUFSIZ getwd(path)="getcwd(path, sizeof (path))" index=strchr rindex=strrchr sigmask(m)="(1 << ((m)-1))" tzset() tzsetwall()={unsetenv("TZ");tzset();} tzsetwall()={(void)putenv("TZ=/etc/TIMEZONE");tzset();} ftruncate(f,o)=truncate(path_pid,o) Protocol support: protocols () Protocols to compile in. The possible options are: bgp To include support for BGP (RFC-1164) egp To include support for EGP (RFC-904) icmp To include support for listening to ICMP redirects. This is required on all system except BSD 4.3 Reno, where redirects are learned from the routing socket. ospf To include support for OSPF (RFC-1131) rip To include support for RIP (RFC-1058) isode_snmp To include support for SNMP via with ISODE's SMUX interface wrd (Only Available on the gated-unicast, gated-multicast, and gated-ipv6 libraries.) To include Weighted Route Damping (currently for only BGP). You'll probably have to add "-lm" to ldflags tooISODE SMUX support:The following options should be specified to use the ISODE SMUXsupport for SNMP. To compile with SMUX support you must add`isode_snmp' to the `protocols' line. You must also point the loaderat the ISODE general and snmp libraries. This is normally done byadding `-lisnmp -lisode' to the `ldflags' line. isode_snmpi (snmpi) Where to find the ISODE snmpi program. This program is used to compile the gated MIB definitions. isode_mosy (mosy) Where to find the ISODE mosy program. This program is used to compile the gated MIB defintions on some systems. isode_snmp_include (/usr/include/isode/snmp) Where the ISODE include files are installed on your system. These are used to find the .h files while compiling. isode_snmp_defs_c (@${ISODE_SNMPI} -f gated-mib.defs compile -s gated-mib) The command to use to convert the MIB .defs files into a .c program for inclusion in the gated binary. On AIX 3.2 you'll need "mosy -s -c gated-mib.c ${MYS}". isode_snmp_c_o (@${CC} -c ${CFLAGS} ${IFLAGS} gated-mib.c) The command to use to compile the .c code generated from the .defs file. This is different from the normall .c.o line because many of the gcc warnings used on the rest of the code can not be use with this code. #Local variables:#eval: (setq fill-column 72)#end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -