summaryrefslogtreecommitdiffstats
path: root/nest
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1998-04-23 16:01:15 +0200
committerMartin Mares <mj@ucw.cz>1998-04-23 16:01:15 +0200
commitc40e05a0dffa33a8724e56121a2b6dcdfa9183e0 (patch)
tree4c4322c6900ae4788006d72195028ac71ecb11c1 /nest
parent481f69854a788bd2bea5c6938e038ec6e21c491b (diff)
downloadbird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.tar
bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.zip
Added IP address manipulation macros, interface declarations and logging.
Diffstat (limited to 'nest')
-rw-r--r--nest/bird.h7
-rw-r--r--nest/iface.h26
-rw-r--r--nest/ipv4.h20
-rw-r--r--nest/ipv6.h21
4 files changed, 27 insertions, 47 deletions
diff --git a/nest/bird.h b/nest/bird.h
index e8c3318..062e5fd 100644
--- a/nest/bird.h
+++ b/nest/bird.h
@@ -11,12 +11,7 @@
#include <sysdep/config.h>
#include <lib/birdlib.h>
-
-#ifndef IPV6
-#include <nest/ipv4.h>
-#else
-#include <nest/ipv6.h>
-#endif
+#include <lib/ip.h>
extern u32 router_id; /* Our Router ID */
extern u16 this_as; /* Our Autonomous System Number */
diff --git a/nest/iface.h b/nest/iface.h
index 2d0d757..7b85ece 100644
--- a/nest/iface.h
+++ b/nest/iface.h
@@ -9,4 +9,30 @@
#ifndef _BIRD_IFACE_H_
#define _BIRD_IFACE_H_
+#include <lib/lists.h>
+
+struct iface {
+ node n;
+ char *name;
+ unsigned flags;
+ struct ifa *ifa; /* First address is primary */
+};
+
+#define IF_UP 1
+#define IF_MULTIACCESS 2
+#define IF_UNNUMBERED 4
+#define IF_BROADCAST 8
+#define IF_MULTICAST 16
+#define IF_TUNNEL 32
+
+/* Interface address */
+
+struct ifa {
+ struct ifa *next;
+ ip_addr ip; /* IP address of this host */
+ ip_addr prefix; /* Network prefix */
+ unsigned pxlen; /* Prefix length */
+ ip_addr brd; /* Broadcast address */
+};
+
#endif
diff --git a/nest/ipv4.h b/nest/ipv4.h
deleted file mode 100644
index 7524229..0000000
--- a/nest/ipv4.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * BIRD -- IP Addresses et Cetera for IPv4
- *
- * (c) 1998 Martin Mares <mj@ucw.cz>
- *
- * Can be freely distributed and used under the terms of the GNU GPL.
- */
-
-#ifndef _BIRD_IPV4_H_
-#define _BIRD_IPV4_H_
-
-#include <netinet/in.h>
-
-typedef struct ipv4_addr {
- u32 addr;
-} ip_addr;
-
-#define ipa_equal(x,y) ((x).addr == (y).addr)
-
-#endif
diff --git a/nest/ipv6.h b/nest/ipv6.h
deleted file mode 100644
index 5d5e354..0000000
--- a/nest/ipv6.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * BIRD -- IP Addresses et Cetera for IPv6
- *
- * (c) 1998 Martin Mares <mj@ucw.cz>
- *
- * Can be freely distributed and used under the terms of the GNU GPL.
- */
-
-#ifndef _BIRD_IPV4_H_
-#define _BIRD_IPV4_H_
-
-#include <netinet/in.h>
-#include <string.h>
-
-typedef struct ipv4_addr {
- u32 addr[4];
-} ip_addr;
-
-#define ipa_equal(x,y) (!memcmp(&(x),&(y),sizeof(ip_addr)))
-
-#endif