diff options
| author | Lakshman Krishnamoorthy <lkrishnamoor@vmware.com> | 2019-06-03 15:36:02 -0700 | 
|---|---|---|
| committer | Lakshman Krishnamoorthy <lkrishnamoor@vmware.com> | 2019-06-03 15:43:02 -0700 | 
| commit | 2789041a46fd0109fa865a64bc1cf4751360f39e (patch) | |
| tree | 9889aa5c920c47d172a4f6e50f1ff8686be1c8a3 | |
| parent | dd3bbb159f022e43cda6d7ff6e41e62b0253a2a2 (diff) | |
Revert of PR 4078 and PR 4315
Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
| -rw-r--r-- | bgpd/bgp_evpn.c | 2 | ||||
| -rw-r--r-- | bgpd/bgp_route.c | 31 | ||||
| -rw-r--r-- | bgpd/bgp_routemap.c | 353 | ||||
| -rw-r--r-- | bgpd/bgp_rpki.c | 12 | ||||
| -rw-r--r-- | bgpd/bgp_updgrp_adv.c | 2 | ||||
| -rw-r--r-- | eigrpd/eigrp_routemap.c | 54 | ||||
| -rw-r--r-- | isisd/isis_routemap.c | 25 | ||||
| -rw-r--r-- | lib/routemap.c | 50 | ||||
| -rw-r--r-- | lib/routemap.h | 37 | ||||
| -rw-r--r-- | ospf6d/ospf6_asbr.c | 26 | ||||
| -rw-r--r-- | ospfd/ospf_routemap.c | 50 | ||||
| -rw-r--r-- | ospfd/ospf_zebra.c | 2 | ||||
| -rw-r--r-- | ripd/rip_routemap.c | 51 | ||||
| -rw-r--r-- | ripngd/ripng_routemap.c | 41 | ||||
| -rw-r--r-- | zebra/redistribute.c | 4 | ||||
| -rw-r--r-- | zebra/zebra_nhg.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_rnh.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_routemap.c | 79 | 
18 files changed, 409 insertions, 414 deletions
diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index a58fca0cc2..c4b2a606c5 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -4411,7 +4411,7 @@ void bgp_evpn_advertise_type5_routes(struct bgp *bgp_vrf, afi_t afi,  				/* apply the route-map */  				if (bgp_vrf->adv_cmd_rmap[afi][safi].map) { -					route_map_result_t ret; +					int ret = 0;  					ret = route_map_apply(  						bgp_vrf->adv_cmd_rmap[afi][safi] diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 543df2b048..31243c899d 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -1236,12 +1236,10 @@ static int bgp_cluster_filter(struct peer *peer, struct attr *attr)  static int bgp_input_modifier(struct peer *peer, struct prefix *p,  			      struct attr *attr, afi_t afi, safi_t safi, -			      const char *rmap_name, mpls_label_t *label, -			      uint32_t num_labels) +			      const char *rmap_name)  {  	struct bgp_filter *filter; -	struct bgp_path_info rmap_path = { 0 }; -	struct bgp_path_info_extra extra = { 0 }; +	struct bgp_path_info rmap_path;  	route_map_result_t ret;  	struct route_map *rmap = NULL; @@ -1271,11 +1269,6 @@ static int bgp_input_modifier(struct peer *peer, struct prefix *p,  		/* Duplicate current value to new strucutre for modification. */  		rmap_path.peer = peer;  		rmap_path.attr = attr; -		rmap_path.extra = &extra; -		extra.num_labels = num_labels; -		if (label && num_labels && num_labels <= BGP_MAX_LABELS) -			memcpy(extra.label, label, -				num_labels * sizeof(mpls_label_t));  		SET_FLAG(peer->rmap_type, PEER_RMAP_TYPE_IN); @@ -1465,7 +1458,7 @@ int subgroup_announce_check(struct bgp_node *rn, struct bgp_path_info *pi,  	struct bgp *bgp;  	struct attr *piattr;  	char buf[PREFIX_STRLEN]; -	route_map_result_t ret; +	int ret;  	int transparent;  	int reflect;  	afi_t afi; @@ -2533,12 +2526,12 @@ static void bgp_process_main_one(struct bgp *bgp, struct bgp_node *rn,  			/* apply the route-map */  			if (bgp->adv_cmd_rmap[afi][safi].map) { -				route_map_result_t ret; +				int ret = 0;  				ret = route_map_apply(  					bgp->adv_cmd_rmap[afi][safi].map,  					&rn->p, RMAP_BGP, new_select); -				if (ret == RMAP_PERMITMATCH) +				if (ret == RMAP_MATCH)  					bgp_evpn_advertise_type5_route(  						bgp, &rn->p, new_select->attr,  						afi, safi); @@ -3131,8 +3124,8 @@ int bgp_update(struct peer *peer, struct prefix *p, uint32_t addpath_id,  	 * commands, so we need bgp_attr_flush in the error paths, until we  	 * intern  	 * the attr (which takes over the memory references) */ -	if (bgp_input_modifier(peer, p, &new_attr, afi, safi, NULL, -		label, num_labels) == RMAP_DENY) { +	if (bgp_input_modifier(peer, p, &new_attr, afi, safi, NULL) +	    == RMAP_DENY) {  		reason = "route-map;";  		bgp_attr_flush(&new_attr);  		goto filtered; @@ -4564,7 +4557,7 @@ void bgp_static_update(struct bgp *bgp, struct prefix *p,  	struct bgp_path_info rmap_path;  	struct attr attr;  	struct attr *attr_new; -	route_map_result_t ret; +	int ret;  #if ENABLE_BGP_VNC  	int vnc_implicit_withdraw = 0;  #endif @@ -4912,7 +4905,7 @@ static void bgp_static_update_safi(struct bgp *bgp, struct prefix *p,  	if (bgp_static->rmap.name) {  		struct attr attr_tmp = attr;  		struct bgp_path_info rmap_path; -		route_map_result_t ret; +		int ret;  		rmap_path.peer = bgp->peer_self;  		rmap_path.attr = &attr_tmp; @@ -6574,7 +6567,7 @@ void bgp_redistribute_add(struct bgp *bgp, struct prefix *p,  	struct attr attr;  	struct attr *new_attr;  	afi_t afi; -	route_map_result_t ret; +	int ret;  	struct bgp_redist *red;  	/* Make default attribute. */ @@ -9089,7 +9082,7 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi,  				struct route_map *rmap = output_arg;  				struct bgp_path_info path;  				struct attr dummy_attr; -				route_map_result_t ret; +				int ret;  				bgp_attr_dup(&dummy_attr, pi->attr); @@ -11198,7 +11191,7 @@ static void show_adj_route(struct vty *vty, struct peer *peer, afi_t afi,  				/* Filter prefix using route-map */  				ret = bgp_input_modifier(peer, &rn->p, &attr, -						afi, safi, rmap_name, NULL, 0); +							afi, safi, rmap_name);  				if (type == bgp_show_adj_route_filtered &&  					!route_filtered && ret != RMAP_DENY) { diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index 8c3a024295..28a763ed5e 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -60,7 +60,6 @@  #include "bgpd/bgp_evpn_private.h"  #include "bgpd/bgp_evpn_vty.h"  #include "bgpd/bgp_mplsvpn.h" -#include "bgpd/bgp_encap_types.h"  #if ENABLE_BGP_VNC  #include "bgpd/rfapi/bgp_rfapi_cfg.h" @@ -238,9 +237,10 @@ struct bgp_match_peer_compiled {  /* Compares the peer specified in the 'match peer' clause with the peer      received in bgp_path_info->peer. If it is the same, or if the peer structure      received is a peer_group containing it, returns RMAP_MATCH. */ -static enum route_map_match_result_t -route_match_peer(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_match_peer(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	struct bgp_match_peer_compiled *pc;  	union sockunion *su; @@ -333,9 +333,10 @@ struct route_map_rule_cmd route_match_peer_cmd = {"peer", route_match_peer,  						  route_match_peer_free};  #if defined(HAVE_LUA) -static enum route_map_match_result_t -route_match_command(void *rule, const struct prefix *prefix, -		    route_map_object_t type, void *object) +static route_map_result_t route_match_command(void *rule, +					      const struct prefix *prefix, +					      route_map_object_t type, +					      void *object)  {  	int status = RMAP_NOMATCH;  	u_int32_t locpref = 0; @@ -431,9 +432,10 @@ struct route_map_rule_cmd route_match_command_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_ip_address(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist; @@ -470,9 +472,10 @@ struct route_map_rule_cmd route_match_ip_address_cmd = {  /* `match ip next-hop IP_ADDRESS' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_next_hop(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_ip_next_hop(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct access_list *alist;  	struct bgp_path_info *path; @@ -516,9 +519,10 @@ struct route_map_rule_cmd route_match_ip_next_hop_cmd = {  /* `match ip route-source ACCESS-LIST' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_route_source(void *rule, const struct prefix *pfx, -			    route_map_object_t type, void *object) +static route_map_result_t route_match_ip_route_source(void *rule, +						      const struct prefix *pfx, +						      route_map_object_t type, +						      void *object)  {  	struct access_list *alist;  	struct bgp_path_info *path; @@ -567,7 +571,7 @@ struct route_map_rule_cmd route_match_ip_route_source_cmd = {  /* `match ip address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -602,7 +606,7 @@ struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  /* `match ip next-hop prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -644,7 +648,7 @@ struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd = {  /* `match ip next-hop type <blackhole>' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_type(void *rule, const struct prefix *prefix,  			     route_map_object_t type, void *object)  { @@ -683,7 +687,7 @@ static struct route_map_rule_cmd route_match_ip_next_hop_type_cmd = {  /* `match ip route-source prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_route_source_prefix_list(void *rule,  					const struct prefix *prefix,  					route_map_object_t type, void *object) @@ -733,9 +737,10 @@ struct route_map_rule_cmd route_match_ip_route_source_prefix_list_cmd = {  /* `match evpn default-route' */  /* Match function should return 1 if match is success else 0 */ -static enum route_map_match_result_t -route_match_evpn_default_route(void *rule, const struct prefix *p, -			       route_map_object_t type, void *object) +static route_map_result_t route_match_evpn_default_route(void *rule, +							 const struct prefix *p, +							 route_map_object_t +							 type, void *object)  {  	if (type == RMAP_BGP && is_evpn_prefix_default(p))  		return RMAP_MATCH; @@ -751,9 +756,10 @@ struct route_map_rule_cmd route_match_evpn_default_route_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_mac_address(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_mac_address(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct access_list *alist;  	struct prefix p; @@ -796,49 +802,26 @@ struct route_map_rule_cmd route_match_mac_address_cmd = {  	"mac address", route_match_mac_address, route_match_mac_address_compile,  	route_match_mac_address_free}; -/* - * Match function returns: - * ...RMAP_MATCH if match is found. - * ...RMAP_NOMATCH if match is not found. - * ...RMAP_NOOP to ignore this match check. - */ -static enum route_map_match_result_t -route_match_vni(void *rule, const struct prefix *prefix, -		route_map_object_t type, void *object) +/* `match vni' */ + +/* Match function should return 1 if match is success else return +   zero. */ +static route_map_result_t route_match_vni(void *rule, +					  const struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	vni_t vni = 0; -	unsigned int label_cnt = 0;  	struct bgp_path_info *path = NULL; -	struct prefix_evpn *evp = (struct prefix_evpn *) prefix;  	if (type == RMAP_BGP) {  		vni = *((vni_t *)rule);  		path = (struct bgp_path_info *)object; -		/* -		 * This rmap filter is valid for vxlan tunnel type only. -		 * For any other tunnel type, return noop to ignore -		 * this check. -		 */ -		if (path->attr && path->attr->encap_tunneltype != -			BGP_ENCAP_TYPE_VXLAN) -			return RMAP_NOOP; - -		/* -		 * We do not want to filter type 3 routes because -		 * they do not have vni associated with them. -		 */ -		if (evp && evp->prefix.route_type == BGP_EVPN_IMET_ROUTE) -			return RMAP_NOOP; -  		if (path->extra == NULL)  			return RMAP_NOMATCH; -		for ( ; label_cnt < BGP_MAX_LABELS && -			label_cnt < path->extra->num_labels; label_cnt++) { -			if (vni == label2vni(&path->extra->label[label_cnt])) -				return RMAP_MATCH; -		} +		if (vni == label2vni(&path->extra->label[0])) +			return RMAP_MATCH;  	}  	return RMAP_NOMATCH; @@ -876,9 +859,10 @@ struct route_map_rule_cmd route_match_evpn_vni_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_evpn_route_type(void *rule, const struct prefix *pfx, -			    route_map_object_t type, void *object) +static route_map_result_t route_match_evpn_route_type(void *rule, +						      const struct prefix *pfx, +						      route_map_object_t type, +						      void *object)  {  	uint8_t route_type = 0; @@ -921,7 +905,7 @@ struct route_map_rule_cmd route_match_evpn_route_type_cmd = {  	route_match_evpn_route_type_compile, route_match_evpn_route_type_free};  /* Route map commands for VRF route leak with source vrf matching */ -static enum route_map_match_result_t +static route_map_result_t  route_match_vrl_source_vrf(void *rule, const struct prefix *prefix,  			   route_map_object_t type, void *object)  { @@ -970,9 +954,10 @@ struct route_map_rule_cmd route_match_vrl_source_vrf_cmd = {  /* `match local-preference LOCAL-PREF' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_local_pref(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_local_pref(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	uint32_t *local_pref;  	struct bgp_path_info *path; @@ -1026,9 +1011,10 @@ struct route_map_rule_cmd route_match_local_pref_cmd = {  /* `match metric METRIC' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_metric(void *rule, const struct prefix *prefix, -		   route_map_object_t type, void *object) +static route_map_result_t route_match_metric(void *rule, +					     const struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	struct rmap_value *rv;  	struct bgp_path_info *path; @@ -1049,9 +1035,10 @@ struct route_map_rule_cmd route_match_metric_cmd = {  /* `match as-path ASPATH' */  /* Match function for as-path match.  I assume given object is */ -static enum route_map_match_result_t -route_match_aspath(void *rule, const struct prefix *prefix, -		   route_map_object_t type, void *object) +static route_map_result_t route_match_aspath(void *rule, +					     const struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	struct as_list *as_list; @@ -1098,9 +1085,10 @@ struct rmap_community {  };  /* Match function for community match. */ -static enum route_map_match_result_t -route_match_community(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_community(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct community_list *list;  	struct bgp_path_info *path; @@ -1167,9 +1155,10 @@ struct route_map_rule_cmd route_match_community_cmd = {  	route_match_community_free};  /* Match function for lcommunity match. */ -static enum route_map_match_result_t -route_match_lcommunity(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_lcommunity(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct community_list *list;  	struct bgp_path_info *path; @@ -1229,9 +1218,10 @@ struct route_map_rule_cmd route_match_lcommunity_cmd = {  /* Match function for extcommunity match. */ -static enum route_map_match_result_t -route_match_ecommunity(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ecommunity(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct community_list *list;  	struct bgp_path_info *path; @@ -1282,9 +1272,10 @@ struct route_map_rule_cmd route_match_ecommunity_cmd = {     and `address-family vpnv4'.  */  /* `match origin' */ -static enum route_map_match_result_t -route_match_origin(void *rule, const struct prefix *prefix, -		   route_map_object_t type, void *object) +static route_map_result_t route_match_origin(void *rule, +					     const struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	uint8_t *origin;  	struct bgp_path_info *path; @@ -1329,9 +1320,10 @@ struct route_map_rule_cmd route_match_origin_cmd = {  /* match probability  { */ -static enum route_map_match_result_t -route_match_probability(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_probability(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	long r = random(); @@ -1383,9 +1375,10 @@ struct route_map_rule_cmd route_match_probability_cmd = {  /* `match interface IFNAME' */  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct interface *ifp;  	struct bgp_path_info *path; @@ -1429,9 +1422,9 @@ struct route_map_rule_cmd route_match_interface_cmd = {  /* `set ip next-hop IP_ADDRESS' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_tag(void *rule, const struct prefix *prefix, -		route_map_object_t type, void *object) +static route_map_result_t route_match_tag(void *rule, +					  const struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct bgp_path_info *path; @@ -1461,9 +1454,10 @@ struct rmap_ip_nexthop_set {  	int unchanged;  }; -static enum route_map_match_result_t -route_set_ip_nexthop(void *rule, const struct prefix *prefix, -		     route_map_object_t type, void *object) +static route_map_result_t route_set_ip_nexthop(void *rule, +					       const struct prefix *prefix, +					       route_map_object_t type, +					       void *object)  {  	struct rmap_ip_nexthop_set *rins = rule;  	struct bgp_path_info *path; @@ -1566,9 +1560,10 @@ struct route_map_rule_cmd route_set_ip_nexthop_cmd = {  /* `set local-preference LOCAL_PREF' */  /* Set local preference. */ -static enum route_map_match_result_t -route_set_local_pref(void *rule, const struct prefix *prefix, -		     route_map_object_t type, void *object) +static route_map_result_t route_set_local_pref(void *rule, +					       const struct prefix *prefix, +					       route_map_object_t type, +					       void *object)  {  	struct rmap_value *rv;  	struct bgp_path_info *path; @@ -1600,9 +1595,10 @@ struct route_map_rule_cmd route_set_local_pref_cmd = {  /* `set weight WEIGHT' */  /* Set weight. */ -static enum route_map_match_result_t -route_set_weight(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_weight(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	struct rmap_value *rv;  	struct bgp_path_info *path; @@ -1627,9 +1623,10 @@ struct route_map_rule_cmd route_set_weight_cmd = {  /* `set metric METRIC' */  /* Set metric to attribute. */ -static enum route_map_match_result_t -route_set_metric(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	struct rmap_value *rv;  	struct bgp_path_info *path; @@ -1657,9 +1654,10 @@ struct route_map_rule_cmd route_set_metric_cmd = {  /* `set as-path prepend ASPATH' */  /* For AS path prepend mechanism. */ -static enum route_map_match_result_t -route_set_aspath_prepend(void *rule, const struct prefix *prefix, -			 route_map_object_t type, void *object) +static route_map_result_t route_set_aspath_prepend(void *rule, +						   const struct prefix *prefix, +						   route_map_object_t type, +						   void *object)  {  	struct aspath *aspath;  	struct aspath *new; @@ -1719,9 +1717,10 @@ struct route_map_rule_cmd route_set_aspath_prepend_cmd = {   * one.   * Make a deep copy of existing AS_PATH, but for the first ASn only.   */ -static enum route_map_match_result_t -route_set_aspath_exclude(void *rule, const struct prefix *dummy, -			 route_map_object_t type, void *object) +static route_map_result_t route_set_aspath_exclude(void *rule, +						   const struct prefix *dummy, +						   route_map_object_t type, +						   void *object)  {  	struct aspath *new_path, *exclude_path;  	struct bgp_path_info *path; @@ -1753,9 +1752,10 @@ struct rmap_com_set {  };  /* For community set mechanism. */ -static enum route_map_match_result_t -route_set_community(void *rule, const struct prefix *prefix, -		    route_map_object_t type, void *object) +static route_map_result_t route_set_community(void *rule, +					      const struct prefix *prefix, +					      route_map_object_t type, +					      void *object)  {  	struct rmap_com_set *rcs;  	struct bgp_path_info *path; @@ -1868,9 +1868,10 @@ struct rmap_lcom_set {  /* For lcommunity set mechanism. */ -static enum route_map_match_result_t -route_set_lcommunity(void *rule, const struct prefix *prefix, -		     route_map_object_t type, void *object) +static route_map_result_t route_set_lcommunity(void *rule, +					       const struct prefix *prefix, +					       route_map_object_t type, +					       void *object)  {  	struct rmap_lcom_set *rcs;  	struct bgp_path_info *path; @@ -1980,9 +1981,10 @@ struct route_map_rule_cmd route_set_lcommunity_cmd = {  /* `set large-comm-list (<1-99>|<100-500>|WORD) delete' */  /* For large community set mechanism. */ -static enum route_map_match_result_t -route_set_lcommunity_delete(void *rule, const struct prefix *pfx, -			    route_map_object_t type, void *object) +static route_map_result_t route_set_lcommunity_delete(void *rule, +						      const struct prefix *pfx, +						      route_map_object_t type, +						      void *object)  {  	struct community_list *list;  	struct lcommunity *merge; @@ -2063,9 +2065,11 @@ struct route_map_rule_cmd route_set_lcommunity_delete_cmd = {  /* `set comm-list (<1-99>|<100-500>|WORD) delete' */  /* For community set mechanism. */ -static enum route_map_match_result_t -route_set_community_delete(void *rule, const struct prefix *prefix, -			   route_map_object_t type, void *object) +static route_map_result_t route_set_community_delete( +	void *rule, +	const struct prefix *prefix, +	route_map_object_t type, +	void *object)  {  	struct community_list *list;  	struct community *merge; @@ -2145,9 +2149,10 @@ struct route_map_rule_cmd route_set_community_delete_cmd = {  /* `set extcommunity rt COMMUNITY' */  /* For community set mechanism.  Used by _rt and _soo. */ -static enum route_map_match_result_t -route_set_ecommunity(void *rule, const struct prefix *prefix, -		     route_map_object_t type, void *object) +static route_map_result_t route_set_ecommunity(void *rule, +					       const struct prefix *prefix, +					       route_map_object_t type, +					       void *object)  {  	struct ecommunity *ecom;  	struct ecommunity *new_ecom; @@ -2232,9 +2237,10 @@ struct route_map_rule_cmd route_set_ecommunity_soo_cmd = {  /* `set origin ORIGIN' */  /* For origin set. */ -static enum route_map_match_result_t -route_set_origin(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_origin(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	uint8_t *origin;  	struct bgp_path_info *path; @@ -2281,9 +2287,10 @@ struct route_map_rule_cmd route_set_origin_cmd = {  /* `set atomic-aggregate' */  /* For atomic aggregate set. */ -static enum route_map_match_result_t -route_set_atomic_aggregate(void *rule, const struct prefix *pfx, -			   route_map_object_t type, void *object) +static route_map_result_t route_set_atomic_aggregate(void *rule, +						     const struct prefix *pfx, +						     route_map_object_t type, +						     void *object)  {  	struct bgp_path_info *path; @@ -2319,9 +2326,10 @@ struct aggregator {  	struct in_addr address;  }; -static enum route_map_match_result_t -route_set_aggregator_as(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_set_aggregator_as(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct bgp_path_info *path;  	struct aggregator *aggregator; @@ -2372,9 +2380,9 @@ struct route_map_rule_cmd route_set_aggregator_as_cmd = {  };  /* Set tag to object. object must be pointer to struct bgp_path_info */ -static enum route_map_match_result_t -route_set_tag(void *rule, const struct prefix *prefix, -	      route_map_object_t type, void *object) +static route_map_result_t route_set_tag(void *rule, +					const struct prefix *prefix, +					route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct bgp_path_info *path; @@ -2397,9 +2405,10 @@ static struct route_map_rule_cmd route_set_tag_cmd = {  };  /* Set label-index to object. object must be pointer to struct bgp_path_info */ -static enum route_map_match_result_t -route_set_label_index(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_set_label_index(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct rmap_value *rv;  	struct bgp_path_info *path; @@ -2429,9 +2438,10 @@ static struct route_map_rule_cmd route_set_label_index_cmd = {  /* `match ipv6 address IP_ACCESS_LIST' */ -static enum route_map_match_result_t -route_match_ipv6_address(void *rule, const struct prefix *prefix, -			 route_map_object_t type, void *object) +static route_map_result_t route_match_ipv6_address(void *rule, +						   const struct prefix *prefix, +						   route_map_object_t type, +						   void *object)  {  	struct access_list *alist; @@ -2464,9 +2474,10 @@ struct route_map_rule_cmd route_match_ipv6_address_cmd = {  /* `match ipv6 next-hop IP_ADDRESS' */ -static enum route_map_match_result_t -route_match_ipv6_next_hop(void *rule, const struct prefix *prefix, -			  route_map_object_t type, void *object) +static route_map_result_t route_match_ipv6_next_hop(void *rule, +						    const struct prefix *prefix, +						    route_map_object_t type, +						    void *object)  {  	struct in6_addr *addr = rule;  	struct bgp_path_info *path; @@ -2515,7 +2526,7 @@ struct route_map_rule_cmd route_match_ipv6_next_hop_cmd = {  /* `match ipv6 address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ipv6_address_prefix_list(void *rule, const struct prefix *prefix,  				     route_map_object_t type, void *object)  { @@ -2550,9 +2561,9 @@ struct route_map_rule_cmd route_match_ipv6_address_prefix_list_cmd = {  /* `match ipv6 next-hop type <TYPE>' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ipv6_next_hop_type(void *rule, const struct prefix *prefix, -			       route_map_object_t type, void *object) +			      route_map_object_t type, void *object)  {  	struct bgp_path_info *path;  	struct in6_addr *addr = rule; @@ -2598,9 +2609,10 @@ struct route_map_rule_cmd route_match_ipv6_next_hop_type_cmd = {  /* `set ipv6 nexthop global IP_ADDRESS' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_ipv6_nexthop_global(void *rule, const struct prefix *p, -			      route_map_object_t type, void *object) +static route_map_result_t route_set_ipv6_nexthop_global(void *rule, +							const struct prefix *p, +							route_map_object_t type, +							void *object)  {  	struct in6_addr *address;  	struct bgp_path_info *path; @@ -2656,7 +2668,7 @@ struct route_map_rule_cmd route_set_ipv6_nexthop_global_cmd = {  	route_set_ipv6_nexthop_global_free};  /* Set next-hop preference value. */ -static enum route_map_match_result_t +static route_map_result_t  route_set_ipv6_nexthop_prefer_global(void *rule, const struct prefix *prefix,  				     route_map_object_t type, void *object)  { @@ -2710,9 +2722,10 @@ struct route_map_rule_cmd route_set_ipv6_nexthop_prefer_global_cmd = {  /* `set ipv6 nexthop local IP_ADDRESS' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_ipv6_nexthop_local(void *rule, const struct prefix *p, -			     route_map_object_t type, void *object) +static route_map_result_t route_set_ipv6_nexthop_local(void *rule, +						       const struct prefix *p, +						       route_map_object_t type, +						       void *object)  {  	struct in6_addr *address;  	struct bgp_path_info *path; @@ -2772,9 +2785,10 @@ struct route_map_rule_cmd route_set_ipv6_nexthop_local_cmd = {  /* `set ipv6 nexthop peer-address' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_ipv6_nexthop_peer(void *rule, const struct prefix *pfx, -			    route_map_object_t type, void *object) +static route_map_result_t route_set_ipv6_nexthop_peer(void *rule, +						      const struct prefix *pfx, +						      route_map_object_t type, +						      void *object)  {  	struct in6_addr peer_address;  	struct bgp_path_info *path; @@ -2849,9 +2863,10 @@ struct route_map_rule_cmd route_set_ipv6_nexthop_peer_cmd = {  /* `set ipv4 vpn next-hop A.B.C.D' */ -static enum route_map_match_result_t -route_set_vpnv4_nexthop(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_set_vpnv4_nexthop(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct in_addr *address;  	struct bgp_path_info *path; @@ -2888,9 +2903,10 @@ static void *route_set_vpnv4_nexthop_compile(const char *arg)  /* `set ipv6 vpn next-hop A.B.C.D' */ -static enum route_map_match_result_t -route_set_vpnv6_nexthop(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_set_vpnv6_nexthop(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct in6_addr *address;  	struct bgp_path_info *path; @@ -2943,9 +2959,10 @@ struct route_map_rule_cmd route_set_vpnv6_nexthop_cmd = {  /* `set originator-id' */  /* For origin set. */ -static enum route_map_match_result_t -route_set_originator_id(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_set_originator_id(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct in_addr *address;  	struct bgp_path_info *path; diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index ab93ade562..0637723990 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -129,10 +129,8 @@ static void print_record(const struct pfx_record *record, struct vty *vty);  static int is_synchronized(void);  static int is_running(void);  static void route_match_free(void *rule); -static enum route_map_match_result_t route_match(void *rule, -						 const struct prefix *prefix, -						 route_map_object_t type, -						 void *object); +static route_map_result_t route_match(void *rule, const struct prefix *prefix, +				      route_map_object_t type, void *object);  static void *route_match_compile(const char *arg);  static void revalidate_bgp_node(struct bgp_node *bgp_node, afi_t afi,  				safi_t safi); @@ -215,10 +213,8 @@ static void ipv6_addr_to_host_byte_order(const uint32_t *src, uint32_t *dest)  		dest[i] = ntohl(src[i]);  } -static enum route_map_match_result_t route_match(void *rule, -						 const struct prefix *prefix, -						 route_map_object_t type, -						 void *object) +static route_map_result_t route_match(void *rule, const struct prefix *prefix, +				      route_map_object_t type, void *object)  {  	int *rpki_status = rule;  	struct bgp_path_info *path; diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c index 21f1dff60d..b64c51f341 100644 --- a/bgpd/bgp_updgrp_adv.c +++ b/bgpd/bgp_updgrp_adv.c @@ -716,7 +716,7 @@ void subgroup_default_originate(struct update_subgroup *subgrp, int withdraw)  	struct bgp_node *rn;  	struct bgp_path_info *ri;  	struct peer *peer; -	route_map_result_t ret = RMAP_DENYMATCH; +	int ret = RMAP_DENYMATCH;  	afi_t afi;  	safi_t safi; diff --git a/eigrpd/eigrp_routemap.c b/eigrpd/eigrp_routemap.c index 961556d432..0a00497d5a 100644 --- a/eigrpd/eigrp_routemap.c +++ b/eigrpd/eigrp_routemap.c @@ -251,9 +251,9 @@ void eigrp_route_map_update(const char *notused)  /* `match metric METRIC' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_metric(void *rule, struct prefix *prefix, route_map_object_t type, -		   void *object) +static route_map_result_t route_match_metric(void *rule, struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	//  uint32_t *metric;  	//  uint32_t  check; @@ -311,9 +311,10 @@ struct route_map_rule_cmd route_match_metric_cmd = {  /* `match interface IFNAME' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	//  struct rip_info *rinfo;  	//  struct interface *ifp; @@ -359,9 +360,10 @@ struct route_map_rule_cmd route_match_interface_cmd = {  /* `match ip next-hop IP_ACCESS_LIST' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_next_hop(void *rule, struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_ip_next_hop(void *rule, +						  struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	//  struct access_list *alist;  	//  struct rip_info *rinfo; @@ -405,7 +407,7 @@ static struct route_map_rule_cmd route_match_ip_next_hop_cmd = {  /* `match ip next-hop prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_prefix_list(void *rule, struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -450,9 +452,10 @@ static struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_ip_address(void *rule, struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist; @@ -488,7 +491,7 @@ static struct route_map_rule_cmd route_match_ip_address_cmd = {  /* `match ip address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -523,9 +526,8 @@ static struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  /* `match tag TAG' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_tag(void *rule, struct prefix *prefix, route_map_object_t type, -		void *object) +static route_map_result_t route_match_tag(void *rule, struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	//  unsigned short *tag;  	//  struct rip_info *rinfo; @@ -566,9 +568,9 @@ struct route_map_rule_cmd route_match_tag_cmd = {  	"tag", route_match_tag, route_match_tag_compile, route_match_tag_free};  /* Set metric to attribute. */ -static enum route_map_match_result_t -route_set_metric(void *rule, struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	//  if (type == RMAP_RIP)  	//    { @@ -660,9 +662,10 @@ static struct route_map_rule_cmd route_set_metric_cmd = {  /* `set ip next-hop IP_ADDRESS' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_ip_nexthop(void *rule, struct prefix *prefix, -		     route_map_object_t type, void *object) +static route_map_result_t route_set_ip_nexthop(void *rule, +					       struct prefix *prefix, +					       route_map_object_t type, +					       void *object)  {  	//  struct in_addr *address;  	//  struct rip_info *rinfo; @@ -715,9 +718,8 @@ static struct route_map_rule_cmd route_set_ip_nexthop_cmd = {  /* `set tag TAG' */  /* Set tag to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_tag(void *rule, struct prefix *prefix, -	      route_map_object_t type, void *object) +static route_map_result_t route_set_tag(void *rule, struct prefix *prefix, +					route_map_object_t type, void *object)  {  	//  unsigned short *tag;  	//  struct rip_info *rinfo; diff --git a/isisd/isis_routemap.c b/isisd/isis_routemap.c index 69694f26e4..d63676256b 100644 --- a/isisd/isis_routemap.c +++ b/isisd/isis_routemap.c @@ -48,9 +48,10 @@  #include "isis_zebra.h"  #include "isis_routemap.h" -static enum route_map_match_result_t -route_match_ip_address(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist; @@ -80,7 +81,7 @@ static struct route_map_rule_cmd route_match_ip_address_cmd = {  /* ------------------------------------------------------------*/ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -113,9 +114,10 @@ struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  /* ------------------------------------------------------------*/ -static enum route_map_match_result_t -route_match_ipv6_address(void *rule, const struct prefix *prefix, -			 route_map_object_t type, void *object) +static route_map_result_t route_match_ipv6_address(void *rule, +						   const struct prefix *prefix, +						   route_map_object_t type, +						   void *object)  {  	struct access_list *alist; @@ -145,7 +147,7 @@ static struct route_map_rule_cmd route_match_ipv6_address_cmd = {  /* ------------------------------------------------------------*/ -static enum route_map_match_result_t +static route_map_result_t  route_match_ipv6_address_prefix_list(void *rule, const struct prefix *prefix,  				     route_map_object_t type, void *object)  { @@ -178,9 +180,10 @@ struct route_map_rule_cmd route_match_ipv6_address_prefix_list_cmd = {  /* ------------------------------------------------------------*/ -static enum route_map_match_result_t -route_set_metric(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	uint32_t *metric;  	struct isis_ext_info *info; diff --git a/lib/routemap.c b/lib/routemap.c index 5883307b9d..9336154b1a 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -1531,14 +1531,14 @@ int route_map_delete_set(struct route_map_index *index, const char *set_name,     (note, this includes the description for the "NEXT"     and "GOTO" frobs now -	   |   Match   |   No Match   | No op -	   |-----------|--------------|------- -    permit |   action  |     cont     | cont. -	   |           | default:deny | default:permit -    -------------------+----------------------- -	   |   deny    |     cont     | cont. -    deny   |           | default:deny | default:permit -	   |-----------|--------------|-------- +	      Match   |   No Match +		      | +    permit    action  |     cont +		      | +    ------------------+--------------- +		      | +    deny      deny    |     cont +		      |     action)        -Apply Set statements, accept route @@ -1572,12 +1572,12 @@ int route_map_delete_set(struct route_map_index *index, const char *set_name,     We need to make sure our route-map processing matches the above  */ -static enum route_map_match_result_t +static route_map_result_t  route_map_apply_match(struct route_map_rule_list *match_list,  		      const struct prefix *prefix, route_map_object_t type,  		      void *object)  { -	enum route_map_match_result_t ret = RMAP_NOMATCH; +	route_map_result_t ret = RMAP_NOMATCH;  	struct route_map_rule *match; @@ -1609,8 +1609,7 @@ route_map_result_t route_map_apply(struct route_map *map,  				   route_map_object_t type, void *object)  {  	static int recursion = 0; -	enum route_map_match_result_t match_ret = RMAP_NOMATCH; -	route_map_result_t ret = 0; +	int ret = 0;  	struct route_map_index *index;  	struct route_map_rule *set; @@ -1630,33 +1629,24 @@ route_map_result_t route_map_apply(struct route_map *map,  	for (index = map->head; index; index = index->next) {  		/* Apply this index. */  		index->applied++; -		match_ret = route_map_apply_match(&index->match_list, prefix, -						  type, object); +		ret = route_map_apply_match(&index->match_list, prefix, type, +					    object);  		/* Now we apply the matrix from above */ -		if (match_ret == RMAP_NOMATCH || match_ret == RMAP_NOOP) +		if (ret == RMAP_NOMATCH)  			/* 'cont' from matrix - continue to next route-map  			 * sequence */  			continue; -		else if (match_ret == RMAP_MATCH) { +		else if (ret == RMAP_MATCH) {  			if (index->type == RMAP_PERMIT)  			/* 'action' */  			{ -				/* Match succeeded, rmap is of type permit */ -				ret = RMAP_PERMITMATCH; -  				/* permit+match must execute sets */  				for (set = index->set_list.head; set;  				     set = set->next) -					/* -					 * We dont care abt the return value -					 * for set cmd.  Almost always, -					 * RMAP_OKAY is returned. Rarely -					 * do we see RMAP_ERROR -					 */ -					match_ret = (*set->cmd->func_apply)( -						     set->value, prefix, type, -						     object); +					ret = (*set->cmd->func_apply)( +						set->value, prefix, type, +						object);  				/* Call another route-map if available */  				if (index->nextrm) { @@ -1707,10 +1697,6 @@ route_map_result_t route_map_apply(struct route_map *map,  			}  		}  	} - -	if (match_ret == RMAP_NOOP) -		return RMAP_PERMITMATCH; -  	/* Finally route-map does not match at all. */  	return RMAP_DENYMATCH;  } diff --git a/lib/routemap.h b/lib/routemap.h index d7acd7f3f7..3781d227df 100644 --- a/lib/routemap.h +++ b/lib/routemap.h @@ -34,36 +34,15 @@ DECLARE_MTYPE(ROUTE_MAP_NAME)  DECLARE_MTYPE(ROUTE_MAP_RULE)  DECLARE_MTYPE(ROUTE_MAP_COMPILED) -/* - * Route-map match or set result "Eg: match evpn vni xx" - * route-map match cmd always returns match/nomatch/noop - *    match--> found a match - *    nomatch--> didnt find a match - *    noop--> invalid - * route-map set retuns okay/error - *    okay --> set was successful - *    error --> set was not successful - */ -enum route_map_match_result_t { -	/* -	 * route-map match cmd results -	 */ -	RMAP_MATCH, -	RMAP_NOMATCH, -	RMAP_NOOP, -	/* -	 * route-map set cmd results -	 */ -	RMAP_OKAY, -	RMAP_ERROR -}; -  /* Route map's type. */  enum route_map_type { RMAP_PERMIT, RMAP_DENY, RMAP_ANY };  typedef enum { +	RMAP_MATCH,  	RMAP_DENYMATCH, -	RMAP_PERMITMATCH +	RMAP_NOMATCH, +	RMAP_ERROR, +	RMAP_OKAY  } route_map_result_t;  typedef enum { @@ -112,10 +91,10 @@ struct route_map_rule_cmd {  	const char *str;  	/* Function for value set or match. */ -	enum route_map_match_result_t (*func_apply)(void *rule, -						    const struct prefix *prefix, -						    route_map_object_t type, -						    void *object); +	route_map_result_t (*func_apply)(void *rule, +					 const struct prefix *prefix, +					 route_map_object_t type, +					 void *object);  	/* Compile argument and return result as void *. */  	void *(*func_compile)(const char *); diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c index 4fbf70c9db..946bbf8cc9 100644 --- a/ospf6d/ospf6_asbr.c +++ b/ospf6d/ospf6_asbr.c @@ -1018,7 +1018,7 @@ void ospf6_asbr_redistribute_add(int type, ifindex_t ifindex,  				 unsigned int nexthop_num,  				 struct in6_addr *nexthop, route_tag_t tag)  { -	route_map_result_t ret; +	int ret;  	struct ospf6_route troute;  	struct ospf6_external_info tinfo;  	struct ospf6_route *route, *match; @@ -1355,7 +1355,7 @@ static void ospf6_redistribute_show_config(struct vty *vty)  /* Routemap Functions */ -static enum route_map_match_result_t +static route_map_result_t  ospf6_routemap_rule_match_address_prefixlist(void *rule,  					     const struct prefix *prefix,  					     route_map_object_t type, @@ -1395,7 +1395,7 @@ struct route_map_rule_cmd ospf6_routemap_rule_match_address_prefixlist_cmd = {  /* `match interface IFNAME' */  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t +static route_map_result_t  ospf6_routemap_rule_match_interface(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -1433,9 +1433,10 @@ struct route_map_rule_cmd ospf6_routemap_rule_match_interface_cmd = {  	ospf6_routemap_rule_match_interface_free};  /* Match function for matching route tags */ -static enum route_map_match_result_t -ospf6_routemap_rule_match_tag(void *rule, const struct prefix *p, -			      route_map_object_t type, void *object) +static route_map_result_t ospf6_routemap_rule_match_tag(void *rule, +							const struct prefix *p, +							route_map_object_t type, +							void *object)  {  	route_tag_t *tag = rule;  	struct ospf6_route *route = object; @@ -1452,7 +1453,7 @@ static struct route_map_rule_cmd ospf6_routemap_rule_match_tag_cmd = {  	route_map_rule_tag_free,  }; -static enum route_map_match_result_t +static route_map_result_t  ospf6_routemap_rule_set_metric_type(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -1488,7 +1489,7 @@ struct route_map_rule_cmd ospf6_routemap_rule_set_metric_type_cmd = {  	ospf6_routemap_rule_set_metric_type_free,  }; -static enum route_map_match_result_t +static route_map_result_t  ospf6_routemap_rule_set_metric(void *rule, const struct prefix *prefix,  			       route_map_object_t type, void *object)  { @@ -1523,7 +1524,7 @@ struct route_map_rule_cmd ospf6_routemap_rule_set_metric_cmd = {  	ospf6_routemap_rule_set_metric_free,  }; -static enum route_map_match_result_t +static route_map_result_t  ospf6_routemap_rule_set_forwarding(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -1561,9 +1562,10 @@ struct route_map_rule_cmd ospf6_routemap_rule_set_forwarding_cmd = {  	ospf6_routemap_rule_set_forwarding_free,  }; -static enum route_map_match_result_t -ospf6_routemap_rule_set_tag(void *rule, const struct prefix *p, -			    route_map_object_t type, void *object) +static route_map_result_t ospf6_routemap_rule_set_tag(void *rule, +						      const struct prefix *p, +						      route_map_object_t type, +						      void *object)  {  	route_tag_t *tag = rule;  	struct ospf6_route *route = object; diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c index d725837fec..ab2d5ae584 100644 --- a/ospfd/ospf_routemap.c +++ b/ospfd/ospf_routemap.c @@ -126,9 +126,10 @@ static void ospf_route_map_event(const char *name)  /* `match ip netxthop ' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_nexthop(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_nexthop(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist;  	struct external_info *ei = object; @@ -170,7 +171,7 @@ struct route_map_rule_cmd route_match_ip_nexthop_cmd = {  /* `match ip next-hop prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -212,9 +213,10 @@ struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd = {  /* `match ip address IP_ACCESS_LIST' */  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_ip_address(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist;  	/* struct prefix_ipv4 match; */ @@ -250,7 +252,7 @@ struct route_map_rule_cmd route_match_ip_address_cmd = {  	route_match_ip_address_free};  /* `match ip address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -286,9 +288,10 @@ struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  /* `match interface IFNAME' */  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct interface *ifp;  	struct external_info *ei; @@ -324,9 +327,9 @@ struct route_map_rule_cmd route_match_interface_cmd = {  	route_match_interface_free};  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_tag(void *rule, const struct prefix *prefix, -		route_map_object_t type, void *object) +static route_map_result_t route_match_tag(void *rule, +					  const struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct external_info *ei; @@ -355,9 +358,10 @@ struct ospf_metric {  /* `set metric METRIC' */  /* Set metric to attribute. */ -static enum route_map_match_result_t -route_set_metric(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	struct ospf_metric *metric;  	struct external_info *ei; @@ -435,9 +439,10 @@ struct route_map_rule_cmd route_set_metric_cmd = {  /* `set metric-type TYPE' */  /* Set metric-type to attribute. */ -static enum route_map_match_result_t -route_set_metric_type(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_set_metric_type(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	uint32_t *metric_type;  	struct external_info *ei; @@ -484,9 +489,8 @@ struct route_map_rule_cmd route_set_metric_type_cmd = {  	route_set_metric_type_free,  }; -static enum route_map_match_result_t -route_set_tag(void *rule, const struct prefix *prefix, route_map_object_t type, -	      void *object) +static route_map_result_t route_set_tag(void *rule, const struct prefix *prefix, +					route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct external_info *ei; diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index 951402f47f..c178e367d3 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -943,7 +943,7 @@ int ospf_redistribute_check(struct ospf *ospf, struct external_info *ei,  	/* apply route-map if needed */  	red = ospf_redist_lookup(ospf, type, instance);  	if (red && ROUTEMAP_NAME(red)) { -		route_map_result_t ret; +		int ret;  		ret = route_map_apply(ROUTEMAP(red), (struct prefix *)p,  				      RMAP_OSPF, ei); diff --git a/ripd/rip_routemap.c b/ripd/rip_routemap.c index 3c1c779bad..3216b8f89f 100644 --- a/ripd/rip_routemap.c +++ b/ripd/rip_routemap.c @@ -42,9 +42,10 @@ struct rip_metric_modifier {  /* `match metric METRIC' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_metric(void *rule, const struct prefix *prefix, -		   route_map_object_t type, void *object) +static route_map_result_t route_match_metric(void *rule, +					     const struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	uint32_t *metric;  	uint32_t check; @@ -94,9 +95,10 @@ struct route_map_rule_cmd route_match_metric_cmd = {  /* `match interface IFNAME' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct rip_info *rinfo;  	struct interface *ifp; @@ -141,9 +143,10 @@ struct route_map_rule_cmd route_match_interface_cmd = {  /* `match ip next-hop IP_ACCESS_LIST' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_next_hop(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_ip_next_hop(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct access_list *alist;  	struct rip_info *rinfo; @@ -187,7 +190,7 @@ static struct route_map_rule_cmd route_match_ip_next_hop_cmd = {  /* `match ip next-hop prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -232,9 +235,10 @@ static struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_ip_address(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	struct access_list *alist; @@ -270,7 +274,7 @@ static struct route_map_rule_cmd route_match_ip_address_cmd = {  /* `match ip address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -305,9 +309,8 @@ static struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  /* `match tag TAG' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_tag(void *rule, const struct prefix *p, route_map_object_t type, -		void *object) +static route_map_result_t route_match_tag(void *rule, const struct prefix *p, +					  route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct rip_info *rinfo; @@ -336,9 +339,10 @@ static struct route_map_rule_cmd route_match_tag_cmd = {  /* `set metric METRIC' */  /* Set metric to attribute. */ -static enum route_map_match_result_t -route_set_metric(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	if (type == RMAP_RIP) {  		struct rip_metric_modifier *mod; @@ -434,7 +438,7 @@ static struct route_map_rule_cmd route_set_metric_cmd = {  /* `set ip next-hop IP_ADDRESS' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t route_set_ip_nexthop(void *rule, +static route_map_result_t route_set_ip_nexthop(void *rule,  					       const struct prefix *prefix,  					       route_map_object_t type,  					       void *object) @@ -487,9 +491,8 @@ static struct route_map_rule_cmd route_set_ip_nexthop_cmd = {  /* `set tag TAG' */  /* Set tag to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_tag(void *rule, const struct prefix *prefix, route_map_object_t type, -	      void *object) +static route_map_result_t route_set_tag(void *rule, const struct prefix *prefix, +					route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct rip_info *rinfo; diff --git a/ripngd/ripng_routemap.c b/ripngd/ripng_routemap.c index 671586cfd9..0604e272cd 100644 --- a/ripngd/ripng_routemap.c +++ b/ripngd/ripng_routemap.c @@ -38,9 +38,10 @@ struct rip_metric_modifier {  /* `match metric METRIC' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_metric(void *rule, const struct prefix *prefix, -		   route_map_object_t type, void *object) +static route_map_result_t route_match_metric(void *rule, +					     const struct prefix *prefix, +					     route_map_object_t type, +					     void *object)  {  	uint32_t *metric;  	struct ripng_info *rinfo; @@ -85,9 +86,10 @@ static struct route_map_rule_cmd route_match_metric_cmd = {  /* `match interface IFNAME' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct ripng_info *rinfo;  	struct interface *ifp; @@ -127,10 +129,9 @@ static struct route_map_rule_cmd route_match_interface_cmd = {  /* `match tag TAG' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t route_match_tag(void *rule, -						const struct prefix *prefix, -						route_map_object_t type, -						void *object) +static route_map_result_t route_match_tag(void *rule, +					  const struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct ripng_info *rinfo; @@ -158,9 +159,10 @@ static struct route_map_rule_cmd route_match_tag_cmd = {  /* `set metric METRIC' */  /* Set metric to attribute. */ -static enum route_map_match_result_t -route_set_metric(void *rule, const struct prefix *prefix, -		 route_map_object_t type, void *object) +static route_map_result_t route_set_metric(void *rule, +					   const struct prefix *prefix, +					   route_map_object_t type, +					   void *object)  {  	if (type == RMAP_RIPNG) {  		struct rip_metric_modifier *mod; @@ -254,9 +256,10 @@ static struct route_map_rule_cmd route_set_metric_cmd = {  /* `set ipv6 next-hop local IP_ADDRESS' */  /* Set nexthop to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_ipv6_nexthop_local(void *rule, const struct prefix *p, -			     route_map_object_t type, void *object) +static route_map_result_t route_set_ipv6_nexthop_local(void *rule, +						       const struct prefix *p, +						       route_map_object_t type, +						       void *object)  {  	struct in6_addr *address;  	struct ripng_info *rinfo; @@ -307,9 +310,9 @@ static struct route_map_rule_cmd route_set_ipv6_nexthop_local_cmd = {  /* `set tag TAG' */  /* Set tag to object.  ojbect must be pointer to struct attr. */ -static enum route_map_match_result_t -route_set_tag(void *rule, const struct prefix *prefix, route_map_object_t type, -	      void *object) +static route_map_result_t route_set_tag(void *rule, +					const struct prefix *prefix, +					route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct ripng_info *rinfo; diff --git a/zebra/redistribute.c b/zebra/redistribute.c index dfff76664c..b13f1170cd 100644 --- a/zebra/redistribute.c +++ b/zebra/redistribute.c @@ -574,7 +574,7 @@ int zebra_add_import_table_entry(struct route_node *rn, struct route_entry *re,  	struct route_entry *newre;  	struct route_entry *same;  	struct prefix p; -	route_map_result_t ret = RMAP_PERMITMATCH; +	route_map_result_t ret = RMAP_MATCH;  	afi_t afi;  	afi = family2afi(rn->p.family); @@ -583,7 +583,7 @@ int zebra_add_import_table_entry(struct route_node *rn, struct route_entry *re,  			afi, re->type, re->instance, &rn->p, re->ng.nexthop,  			re->vrf_id, re->tag, rmap_name); -	if (ret != RMAP_PERMITMATCH) { +	if (ret != RMAP_MATCH) {  		UNSET_FLAG(re->flags, ZEBRA_FLAG_SELECTED);  		zebra_del_import_table_entry(rn, re);  		return 0; diff --git a/zebra/zebra_nhg.c b/zebra/zebra_nhg.c index caab06d2ff..f2a76d1c52 100644 --- a/zebra/zebra_nhg.c +++ b/zebra/zebra_nhg.c @@ -338,7 +338,7 @@ static unsigned nexthop_active_check(struct route_node *rn,  				     struct nexthop *nexthop)  {  	struct interface *ifp; -	route_map_result_t ret = RMAP_PERMITMATCH; +	route_map_result_t ret = RMAP_MATCH;  	int family;  	char buf[SRCDEST2STR_BUFFER];  	const struct prefix *p, *src_p; diff --git a/zebra/zebra_rnh.c b/zebra/zebra_rnh.c index a8389f2adf..a63d015716 100644 --- a/zebra/zebra_rnh.c +++ b/zebra/zebra_rnh.c @@ -400,7 +400,7 @@ static int zebra_rnh_apply_nht_rmap(afi_t afi, struct zebra_vrf *zvrf,  {  	int at_least_one = 0;  	struct nexthop *nexthop; -	route_map_result_t ret; +	int ret;  	if (prn && re) {  		for (nexthop = re->ng.nexthop; nexthop; diff --git a/zebra/zebra_routemap.c b/zebra/zebra_routemap.c index 78804635fa..dbfe695a00 100644 --- a/zebra/zebra_routemap.c +++ b/zebra/zebra_routemap.c @@ -136,9 +136,9 @@ static int zebra_route_match_delete(struct vty *vty, const char *command,  /* 'match tag TAG'   * Match function return 1 if match is success else return 0   */ -static enum route_map_match_result_t -route_match_tag(void *rule, const struct prefix *prefix, -		route_map_object_t type, void *object) +static route_map_result_t route_match_tag(void *rule, +					  const struct prefix *prefix, +					  route_map_object_t type, void *object)  {  	route_tag_t *tag;  	struct nh_rmap_obj *nh_data; @@ -162,9 +162,10 @@ static struct route_map_rule_cmd route_match_tag_cmd = {  /* `match interface IFNAME' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_interface(void *rule, const struct prefix *prefix, -		      route_map_object_t type, void *object) +static route_map_result_t route_match_interface(void *rule, +						const struct prefix *prefix, +						route_map_object_t type, +						void *object)  {  	struct nh_rmap_obj *nh_data;  	char *ifname = rule; @@ -1024,9 +1025,10 @@ DEFPY (show_ipv6_protocol_nht,  /* `match ip next-hop IP_ACCESS_LIST' */  /* Match function return 1 if match is success else return zero. */ -static enum route_map_match_result_t -route_match_ip_next_hop(void *rule, const struct prefix *prefix, -			route_map_object_t type, void *object) +static route_map_result_t route_match_ip_next_hop(void *rule, +						  const struct prefix *prefix, +						  route_map_object_t type, +						  void *object)  {  	struct access_list *alist;  	struct nh_rmap_obj *nh_data; @@ -1081,7 +1083,7 @@ static struct route_map_rule_cmd route_match_ip_next_hop_cmd = {  /* `match ip next-hop prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  				    route_map_object_t type, void *object)  { @@ -1137,9 +1139,10 @@ static struct route_map_rule_cmd route_match_ip_next_hop_prefix_list_cmd = {  /* Match function should return 1 if match is success else return     zero. */ -static enum route_map_match_result_t -route_match_address(afi_t afi, void *rule, const struct prefix *prefix, -		    route_map_object_t type, void *object) +static route_map_result_t route_match_address(afi_t afi, void *rule, +					      const struct prefix *prefix, +					      route_map_object_t type, +					      void *object)  {  	struct access_list *alist; @@ -1155,16 +1158,19 @@ route_match_address(afi_t afi, void *rule, const struct prefix *prefix,  	return RMAP_NOMATCH;  } -static enum route_map_match_result_t -route_match_ip_address(void *rule, const struct prefix *prefix, -		       route_map_object_t type, void *object) +static route_map_result_t route_match_ip_address(void *rule, +						 const struct prefix *prefix, +						 route_map_object_t type, +						 void *object)  {  	return route_match_address(AFI_IP, rule, prefix, type, object);  } -static enum route_map_match_result_t -route_match_ipv6_address(void *rule, const struct prefix *prefix, -			 route_map_object_t type, void *object) +static route_map_result_t route_match_ipv6_address(void *rule, +						   const struct prefix *prefix, +						   route_map_object_t type, +						   void *object) +  {  	return route_match_address(AFI_IP6, rule, prefix, type, object);  } @@ -1194,7 +1200,7 @@ static struct route_map_rule_cmd route_match_ipv6_address_cmd = {  /* `match ip address prefix-list PREFIX_LIST' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_address_prefix_list(void *rule, const struct prefix *prefix,  			route_map_object_t type, void *object, afi_t afi)  { @@ -1212,7 +1218,7 @@ route_match_address_prefix_list(void *rule, const struct prefix *prefix,  	return RMAP_NOMATCH;  } -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  				   route_map_object_t type, void *object)  { @@ -1235,7 +1241,7 @@ static struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {  	route_match_address_prefix_list_compile,  	route_match_address_prefix_list_free}; -static enum route_map_match_result_t +static route_map_result_t  route_match_ipv6_address_prefix_list(void *rule, const struct prefix *prefix,  					route_map_object_t type, void *object)  { @@ -1250,7 +1256,7 @@ static struct route_map_rule_cmd route_match_ipv6_address_prefix_list_cmd = {  /* `match ip address prefix-len PREFIXLEN' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_address_prefix_len(void *rule, const struct prefix *prefix,  			       route_map_object_t type, void *object)  { @@ -1301,7 +1307,7 @@ static struct route_map_rule_cmd route_match_ipv6_address_prefix_len_cmd = {  /* `match ip nexthop prefix-len PREFIXLEN' */ -static enum route_map_match_result_t +static route_map_result_t  route_match_ip_nexthop_prefix_len(void *rule, const struct prefix *prefix,  				  route_map_object_t type, void *object)  { @@ -1341,9 +1347,10 @@ static struct route_map_rule_cmd route_match_ip_nexthop_prefix_len_cmd = {  /* `match source-protocol PROTOCOL' */ -static enum route_map_match_result_t -route_match_source_protocol(void *rule, const struct prefix *p, -			    route_map_object_t type, void *object) +static route_map_result_t route_match_source_protocol(void *rule, +						      const struct prefix *p, +						      route_map_object_t type, +						      void *object)  {  	uint32_t *rib_type = (uint32_t *)rule;  	struct nh_rmap_obj *nh_data; @@ -1382,9 +1389,10 @@ static struct route_map_rule_cmd route_match_source_protocol_cmd = {  	route_match_source_protocol_compile, route_match_source_protocol_free};  /* `source-instance` */ -static enum route_map_match_result_t -route_match_source_instance(void *rule, const struct prefix *p, -			    route_map_object_t type, void *object) +static route_map_result_t route_match_source_instance(void *rule, +						      const struct prefix *p, +						      route_map_object_t type, +						      void *object)  {  	uint8_t *instance = (uint8_t *)rule;  	struct nh_rmap_obj *nh_data; @@ -1424,9 +1432,8 @@ static struct route_map_rule_cmd route_match_source_instance_cmd = {  /* `set src A.B.C.D' */  /* Set src. */ -static enum route_map_match_result_t -route_set_src(void *rule, const struct prefix *prefix, route_map_object_t type, -	      void *object) +static route_map_result_t route_set_src(void *rule, const struct prefix *prefix, +					route_map_object_t type, void *object)  {  	struct nh_rmap_obj *nh_data; @@ -1692,7 +1699,7 @@ zebra_route_map_check(int family, int rib_type, uint8_t instance,  		      struct zebra_vrf *zvrf, route_tag_t tag)  {  	struct route_map *rmap = NULL; -	route_map_result_t ret = RMAP_PERMITMATCH; +	route_map_result_t ret = RMAP_MATCH;  	struct nh_rmap_obj nh_obj;  	nh_obj.nexthop = nexthop; @@ -1738,7 +1745,7 @@ zebra_import_table_route_map_check(int family, int re_type, uint8_t instance,  				   const char *rmap_name)  {  	struct route_map *rmap = NULL; -	enum route_map_match_result_t ret = RMAP_DENYMATCH; +	route_map_result_t ret = RMAP_DENYMATCH;  	struct nh_rmap_obj nh_obj;  	nh_obj.nexthop = nexthop; @@ -1764,7 +1771,7 @@ route_map_result_t zebra_nht_route_map_check(afi_t afi, int client_proto,  					     struct nexthop *nexthop)  {  	struct route_map *rmap = NULL; -	route_map_result_t ret = RMAP_PERMITMATCH; +	route_map_result_t ret = RMAP_MATCH;  	struct nh_rmap_obj nh_obj;  	nh_obj.nexthop = nexthop;  | 
