]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes RIPng compatibility.
authorOndrej Zajicek <santiago@crfreenet.org>
Thu, 15 Mar 2012 11:38:08 +0000 (12:38 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 15 Mar 2012 11:38:08 +0000 (12:38 +0100)
Also probably breaks compatibility with older BIRDs, but RIPng not
really worked here.

Thanks to Goesta Smekal for the original patch.

proto/rip/rip.c
proto/rip/rip.h

index 30d2267e6c662315248695b88fe48c3b6dd649f0..b41c3f8ddd29e3a6d0d5a7c4cbca350b82ea69e1 100644 (file)
@@ -146,7 +146,11 @@ rip_tx( sock *s )
     DBG( "Preparing packet to send: " );
 
     packet->heading.command = RIPCMD_RESPONSE;
+#ifndef IPV6
     packet->heading.version = RIP_V2;
+#else
+    packet->heading.version = RIP_NG;
+#endif
     packet->heading.unused  = 0;
 
     i = !!P_CF->authtype;
@@ -979,7 +983,7 @@ rip_init_config(struct rip_proto_config *c)
 {
   init_list(&c->iface_list);
   c->infinity  = 16;
-  c->port      = 520;
+  c->port      = RIP_PORT;
   c->period    = 30;
   c->garbage_time = 120+180;
   c->timeout_time = 120;
index 5a6e36d8f29c698488e50cb43a95ed23395c10dd..896fab649995b5114545a867e871826582625abd 100644 (file)
 #define EA_RIP_TAG     EA_CODE(EAP_RIP, 0)
 #define EA_RIP_METRIC  EA_CODE(EAP_RIP, 1)
 
-#define PACKET_MAX 25
-#define PACKET_MD5_MAX 18      /* FIXME */
+#define PACKET_MAX     25
+#define PACKET_MD5_MAX 18      /* FIXME */
+
+
+#define RIP_V1         1
+#define RIP_V2         2
+#define RIP_NG         1       /* A new version numbering */
+
+#ifndef IPV6
+#define RIP_PORT       520     /* RIP for IPv4 */
+#else
+#define RIP_PORT       521     /* RIPng */
+#endif
 
 struct rip_connection {
   node n;
@@ -37,8 +48,9 @@ struct rip_packet_heading {           /* 4 bytes */
 #define RIPCMD_TRACEOFF         4       /* turn it off */
 #define RIPCMD_MAX              5
   u8 version;
-#define RIP_V1 1
-#define RIP_V2 2
+#define RIP_V1                 1
+#define RIP_V2                 2
+#define RIP_NG                         1       /* this is verion 1 of RIPng */
   u16 unused;
 };