]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Convert bgp_attr_parse_ret_t to enum
authorDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 12 Apr 2022 08:40:11 +0000 (11:40 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 12 Apr 2022 19:13:55 +0000 (22:13 +0300)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_attr.c
bgpd/bgp_attr.h
bgpd/bgp_packet.c

index 2f246e61d85cdd9be028dbe07b0aee253764eead..345ab2a90f0eef36708dfbdd487c93b07a2d42bd 100644 (file)
@@ -1243,7 +1243,7 @@ void bgp_attr_flush(struct attr *attr)
  * are partial/optional and hence where the error likely was not
  * introduced by the sending neighbour.
  */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_malformed(struct bgp_attr_parser_args *args, uint8_t subcode,
                   bgp_size_t length)
 {
@@ -1450,7 +1450,8 @@ static bool bgp_attr_flag_invalid(struct bgp_attr_parser_args *args)
 }
 
 /* Get origin attribute of the update message. */
-static bgp_attr_parse_ret_t bgp_attr_origin(struct bgp_attr_parser_args *args)
+static enum bgp_attr_parse_ret
+bgp_attr_origin(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
@@ -1520,8 +1521,8 @@ static int bgp_attr_aspath(struct bgp_attr_parser_args *args)
        return BGP_ATTR_PARSE_PROCEED;
 }
 
-static bgp_attr_parse_ret_t bgp_attr_aspath_check(struct peer *const peer,
-                                                 struct attr *const attr)
+static enum bgp_attr_parse_ret bgp_attr_aspath_check(struct peer *const peer,
+                                                    struct attr *const attr)
 {
        /* These checks were part of bgp_attr_aspath, but with
         * as4 we should to check aspath things when
@@ -1603,8 +1604,8 @@ static int bgp_attr_as4_path(struct bgp_attr_parser_args *args,
 /*
  * Check that the nexthop attribute is valid.
  */
-bgp_attr_parse_ret_t
-bgp_attr_nexthop_valid(struct peer *peer, struct attr *attr)
+enum bgp_attr_parse_ret bgp_attr_nexthop_valid(struct peer *peer,
+                                              struct attr *attr)
 {
        in_addr_t nexthop_h;
 
@@ -1633,7 +1634,8 @@ bgp_attr_nexthop_valid(struct peer *peer, struct attr *attr)
 }
 
 /* Nexthop attribute. */
-static bgp_attr_parse_ret_t bgp_attr_nexthop(struct bgp_attr_parser_args *args)
+static enum bgp_attr_parse_ret
+bgp_attr_nexthop(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
@@ -1655,7 +1657,7 @@ static bgp_attr_parse_ret_t bgp_attr_nexthop(struct bgp_attr_parser_args *args)
 }
 
 /* MED atrribute. */
-static bgp_attr_parse_ret_t bgp_attr_med(struct bgp_attr_parser_args *args)
+static enum bgp_attr_parse_ret bgp_attr_med(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
@@ -1678,7 +1680,7 @@ static bgp_attr_parse_ret_t bgp_attr_med(struct bgp_attr_parser_args *args)
 }
 
 /* Local preference attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_local_pref(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -1790,7 +1792,7 @@ static int bgp_attr_aggregator(struct bgp_attr_parser_args *args)
 }
 
 /* New Aggregator attribute */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_as4_aggregator(struct bgp_attr_parser_args *args,
                        as_t *as4_aggregator_as,
                        struct in_addr *as4_aggregator_addr)
@@ -1834,7 +1836,7 @@ bgp_attr_as4_aggregator(struct bgp_attr_parser_args *args,
 
 /* Munge Aggregator and New-Aggregator, AS_PATH and NEW_AS_PATH.
  */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_munge_as4_attrs(struct peer *const peer, struct attr *const attr,
                         struct aspath *as4_path, as_t as4_aggregator,
                         struct in_addr *as4_aggregator_addr)
@@ -1936,7 +1938,7 @@ bgp_attr_munge_as4_attrs(struct peer *const peer, struct attr *const attr,
 }
 
 /* Community attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_community(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -1969,7 +1971,7 @@ bgp_attr_community(struct bgp_attr_parser_args *args)
 }
 
 /* Originator ID attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_originator_id(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -1997,7 +1999,7 @@ bgp_attr_originator_id(struct bgp_attr_parser_args *args)
 }
 
 /* Cluster list attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_cluster_list(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2268,7 +2270,7 @@ int bgp_mp_unreach_parse(struct bgp_attr_parser_args *args,
 }
 
 /* Large Community attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_large_community(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2300,7 +2302,7 @@ bgp_attr_large_community(struct bgp_attr_parser_args *args)
 }
 
 /* Extended Community attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_ext_communities(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2376,7 +2378,7 @@ bgp_attr_ext_communities(struct bgp_attr_parser_args *args)
 }
 
 /* IPv6 Extended Community attribute. */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_ipv6_ext_communities(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2541,7 +2543,7 @@ static int bgp_attr_encap(uint8_t type, struct peer *peer, /* IN */
 /* SRv6 Service Data Sub-Sub-TLV attribute
  * draft-ietf-bess-srv6-services-07
  */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_srv6_service_data(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2622,7 +2624,7 @@ bgp_attr_srv6_service_data(struct bgp_attr_parser_args *args)
 /* SRv6 Service Sub-TLV attribute
  * draft-ietf-bess-srv6-services-07
  */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_srv6_service(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -2631,7 +2633,7 @@ bgp_attr_srv6_service(struct bgp_attr_parser_args *args)
        uint8_t type, sid_flags;
        uint16_t length, endpoint_behavior;
        size_t headersz = sizeof(type) + sizeof(length);
-       bgp_attr_parse_ret_t err;
+       enum bgp_attr_parse_ret err;
        char buf[BUFSIZ];
 
        if (STREAM_READABLE(peer->curr) < headersz) {
@@ -2717,8 +2719,9 @@ bgp_attr_srv6_service(struct bgp_attr_parser_args *args)
  * Read an individual SID value returning how much data we have read
  * Returns 0 if there was an error that needs to be passed up the stack
  */
-static bgp_attr_parse_ret_t bgp_attr_psid_sub(uint8_t type, uint16_t length,
-                                             struct bgp_attr_parser_args *args)
+static enum bgp_attr_parse_ret
+bgp_attr_psid_sub(uint8_t type, uint16_t length,
+                 struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
@@ -2925,11 +2928,11 @@ static bgp_attr_parse_ret_t bgp_attr_psid_sub(uint8_t type, uint16_t length,
 /* Prefix SID attribute
  * draft-ietf-idr-bgp-prefix-sid-05
  */
-bgp_attr_parse_ret_t bgp_attr_prefix_sid(struct bgp_attr_parser_args *args)
+enum bgp_attr_parse_ret bgp_attr_prefix_sid(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
        struct attr *const attr = args->attr;
-       bgp_attr_parse_ret_t ret;
+       enum bgp_attr_parse_ret ret;
 
        attr->flag |= ATTR_FLAG_BIT(BGP_ATTR_PREFIX_SID);
 
@@ -2988,7 +2991,7 @@ bgp_attr_parse_ret_t bgp_attr_prefix_sid(struct bgp_attr_parser_args *args)
 /* PMSI tunnel attribute (RFC 6514)
  * Basic validation checks done here.
  */
-static bgp_attr_parse_ret_t
+static enum bgp_attr_parse_ret
 bgp_attr_pmsi_tunnel(struct bgp_attr_parser_args *args)
 {
        struct peer *const peer = args->peer;
@@ -3036,7 +3039,8 @@ bgp_attr_pmsi_tunnel(struct bgp_attr_parser_args *args)
 }
 
 /* BGP unknown attribute treatment. */
-static bgp_attr_parse_ret_t bgp_attr_unknown(struct bgp_attr_parser_args *args)
+static enum bgp_attr_parse_ret
+bgp_attr_unknown(struct bgp_attr_parser_args *args)
 {
        bgp_size_t total = args->total;
        struct transit *transit;
@@ -3141,11 +3145,12 @@ static int bgp_attr_check(struct peer *peer, struct attr *attr)
 
 /* Read attribute of update packet.  This function is called from
    bgp_update_receive() in bgp_packet.c.  */
-bgp_attr_parse_ret_t bgp_attr_parse(struct peer *peer, struct attr *attr,
-                                   bgp_size_t size, struct bgp_nlri *mp_update,
-                                   struct bgp_nlri *mp_withdraw)
+enum bgp_attr_parse_ret bgp_attr_parse(struct peer *peer, struct attr *attr,
+                                      bgp_size_t size,
+                                      struct bgp_nlri *mp_update,
+                                      struct bgp_nlri *mp_withdraw)
 {
-       bgp_attr_parse_ret_t ret;
+       enum bgp_attr_parse_ret ret;
        uint8_t flag = 0;
        uint8_t type = 0;
        bgp_size_t length;
index 1f199da1613a73b0bf2b6c63c12d0f94f85311cc..766fcb98c7f38da0c68b09109f67b140db62dd00 100644 (file)
@@ -370,7 +370,7 @@ struct transit {
                 ? bgp_attr_get_cluster((attr))->length                        \
                 : 0)
 
-typedef enum {
+enum bgp_attr_parse_ret {
        BGP_ATTR_PARSE_PROCEED = 0,
        BGP_ATTR_PARSE_ERROR = -1,
        BGP_ATTR_PARSE_WITHDRAW = -2,
@@ -379,16 +379,16 @@ typedef enum {
           */
        BGP_ATTR_PARSE_ERROR_NOTIFYPLS = -3,
        BGP_ATTR_PARSE_EOR = -4,
-} bgp_attr_parse_ret_t;
+};
 
 struct bpacket_attr_vec_arr;
 
 /* Prototypes. */
 extern void bgp_attr_init(void);
 extern void bgp_attr_finish(void);
-extern bgp_attr_parse_ret_t bgp_attr_parse(struct peer *, struct attr *,
-                                          bgp_size_t, struct bgp_nlri *,
-                                          struct bgp_nlri *);
+extern enum bgp_attr_parse_ret bgp_attr_parse(struct peer *, struct attr *,
+                                             bgp_size_t, struct bgp_nlri *,
+                                             struct bgp_nlri *);
 extern struct attr *bgp_attr_intern(struct attr *attr);
 extern void bgp_attr_unintern_sub(struct attr *);
 extern void bgp_attr_unintern(struct attr **);
@@ -432,7 +432,7 @@ extern int bgp_mp_reach_parse(struct bgp_attr_parser_args *args,
                              struct bgp_nlri *);
 extern int bgp_mp_unreach_parse(struct bgp_attr_parser_args *args,
                                struct bgp_nlri *);
-extern bgp_attr_parse_ret_t
+extern enum bgp_attr_parse_ret
 bgp_attr_prefix_sid(struct bgp_attr_parser_args *args);
 
 extern struct bgp_attr_encap_subtlv *
@@ -471,8 +471,8 @@ extern void bgp_packet_mpunreach_prefix(
        bool addpath_capable, uint32_t addpath_tx_id, struct attr *attr);
 extern void bgp_packet_mpunreach_end(struct stream *s, size_t attrlen_pnt);
 
-extern bgp_attr_parse_ret_t bgp_attr_nexthop_valid(struct peer *peer,
-                                                  struct attr *attr);
+extern enum bgp_attr_parse_ret bgp_attr_nexthop_valid(struct peer *peer,
+                                                     struct attr *attr);
 
 static inline int bgp_rmap_nhop_changed(uint32_t out_rmap_flags,
                                        uint32_t in_rmap_flags)
index 8b8fcf58c0889be455214ee1fa167c70e480e641..b0d852ee63a958a889624bfab78f16cfca6d423b 100644 (file)
@@ -1679,7 +1679,7 @@ static int bgp_update_receive(struct peer *peer, bgp_size_t size)
         *
         * Complicates the flow a little though..
         */
-       bgp_attr_parse_ret_t attr_parse_ret = BGP_ATTR_PARSE_PROCEED;
+       enum bgp_attr_parse_ret attr_parse_ret = BGP_ATTR_PARSE_PROCEED;
 /* This define morphs the update case into a withdraw when lower levels
  * have signalled an error condition where this is best.
  */