diff options
author | Martin Mares <mj@ucw.cz> | 1998-04-23 16:01:15 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-04-23 16:01:15 +0200 |
commit | c40e05a0dffa33a8724e56121a2b6dcdfa9183e0 (patch) | |
tree | 4c4322c6900ae4788006d72195028ac71ecb11c1 /nest | |
parent | 481f69854a788bd2bea5c6938e038ec6e21c491b (diff) | |
download | bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.tar bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.zip |
Added IP address manipulation macros, interface declarations and logging.
Diffstat (limited to 'nest')
-rw-r--r-- | nest/bird.h | 7 | ||||
-rw-r--r-- | nest/iface.h | 26 | ||||
-rw-r--r-- | nest/ipv4.h | 20 | ||||
-rw-r--r-- | nest/ipv6.h | 21 |
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 |