Commit 19342cb617 for frr

commit 19342cb6172c3a25a456e3aac52de8b3b40626c4
Merge: 3215a12809 c6303e892d
Author: Russ White <russ@riw.us>
Date:   Tue Nov 3 22:57:11 2026 -0500

    Merge pull request #23540 from HariniAviz/isis-l1-l2-leaking

    isisd: leak level-1 prefixes into the level-2 LSP

diff --cc isisd/isis_spf.c
index e4bbd22db6,85ce72a092..a66cbc18a1
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@@ -784,37 -792,11 +792,38 @@@ static void process_N(struct isis_spftr
  			   (parent ? print_sys_hostname(parent->N.id) : "null"));
  #endif /* EXTREME_DEBUG */

- 	isis_spf_add2tent(spftree, vtype, id, dist, depth, NULL, psid, parent);
- 	return;
+ 	vertex = isis_spf_add2tent(spftree, vtype, id, dist, depth, NULL, psid, parent);
+ 	if (vertex && noleak)
+ 		SET_FLAG(vertex->flags, F_ISIS_VERTEX_NOLEAK);
  }

 +#ifndef FABRICD
 +/*
 + * Whether a flex-algo computation prunes this link of the LSP: its router does
 + * not participate, or the link fails the definition's constraints. A
 + * pseudonode advertises neither, so a LAN is pruned by its routers' links to
 + * the pseudonode only.
 + */
 +static bool spf_flex_algo_prune_link(struct isis_spftree *spftree, struct isis_lsp *lsp,
 +				     struct isis_extended_reach *reach, bool participates)
 +{
 +	if (!flex_algo_id_valid(spftree->algorithm) || LSP_PSEUDO_ID(lsp->hdr.lsp_id))
 +		return false;
 +
 +	return !participates || isis_flex_algo_constraint_drop(spftree, lsp, reach);
 +}
 +
 +/*
 + * Whether the router of this LSP participates in the flex-algo. Finding it
 + * takes a scan of the LSP's fragments, so it is done once per LSP.
 + */
 +static bool spf_flex_algo_participates(struct isis_spftree *spftree, struct isis_lsp *lsp)
 +{
 +	return flex_algo_id_valid(spftree->algorithm) &&
 +	       sr_algorithm_participated(lsp, spftree->algorithm);
 +}
 +#endif /* ifndef FABRICD */
 +
  /*
   * C.2.6 Step 1
   */