diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2012-03-15 12:38:08 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2012-03-15 12:38:08 +0100 |
commit | e2bf812f3dc84981eac045b617261987c25b5e90 (patch) | |
tree | de7c5849aa5c18174eae79a2e9b394ce540cf896 | |
parent | f761503760fba2d4124cc3352f5260c31fac526d (diff) |
Fixes RIPng compatibility.
Also probably breaks compatibility with older BIRDs, but RIPng not
really worked here.
Thanks to Goesta Smekal for the original patch.
-rw-r--r-- | proto/rip/rip.c | 6 | ||||
-rw-r--r-- | proto/rip/rip.h | 20 |
2 files changed, 21 insertions, 5 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c index 30d2267e..b41c3f8d 100644 --- a/proto/rip/rip.c +++ b/proto/rip/rip.c @@ -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; diff --git a/proto/rip/rip.h b/proto/rip/rip.h index 5a6e36d8..896fab64 100644 --- a/proto/rip/rip.h +++ b/proto/rip/rip.h @@ -11,8 +11,19 @@ #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; }; |