From be862406627da3bd1facea9309b3f32e67422eab Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Tue, 8 Sep 2009 13:45:02 +0200 Subject: Temporary OSPFv3 development commit. Finally, it is working. --- lib/ipv4.h | 6 ++++++ lib/ipv6.h | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'lib') diff --git a/lib/ipv4.h b/lib/ipv4.h index b64d9b2..5c8c390 100644 --- a/lib/ipv4.h +++ b/lib/ipv4.h @@ -54,6 +54,7 @@ typedef u32 ip_addr; #define ipa_hton(x) x = _MI(htonl(_I(x))) #define ipa_ntoh(x) x = _MI(ntohl(_I(x))) #define ipa_classify(x) ipv4_classify(_I(x)) +#define ipa_has_link_scope(x) ipv4_has_link_scope(_I(x)) #define ipa_opposite(x,len) _MI(_I(x) ^ (len == 30 ? 3 : 1)) #define ipa_class_mask(x) _MI(ipv4_class_mask(_I(x))) #define ipa_from_u32(x) _MI(x) @@ -69,6 +70,11 @@ int ipv4_classify(u32); u32 ipv4_class_mask(u32); byte *ipv4_skip_header(byte *, int *); +static inline int ipv4_has_link_scope(u32 a) +{ + return 0; +} + static inline unsigned ipv4_hash(u32 a) { /* Returns a 16-bit value */ diff --git a/lib/ipv6.h b/lib/ipv6.h index 592e57c..53888ff 100644 --- a/lib/ipv6.h +++ b/lib/ipv6.h @@ -60,6 +60,7 @@ typedef struct ipv6_addr { #define ipa_hton(x) ipv6_hton(&(x)) #define ipa_ntoh(x) ipv6_ntoh(&(x)) #define ipa_classify(x) ipv6_classify(&(x)) +#define ipa_has_link_scope(x) ipv6_has_link_scope(&(x)) /* ipa_opposite and ipa_class_mask don't make sense with IPv6 */ /* ipa_from_u32 and ipa_to_u32 replaced by ipa_build */ #define ipa_build(a,b,c,d) _MI(a,b,c,d) @@ -81,6 +82,11 @@ int ipv6_compare(ip_addr, ip_addr); int ipv4_pton_u32(char *, u32 *); void ipv6_absolutize(ip_addr *, ip_addr *); +static inline int ipv6_has_link_scope(ip_addr *a) +{ + return ((a->addr[0] & 0xffc00000) == 0xfe800000); +} + /* * This hash function looks well, but once IPv6 enters * mainstream use, we need to check that it has good -- cgit v1.2.3