diff options
Diffstat (limited to 'src/vnet/ip')
-rw-r--r-- | src/vnet/ip/ip.c | 12 | ||||
-rw-r--r-- | src/vnet/ip/ip.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/vnet/ip/ip.c b/src/vnet/ip/ip.c index b6825c30709..65eb50e9c4a 100644 --- a/src/vnet/ip/ip.c +++ b/src/vnet/ip/ip.c @@ -34,6 +34,18 @@ ip_is_local_host (ip46_address_t * ip46_address, u8 is_ip4) return (ip46_address->as_u64[0] == 0 && ip46_address->as_u64[1] == 1); } +u8 +ip4_is_local_host (ip4_address_t * ip4_address) +{ + return (ip4_address->as_u8[0] == 127); +} + +u8 +ip6_is_local_host (ip6_address_t * ip6_address) +{ + return (ip6_address->as_u64[0] == 0 && ip6_address->as_u64[1] == 1); +} + /** * Checks that an ip is local to the requested fib */ diff --git a/src/vnet/ip/ip.h b/src/vnet/ip/ip.h index 2dfa979e70c..747b4385816 100644 --- a/src/vnet/ip/ip.h +++ b/src/vnet/ip/ip.h @@ -194,6 +194,8 @@ int ip_table_bind (fib_protocol_t fproto, u32 sw_if_index, u8 ip_is_zero (ip46_address_t * ip46_address, u8 is_ip4); u8 ip_is_local_host (ip46_address_t * ip46_address, u8 is_ip4); +u8 ip4_is_local_host (ip4_address_t * ip4_address); +u8 ip6_is_local_host (ip6_address_t * ip6_address); u8 ip_is_local (u32 fib_index, ip46_address_t * ip46_address, u8 is_ip4); u8 ip_interface_has_address (u32 sw_if_index, ip46_address_t * ip, u8 is_ip4); void ip_copy (ip46_address_t * dst, ip46_address_t * src, u8 is_ip4); |