diff options
Diffstat (limited to 'usr.sbin/mrouted/dvmrp.h')
-rw-r--r-- | usr.sbin/mrouted/dvmrp.h | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/usr.sbin/mrouted/dvmrp.h b/usr.sbin/mrouted/dvmrp.h deleted file mode 100644 index e471800588dc..000000000000 --- a/usr.sbin/mrouted/dvmrp.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * The mrouted program is covered by the license in the accompanying file - * named "LICENSE". Use of the mrouted program represents acceptance of - * the terms and conditions listed in that file. - * - * The mrouted program is COPYRIGHT 1989 by The Board of Trustees of - * Leland Stanford Junior University. - * - * - * $Id: dvmrp.h,v 3.8 1995/11/29 22:36:57 fenner Rel $ - */ - -/* - * A DVMRP message consists of an IP header + an IGMP header + (for some types) - * zero or more bytes of data. - * - * For REPORT messages, the data is route information; the route information - * consists of one or more lists of the following form: - * - * (mask, (origin, metric), (origin, metric), ...) - * - * where: - * - * "mask" is the subnet mask for all the origins in the list. - * It is always THREE bytes long, containing the low-order - * three bytes of the mask (the high-order byte is always - * 0xff and therefore need not be transmitted). - * - * "origin" is the number of a subnet from which multicast datagrams - * may originate. It is from one to four bytes long, - * depending on the value of "mask": - * if all bytes of the mask are zero - * the subnet number is one byte long - * else if the low-order two bytes of the mask are zero - * the subnet number is two bytes long - * else if the lowest-order byte of the mask is zero - * the subnet number is three bytes long, - * else - * the subnet number is four bytes long. - * - * "metric" is a one-byte value consisting of two subfields: - * - the high-order bit is a flag which, when set, indicates - * the last (origin, metric) pair of a list. - * - the low-order seven bits contain the routing metric for - * the corresponding origin, relative to the sender of the - * DVMRP report. The metric may have the value of UNREACHABLE - * added to it as a "split horizon" indication (so called - * "poisoned reverse"). - * - * Within a list, the origin subnet numbers must be in ascending order, and - * the lists themselves are in order of increasing mask value. A message may - * not exceed 576 bytes, the default maximum IP reassembly size, including - * the IP and IGMP headers; the route information may be split across more - * than one message if necessary, by terminating a list in one message and - * starting a new list in the next message (repeating the same mask value, - * if necessary). - * - * For NEIGHBORS messages, the data is neighboring-router information - * consisting of one or more lists of the following form: - * - * (local-addr, metric, threshold, ncount, neighbor, neighbor, ...) - * - * where: - * - * "local-addr" is the sending router's address as seen by the neighbors - * in this list; it is always four bytes long. - * "metric" is a one-byte unsigned value, the TTL `cost' of forwarding - * packets to any of the neighbors on this list. - * "threshold" is a one-byte unsigned value, a lower bound on the TTL a - * packet must have to be forwarded to any of the neighbors on - * this list. - * "ncount" is the number of neighbors in this list. - * "neighbor" is the address of a neighboring router, four bytes long. - * - * As with REPORT messages, NEIGHBORS messages should not exceed 576 bytes, - * including the IP and IGMP headers; split longer messages by terminating the - * list in one and continuing in another, repeating the local-addr, etc., if - * necessary. - * - * For NEIGHBORS2 messages, the data is identical to NEIGHBORS except - * there is a flags byte before the neighbor count: - * - * (local-addr, metric, threshold, flags, ncount, neighbor, neighbor, ...) - */ - -/* - * DVMRP message types (carried in the "code" field of an IGMP header) - */ -#define DVMRP_PROBE 1 /* for finding neighbors */ -#define DVMRP_REPORT 2 /* for reporting some or all routes */ -#define DVMRP_ASK_NEIGHBORS 3 /* sent by mapper, asking for a list */ - /* of this router's neighbors. */ -#define DVMRP_NEIGHBORS 4 /* response to such a request */ -#define DVMRP_ASK_NEIGHBORS2 5 /* as above, want new format reply */ -#define DVMRP_NEIGHBORS2 6 -#define DVMRP_PRUNE 7 /* prune message */ -#define DVMRP_GRAFT 8 /* graft message */ -#define DVMRP_GRAFT_ACK 9 /* graft acknowledgement */ -#define DVMRP_INFO_REQUEST 10 /* information request */ -#define DVMRP_INFO_REPLY 11 /* information reply */ - -/* - * 'flags' byte values in DVMRP_NEIGHBORS2 reply. - */ -#define DVMRP_NF_TUNNEL 0x01 /* neighbors reached via tunnel */ -#define DVMRP_NF_SRCRT 0x02 /* tunnel uses IP source routing */ -#define DVMRP_NF_PIM 0x04 /* neighbor is a PIM neighbor */ -#define DVMRP_NF_DOWN 0x10 /* kernel state of interface */ -#define DVMRP_NF_DISABLED 0x20 /* administratively disabled */ -#define DVMRP_NF_QUERIER 0x40 /* I am the subnet's querier */ -#define DVMRP_NF_LEAF 0x80 /* Neighbor reports that it is a leaf */ - -/* - * Request/reply types for info queries/replies - */ -#define DVMRP_INFO_VERSION 1 /* version string */ -#define DVMRP_INFO_NEIGHBORS 2 /* neighbors2 data */ - -/* - * Limit on length of route data - */ -#define MAX_IP_PACKET_LEN 576 -#define MIN_IP_HEADER_LEN 20 -#define MAX_IP_HEADER_LEN 60 -#define MAX_DVMRP_DATA_LEN \ - ( MAX_IP_PACKET_LEN - MAX_IP_HEADER_LEN - IGMP_MINLEN ) - -/* - * Various protocol constants (all times in seconds) - */ - /* address for multicast DVMRP msgs */ -#define INADDR_DVMRP_GROUP (u_int32)0xe0000004 /* 224.0.0.4 */ -/* - * The IGMPv2 <netinet/in.h> defines INADDR_ALLRTRS_GROUP, but earlier - * ones don't, so we define it conditionally here. - */ -#ifndef INADDR_ALLRTRS_GROUP - /* address for multicast mtrace msg */ -#define INADDR_ALLRTRS_GROUP (u_int32)0xe0000002 /* 224.0.0.2 */ -#endif - -#define ROUTE_MAX_REPORT_DELAY 5 /* max delay for reporting changes */ - /* (This is the timer interrupt */ - /* interval; all times must be */ - /* multiples of this value.) */ - -#define ROUTE_REPORT_INTERVAL 60 /* periodic route report interval */ -#define ROUTE_SWITCH_TIME 140 /* time to switch to equivalent gw */ -#define ROUTE_EXPIRE_TIME 200 /* time to mark route invalid */ -#define ROUTE_DISCARD_TIME 340 /* time to garbage collect route */ - -#define LEAF_CONFIRMATION_TIME 200 /* time to consider subnet a leaf */ - -#define NEIGHBOR_PROBE_INTERVAL 10 /* periodic neighbor probe interval */ -#define NEIGHBOR_EXPIRE_TIME 140 /* time to consider neighbor gone */ - -#define GROUP_QUERY_INTERVAL 125 /* periodic group query interval */ -#define GROUP_EXPIRE_TIME 270 /* time to consider group gone */ -#define LEAVE_EXPIRE_TIME 3 /* " " after receiving a leave */ -/* Note: LEAVE_EXPIRE_TIME should ideally be shorter, but the resolution of - * the timer in mrouted doesn't allow us to make it any shorter. */ - -#define UNREACHABLE 32 /* "infinity" metric, must be <= 64 */ -#define DEFAULT_METRIC 1 /* default subnet/tunnel metric */ -#define DEFAULT_THRESHOLD 1 /* default subnet/tunnel threshold */ - -#define MAX_RATE_LIMIT 100000 /* max rate limit */ -#define DEFAULT_PHY_RATE_LIMIT 0 /* default phyint rate limit */ -#define DEFAULT_TUN_RATE_LIMIT 500 /* default tunnel rate limit */ - -#define DEFAULT_CACHE_LIFETIME 300 /* kernel route entry discard time */ -#define GRAFT_TIMEOUT_VAL 5 /* retransmission time for grafts */ - -#define OLD_AGE_THRESHOLD 2 |