diff options
| -rw-r--r-- | bgpd/bgp_clist.c | 2 | ||||
| -rw-r--r-- | doc/user/ospfd.rst | 11 | ||||
| -rw-r--r-- | isisd/isis_cli.c | 9 | ||||
| -rw-r--r-- | isisd/isis_redist.c | 10 | ||||
| -rw-r--r-- | isisd/isisd.h | 8 | ||||
| -rw-r--r-- | lib/command_graph.h | 4 | ||||
| -rw-r--r-- | ospf6d/ospf6_flood.c | 1 | ||||
| -rw-r--r-- | ospf6d/ospf6_nssa.c | 16 | ||||
| -rw-r--r-- | python/clidef.py | 2 | 
9 files changed, 34 insertions, 29 deletions
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c index 33e3db2c16..0e590a463c 100644 --- a/bgpd/bgp_clist.c +++ b/bgpd/bgp_clist.c @@ -720,7 +720,7 @@ bool lcommunity_list_exact_match(struct lcommunity *lcom,  			return entry->direct == COMMUNITY_PERMIT;  		if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) { -			if (lcommunity_cmp(lcom, entry->u.com)) +			if (lcommunity_cmp(lcom, entry->u.lcom))  				return entry->direct == COMMUNITY_PERMIT;  		} else if (entry->style == LARGE_COMMUNITY_LIST_EXPANDED) {  			if (lcommunity_regexp_match(lcom, entry->reg)) diff --git a/doc/user/ospfd.rst b/doc/user/ospfd.rst index 0122e2ac75..26675c27fd 100644 --- a/doc/user/ospfd.rst +++ b/doc/user/ospfd.rst @@ -691,13 +691,12 @@ Redistribution     the 'always' keyword is given then the default is always advertised, even     when there is no default present in the routing table. -.. clicmd:: distribute-list NAME out (kernel|connected|static|rip|ospf - -  .. _ospf-distribute-list: +.. clicmd:: distribute-list NAME out <kernel|connected|static|rip|isis|bgp|eigrp|nhrp|table|vnc|babel|openfabric> +     Apply the access-list filter, NAME, to redistributed routes of the given -   type before allowing the routes to redistributed into OSPF +   type before allowing the routes to be redistributed into OSPF     (:ref:`ospf redistribution <ospf-redistribute>`).  .. clicmd:: default-metric (0-16777214) @@ -954,8 +953,6 @@ Router Information     Show Router Capabilities PCE parameters. -.. _debugging-ospf: -  Segment Routing  =============== @@ -1042,6 +1039,8 @@ TI-LFA requires a proper Segment Routing configuration.     Note that so far only P2P interfaces are supported. +.. _debugging-ospf: +  Debugging OSPF  ============== diff --git a/isisd/isis_cli.c b/isisd/isis_cli.c index 70ec66fd7f..f48b142b1a 100644 --- a/isisd/isis_cli.c +++ b/isisd/isis_cli.c @@ -1330,11 +1330,14 @@ void cli_show_isis_def_origin_ipv6(struct vty *vty, struct lyd_node *dnode,   * XPath: /frr-isisd:isis/instance/redistribute   */  DEFPY_YANG(isis_redistribute, isis_redistribute_cmd, -      "[no] redistribute <ipv4|ipv6>$ip " PROTO_REDIST_STR -      "$proto <level-1|level-2>$level [{metric (0-16777215)|route-map WORD}]", +      "[no] redistribute <ipv4$ip " PROTO_IP_REDIST_STR "$proto|ipv6$ip " +      PROTO_IP6_REDIST_STR "$proto> <level-1|level-2>$level" +      "[{metric (0-16777215)|route-map WORD}]",        NO_STR REDIST_STR        "Redistribute IPv4 routes\n" -      "Redistribute IPv6 routes\n" PROTO_REDIST_HELP +      PROTO_IP_REDIST_HELP +      "Redistribute IPv6 routes\n" +      PROTO_IP6_REDIST_HELP        "Redistribute into level-1\n"        "Redistribute into level-2\n"        "Metric for redistributed routes\n" diff --git a/isisd/isis_redist.c b/isisd/isis_redist.c index 2f5e490da1..45d69bc352 100644 --- a/isisd/isis_redist.c +++ b/isisd/isis_redist.c @@ -543,12 +543,13 @@ void isis_redist_area_finish(struct isis_area *area)  #ifdef FABRICD  DEFUN (isis_redistribute,         isis_redistribute_cmd, -       "redistribute <ipv4|ipv6> " PROTO_REDIST_STR +       "redistribute <ipv4 " PROTO_IP_REDIST_STR "|ipv6 " PROTO_IP6_REDIST_STR ">"         " [{metric (0-16777215)|route-map WORD}]",         REDIST_STR         "Redistribute IPv4 routes\n" +       PROTO_IP_REDIST_HELP         "Redistribute IPv6 routes\n" -       PROTO_REDIST_HELP +       PROTO_IP6_REDIST_HELP         "Metric for redistributed routes\n"         "ISIS default metric\n"         "Route map reference\n" @@ -599,12 +600,13 @@ DEFUN (isis_redistribute,  DEFUN (no_isis_redistribute,         no_isis_redistribute_cmd, -       "no redistribute <ipv4|ipv6> " PROTO_REDIST_STR, +       "no redistribute <ipv4 " PROTO_IP_REDIST_STR "|ipv6 " PROTO_IP6_REDIST_STR ">",         NO_STR         REDIST_STR         "Redistribute IPv4 routes\n" +       PROTO_IP_REDIST_HELP         "Redistribute IPv6 routes\n" -       PROTO_REDIST_HELP) +       PROTO_IP6_REDIST_HELP)  {  	int idx_afi = 2;  	int idx_protocol = 3; diff --git a/isisd/isisd.h b/isisd/isisd.h index 64fbf78a07..13f3475b70 100644 --- a/isisd/isisd.h +++ b/isisd/isisd.h @@ -46,7 +46,11 @@ static const bool fabricd = true;  #define PROTO_NAME "openfabric"  #define PROTO_HELP "OpenFabric routing protocol\n"  #define PROTO_REDIST_STR FRR_REDIST_STR_FABRICD +#define PROTO_IP_REDIST_STR FRR_IP_REDIST_STR_FABRICD +#define PROTO_IP6_REDIST_STR FRR_IP6_REDIST_STR_FABRICD  #define PROTO_REDIST_HELP FRR_REDIST_HELP_STR_FABRICD +#define PROTO_IP_REDIST_HELP FRR_IP_REDIST_HELP_STR_FABRICD +#define PROTO_IP6_REDIST_HELP FRR_IP6_REDIST_HELP_STR_FABRICD  #define ROUTER_NODE OPENFABRIC_NODE  #else  static const bool fabricd = false; @@ -54,7 +58,11 @@ static const bool fabricd = false;  #define PROTO_NAME "isis"  #define PROTO_HELP "IS-IS routing protocol\n"  #define PROTO_REDIST_STR FRR_REDIST_STR_ISISD +#define PROTO_IP_REDIST_STR FRR_IP_REDIST_STR_ISISD +#define PROTO_IP6_REDIST_STR FRR_IP6_REDIST_STR_ISISD  #define PROTO_REDIST_HELP FRR_REDIST_HELP_STR_ISISD +#define PROTO_IP_REDIST_HELP FRR_IP_REDIST_HELP_STR_ISISD +#define PROTO_IP6_REDIST_HELP FRR_IP6_REDIST_HELP_STR_ISISD  #define ROUTER_NODE ISIS_NODE  extern void isis_cli_init(void);  #endif diff --git a/lib/command_graph.h b/lib/command_graph.h index c20c9874c2..86157f872e 100644 --- a/lib/command_graph.h +++ b/lib/command_graph.h @@ -79,11 +79,11 @@ enum { CMD_ATTR_NORMAL,         CMD_ATTR_YANG,  }; -/* Comamand token struct. */ +/* Command token struct. */  struct cmd_token {  	enum cmd_token_type type; // token type  	uint8_t attr;		  // token attributes -	bool allowrepeat;	 // matcher allowed to match token repetively? +	bool allowrepeat; // matcher allowed to match token repetitively?  	uint32_t refcnt;  	char *text;	 // token text diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c index 186eac35a5..3a242575cd 100644 --- a/ospf6d/ospf6_flood.c +++ b/ospf6d/ospf6_flood.c @@ -288,7 +288,6 @@ void ospf6_install_lsa(struct ospf6_lsa *lsa)  	monotime(&now);  	if (!OSPF6_LSA_IS_MAXAGE(lsa)) { -		lsa->expire = NULL;  		thread_add_timer(master, ospf6_lsa_expire, lsa,  				 OSPF_LSA_MAXAGE + lsa->birth.tv_sec  					 - now.tv_sec, diff --git a/ospf6d/ospf6_nssa.c b/ospf6d/ospf6_nssa.c index 2339d339f7..809768fb5c 100644 --- a/ospf6d/ospf6_nssa.c +++ b/ospf6d/ospf6_nssa.c @@ -304,24 +304,16 @@ void ospf6_abr_remove_unapproved_summaries(struct ospf6 *ospf6)  		type = htons(OSPF6_LSTYPE_INTER_ROUTER);  		for (ALL_LSDB_TYPED_ADVRTR(area->lsdb, type, ospf6->router_id,  					   lsa)) { -			if (CHECK_FLAG(lsa->flag, OSPF6_LSA_UNAPPROVED)) { -				lsa->header->age = htons(OSPF_LSA_MAXAGE); -				THREAD_OFF(lsa->refresh); -				thread_execute(master, ospf6_lsa_expire, lsa, -					       0); -			} +			if (CHECK_FLAG(lsa->flag, OSPF6_LSA_UNAPPROVED)) +				ospf6_lsa_premature_aging(lsa);  		}  		/* Inter area prefix LSA */  		type = htons(OSPF6_LSTYPE_INTER_PREFIX);  		for (ALL_LSDB_TYPED_ADVRTR(area->lsdb, type, ospf6->router_id,  					   lsa)) { -			if (CHECK_FLAG(lsa->flag, OSPF6_LSA_UNAPPROVED)) { -				lsa->header->age = htons(OSPF_LSA_MAXAGE); -				THREAD_OFF(lsa->refresh); -				thread_execute(master, ospf6_lsa_expire, lsa, -					       0); -			} +			if (CHECK_FLAG(lsa->flag, OSPF6_LSA_UNAPPROVED)) +				ospf6_lsa_premature_aging(lsa);  		}  	} diff --git a/python/clidef.py b/python/clidef.py index a47cee2d6b..ba7c9072c5 100644 --- a/python/clidef.py +++ b/python/clidef.py @@ -435,6 +435,8 @@ if __name__ == "__main__":      macros.load(os.path.join(basepath, "bgpd/bgp_vty.h"))      # sigh :(      macros["PROTO_REDIST_STR"] = "FRR_REDIST_STR_ISISD" +    macros["PROTO_IP_REDIST_STR"] = "FRR_IP_REDIST_STR_ISISD" +    macros["PROTO_IP6_REDIST_STR"] = "FRR_IP6_REDIST_STR_ISISD"      errors = process_file(args.cfile, ofd, dumpfd, args.all_defun, macros)      if errors != 0:  | 
