Commit 5ea937a293 for frr

commit 5ea937a293e95be523357e478291f052bb1907c7
Author: Carmine Scarpitta <cscarpit@cisco.com>
Date:   Thu Sep 3 11:51:13 2026 +0200

    isisd: Factor out SRv6 SID structure initialization

    The End SID and End.X SID creation paths contain duplicate code for
    initializing the SRv6 SID structure fields.

    Add isis_srv6_sid_structure_init() and use it from both paths to keep
    the common initialization in one place.

    Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>

diff --git a/isisd/isis_srv6.c b/isisd/isis_srv6.c
index 790041d2ea..6434dc1816 100644
--- a/isisd/isis_srv6.c
+++ b/isisd/isis_srv6.c
@@ -25,6 +25,16 @@
 DEFINE_MTYPE_STATIC(ISISD, ISIS_SRV6_SID, "ISIS SRv6 Segment ID");
 DEFINE_MTYPE_STATIC(ISISD, ISIS_SRV6_INFO, "ISIS SRv6 information");

+static void isis_srv6_sid_structure_init(struct isis_srv6_sid_structure *structure,
+					 const struct srv6_locator *locator,
+					 enum srv6_endpoint_behavior_codepoint behavior)
+{
+	structure->loc_block_len = locator->block_bits_length;
+	structure->loc_node_len = locator->node_bits_length;
+	structure->func_len = locator->function_bits_length;
+	structure->arg_len = locator->argument_bits_length;
+}
+
 /**
  * Fill in SRv6 SID Structure Sub-Sub-TLV with information from an SRv6 SID.
  *
@@ -241,10 +251,7 @@ struct isis_srv6_sid *isis_srv6_sid_alloc(struct isis_area *area, struct srv6_lo
 	sid->sid = *sid_value;

 	sid->behavior = behavior;
-	sid->structure.loc_block_len = locator->block_bits_length;
-	sid->structure.loc_node_len = locator->node_bits_length;
-	sid->structure.func_len = locator->function_bits_length;
-	sid->structure.arg_len = locator->argument_bits_length;
+	isis_srv6_sid_structure_init(&sid->structure, locator, behavior);
 	sid->locator = locator;
 	sid->area = area;

@@ -323,10 +330,7 @@ void srv6_endx_sid_add_single(struct isis_adjacency *adj, bool backup, struct li
 	sra->type = backup ? ISIS_SRV6_ADJ_BACKUP : ISIS_SRV6_ADJ_NORMAL;
 	sra->behavior = behavior;
 	sra->locator = locator;
-	sra->structure.loc_block_len = locator->block_bits_length;
-	sra->structure.loc_node_len = locator->node_bits_length;
-	sra->structure.func_len = locator->function_bits_length;
-	sra->structure.arg_len = locator->argument_bits_length;
+	isis_srv6_sid_structure_init(&sra->structure, locator, behavior);
 	sra->nexthop = nexthop;

 	sra->sid = *sid_value;