|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1983 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)protocol.h 5.1 (Berkeley) 6/4/85 ! 7: */ ! 8: ! 9: /* ! 10: * Routing Information Protocol ! 11: * ! 12: * Derived from Xerox NS Routing Information Protocol ! 13: * by changing 32-bit net numbers to sockaddr's and ! 14: * padding stuff to 32-bit boundaries. ! 15: */ ! 16: #define RIPVERSION 1 ! 17: ! 18: struct netinfo { ! 19: struct sockaddr rip_dst; /* destination net/host */ ! 20: int rip_metric; /* cost of route */ ! 21: }; ! 22: ! 23: struct rip { ! 24: u_char rip_cmd; /* request/response */ ! 25: u_char rip_vers; /* protocol version # */ ! 26: u_char rip_res1[2]; /* pad to 32-bit boundary */ ! 27: union { ! 28: struct netinfo ru_nets[1]; /* variable length... */ ! 29: char ru_tracefile[1]; /* ditto ... */ ! 30: } ripun; ! 31: #define rip_nets ripun.ru_nets ! 32: #define rip_tracefile ripun.ru_tracefile ! 33: }; ! 34: ! 35: /* ! 36: * Packet types. ! 37: */ ! 38: #define RIPCMD_REQUEST 1 /* want info */ ! 39: #define RIPCMD_RESPONSE 2 /* responding to request */ ! 40: #define RIPCMD_TRACEON 3 /* turn tracing on */ ! 41: #define RIPCMD_TRACEOFF 4 /* turn it off */ ! 42: ! 43: #define RIPCMD_MAX 5 ! 44: #ifdef RIPCMDS ! 45: char *ripcmds[RIPCMD_MAX] = ! 46: { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" }; ! 47: #endif ! 48: ! 49: #define HOPCNT_INFINITY 16 /* per Xerox NS */ ! 50: #define MAXPACKETSIZE 512 /* max broadcast size */ ! 51: ! 52: /* ! 53: * Timer values used in managing the routing table. ! 54: * Every update forces an entry's timer to be reset. After ! 55: * EXPIRE_TIME without updates, the entry is marked invalid, ! 56: * but held onto until GARBAGE_TIME so that others may ! 57: * see it "be deleted". ! 58: */ ! 59: #define TIMER_RATE 30 /* alarm clocks every 30 seconds */ ! 60: ! 61: #define SUPPLY_INTERVAL 30 /* time to supply tables */ ! 62: ! 63: #define EXPIRE_TIME 180 /* time to mark entry invalid */ ! 64: #define GARBAGE_TIME 240 /* time to garbage collect */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.