diff options
| author | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-02-14 15:52:01 +0100 |
|---|---|---|
| committer | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-09-11 22:11:31 +0200 |
| commit | 5ff2f97d006ca98059ae530346b72be4a8e38004 (patch) | |
| tree | 084766abae0a15b821cf881d0a2c136c11b78734 /isisd/isis_tlvs.c | |
| parent | b46b6e9986c6e01e35795e141330299d2dc5c810 (diff) | |
isisd: Add copy func for SID Structure Sub-Sub-TLV
Add a function to copy an SRv6 SID Structure Sub-Sub-TLV
(RFC 9352 section #9).
Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Diffstat (limited to 'isisd/isis_tlvs.c')
| -rw-r--r-- | isisd/isis_tlvs.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.c b/isisd/isis_tlvs.c index a9cc7e1c6b..fe6f80e0a0 100644 --- a/isisd/isis_tlvs.c +++ b/isisd/isis_tlvs.c @@ -1955,6 +1955,26 @@ static int unpack_subtlv_ipv6_source_prefix(enum isis_tlv_context context, return 0; } +/* Functions related to Sub-Sub-TLV 1 SRv6 SID Structure + * as per RFC 9352 section #9 */ +static struct isis_srv6_sid_structure_subsubtlv * +copy_subsubtlv_srv6_sid_structure( + struct isis_srv6_sid_structure_subsubtlv *sid_struct) +{ + if (!sid_struct) + return NULL; + + struct isis_srv6_sid_structure_subsubtlv *rv = + XCALLOC(MTYPE_ISIS_SUBSUBTLV, sizeof(*rv)); + + rv->loc_block_len = sid_struct->loc_block_len; + rv->loc_node_len = sid_struct->loc_node_len; + rv->func_len = sid_struct->func_len; + rv->arg_len = sid_struct->arg_len; + + return rv; +} + static struct isis_item *copy_item(enum isis_tlv_context context, enum isis_tlv_type type, struct isis_item *item); |
