diff options
Diffstat (limited to 'pimd/pim_addr.h')
| -rw-r--r-- | pimd/pim_addr.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/pimd/pim_addr.h b/pimd/pim_addr.h index e422a2e2da..90862520af 100644 --- a/pimd/pim_addr.h +++ b/pimd/pim_addr.h @@ -31,9 +31,13 @@ typedef struct in_addr pim_addr; #define PIM_ADDRSTRLEN INET_ADDRSTRLEN #define PIM_AF AF_INET #define PIM_AFI AFI_IP +#define PIM_IPADDR IPADDR_V4 +#define ipaddr_pim ipaddr_v4 #define PIM_MAX_BITLEN IPV4_MAX_BITLEN #define PIM_AF_NAME "ip" +#define PIM_ADDR_FUNCNAME(name) ipv4_##name + union pimprefixptr { prefixtype(pimprefixptr, struct prefix, p) prefixtype(pimprefixptr, struct prefix_ipv4, p4) @@ -50,9 +54,13 @@ typedef struct in6_addr pim_addr; #define PIM_ADDRSTRLEN INET6_ADDRSTRLEN #define PIM_AF AF_INET6 #define PIM_AFI AFI_IP6 +#define PIM_IPADDR IPADDR_V6 +#define ipaddr_pim ipaddr_v6 #define PIM_MAX_BITLEN IPV6_MAX_BITLEN #define PIM_AF_NAME "ipv6" +#define PIM_ADDR_FUNCNAME(name) ipv6_##name + union pimprefixptr { prefixtype(pimprefixptr, struct prefix, p) prefixtype(pimprefixptr, struct prefix_ipv6, p6) @@ -101,6 +109,21 @@ static inline pim_addr pim_addr_from_prefix(union pimprefixconstptr in) return ret; } +static inline uint8_t pim_addr_scope(const pim_addr addr) +{ + return PIM_ADDR_FUNCNAME(mcast_scope)(&addr); +} + +static inline bool pim_addr_nofwd(const pim_addr addr) +{ + return PIM_ADDR_FUNCNAME(mcast_nofwd)(&addr); +} + +static inline bool pim_addr_ssm(const pim_addr addr) +{ + return PIM_ADDR_FUNCNAME(mcast_ssm)(&addr); +} + /* don't use this struct directly, use the pim_sgaddr typedef */ struct _pim_sgaddr { pim_addr grp; |
