summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
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