BSD 4_3 release
[unix-history] / usr / src / include / protocols / routed.h
index 0ec87a0..ad7a61c 100644 (file)
@@ -1,7 +1,20 @@
-/*     routed.h        82/05/24        4.2     */
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ *
+ *     @(#)protocol.h  5.1 (Berkeley) 6/4/85
+ */
+
 /*
  * Routing Information Protocol
 /*
  * 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      1
+
 struct netinfo {
        struct  sockaddr rip_dst;       /* destination net/host */
        int     rip_metric;             /* cost of route */
 struct netinfo {
        struct  sockaddr rip_dst;       /* destination net/host */
        int     rip_metric;             /* cost of route */
@@ -9,27 +22,43 @@ struct netinfo {
 
 struct rip {
        u_char  rip_cmd;                /* request/response */
 
 struct rip {
        u_char  rip_cmd;                /* request/response */
-       u_char  rip_res1[3];            /* pad to 32-bit boundary */
-       struct  netinfo rip_nets[1];    /* variable length... */
+       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
 };
  
 };
  
-#define        RIPCMD_REQUEST          0x1     /* want info */
-#define        RIPCMD_RESPONSE         0x2     /* responding to request */
+/*
+ * 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 RIPCMDS
+char *ripcmds[RIPCMD_MAX] =
+  { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" };
+#endif
 
 
-#define IPPORT_ROUTESERVER     520     /* well-known port */
 #define        HOPCNT_INFINITY         16      /* per Xerox NS */
 #define        HOPCNT_INFINITY         16      /* per Xerox NS */
-#define        MAXPACKETSIZE           1024    /* max broadcast size */
+#define        MAXPACKETSIZE           512     /* max broadcast size */
 
 /*
 
 /*
- * Timer values used in managing the routing table "cache".
+ * Timer values used in managing the routing table.
  * Every update 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
  * Every update 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".  If there's a reason to look for network
- * interface transitions do so every CHECK_INTERVAL seconds.
+ * see it "be deleted".
  */
 #define        TIMER_RATE              30      /* alarm clocks every 30 seconds */
  */
 #define        TIMER_RATE              30      /* alarm clocks every 30 seconds */
-#define        GARBAGE_TIME            210     /* time to garbage collect */
-#define        EXPIRE_TIME             180     /* time to mark entry invalid */
+
 #define        SUPPLY_INTERVAL         30      /* time to supply tables */
 #define        SUPPLY_INTERVAL         30      /* time to supply tables */
-#define        CHECK_INTERVAL          300     /* time to check for new interfaces */
+
+#define        EXPIRE_TIME             180     /* time to mark entry invalid */
+#define        GARBAGE_TIME            240     /* time to garbage collect */