summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2015-10-05 12:14:50 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2015-10-05 13:18:10 +0200
commit8465dccb06afffed171dc1e224e4eb5f67cc3326 (patch)
tree9e5209b312ba8b7eabd0f5a22aea4a0888cd8c9f /lib
parentc7b99a932cab1873042e356143ab71755920157a (diff)
Major RIP redesign
The new RIP implementation fixes plenty of old bugs and also adds support for many new features: ECMP support, link state support, BFD support, configurable split horizon and more. Most options are now per-interface.
Diffstat (limited to 'lib')
-rw-r--r--lib/ip.c4
-rw-r--r--lib/ip.h7
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/ip.c b/lib/ip.c
index e1bfba49..3dc8919a 100644
--- a/lib/ip.c
+++ b/lib/ip.c
@@ -364,7 +364,9 @@ ip4_class_mask(ip4_addr ad)
{
u32 m, a = _I(ad);
- if (a < 0x80000000)
+ if (a == 0x00000000)
+ m = 0x00000000;
+ else if (a < 0x80000000)
m = 0xff000000;
else if (a < 0xc0000000)
m = 0xffff0000;
diff --git a/lib/ip.h b/lib/ip.h
index 90bb7f8a..9ac5798a 100644
--- a/lib/ip.h
+++ b/lib/ip.h
@@ -15,8 +15,11 @@
#include "lib/unaligned.h"
+#define IP4_ALL_NODES ipa_build4(224, 0, 0, 1)
+#define IP4_ALL_ROUTERS ipa_build4(224, 0, 0, 2)
#define IP4_OSPF_ALL_ROUTERS ipa_build4(224, 0, 0, 5)
#define IP4_OSPF_DES_ROUTERS ipa_build4(224, 0, 0, 6)
+#define IP4_RIP_ROUTERS ipa_build4(224, 0, 0, 9)
#define IP6_ALL_NODES ipa_build6(0xFF020000, 0, 0, 1)
#define IP6_ALL_ROUTERS ipa_build6(0xFF020000, 0, 0, 2)
@@ -32,6 +35,10 @@
#define IP_PREC_INTERNET_CONTROL 0xc0
+#define IP4_HEADER_LENGTH 20
+#define IP6_HEADER_LENGTH 40
+#define UDP_HEADER_LENGTH 8
+
#ifdef IPV6
#define MAX_PREFIX_LENGTH 128