diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/prefix.c | 16 | ||||
-rw-r--r-- | lib/prefix.h | 1 | ||||
-rw-r--r-- | lib/zebra.h | 3 |
3 files changed, 19 insertions, 1 deletions
diff --git a/lib/prefix.c b/lib/prefix.c index 936e9fcb..3e4ca167 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -223,6 +223,22 @@ family2afi (int family) return 0; } +const char * +safi2str(safi_t safi) +{ + switch (safi) { + case SAFI_UNICAST: + return "unicast"; + case SAFI_MULTICAST: + return "multicast"; + case SAFI_ENCAP: + return "encap"; + case SAFI_MPLS_VPN: + return "vpn"; + } + return NULL; +} + /* If n includes p prefix then return 1 else return 0. */ int prefix_match (const struct prefix *n, const struct prefix *p) diff --git a/lib/prefix.h b/lib/prefix.h index a517d795..4a317507 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -173,6 +173,7 @@ union prefix46constptr extern int str2family(const char *); extern int afi2family (afi_t); extern afi_t family2afi (int); +extern const char *safi2str(safi_t safi); /* Check bit of the prefix. */ extern unsigned int prefix_bit (const u_char *prefix, const u_char prefixlen); diff --git a/lib/zebra.h b/lib/zebra.h index 5f45a3a3..644729b7 100644 --- a/lib/zebra.h +++ b/lib/zebra.h @@ -489,7 +489,8 @@ typedef enum { #define SAFI_MULTICAST 2 #define SAFI_RESERVED_3 3 #define SAFI_MPLS_VPN 4 -#define SAFI_MAX 5 +#define SAFI_ENCAP 7 /* per IANA */ +#define SAFI_MAX 8 /* Default Administrative Distance of each protocol. */ #define ZEBRA_KERNEL_DISTANCE_DEFAULT 0 |