summaryrefslogtreecommitdiffstats
path: root/lib/ipv4.h
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1998-07-10 10:38:29 +0200
committerMartin Mares <mj@ucw.cz>1998-07-10 10:38:29 +0200
commit786d0bb9e7c5db5104e3fd0ff7fdfbd1e19844ea (patch)
treeed0caedabb17318a5d1207097eecbf34c65e8d10 /lib/ipv4.h
parent28a9a189d71ef3b05daa21d60277149edb8e98ad (diff)
downloadbird-786d0bb9e7c5db5104e3fd0ff7fdfbd1e19844ea.tar
bird-786d0bb9e7c5db5104e3fd0ff7fdfbd1e19844ea.zip
Added ipa_class_mask() which guesses netmask for classful addressing.
For pure A/B/C class addresses it just returns the class netmask, for subnets it tries to guess subnet mask. Please make sure the address you pass to this function is really a valid host address (i.e., call ipa_validate() first).
Diffstat (limited to 'lib/ipv4.h')
-rw-r--r--lib/ipv4.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/ipv4.h b/lib/ipv4.h
index e38dce6..a771500 100644
--- a/lib/ipv4.h
+++ b/lib/ipv4.h
@@ -54,8 +54,10 @@ typedef u32 ip_addr;
#define ipa_ntoh(x) x = _MI(ntohl(_I(x)))
#define ipa_classify(x) ipv4_classify(_I(x))
#define ipa_opposite(x) _MI(_I(x) ^ 1)
+#define ipa_class_mask(x) x = _MI(ipv4_class_mask(_I(x)))
int ipv4_classify(u32);
+u32 ipv4_class_mask(u32);
/* FIXME: Is this hash function uniformly distributed over standard routing tables? */
static inline unsigned ipv4_hash(u32 a)