]> git.proxmox.com Git - mirror_frr.git/commitdiff
Merge pull request #882 from opensourcerouting/safi-cleanup
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 1 Aug 2017 18:21:26 +0000 (14:21 -0400)
committerGitHub <noreply@github.com>
Tue, 1 Aug 2017 18:21:26 +0000 (14:21 -0400)
lib/bgpd: cleanup SAFI values

16 files changed:
bgpd/bgp_attr.c
bgpd/bgp_fsm.c
bgpd/bgp_open.c
bgpd/bgp_open.h
bgpd/bgp_packet.c
bgpd/bgp_route.c
bgpd/bgp_updgrp_packet.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h
bgpd/rfapi/rfapi_import.c
lib/prefix.c
lib/zebra.h
tests/bgpd/test_capability.c
tests/bgpd/test_capability.py
tests/bgpd/test_mp_attr.c

index ef32b9cf923c0b32190bd72dbf7c53920304f459..ca9a50db55b9cf39316a44944adcf48abd7246be 100644 (file)
@@ -1677,7 +1677,8 @@ int bgp_mp_reach_parse(struct bgp_attr_parser_args *args,
 {
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t pkt_safi, safi;
+       iana_safi_t pkt_safi;
+       safi_t safi;
        bgp_size_t nlri_len;
        size_t start;
        struct stream *s;
@@ -1826,7 +1827,8 @@ int bgp_mp_unreach_parse(struct bgp_attr_parser_args *args,
        struct stream *s;
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t pkt_safi, safi;
+       iana_safi_t pkt_safi;
+       safi_t safi;
        u_int16_t withdraw_len;
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
@@ -2593,7 +2595,7 @@ size_t bgp_packet_mpattr_start(struct stream *s, struct peer *peer, afi_t afi,
 {
        size_t sizep;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
        afi_t nh_afi;
 
        /* Set extended bit always to encode the attribute length as 2 bytes */
@@ -3280,7 +3282,7 @@ size_t bgp_packet_mpunreach_start(struct stream *s, afi_t afi, safi_t safi)
 {
        unsigned long attrlen_pnt;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        /* Set extended bit always to encode the attribute length as 2 bytes */
        stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_EXTLEN);
index cf1cb1868966cecdb779c667a33040c2d0884d69..b609abac6994ab47fdf4b674edf29fd45e261350 100644 (file)
@@ -488,7 +488,7 @@ static int bgp_graceful_restart_timer_expire(struct thread *thread)
 
        /* NSF delete stale route */
        for (afi = AFI_IP; afi < AFI_MAX; afi++)
-               for (safi = SAFI_UNICAST; safi < SAFI_RESERVED_4; safi++)
+               for (safi = SAFI_UNICAST; safi <= SAFI_MPLS_VPN; safi++)
                        if (peer->nsf[afi][safi])
                                bgp_clear_stale_route(peer, afi, safi);
 
@@ -521,7 +521,7 @@ static int bgp_graceful_stale_timer_expire(struct thread *thread)
 
        /* NSF delete stale route */
        for (afi = AFI_IP; afi < AFI_MAX; afi++)
-               for (safi = SAFI_UNICAST; safi < SAFI_RESERVED_4; safi++)
+               for (safi = SAFI_UNICAST; safi <= SAFI_MPLS_VPN; safi++)
                        if (peer->nsf[afi][safi])
                                bgp_clear_stale_route(peer, afi, safi);
 
@@ -1022,7 +1022,7 @@ int bgp_stop(struct peer *peer)
 
                        for (afi = AFI_IP; afi < AFI_MAX; afi++)
                                for (safi = SAFI_UNICAST;
-                                    safi < SAFI_RESERVED_4; safi++)
+                                    safi <= SAFI_MPLS_VPN; safi++)
                                        peer->nsf[afi][safi] = 0;
                }
 
@@ -1425,7 +1425,7 @@ static int bgp_establish(struct peer *peer)
        /* graceful restart */
        UNSET_FLAG(peer->sflags, PEER_STATUS_NSF_WAIT);
        for (afi = AFI_IP; afi < AFI_MAX; afi++)
-               for (safi = SAFI_UNICAST; safi < SAFI_RESERVED_4; safi++) {
+               for (safi = SAFI_UNICAST; safi <= SAFI_MPLS_VPN; safi++) {
                        if (peer->afc_nego[afi][safi]
                            && CHECK_FLAG(peer->cap, PEER_CAP_RESTART_ADV)
                            && CHECK_FLAG(peer->af_cap[afi][safi],
index b18a4b7c46e6237bc63c2349dc5c0191066861ee..2c988f86cc36556ccfdaba2893bf354d45373c1b 100644 (file)
@@ -298,7 +298,8 @@ static int bgp_capability_orf_entry(struct peer *peer,
        u_char num;
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t pkt_safi, safi;
+       iana_safi_t pkt_safi;
+       safi_t safi;
        u_char type;
        u_char mode;
        u_int16_t sm_cap = 0; /* capability send-mode receive */
@@ -466,7 +467,7 @@ static int bgp_capability_restart(struct peer *peer,
                afi_t afi;
                safi_t safi;
                iana_afi_t pkt_afi = stream_getw(s);
-               safi_t pkt_safi = stream_getc(s);
+               iana_safi_t pkt_safi = stream_getc(s);
                u_char flag = stream_getc(s);
 
                /* Convert AFI, SAFI to internal values, check. */
@@ -543,7 +544,7 @@ static int bgp_capability_addpath(struct peer *peer,
                afi_t afi;
                safi_t safi;
                iana_afi_t pkt_afi = stream_getw(s);
-               safi_t pkt_safi = stream_getc(s);
+               iana_safi_t pkt_safi = stream_getc(s);
                u_char send_receive = stream_getc(s);
 
                if (bgp_debug_neighbor_events(peer))
@@ -600,7 +601,8 @@ static int bgp_capability_enhe(struct peer *peer, struct capability_header *hdr)
        while (stream_get_getp(s) + 6 <= end) {
                iana_afi_t pkt_afi = stream_getw(s);
                afi_t afi;
-               safi_t safi, pkt_safi = stream_getw(s);
+               iana_safi_t pkt_safi = stream_getw(s);
+               safi_t safi;
                iana_afi_t pkt_nh_afi = stream_getw(s);
                afi_t nh_afi;
 
@@ -1199,7 +1201,7 @@ static void bgp_open_capability_orf(struct stream *s, struct peer *peer,
        unsigned long numberp;
        int number_of_orfs = 0;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        /* Convert AFI, SAFI to values for packet. */
        bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi, &pkt_safi);
@@ -1264,7 +1266,8 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
        unsigned long cp, capp, rcapp;
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t safi, pkt_safi;
+       safi_t safi;
+       iana_safi_t pkt_safi;
        as_t local_as;
        u_int32_t restart_time;
        u_char afi_safi_count = 0;
index cbd32116b4a40e714fe716f066826fcd0fda3e9e..83b79a589a2aaa7418eaafc99c373a0bbc88ff54 100644 (file)
@@ -29,9 +29,9 @@ struct capability_header {
 
 /* Generic MP capability data */
 struct capability_mp_data {
-       iana_afi_t afi;
+       uint16_t afi; /* iana_afi_t */
        u_char reserved;
-       safi_t safi;
+       uint8_t safi; /* iana_safi_t */
 };
 
 struct capability_as4 {
index e92f2d69773efa41741e83112e34b9cac3b00e1f..003fbaff632913bdc0d5851da1503277a03e11c6 100644 (file)
@@ -142,7 +142,7 @@ static struct stream *bgp_update_packet_eor(struct peer *peer, afi_t afi,
 {
        struct stream *s;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        if (DISABLE_BGP_ANNOUNCE)
                return NULL;
@@ -671,7 +671,7 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
        struct bgp_filter *filter;
        int orf_refresh = 0;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        if (DISABLE_BGP_ANNOUNCE)
                return;
@@ -761,7 +761,7 @@ void bgp_capability_send(struct peer *peer, afi_t afi, safi_t safi,
 {
        struct stream *s;
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        /* Convert AFI, SAFI to values for packet. */
        bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi, &pkt_safi);
@@ -1338,8 +1338,9 @@ int bgp_nlri_parse(struct peer *peer, struct attr *attr,
                                          packet);
        case SAFI_EVPN:
                return bgp_nlri_parse_evpn(peer, attr, packet, mp_withdraw);
+       default:
+               return -1;
        }
-       return -1;
 }
 
 /* Parse BGP Update packet and make attribute object. */
@@ -1697,7 +1698,8 @@ static void bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
 {
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t pkt_safi, safi;
+       iana_safi_t pkt_safi;
+       safi_t safi;
        struct stream *s;
        struct peer_af *paf;
        struct update_group *updgrp;
@@ -1965,7 +1967,8 @@ static int bgp_capability_msg_parse(struct peer *peer, u_char *pnt,
        u_char action;
        iana_afi_t pkt_afi;
        afi_t afi;
-       safi_t pkt_safi, safi;
+       iana_safi_t pkt_safi;
+       safi_t safi;
 
        end = pnt + length;
 
index b554aeb32b5c2b83d76d141c6ba189946629d57f..8c2278339ffb05216949e36b5bed0e958ab78d1e 100644 (file)
@@ -2288,7 +2288,7 @@ int bgp_maximum_prefix_overflow(struct peer *peer, afi_t afi, safi_t safi,
                                int always)
 {
        iana_afi_t pkt_afi;
-       safi_t pkt_safi;
+       iana_safi_t pkt_safi;
 
        if (!CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX))
                return 0;
index 1a23a36e91a2bec06557ac1903f27226aa0606cb..692db32fa41463d9ce7989d5d7d7967bdbcdab41 100644 (file)
@@ -845,7 +845,7 @@ struct bpacket *subgroup_update_packet(struct update_subgroup *subgrp)
                                           send_attr_str);
                                if (!stream_empty(snlri)) {
                                        iana_afi_t pkt_afi;
-                                       safi_t pkt_safi;
+                                       iana_safi_t pkt_safi;
 
                                        pkt_afi = afi_int2iana(afi);
                                        pkt_safi = safi_int2iana(safi);
@@ -989,7 +989,7 @@ struct bpacket *subgroup_withdraw_packet(struct update_subgroup *subgrp)
                        /* If first time, format the MP_UNREACH header */
                        if (first_time) {
                                iana_afi_t pkt_afi;
-                               safi_t pkt_safi;
+                               iana_safi_t pkt_safi;
 
                                pkt_afi = afi_int2iana(afi);
                                pkt_safi = safi_int2iana(safi);
index 65a1473f75ef4b4e3e7d78213ab96f7a477b027b..0220a7e55de21281169cc73889014e0adcce3c4b 100644 (file)
@@ -78,6 +78,10 @@ static enum node_type bgp_node_type(afi_t afi, safi_t safi)
                case SAFI_MPLS_VPN:
                        return BGP_VPNV4_NODE;
                        break;
+               default:
+                       /* not expected */
+                       return BGP_IPV4_NODE;
+                       break;
                }
                break;
        case AFI_IP6:
@@ -94,6 +98,10 @@ static enum node_type bgp_node_type(afi_t afi, safi_t safi)
                case SAFI_MPLS_VPN:
                        return BGP_VPNV6_NODE;
                        break;
+               default:
+                       /* not expected */
+                       return BGP_IPV4_NODE;
+                       break;
                }
                break;
        case AFI_L2VPN:
@@ -7079,12 +7087,6 @@ static void bgp_show_summary_afi_safi(struct vty *vty, struct bgp *bgp, int afi,
                                                 json);
                        }
                        safi++;
-                       if (safi == SAFI_RESERVED_4
-                           || safi
-                                      == SAFI_RESERVED_5) /* handle special
-                                                             cases to match
-                                                             zebra.h */
-                               safi++;
                        if (!safi_wildcard)
                                safi = SAFI_MAX;
                }
index b4e000f8bbede4da2151cc26d399bb2e482b55c3..2fa10dc6cd5ea981f03ca6fcacc982d71ace0acc 100644 (file)
@@ -611,8 +611,8 @@ int bgp_listen_limit_unset(struct bgp *bgp)
        return 0;
 }
 
-int bgp_map_afi_safi_iana2int(iana_afi_t pkt_afi, safi_t pkt_safi, afi_t *afi,
-                             safi_t *safi)
+int bgp_map_afi_safi_iana2int(iana_afi_t pkt_afi, iana_safi_t pkt_safi,
+                             afi_t *afi, safi_t *safi)
 {
        /* Map from IANA values to internal values, return error if
         * values are unrecognized.
@@ -626,7 +626,7 @@ int bgp_map_afi_safi_iana2int(iana_afi_t pkt_afi, safi_t pkt_safi, afi_t *afi,
 }
 
 int bgp_map_afi_safi_int2iana(afi_t afi, safi_t safi, iana_afi_t *pkt_afi,
-                             safi_t *pkt_safi)
+                             iana_safi_t *pkt_safi)
 {
        /* Map from internal values to IANA values, return error if
         * internal values are bad (unexpected).
@@ -1842,7 +1842,7 @@ static void peer_nsf_stop(struct peer *peer)
        UNSET_FLAG(peer->sflags, PEER_STATUS_NSF_MODE);
 
        for (afi = AFI_IP; afi < AFI_MAX; afi++)
-               for (safi = SAFI_UNICAST; safi < SAFI_RESERVED_4; safi++)
+               for (safi = SAFI_UNICAST; safi <= SAFI_MPLS_VPN; safi++)
                        peer->nsf[afi][safi] = 0;
 
        if (peer->t_gr_restart) {
index ff5e709dae78dd60a53bf6aa1f18326cd91f0d4c..208a4e4b4e5964a17bc4dfe7a6829de252f81e5a 100644 (file)
@@ -923,10 +923,10 @@ DECLARE_QOBJ_TYPE(peer)
    stream. */
 struct bgp_nlri {
        /* AFI.  */
-       afi_t afi;
+       uint16_t afi; /* iana_afi_t */
 
        /* SAFI.  */
-       safi_t safi;
+       uint8_t safi; /* iana_safi_t */
 
        /* Pointer to NLRI byte stream.  */
        u_char *nlri;
@@ -1382,10 +1382,10 @@ extern void bgp_route_map_terminate(void);
 
 extern int peer_cmp(struct peer *p1, struct peer *p2);
 
-extern int bgp_map_afi_safi_iana2int(iana_afi_t pkt_afi, safi_t pkt_safi,
+extern int bgp_map_afi_safi_iana2int(iana_afi_t pkt_afi, iana_safi_t pkt_safi,
                                     afi_t *afi, safi_t *safi);
 extern int bgp_map_afi_safi_int2iana(afi_t afi, safi_t safi,
-                                    iana_afi_t *pkt_afi, safi_t *pkt_safi);
+                                    iana_afi_t *pkt_afi, iana_safi_t *pkt_safi);
 
 extern struct peer_af *peer_af_create(struct peer *, afi_t, safi_t);
 extern struct peer_af *peer_af_find(struct peer *, afi_t, safi_t);
index 0bbbe12ccef3c4e302d674b29e030c75435e02ca..61739d38ab79d6787645ea691e9069639b6b2574 100644 (file)
@@ -3872,6 +3872,10 @@ rfapiBgpInfoFilteredImportFunction(safi_t safi)
 
        case SAFI_ENCAP:
                return rfapiBgpInfoFilteredImportEncap;
+
+       default:
+               /* not expected */
+               return NULL;
        }
        zlog_err("%s: bad safi %d", __func__, safi);
        return NULL;
index 88b13cd99f209c506ee969cd67c02610b214f09f..0ba0025c6826e728687e50e760ae3bbb3d30bf17 100644 (file)
@@ -507,8 +507,9 @@ const char *safi2str(safi_t safi)
                return "evpn";
        case SAFI_LABELED_UNICAST:
                return "labeled-unicast";
+       default:
+               return "unknown";
        }
-       return NULL;
 }
 
 /* If n includes p prefix then return 1 else return 0. */
index 8e1c4db8043a49cc446da7fc9610ce19836eca77..c31fe0809cfdf412fcacfd146afa294ad7ffd947 100644 (file)
@@ -416,22 +416,15 @@ extern const char *zserv_command_string(unsigned int command);
 typedef enum { AFI_IP = 1, AFI_IP6 = 2, AFI_L2VPN = 3, AFI_MAX = 4 } afi_t;
 
 /* Subsequent Address Family Identifier. */
-#define SAFI_UNICAST              1
-#define SAFI_MULTICAST            2
-#define SAFI_MPLS_VPN             3
-#define SAFI_RESERVED_4           4
-#define SAFI_ENCAP               5
-#define SAFI_RESERVED_5           5
-#define SAFI_EVPN                 6
-#define SAFI_LABELED_UNICAST      7
-#define SAFI_MAX                  8
-
-#define IANA_SAFI_RESERVED            0
-#define IANA_SAFI_UNICAST             1
-#define IANA_SAFI_MULTICAST           2
-#define IANA_SAFI_LABELED_UNICAST     4
-#define IANA_SAFI_ENCAP               7
-#define IANA_SAFI_MPLS_VPN            128
+typedef enum {
+       SAFI_UNICAST = 1,
+       SAFI_MULTICAST = 2,
+       SAFI_MPLS_VPN = 3,
+       SAFI_ENCAP = 4,
+       SAFI_EVPN = 5,
+       SAFI_LABELED_UNICAST = 6,
+       SAFI_MAX = 7
+} safi_t;
 
 /*
  * The above AFI and SAFI definitions are for internal use. The protocol
@@ -451,12 +444,15 @@ typedef enum {
        IANA_AFI_IP6MR = 129
 } iana_afi_t;
 
-#define IANA_SAFI_RESERVED            0
-#define IANA_SAFI_UNICAST             1
-#define IANA_SAFI_MULTICAST           2
-#define IANA_SAFI_ENCAP               7
-#define IANA_SAFI_EVPN                70
-#define IANA_SAFI_MPLS_VPN            128
+typedef enum {
+       IANA_SAFI_RESERVED = 0,
+       IANA_SAFI_UNICAST = 1,
+       IANA_SAFI_MULTICAST = 2,
+       IANA_SAFI_LABELED_UNICAST = 4,
+       IANA_SAFI_ENCAP = 7,
+       IANA_SAFI_EVPN = 70,
+       IANA_SAFI_MPLS_VPN = 128
+} iana_safi_t;
 
 /* Default Administrative Distance of each protocol. */
 #define ZEBRA_KERNEL_DISTANCE_DEFAULT      0
@@ -477,8 +473,6 @@ typedef enum {
 #define UNSET_FLAG(V,F)      (V) &= ~(F)
 #define RESET_FLAG(V)        (V) = 0
 
-typedef u_int8_t safi_t;
-
 /* Zebra types. Used in Zserv message header. */
 typedef u_int16_t zebra_size_t;
 typedef u_int16_t zebra_command_t;
@@ -492,58 +486,70 @@ typedef uint32_t route_tag_t;
 
 static inline afi_t afi_iana2int(iana_afi_t afi)
 {
-       if (afi == IANA_AFI_IPV4)
+       switch (afi) {
+       case IANA_AFI_IPV4:
                return AFI_IP;
-       if (afi == IANA_AFI_IPV6)
+       case IANA_AFI_IPV6:
                return AFI_IP6;
-       if (afi == IANA_AFI_L2VPN)
+       case IANA_AFI_L2VPN:
                return AFI_L2VPN;
-       return AFI_MAX;
+       default:
+               return AFI_MAX;
+       }
 }
 
 static inline iana_afi_t afi_int2iana(afi_t afi)
 {
-       if (afi == AFI_IP)
+       switch (afi) {
+       case AFI_IP:
                return IANA_AFI_IPV4;
-       if (afi == AFI_IP6)
+       case AFI_IP6:
                return IANA_AFI_IPV6;
-       if (afi == AFI_L2VPN)
+       case AFI_L2VPN:
                return IANA_AFI_L2VPN;
-       return IANA_AFI_RESERVED;
+       default:
+               return IANA_AFI_RESERVED;
+       }
 }
 
-static inline safi_t safi_iana2int(safi_t safi)
+static inline safi_t safi_iana2int(iana_safi_t safi)
 {
-       if (safi == IANA_SAFI_UNICAST)
+       switch (safi) {
+       case IANA_SAFI_UNICAST:
                return SAFI_UNICAST;
-       if (safi == IANA_SAFI_MULTICAST)
+       case IANA_SAFI_MULTICAST:
                return SAFI_MULTICAST;
-       if (safi == IANA_SAFI_MPLS_VPN)
+       case IANA_SAFI_MPLS_VPN:
                return SAFI_MPLS_VPN;
-       if (safi == IANA_SAFI_ENCAP)
+       case IANA_SAFI_ENCAP:
                return SAFI_ENCAP;
-       if (safi == IANA_SAFI_EVPN)
+       case IANA_SAFI_EVPN:
                return SAFI_EVPN;
-       if (safi == IANA_SAFI_LABELED_UNICAST)
+       case IANA_SAFI_LABELED_UNICAST:
                return SAFI_LABELED_UNICAST;
-       return SAFI_MAX;
+       default:
+               return SAFI_MAX;
+       }
 }
 
-static inline safi_t safi_int2iana(safi_t safi)
+static inline iana_safi_t safi_int2iana(safi_t safi)
 {
-       if (safi == SAFI_UNICAST)
+       switch (safi) {
+       case SAFI_UNICAST:
                return IANA_SAFI_UNICAST;
-       if (safi == SAFI_MULTICAST)
+       case SAFI_MULTICAST:
                return IANA_SAFI_MULTICAST;
-       if (safi == SAFI_MPLS_VPN)
+       case SAFI_MPLS_VPN:
                return IANA_SAFI_MPLS_VPN;
-       if (safi == SAFI_ENCAP)
+       case SAFI_ENCAP:
                return IANA_SAFI_ENCAP;
-       if (safi == SAFI_EVPN)
+       case SAFI_EVPN:
                return IANA_SAFI_EVPN;
-       if (safi == SAFI_LABELED_UNICAST)
+       case SAFI_LABELED_UNICAST:
                return IANA_SAFI_LABELED_UNICAST;
-       return IANA_SAFI_RESERVED;
+       default:
+               return IANA_SAFI_RESERVED;
+       }
 }
 
 #endif /* _ZEBRA_H */
index 9ec2b5df19698aa07beb2c2236776723bea8062f..e8700a8b4ac872c033ddcdade6068cb878120429 100644 (file)
@@ -170,7 +170,7 @@ static struct test_segment mp_segments[] = {
        /* 8 */
        {
                "MP6",
-               "MP IP4/MPLS-laveled VPN",
+               "MP IP4/MPLS-labeled VPN",
                {CAPABILITY_CODE_MP, 0x4, 0x0, 0x1, 0x0, 0x80},
                6,
                SHOULD_PARSE,
index 4cb650092b82158b9d19eaf6fc71117848eccdba..872fcb6d122384fa7ad69b6d030ad933c78bec6f 100644 (file)
@@ -8,7 +8,7 @@ TestCapability.okfail("MPv6: MP IPv6/Uni")
 TestCapability.okfail("MP2: MP IP/Multicast")
 TestCapability.okfail("MP3: MP IP6/MPLS-labeled VPN")
 TestCapability.okfail("MP5: MP IP6/MPLS-VPN")
-TestCapability.okfail("MP6: MP IP4/MPLS-laveled VPN")
+TestCapability.okfail("MP6: MP IP4/MPLS-labeled VPN")
 TestCapability.okfail("MP8: MP unknown AFI/SAFI")
 TestCapability.okfail("MP-short: MP IP4/Unicast, length too short (< minimum)")
 TestCapability.okfail("MP-overflow: MP IP4/Unicast, length too long")
index 7c0afa1b92a5849b25c8a81a9347a281359eff4e..30d5fdd6cdbea6e5df0a0066180c6fa03597195d 100644 (file)
@@ -1059,7 +1059,7 @@ static void parse_test(struct peer *peer, struct test_segment *t, int type)
                parse_ret = bgp_mp_unreach_parse(&attr_args, &nlri);
        if (!parse_ret) {
                iana_afi_t pkt_afi;
-               safi_t pkt_safi;
+               iana_safi_t pkt_safi;
 
                /* Convert AFI, SAFI to internal values, check. */
                if (bgp_map_afi_safi_int2iana(nlri.afi, nlri.safi, &pkt_afi,