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 /lib/ipv4.h | |
parent | 481f69854a788bd2bea5c6938e038ec6e21c491b (diff) | |
download | bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.tar bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.zip |
Added IP address manipulation macros, interface declarations and logging.
Diffstat (limited to 'lib/ipv4.h')
-rw-r--r-- | lib/ipv4.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/ipv4.h b/lib/ipv4.h new file mode 100644 index 0000000..e5c1e8c --- /dev/null +++ b/lib/ipv4.h @@ -0,0 +1,35 @@ +/* + * 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 _I(x) (x).addr +#define _MI(x) ((struct ip_addr) { x }) + +#define IPA_NONE(_MI(0)) + +#define ipa_equal(x,y) (_I(x) == _I(y)) +#define ipa_and(x,y) _MI(_I(x) & _I(y)) +#define ipa_or(x,y) _MI(_I(x) | _I(y)) +#define ipa_not(x) _MI(~_I(x)) +#define ipa_mkmask(x) _MI(ipv4_mkmask(x)) +#define ipa_mklen(x) ipv4_mklen(_I(x)) + +unsigned ipv4_mklen(u32); +u32 ipv4_mkmask(unsigned); + +/* ??? htonl and ntohl ??? */ + +#endif |