mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-02 16:25:18 +00:00
Merge pull request #11667 from louis-6wind/flexalgo-mpls
isisd: Flex-Algo for SR-MPLS
This commit is contained in:
commit
fd4377d9a5
@ -316,12 +316,12 @@ Showing ISIS information
|
||||
Show the ISIS database globally, for a specific LSP id without or with
|
||||
details.
|
||||
|
||||
.. clicmd:: show isis topology [level-1|level-2]
|
||||
.. clicmd:: show isis topology [level-1|level-2] [algorithm (128-255)]
|
||||
|
||||
Show topology IS-IS paths to Intermediate Systems, globally, in area
|
||||
(level-1) or domain (level-2).
|
||||
|
||||
.. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup]
|
||||
.. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup] [algorithm (128-255)]
|
||||
|
||||
Show the ISIS routing table, as determined by the most recent SPF
|
||||
calculation.
|
||||
@ -389,8 +389,7 @@ Traffic Engineering
|
||||
|
||||
:ref:`ospf-traffic-engineering`
|
||||
|
||||
|
||||
.. _debugging-isis:
|
||||
.. _isis-segment-routing:
|
||||
|
||||
Segment Routing
|
||||
===============
|
||||
@ -423,7 +422,7 @@ Known limitations:
|
||||
MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value
|
||||
is 32.
|
||||
|
||||
.. clicmd:: segment-routing prefix <A.B.C.D/M|X:X::X:X/M> <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null] [n-flag-clear]
|
||||
.. clicmd:: segment-routing prefix <A.B.C.D/M|X:X::X:X/M> [algorithm (128-255)] <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null] [n-flag-clear]
|
||||
|
||||
prefix. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR
|
||||
node to request to its neighbor to not pop the label. The 'explicit-null'
|
||||
@ -432,10 +431,164 @@ Known limitations:
|
||||
clear the Node flag that is set by default for Prefix-SIDs associated to
|
||||
loopback addresses. This option is necessary to configure Anycast-SIDs.
|
||||
|
||||
.. clicmd:: show isis segment-routing node
|
||||
.. clicmd:: show isis segment-routing node [algorithm (128-255)]
|
||||
|
||||
Show detailed information about all learned Segment Routing Nodes.
|
||||
|
||||
.. _isis-flex-algo:
|
||||
|
||||
Flex-Algos (Flex-Algo)
|
||||
======================
|
||||
|
||||
*isisd* supports some features of
|
||||
`RFC 9350 <https://tools.ietf.org/html/rfc9350>`_ on an MPLS Segment-Routing
|
||||
dataplane. The compatibility has been tested against Cisco.
|
||||
|
||||
IS-IS uses by default the `Shortest-Path-First` algorithm that basically
|
||||
calculates paths based on the shortest total metric to the destinations.
|
||||
Flex-Algo allows new algorithms to run in parallel to compute paths in different
|
||||
manners, based on metrics (IGP metric or a new type of metrics such as Traffic
|
||||
Engineering (TE) metric and minimum delay...) and constraints. New metric types
|
||||
are not yet implemented but constraints are already operational. Constraints can
|
||||
restrict paths to links with specific affinities or avoid links with specific
|
||||
affinities. Combinations of these are also possible.
|
||||
|
||||
The administrator can configure up to 128 Flex-Algos in an IS-IS area.
|
||||
To do so, it defines a set of Flex-Algo Definitions (FAD) which
|
||||
have the following characteristics:
|
||||
|
||||
- a numeric identifier (ID) between 128 and 255 inclusive
|
||||
- a set of constraints (basically, include or exclude a certain given set of
|
||||
links, designated by a admin-group)
|
||||
- the calculation type (only the `Shortest-Path-First` is currently supported)
|
||||
- the metric type (only the IGP inherited metric type is currently supported)
|
||||
- some additional flags (not supported for the moment).
|
||||
|
||||
A subset of routers advertises the Flex-Algo Definitions (FAD) to the other
|
||||
routers within an area. In order to use a common set of FADs, each router runs a
|
||||
FAD election process for each locally configured algorithm, using the following
|
||||
rules:
|
||||
|
||||
- If a locally configured FAD is not advertised to the area, the router does not
|
||||
participate in the particular flex algorithm.
|
||||
- If a given flex algorithm is running, the participation in this particular
|
||||
flex algorithm stops when its advertisements are over.
|
||||
- A router includes its own FAD in the election process if and only if it is
|
||||
advertised to the other routers.
|
||||
- If only one router advertises the FAD, the FAD is elected.
|
||||
- If several FADs are advertised with different priorities, the one with the
|
||||
highest priority value is selected.
|
||||
- If there are multiple advertisements of the FAD with the same highest
|
||||
priority, the FAD of the router with the highest IS-IS system-ID is
|
||||
selected.
|
||||
|
||||
Routers only use the specifications of the elected FAD regardless of the locally
|
||||
configured definitions. If a router does not support one of the FAD
|
||||
characteristics, it stops participating in the Flex-Algo.
|
||||
|
||||
For each running Flex-Algo, the Segment-Routing SIDs must be
|
||||
configured with values unique to the algorithm. It allows routers to identify
|
||||
which flex algorithm they must use for a given packet.
|
||||
|
||||
The following commands configure Flex-Algo at the 'router isis' configuration
|
||||
level. Segment-Routing prefixes must be configured for the Flex-Algo.
|
||||
|
||||
.. clicmd:: flexible-algorithm (128-255)
|
||||
|
||||
Add a Flex-Algo Definition (FAD) and enter the FAD configuration
|
||||
level. The algorithm ID value is in the range of 128 to 255 inclusive.
|
||||
|
||||
.. clicmd:: no flexible-algorithm (128-255)
|
||||
|
||||
Unconfigure a Flex-Algo Definition.
|
||||
|
||||
.. clicmd:: affinity-map NAME bit-position (0-255)
|
||||
|
||||
Add the specified 'affinity-map'. Affinity-map definitions are used in
|
||||
FADs and in interfaces admin-group definition.
|
||||
|
||||
Affinity-maps format in advertisement TLVs use the extended admin-group
|
||||
format defined in the RFC7308 section 2.2. The extended admin-group uses a
|
||||
256 bits field. If an affinity-map is set, the bit at the extended
|
||||
admin-group 'bit-position' is set 1, else it is set to 0.
|
||||
|
||||
The following commands configure Flex-Algo at the 'router isis' and
|
||||
'flexible-algorithm (128-255)' configuration level.
|
||||
|
||||
.. clicmd:: advertise-definition
|
||||
|
||||
Advertise the current FAD to other IS-IS routers by using specific IS-IS
|
||||
TLVs. By default, the definition is is not shared with other routers.
|
||||
|
||||
A router can advertise a FAD without participating in the Flex-Algo.
|
||||
|
||||
.. clicmd:: priority (0-255)
|
||||
|
||||
Set the specified 'priority' in the current FAD advertisements .
|
||||
|
||||
.. clicmd:: metric-type [igp|te|delay]
|
||||
|
||||
Set the 'metric-type' for the current FAD. 'igp' is
|
||||
the default value and refers to the classic 'Shortest-Path-First' algorithm.
|
||||
If the 'te' or the 'delay' metric is selected, the value is advertised but
|
||||
the flex algorithm is disabled locally because these types are not currently
|
||||
supported.
|
||||
|
||||
.. clicmd:: no metric-type
|
||||
|
||||
Reset the 'metric-type' to the default 'igp' metric.
|
||||
|
||||
.. clicmd:: affinity exclude-any NAME
|
||||
|
||||
Add the specified affinity to the list of exclude-any affinities. The
|
||||
Flex-Algo will compute paths that exclude the segments with any of
|
||||
the specified affinities.
|
||||
|
||||
.. clicmd:: no affinity exclude-any NAME
|
||||
|
||||
Remove the specified affinity to the list of exclude-any affinities.
|
||||
|
||||
.. clicmd:: affinity include-all NAME
|
||||
|
||||
Add the specified affinity to the list of include-all affinities. The
|
||||
Flex-Algo will compute paths that include the segments with all
|
||||
the specified affinities.
|
||||
|
||||
.. clicmd:: no affinity include-all NAME
|
||||
|
||||
Remove the specified affinity to the list of include-all affinities.
|
||||
|
||||
.. clicmd:: affinity include-any NAME
|
||||
|
||||
Add the specified affinity to the list of include-any affinities. The
|
||||
Flex-Algo will compute paths that include the segments with any of
|
||||
the specified affinities.
|
||||
|
||||
.. clicmd:: no affinity include-any NAME
|
||||
|
||||
Remove the specified affinity to the list of include-any affinities.
|
||||
|
||||
The following commands configure Flex-Algo at the 'interface' configuration
|
||||
level.
|
||||
|
||||
.. clicmd:: isis affinity flex-algo NAME
|
||||
|
||||
Add the specified affinity to the interface.
|
||||
|
||||
.. clicmd:: no isis affinity flex-algo NAME
|
||||
|
||||
Remove the specified affinity from the interface.
|
||||
|
||||
The following command show Flex-Algo information:
|
||||
|
||||
.. clicmd:: show isis flex-algo [(128-255)]
|
||||
|
||||
Show information about the elected FADs
|
||||
|
||||
'show isis route', 'show isis topology' and 'show isis segment-routing node'
|
||||
includes an 'algorithm (128-255)' optional argument. See
|
||||
:ref:`showing-isis-information` and :ref:`isis-segment-routing`.
|
||||
|
||||
Debugging ISIS
|
||||
==============
|
||||
|
||||
|
||||
@ -207,10 +207,10 @@ struct fabricd *fabricd_new(struct isis_area *area)
|
||||
rv->area = area;
|
||||
rv->initial_sync_state = FABRICD_SYNC_PENDING;
|
||||
|
||||
rv->spftree =
|
||||
isis_spftree_new(area, &area->lspdb[IS_LEVEL_2 - 1],
|
||||
area->isis->sysid, ISIS_LEVEL2, SPFTREE_IPV4,
|
||||
SPF_TYPE_FORWARD, F_SPFTREE_HOPCOUNT_METRIC);
|
||||
rv->spftree = isis_spftree_new(
|
||||
area, &area->lspdb[IS_LEVEL_2 - 1], area->isis->sysid,
|
||||
ISIS_LEVEL2, SPFTREE_IPV4, SPF_TYPE_FORWARD,
|
||||
F_SPFTREE_HOPCOUNT_METRIC, SR_ALGORITHM_SPF);
|
||||
rv->neighbors = skiplist_new(0, neighbor_entry_list_cmp,
|
||||
neighbor_entry_del_void);
|
||||
rv->neighbors_neighbors = hash_create(neighbor_entry_hash_key,
|
||||
|
||||
91
isisd/isis_affinitymap.c
Normal file
91
isisd/isis_affinitymap.c
Normal file
@ -0,0 +1,91 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/* IS-IS affinity-map
|
||||
* Copyright 2023 6WIND S.A.
|
||||
*/
|
||||
|
||||
#include <zebra.h>
|
||||
#include "lib/if.h"
|
||||
#include "lib/vrf.h"
|
||||
#include "isisd/isisd.h"
|
||||
#include "isisd/isis_affinitymap.h"
|
||||
|
||||
#ifndef FABRICD
|
||||
|
||||
static bool isis_affinity_map_check_use(const char *affmap_name)
|
||||
{
|
||||
struct isis *isis = isis_lookup_by_vrfid(VRF_DEFAULT);
|
||||
struct isis_area *area;
|
||||
struct listnode *area_node, *fa_node;
|
||||
struct flex_algo *fa;
|
||||
struct affinity_map *map;
|
||||
uint16_t pos;
|
||||
|
||||
map = affinity_map_get(affmap_name);
|
||||
pos = map->bit_position;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(isis->area_list, area_node, area)) {
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, fa_node,
|
||||
fa)) {
|
||||
if (admin_group_get(&fa->admin_group_exclude_any,
|
||||
pos) ||
|
||||
admin_group_get(&fa->admin_group_include_any,
|
||||
pos) ||
|
||||
admin_group_get(&fa->admin_group_include_all, pos))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void isis_affinity_map_update(const char *affmap_name, uint16_t old_pos,
|
||||
uint16_t new_pos)
|
||||
{
|
||||
struct isis *isis = isis_lookup_by_vrfid(VRF_DEFAULT);
|
||||
struct listnode *area_node, *fa_node;
|
||||
struct isis_area *area;
|
||||
struct flex_algo *fa;
|
||||
bool changed;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(isis->area_list, area_node, area)) {
|
||||
changed = false;
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, fa_node,
|
||||
fa)) {
|
||||
if (admin_group_get(&fa->admin_group_exclude_any,
|
||||
old_pos)) {
|
||||
admin_group_unset(&fa->admin_group_exclude_any,
|
||||
old_pos);
|
||||
admin_group_set(&fa->admin_group_exclude_any,
|
||||
new_pos);
|
||||
changed = true;
|
||||
}
|
||||
if (admin_group_get(&fa->admin_group_include_any,
|
||||
old_pos)) {
|
||||
admin_group_unset(&fa->admin_group_include_any,
|
||||
old_pos);
|
||||
admin_group_set(&fa->admin_group_include_any,
|
||||
new_pos);
|
||||
changed = true;
|
||||
}
|
||||
if (admin_group_get(&fa->admin_group_include_all,
|
||||
old_pos)) {
|
||||
admin_group_unset(&fa->admin_group_include_all,
|
||||
old_pos);
|
||||
admin_group_set(&fa->admin_group_include_all,
|
||||
new_pos);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void isis_affinity_map_init(void)
|
||||
{
|
||||
affinity_map_init();
|
||||
|
||||
affinity_map_set_check_use_hook(isis_affinity_map_check_use);
|
||||
affinity_map_set_update_hook(isis_affinity_map_update);
|
||||
}
|
||||
|
||||
#endif /* ifndef FABRICD */
|
||||
25
isisd/isis_affinitymap.h
Normal file
25
isisd/isis_affinitymap.h
Normal file
@ -0,0 +1,25 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/* IS-IS affinity-map header
|
||||
* Copyright 2023 6WIND S.A.
|
||||
*/
|
||||
|
||||
#ifndef __ISIS_AFFINITYMAP_H__
|
||||
#define __ISIS_AFFINITYMAP_H__
|
||||
|
||||
#include "lib/affinitymap.h"
|
||||
|
||||
#ifndef FABRICD
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern void isis_affinity_map_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
#endif /* __ISIS_AFFINITYMAP_H__ */
|
||||
446
isisd/isis_cli.c
446
isisd/isis_cli.c
@ -23,6 +23,7 @@
|
||||
#include "isisd/isis_misc.h"
|
||||
#include "isisd/isis_circuit.h"
|
||||
#include "isisd/isis_csm.h"
|
||||
#include "isisd/isis_flex_algo.h"
|
||||
|
||||
#include "isisd/isis_cli_clippy.c"
|
||||
|
||||
@ -1126,6 +1127,53 @@ void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,
|
||||
vty_out(vty, " purge-originator\n");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/admin-group-send-zero
|
||||
*/
|
||||
DEFPY_YANG(isis_admin_group_send_zero, isis_admin_group_send_zero_cmd,
|
||||
"[no] admin-group-send-zero",
|
||||
NO_STR
|
||||
"Allow sending the default admin-group value of 0x00000000.\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./admin-group-send-zero", NB_OP_MODIFY,
|
||||
no ? "false" : "true");
|
||||
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
void cli_show_isis_admin_group_send_zero(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults)
|
||||
{
|
||||
if (!yang_dnode_get_bool(dnode, NULL))
|
||||
vty_out(vty, " no");
|
||||
vty_out(vty, " admin-group-send-zero\n");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/asla-legacy-flag
|
||||
*/
|
||||
DEFPY_HIDDEN(isis_asla_legacy_flag, isis_asla_legacy_flag_cmd,
|
||||
"[no] asla-legacy-flag",
|
||||
NO_STR "Set the legacy flag (aka. L-FLAG) in the ASLA Sub-TLV.\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./asla-legacy-flag", NB_OP_MODIFY,
|
||||
no ? "false" : "true");
|
||||
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
void cli_show_isis_asla_legacy_flag(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults)
|
||||
{
|
||||
if (!yang_dnode_get_bool(dnode, NULL))
|
||||
vty_out(vty, " no");
|
||||
vty_out(vty, " asla-legacy-flag\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/mpls-te
|
||||
*/
|
||||
@ -1769,6 +1817,122 @@ void cli_show_isis_prefix_sid(struct vty *vty, const struct lyd_node *dnode,
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
|
||||
#ifndef FABRICD
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid
|
||||
*/
|
||||
DEFPY_YANG(
|
||||
isis_sr_prefix_sid_algorithm, isis_sr_prefix_sid_algorithm_cmd,
|
||||
"segment-routing prefix <A.B.C.D/M|X:X::X:X/M>$prefix\
|
||||
algorithm (128-255)$algorithm\
|
||||
<absolute$sid_type (16-1048575)$sid_value|index$sid_type (0-65535)$sid_value>\
|
||||
[<no-php-flag|explicit-null>$lh_behavior] [n-flag-clear$n_flag_clear]",
|
||||
SR_STR
|
||||
"Prefix SID\n"
|
||||
"IPv4 Prefix\n"
|
||||
"IPv6 Prefix\n"
|
||||
"Algorithm Specific Prefix SID Configuration\n"
|
||||
"Algorithm number\n"
|
||||
"Specify the absolute value of Prefix Segment ID\n"
|
||||
"The Prefix Segment ID value\n"
|
||||
"Specify the index of Prefix Segment ID\n"
|
||||
"The Prefix Segment ID index\n"
|
||||
"Don't request Penultimate Hop Popping (PHP)\n"
|
||||
"Upstream neighbor must replace prefix-sid with explicit null label\n"
|
||||
"Not a node SID\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL);
|
||||
nb_cli_enqueue_change(vty, "./sid-value-type", NB_OP_MODIFY, sid_type);
|
||||
nb_cli_enqueue_change(vty, "./sid-value", NB_OP_MODIFY, sid_value_str);
|
||||
if (lh_behavior) {
|
||||
const char *value;
|
||||
|
||||
if (strmatch(lh_behavior, "no-php-flag"))
|
||||
value = "no-php";
|
||||
else if (strmatch(lh_behavior, "explicit-null"))
|
||||
value = "explicit-null";
|
||||
else
|
||||
value = "php";
|
||||
|
||||
nb_cli_enqueue_change(vty, "./last-hop-behavior", NB_OP_MODIFY,
|
||||
value);
|
||||
} else
|
||||
nb_cli_enqueue_change(vty, "./last-hop-behavior", NB_OP_MODIFY,
|
||||
NULL);
|
||||
nb_cli_enqueue_change(vty, "./n-flag-clear", NB_OP_MODIFY,
|
||||
n_flag_clear ? "true" : "false");
|
||||
|
||||
return nb_cli_apply_changes(
|
||||
vty,
|
||||
"./segment-routing/algorithm-prefix-sids/algorithm-prefix-sid[prefix='%s'][algo='%s']",
|
||||
prefix_str, algorithm_str);
|
||||
}
|
||||
|
||||
DEFPY_YANG(
|
||||
no_isis_sr_prefix_algorithm_sid, no_isis_sr_prefix_sid_algorithm_cmd,
|
||||
"no segment-routing prefix <A.B.C.D/M|X:X::X:X/M>$prefix\
|
||||
algorithm (128-255)$algorithm\
|
||||
[<absolute$sid_type (16-1048575)|index (0-65535)> [<no-php-flag|explicit-null>]]\
|
||||
[n-flag-clear]",
|
||||
NO_STR SR_STR
|
||||
"Prefix SID\n"
|
||||
"IPv4 Prefix\n"
|
||||
"IPv6 Prefix\n"
|
||||
"Algorithm Specific Prefix SID Configuration\n"
|
||||
"Algorithm number\n"
|
||||
"Specify the absolute value of Prefix Segment ID\n"
|
||||
"The Prefix Segment ID value\n"
|
||||
"Specify the index of Prefix Segment ID\n"
|
||||
"The Prefix Segment ID index\n"
|
||||
"Don't request Penultimate Hop Popping (PHP)\n"
|
||||
"Upstream neighbor must replace prefix-sid with explicit null label\n"
|
||||
"Not a node SID\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
||||
|
||||
return nb_cli_apply_changes(
|
||||
vty,
|
||||
"./segment-routing/algorithm-prefix-sids/algorithm-prefix-sid[prefix='%s'][algo='%s']",
|
||||
prefix_str, algorithm_str);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
void cli_show_isis_prefix_sid_algorithm(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults)
|
||||
{
|
||||
const char *prefix;
|
||||
const char *lh_behavior;
|
||||
const char *sid_value_type;
|
||||
const char *sid_value;
|
||||
bool n_flag_clear;
|
||||
uint32_t algorithm;
|
||||
|
||||
prefix = yang_dnode_get_string(dnode, "./prefix");
|
||||
sid_value_type = yang_dnode_get_string(dnode, "./sid-value-type");
|
||||
sid_value = yang_dnode_get_string(dnode, "./sid-value");
|
||||
algorithm = yang_dnode_get_uint32(dnode, "./algo");
|
||||
lh_behavior = yang_dnode_get_string(dnode, "./last-hop-behavior");
|
||||
n_flag_clear = yang_dnode_get_bool(dnode, "./n-flag-clear");
|
||||
|
||||
vty_out(vty, " segment-routing prefix %s", prefix);
|
||||
vty_out(vty, " algorithm %u", algorithm);
|
||||
if (strmatch(sid_value_type, "absolute"))
|
||||
vty_out(vty, " absolute");
|
||||
else
|
||||
vty_out(vty, " index");
|
||||
vty_out(vty, " %s", sid_value);
|
||||
|
||||
if (strmatch(lh_behavior, "no-php"))
|
||||
vty_out(vty, " no-php-flag");
|
||||
else if (strmatch(lh_behavior, "explicit-null"))
|
||||
vty_out(vty, " explicit-null");
|
||||
if (n_flag_clear)
|
||||
vty_out(vty, " n-flag-clear");
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/fast-reroute/level-{1,2}/lfa/priority-limit
|
||||
@ -2558,6 +2722,24 @@ void cli_show_ip_isis_circ_type(struct vty *vty, const struct lyd_node *dnode,
|
||||
}
|
||||
}
|
||||
|
||||
static int ag_change(struct vty *vty, int argc, struct cmd_token **argv,
|
||||
const char *xpath, bool no, int start_idx)
|
||||
{
|
||||
for (int i = start_idx; i < argc; i++)
|
||||
nb_cli_enqueue_change(vty, xpath,
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE,
|
||||
argv[i]->arg);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
static int ag_iter_cb(const struct lyd_node *dnode, void *arg)
|
||||
{
|
||||
struct vty *vty = (struct vty *)arg;
|
||||
|
||||
vty_out(vty, " %s", yang_dnode_get_string(dnode, "."));
|
||||
return YANG_ITER_CONTINUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-interface:lib/interface/frr-isisd:isis/network-type
|
||||
*/
|
||||
@ -3182,6 +3364,250 @@ void cli_show_isis_mpls_if_ldp_sync_holddown(struct vty *vty,
|
||||
yang_dnode_get_string(dnode, NULL));
|
||||
}
|
||||
|
||||
DEFPY_YANG_NOSH(flex_algo, flex_algo_cmd, "flex-algo (128-255)$algorithm",
|
||||
"Flexible Algorithm\n"
|
||||
"Flexible Algorithm Number\n")
|
||||
{
|
||||
int ret;
|
||||
char xpath[XPATH_MAXLEN + 37];
|
||||
|
||||
snprintf(xpath, sizeof(xpath),
|
||||
"%s/flex-algos/flex-algo[flex-algo='%ld']", VTY_CURR_XPATH,
|
||||
algorithm);
|
||||
|
||||
nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL);
|
||||
|
||||
ret = nb_cli_apply_changes(
|
||||
vty, "./flex-algos/flex-algo[flex-algo='%ld']", algorithm);
|
||||
if (ret == CMD_SUCCESS)
|
||||
VTY_PUSH_XPATH(ISIS_FLEX_ALGO_NODE, xpath);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
DEFPY_YANG(no_flex_algo, no_flex_algo_cmd, "no flex-algo (128-255)$algorithm",
|
||||
NO_STR
|
||||
"Flexible Algorithm\n"
|
||||
"Flexible Algorithm Number\n")
|
||||
{
|
||||
char xpath[XPATH_MAXLEN + 37];
|
||||
|
||||
snprintf(xpath, sizeof(xpath),
|
||||
"%s/flex-algos/flex-algo[flex-algo='%ld']", VTY_CURR_XPATH,
|
||||
algorithm);
|
||||
|
||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath)) {
|
||||
vty_out(vty, "ISIS flex-algo %ld isn't exist.\n", algorithm);
|
||||
return CMD_ERR_NO_MATCH;
|
||||
}
|
||||
|
||||
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
||||
return nb_cli_apply_changes_clear_pending(
|
||||
vty, "./flex-algos/flex-algo[flex-algo='%ld']", algorithm);
|
||||
}
|
||||
|
||||
DEFPY_YANG(advertise_definition, advertise_definition_cmd,
|
||||
"[no] advertise-definition",
|
||||
NO_STR "Advertise Local Flexible Algorithm\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./advertise-definition",
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE,
|
||||
no ? NULL : "true");
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_YANG(affinity_include_any, affinity_include_any_cmd,
|
||||
"[no] affinity include-any NAME...",
|
||||
NO_STR
|
||||
"Affinity configuration\n"
|
||||
"Any Include with\n"
|
||||
"Include NAME list\n")
|
||||
{
|
||||
const char *xpath = "./affinity-include-anies/affinity-include-any";
|
||||
|
||||
return ag_change(vty, argc, argv, xpath, no, no ? 3 : 2);
|
||||
}
|
||||
|
||||
DEFPY_YANG(affinity_include_all, affinity_include_all_cmd,
|
||||
"[no] affinity include-all NAME...",
|
||||
NO_STR
|
||||
"Affinity configuration\n"
|
||||
"All Include with\n"
|
||||
"Include NAME list\n")
|
||||
{
|
||||
const char *xpath = "./affinity-include-alls/affinity-include-all";
|
||||
|
||||
return ag_change(vty, argc, argv, xpath, no, no ? 3 : 2);
|
||||
}
|
||||
|
||||
DEFPY_YANG(affinity_exclude_any, affinity_exclude_any_cmd,
|
||||
"[no] affinity exclude-any NAME...",
|
||||
NO_STR
|
||||
"Affinity configuration\n"
|
||||
"Any Exclude with\n"
|
||||
"Exclude NAME list\n")
|
||||
{
|
||||
const char *xpath = "./affinity-exclude-anies/affinity-exclude-any";
|
||||
|
||||
return ag_change(vty, argc, argv, xpath, no, no ? 3 : 2);
|
||||
}
|
||||
|
||||
DEFPY_YANG(prefix_metric, prefix_metric_cmd, "[no] prefix-metric",
|
||||
NO_STR "Use Flex-Algo Prefix Metric\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./prefix-metric",
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE, NULL);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_YANG(dplane_sr_mpls, dplane_sr_mpls_cmd, "[no] dataplane sr-mpls",
|
||||
NO_STR
|
||||
"Advertise and participate in the specified Data-Planes\n"
|
||||
"Advertise and participate in SR-MPLS data-plane\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./dplane-sr-mpls",
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE, NULL);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_HIDDEN(dplane_srv6, dplane_srv6_cmd, "[no] dataplane srv6",
|
||||
NO_STR
|
||||
"Advertise and participate in the specified Data-Planes\n"
|
||||
"Advertise and participate in SRv6 data-plane\n")
|
||||
{
|
||||
|
||||
nb_cli_enqueue_change(vty, "./dplane-srv6",
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE, NULL);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_HIDDEN(dplane_ip, dplane_ip_cmd, "[no] dataplane ip",
|
||||
NO_STR
|
||||
"Advertise and participate in the specified Data-Planes\n"
|
||||
"Advertise and participate in IP data-plane\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./dplane-ip",
|
||||
no ? NB_OP_DESTROY : NB_OP_CREATE, NULL);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_YANG(metric_type, metric_type_cmd,
|
||||
"[no] metric-type [igp$igp|te$te|delay$delay]",
|
||||
NO_STR
|
||||
"Metric-type used by flex-algo calculation\n"
|
||||
"Use IGP metric (default)\n"
|
||||
"Use Delay as metric\n"
|
||||
"Use Traffic Engineering metric\n")
|
||||
{
|
||||
const char *type = NULL;
|
||||
|
||||
if (igp) {
|
||||
type = "igp";
|
||||
} else if (te) {
|
||||
type = "te-default";
|
||||
} else if (delay) {
|
||||
type = "min-uni-link-delay";
|
||||
} else {
|
||||
vty_out(vty, "Error: unknown metric type\n");
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
if (!igp)
|
||||
vty_out(vty,
|
||||
"Warning: this version can advertise a Flex-Algorithm Definition (FAD) with the %s metric.\n"
|
||||
"However, participation in a Flex-Algorithm with such a metric is not yet supported.\n",
|
||||
type);
|
||||
|
||||
nb_cli_enqueue_change(vty, "./metric-type",
|
||||
no ? NB_OP_DESTROY : NB_OP_MODIFY,
|
||||
no ? NULL : type);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_YANG(priority, priority_cmd, "[no] priority (0-255)$priority",
|
||||
NO_STR
|
||||
"Flex-Algo definition priority\n"
|
||||
"Priority value\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "./priority",
|
||||
no ? NB_OP_DESTROY : NB_OP_MODIFY,
|
||||
no ? NULL : priority_str);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
void cli_show_isis_flex_algo(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults)
|
||||
{
|
||||
uint32_t algorithm;
|
||||
enum flex_algo_metric_type metric_type;
|
||||
uint32_t priority;
|
||||
char type_str[10];
|
||||
|
||||
algorithm = yang_dnode_get_uint32(dnode, "./flex-algo");
|
||||
vty_out(vty, " flex-algo %u\n", algorithm);
|
||||
|
||||
if (yang_dnode_exists(dnode, "./advertise-definition"))
|
||||
vty_out(vty, " advertise-definition\n");
|
||||
|
||||
if (yang_dnode_exists(dnode, "./dplane-sr-mpls"))
|
||||
vty_out(vty, " dataplane sr-mpls\n");
|
||||
if (yang_dnode_exists(dnode, "./dplane-srv6"))
|
||||
vty_out(vty, " dataplane srv6\n");
|
||||
if (yang_dnode_exists(dnode, "./dplane-ip"))
|
||||
vty_out(vty, " dataplane ip\n");
|
||||
|
||||
if (yang_dnode_exists(dnode, "./prefix-metric"))
|
||||
vty_out(vty, " prefix-metric\n");
|
||||
|
||||
if (yang_dnode_exists(dnode, "./metric-type")) {
|
||||
metric_type = yang_dnode_get_enum(dnode, "./metric-type");
|
||||
if (metric_type != MT_IGP) {
|
||||
flex_algo_metric_type_print(type_str, sizeof(type_str),
|
||||
metric_type);
|
||||
vty_out(vty, " metric-type %s\n", type_str);
|
||||
}
|
||||
}
|
||||
|
||||
if (yang_dnode_exists(dnode, "./priority")) {
|
||||
priority = yang_dnode_get_uint32(dnode, "./priority");
|
||||
if (priority != FLEX_ALGO_PRIO_DEFAULT)
|
||||
vty_out(vty, " priority %u\n", priority);
|
||||
}
|
||||
|
||||
if (yang_dnode_exists(dnode,
|
||||
"./affinity-include-alls/affinity-include-all")) {
|
||||
vty_out(vty, " affinity include-all");
|
||||
yang_dnode_iterate(
|
||||
ag_iter_cb, vty, dnode,
|
||||
"./affinity-include-alls/affinity-include-all");
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
|
||||
if (yang_dnode_exists(
|
||||
dnode, "./affinity-include-anies/affinity-include-any")) {
|
||||
vty_out(vty, " affinity include-any");
|
||||
yang_dnode_iterate(
|
||||
ag_iter_cb, vty, dnode,
|
||||
"./affinity-include-anies/affinity-include-any");
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
|
||||
if (yang_dnode_exists(
|
||||
dnode, "./affinity-exclude-anies/affinity-exclude-any")) {
|
||||
vty_out(vty, " affinity exclude-any");
|
||||
yang_dnode_iterate(
|
||||
ag_iter_cb, vty, dnode,
|
||||
"./affinity-exclude-anies/affinity-exclude-any");
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
void cli_show_isis_flex_algo_end(struct vty *vty, const struct lyd_node *dnode)
|
||||
{
|
||||
vty_out(vty, " !\n");
|
||||
}
|
||||
|
||||
|
||||
void isis_cli_init(void)
|
||||
{
|
||||
install_element(CONFIG_NODE, &router_isis_cmd);
|
||||
@ -3240,6 +3666,9 @@ void isis_cli_init(void)
|
||||
|
||||
install_element(ISIS_NODE, &area_purge_originator_cmd);
|
||||
|
||||
install_element(ISIS_NODE, &isis_admin_group_send_zero_cmd);
|
||||
install_element(ISIS_NODE, &isis_asla_legacy_flag_cmd);
|
||||
|
||||
install_element(ISIS_NODE, &isis_mpls_te_on_cmd);
|
||||
install_element(ISIS_NODE, &no_isis_mpls_te_on_cmd);
|
||||
install_element(ISIS_NODE, &isis_mpls_te_router_addr_cmd);
|
||||
@ -3263,6 +3692,10 @@ void isis_cli_init(void)
|
||||
install_element(ISIS_NODE, &no_isis_sr_node_msd_cmd);
|
||||
install_element(ISIS_NODE, &isis_sr_prefix_sid_cmd);
|
||||
install_element(ISIS_NODE, &no_isis_sr_prefix_sid_cmd);
|
||||
#ifndef FABRICD
|
||||
install_element(ISIS_NODE, &isis_sr_prefix_sid_algorithm_cmd);
|
||||
install_element(ISIS_NODE, &no_isis_sr_prefix_sid_algorithm_cmd);
|
||||
#endif /* ifndef FABRICD */
|
||||
install_element(ISIS_NODE, &isis_frr_lfa_priority_limit_cmd);
|
||||
install_element(ISIS_NODE, &isis_frr_lfa_tiebreaker_cmd);
|
||||
install_element(ISIS_NODE, &isis_frr_lfa_load_sharing_cmd);
|
||||
@ -3319,6 +3752,19 @@ void isis_cli_init(void)
|
||||
install_element(INTERFACE_NODE, &isis_mpls_if_ldp_sync_cmd);
|
||||
install_element(INTERFACE_NODE, &isis_mpls_if_ldp_sync_holddown_cmd);
|
||||
install_element(INTERFACE_NODE, &no_isis_mpls_if_ldp_sync_holddown_cmd);
|
||||
|
||||
install_element(ISIS_NODE, &flex_algo_cmd);
|
||||
install_element(ISIS_NODE, &no_flex_algo_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &advertise_definition_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &affinity_include_any_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &affinity_include_all_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &affinity_exclude_any_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &dplane_sr_mpls_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &dplane_srv6_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &dplane_ip_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &prefix_metric_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &metric_type_cmd);
|
||||
install_element(ISIS_FLEX_ALGO_NODE, &priority_cmd);
|
||||
}
|
||||
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
336
isisd/isis_flex_algo.c
Normal file
336
isisd/isis_flex_algo.c
Normal file
@ -0,0 +1,336 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* isis_flex_algo.c: IS-IS Flexible Algorithm
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#include <zebra.h>
|
||||
|
||||
#include "memory.h"
|
||||
#include "stream.h"
|
||||
#include "sbuf.h"
|
||||
#include "network.h"
|
||||
#include "command.h"
|
||||
#include "bitfield.h"
|
||||
|
||||
#include "isisd/isisd.h"
|
||||
#include "isisd/isis_tlvs.h"
|
||||
#include "isisd/isis_common.h"
|
||||
#include "isisd/isis_mt.h"
|
||||
#include "isisd/isis_misc.h"
|
||||
#include "isisd/isis_adjacency.h"
|
||||
#include "isisd/isis_circuit.h"
|
||||
#include "isisd/isis_pdu.h"
|
||||
#include "isisd/isis_lsp.h"
|
||||
#include "isisd/isis_spf.h"
|
||||
#include "isisd/isis_te.h"
|
||||
#include "isisd/isis_sr.h"
|
||||
#include "isisd/isis_spf_private.h"
|
||||
#include "isisd/isis_flex_algo.h"
|
||||
|
||||
#ifndef FABRICD
|
||||
DEFINE_MTYPE_STATIC(ISISD, FLEX_ALGO, "ISIS Flex Algo");
|
||||
|
||||
void *isis_flex_algo_data_alloc(void *voidarg)
|
||||
{
|
||||
struct isis_flex_algo_alloc_arg *arg = voidarg;
|
||||
struct isis_flex_algo_data *data;
|
||||
|
||||
data = XCALLOC(MTYPE_FLEX_ALGO, sizeof(*data));
|
||||
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) {
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
|
||||
if (!(arg->area->is_type & level))
|
||||
continue;
|
||||
data->spftree[tree][level - 1] = isis_spftree_new(
|
||||
arg->area, &arg->area->lspdb[level - 1],
|
||||
arg->area->isis->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, 0, arg->algorithm);
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void isis_flex_algo_data_free(void *voiddata)
|
||||
{
|
||||
struct isis_flex_algo_data *data = voiddata;
|
||||
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++)
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++)
|
||||
if (data->spftree[tree][level - 1])
|
||||
isis_spftree_del(
|
||||
data->spftree[tree][level - 1]);
|
||||
}
|
||||
|
||||
static struct isis_router_cap_fad *
|
||||
isis_flex_algo_definition_cmp(struct isis_router_cap_fad *elected,
|
||||
struct isis_router_cap_fad *fa)
|
||||
{
|
||||
if (!elected || fa->fad.priority > elected->fad.priority ||
|
||||
(fa->fad.priority == elected->fad.priority &&
|
||||
lsp_id_cmp(fa->sysid, elected->sysid) > 0))
|
||||
return fa;
|
||||
|
||||
return elected;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Look up the flex-algo definition with the highest priority in the LSP
|
||||
* Database (LSDB). If the value of priority is the same, the flex-algo
|
||||
* definition with the highest sysid will be selected.
|
||||
* @param algorithm flex-algo algorithm number
|
||||
* @param area pointer
|
||||
* @param local router capability Flex-Algo Definition (FAD) double pointer.
|
||||
* - fad is NULL: use the local router capability FAD from LSDB for the
|
||||
* election.
|
||||
* - fad is not NULL and *fad is NULL: use no local router capability FAD for
|
||||
* the election.
|
||||
* - fad and *fad are not NULL: uses the *fad local definition instead of the
|
||||
* local definition from LSDB for the election.
|
||||
* @return elected flex-algo-definition object if exist, else NULL
|
||||
*/
|
||||
static struct isis_router_cap_fad *
|
||||
_isis_flex_algo_elected(int algorithm, const struct isis_area *area,
|
||||
struct isis_router_cap_fad **fad)
|
||||
{
|
||||
struct flex_algo *flex_ago;
|
||||
const struct isis_lsp *lsp;
|
||||
struct isis_router_cap_fad *fa, *elected = NULL;
|
||||
|
||||
if (!flex_algo_id_valid(algorithm))
|
||||
return NULL;
|
||||
|
||||
/* No elected FAD if the algorithm is not locally configured */
|
||||
flex_ago = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!flex_ago)
|
||||
return NULL;
|
||||
|
||||
/* No elected FAD if no data-plane is enabled
|
||||
* Currently, only Segment-Routing MPLS is supported.
|
||||
* Segment-Routing SRv6 and IP will be configured in the future.
|
||||
*/
|
||||
if (!CHECK_FLAG(flex_ago->dataplanes, FLEX_ALGO_SR_MPLS))
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* Perform FAD comparison. First, compare the priority, and if they are
|
||||
* the same, compare the sys-id.
|
||||
*/
|
||||
/* clang-format off */
|
||||
frr_each_const(lspdb, &area->lspdb[ISIS_LEVEL1 - 1], lsp) {
|
||||
/* clang-format on */
|
||||
|
||||
if (!lsp->tlvs || !lsp->tlvs->router_cap)
|
||||
continue;
|
||||
|
||||
if (lsp->own_lsp && fad)
|
||||
continue;
|
||||
|
||||
fa = lsp->tlvs->router_cap->fads[algorithm];
|
||||
|
||||
if (!fa)
|
||||
continue;
|
||||
|
||||
assert(algorithm == fa->fad.algorithm);
|
||||
|
||||
memcpy(fa->sysid, lsp->hdr.lsp_id, ISIS_SYS_ID_LEN + 2);
|
||||
|
||||
elected = isis_flex_algo_definition_cmp(elected, fa);
|
||||
}
|
||||
|
||||
if (fad && *fad)
|
||||
elected = isis_flex_algo_definition_cmp(elected, *fad);
|
||||
|
||||
return elected;
|
||||
}
|
||||
|
||||
struct isis_router_cap_fad *isis_flex_algo_elected(int algorithm,
|
||||
const struct isis_area *area)
|
||||
{
|
||||
return _isis_flex_algo_elected(algorithm, area, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check the Flex-Algo Definition is supported by the current FRR version
|
||||
* @param flex-algo
|
||||
* @return true if supported else false
|
||||
*/
|
||||
bool isis_flex_algo_supported(struct flex_algo *fad)
|
||||
{
|
||||
if (fad->calc_type != CALC_TYPE_SPF)
|
||||
return false;
|
||||
if (fad->metric_type != MT_IGP)
|
||||
return false;
|
||||
if (fad->flags != 0)
|
||||
return false;
|
||||
if (fad->exclude_srlg)
|
||||
return false;
|
||||
if (fad->unsupported_subtlv)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Look for the elected Flex-Algo Definition and check that it is
|
||||
* supported by the current FRR version
|
||||
* @param algorithm flex-algo algorithm number
|
||||
* @param area pointer
|
||||
* @param local router capability Flex-Algo Definition (FAD) double pointer.
|
||||
* @return elected flex-algo-definition object if exist and supported, else NULL
|
||||
*/
|
||||
static struct isis_router_cap_fad *
|
||||
_isis_flex_algo_elected_supported(int algorithm, const struct isis_area *area,
|
||||
struct isis_router_cap_fad **fad)
|
||||
{
|
||||
struct isis_router_cap_fad *elected_fad;
|
||||
|
||||
elected_fad = _isis_flex_algo_elected(algorithm, area, fad);
|
||||
if (!elected_fad)
|
||||
return NULL;
|
||||
|
||||
if (isis_flex_algo_supported(&elected_fad->fad))
|
||||
return elected_fad;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct isis_router_cap_fad *
|
||||
isis_flex_algo_elected_supported(int algorithm, const struct isis_area *area)
|
||||
{
|
||||
return _isis_flex_algo_elected_supported(algorithm, area, NULL);
|
||||
}
|
||||
|
||||
struct isis_router_cap_fad *
|
||||
isis_flex_algo_elected_supported_local_fad(int algorithm,
|
||||
const struct isis_area *area,
|
||||
struct isis_router_cap_fad **fad)
|
||||
{
|
||||
return _isis_flex_algo_elected_supported(algorithm, area, fad);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check LSP is participating specified SR Algorithm
|
||||
*
|
||||
* @param lsp IS-IS lsp
|
||||
* @param algorithm SR Algorithm
|
||||
* @return Return true if sr-algorithm tlv includes specified
|
||||
* algorithm in router capability tlv
|
||||
*/
|
||||
bool sr_algorithm_participated(const struct isis_lsp *lsp, uint8_t algorithm)
|
||||
{
|
||||
if (!lsp || !lsp->tlvs || !lsp->tlvs->router_cap)
|
||||
return false;
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++)
|
||||
if (lsp->tlvs->router_cap->algo[i] == algorithm)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool isis_flex_algo_constraint_drop(struct isis_spftree *spftree,
|
||||
struct isis_lsp *lsp,
|
||||
struct isis_extended_reach *reach)
|
||||
{
|
||||
bool ret;
|
||||
struct isis_ext_subtlvs *subtlvs = reach->subtlvs;
|
||||
uint8_t lspid_orig[ISIS_SYS_ID_LEN + 2];
|
||||
uint8_t lspid_neigh[ISIS_SYS_ID_LEN + 2];
|
||||
struct isis_router_cap_fad *fad;
|
||||
struct isis_asla_subtlvs *asla;
|
||||
struct listnode *node;
|
||||
uint32_t *link_admin_group = NULL;
|
||||
uint32_t link_ext_admin_group_bitmap0;
|
||||
struct admin_group *link_ext_admin_group = NULL;
|
||||
|
||||
fad = isis_flex_algo_elected_supported(spftree->algorithm,
|
||||
spftree->area);
|
||||
if (!fad)
|
||||
return true;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(subtlvs->aslas, node, asla)) {
|
||||
if (!CHECK_FLAG(asla->standard_apps, ISIS_SABM_FLAG_X))
|
||||
continue;
|
||||
if (asla->legacy) {
|
||||
if (IS_SUBTLV(subtlvs, EXT_ADM_GRP))
|
||||
link_admin_group = &subtlvs->adm_group;
|
||||
|
||||
if (IS_SUBTLV(subtlvs, EXT_EXTEND_ADM_GRP) &&
|
||||
admin_group_nb_words(&subtlvs->ext_admin_group) !=
|
||||
0)
|
||||
link_ext_admin_group =
|
||||
&subtlvs->ext_admin_group;
|
||||
} else {
|
||||
if (IS_SUBTLV(asla, EXT_ADM_GRP))
|
||||
link_admin_group = &asla->admin_group;
|
||||
if (IS_SUBTLV(asla, EXT_EXTEND_ADM_GRP) &&
|
||||
admin_group_nb_words(&asla->ext_admin_group) != 0)
|
||||
link_ext_admin_group = &asla->ext_admin_group;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* RFC7308 section 2.3.1
|
||||
* A receiving node that notices that the AG differs from the first 32
|
||||
* bits of the EAG SHOULD report this mismatch to the operator.
|
||||
*/
|
||||
if (link_admin_group && link_ext_admin_group) {
|
||||
link_ext_admin_group_bitmap0 =
|
||||
admin_group_get_offset(link_ext_admin_group, 0);
|
||||
if (*link_admin_group != link_ext_admin_group_bitmap0) {
|
||||
memcpy(lspid_orig, lsp->hdr.lsp_id,
|
||||
ISIS_SYS_ID_LEN + 2);
|
||||
memcpy(lspid_neigh, reach->id, ISIS_SYS_ID_LEN + 2);
|
||||
zlog_warn(
|
||||
"ISIS-SPF: LSP from %pLS neighbor %pLS. Admin-group 0x%08x differs from ext admin-group 0x%08x.",
|
||||
lspid_orig, lspid_neigh, *link_admin_group,
|
||||
link_ext_admin_group_bitmap0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Exclude Any
|
||||
*/
|
||||
if (!admin_group_zero(&fad->fad.admin_group_exclude_any)) {
|
||||
ret = admin_group_match_any(&fad->fad.admin_group_exclude_any,
|
||||
link_admin_group,
|
||||
link_ext_admin_group);
|
||||
if (ret)
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Include Any
|
||||
*/
|
||||
if (!admin_group_zero(&fad->fad.admin_group_include_any)) {
|
||||
ret = admin_group_match_any(&fad->fad.admin_group_include_any,
|
||||
link_admin_group,
|
||||
link_ext_admin_group);
|
||||
if (!ret)
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Include All
|
||||
*/
|
||||
if (!admin_group_zero(&fad->fad.admin_group_include_all)) {
|
||||
ret = admin_group_match_all(&fad->fad.admin_group_include_all,
|
||||
link_admin_group,
|
||||
link_ext_admin_group);
|
||||
if (!ret)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* ifndef FABRICD */
|
||||
55
isisd/isis_flex_algo.h
Normal file
55
isisd/isis_flex_algo.h
Normal file
@ -0,0 +1,55 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* isis_flex_algo.h: IS-IS Flexible Algorithm
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#ifndef ISIS_FLEX_ALGO_H
|
||||
#define ISIS_FLEX_ALGO_H
|
||||
|
||||
#include "flex_algo.h"
|
||||
#include "isisd/isis_constants.h"
|
||||
|
||||
#ifndef FABRICD
|
||||
|
||||
struct isis_flex_algo_data {
|
||||
struct isis_spftree *spftree[SPFTREE_COUNT][ISIS_LEVELS];
|
||||
struct isis_area *area;
|
||||
};
|
||||
|
||||
struct isis_flex_algo_alloc_arg {
|
||||
uint8_t algorithm;
|
||||
struct isis_area *area;
|
||||
};
|
||||
|
||||
void *isis_flex_algo_data_alloc(void *arg);
|
||||
void isis_flex_algo_data_free(void *data);
|
||||
|
||||
struct isis_router_cap_fad *
|
||||
isis_flex_algo_elected(int algorithm, const struct isis_area *area);
|
||||
bool isis_flex_algo_supported(struct flex_algo *fad);
|
||||
struct isis_router_cap_fad *
|
||||
isis_flex_algo_elected_supported(int algorithm, const struct isis_area *area);
|
||||
struct isis_router_cap_fad *
|
||||
isis_flex_algo_elected_supported_local_fad(int algorithm,
|
||||
const struct isis_area *area,
|
||||
struct isis_router_cap_fad **fad);
|
||||
struct isis_lsp;
|
||||
bool sr_algorithm_participated(const struct isis_lsp *lsp, uint8_t algorithm);
|
||||
|
||||
bool isis_flex_algo_constraint_drop(struct isis_spftree *spftree,
|
||||
struct isis_lsp *lsp,
|
||||
struct isis_extended_reach *reach);
|
||||
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
#endif /* ISIS_FLEX_ALGO_H */
|
||||
@ -355,6 +355,7 @@ bool isis_lfa_excise_node_check(const struct isis_spftree *spftree,
|
||||
|
||||
struct tilfa_find_pnode_prefix_sid_args {
|
||||
uint32_t sid_index;
|
||||
int algorithm;
|
||||
};
|
||||
|
||||
static int tilfa_find_pnode_prefix_sid_cb(const struct prefix *prefix,
|
||||
@ -368,15 +369,17 @@ static int tilfa_find_pnode_prefix_sid_cb(const struct prefix *prefix,
|
||||
if (!subtlvs || subtlvs->prefix_sids.count == 0)
|
||||
return LSP_ITER_CONTINUE;
|
||||
|
||||
psid = (struct isis_prefix_sid *)subtlvs->prefix_sids.head;
|
||||
|
||||
/* Require the node flag to be set. */
|
||||
if (!CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_NODE))
|
||||
return LSP_ITER_CONTINUE;
|
||||
|
||||
args->sid_index = psid->value;
|
||||
|
||||
return LSP_ITER_STOP;
|
||||
for (psid = (struct isis_prefix_sid *)subtlvs->prefix_sids.head; psid;
|
||||
psid = psid->next) {
|
||||
/* Require the node flag to be set. */
|
||||
if (!CHECK_FLAG(psid->flags, ISIS_PREFIX_SID_NODE))
|
||||
continue;
|
||||
if (psid->algorithm != args->algorithm)
|
||||
continue;
|
||||
args->sid_index = psid->value;
|
||||
return LSP_ITER_STOP;
|
||||
}
|
||||
return LSP_ITER_CONTINUE;
|
||||
}
|
||||
|
||||
/* Find Prefix-SID associated to a System ID. */
|
||||
@ -390,6 +393,8 @@ static uint32_t tilfa_find_pnode_prefix_sid(struct isis_spftree *spftree,
|
||||
if (!lsp)
|
||||
return UINT32_MAX;
|
||||
|
||||
args.algorithm = spftree->algorithm;
|
||||
|
||||
args.sid_index = UINT32_MAX;
|
||||
isis_lsp_iterate_ip_reach(lsp, spftree->family, spftree->mtid,
|
||||
tilfa_find_pnode_prefix_sid_cb, &args);
|
||||
@ -1098,7 +1103,8 @@ struct isis_spftree *isis_spf_reverse_run(const struct isis_spftree *spftree)
|
||||
spftree_reverse = isis_spftree_new(
|
||||
spftree->area, spftree->lspdb, spftree->sysid, spftree->level,
|
||||
spftree->tree_id, SPF_TYPE_REVERSE,
|
||||
F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES);
|
||||
F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES,
|
||||
spftree->algorithm);
|
||||
isis_run_spf(spftree_reverse);
|
||||
|
||||
return spftree_reverse;
|
||||
@ -1194,7 +1200,8 @@ struct isis_spftree *isis_tilfa_compute(struct isis_area *area,
|
||||
/* Create post-convergence SPF tree. */
|
||||
spftree_pc = isis_spftree_new(area, spftree->lspdb, spftree->sysid,
|
||||
spftree->level, spftree->tree_id,
|
||||
SPF_TYPE_TI_LFA, spftree->flags);
|
||||
SPF_TYPE_TI_LFA, spftree->flags,
|
||||
spftree->algorithm);
|
||||
spftree_pc->lfa.old.spftree = spftree;
|
||||
spftree_pc->lfa.old.spftree_reverse = spftree_reverse;
|
||||
spftree_pc->lfa.protected_resource = *resource;
|
||||
@ -1242,7 +1249,8 @@ int isis_spf_run_neighbors(struct isis_spftree *spftree)
|
||||
adj_node->lfa.spftree = isis_spftree_new(
|
||||
spftree->area, spftree->lspdb, adj_node->sysid,
|
||||
spftree->level, spftree->tree_id, SPF_TYPE_FORWARD,
|
||||
F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES);
|
||||
F_SPFTREE_NO_ADJACENCIES | F_SPFTREE_NO_ROUTES,
|
||||
spftree->algorithm);
|
||||
isis_run_spf(adj_node->lfa.spftree);
|
||||
}
|
||||
|
||||
@ -1722,7 +1730,8 @@ struct isis_spftree *isis_rlfa_compute(struct isis_area *area,
|
||||
/* Create post-convergence SPF tree. */
|
||||
spftree_pc = isis_spftree_new(area, spftree->lspdb, spftree->sysid,
|
||||
spftree->level, spftree->tree_id,
|
||||
SPF_TYPE_RLFA, spftree->flags);
|
||||
SPF_TYPE_RLFA, spftree->flags,
|
||||
spftree->algorithm);
|
||||
spftree_pc->lfa.old.spftree = spftree;
|
||||
spftree_pc->lfa.old.spftree_reverse = spftree_reverse;
|
||||
spftree_pc->lfa.remote.max_metric = max_metric;
|
||||
|
||||
208
isisd/isis_lsp.c
208
isisd/isis_lsp.c
@ -46,6 +46,7 @@
|
||||
#include "isisd/fabricd.h"
|
||||
#include "isisd/isis_tx_queue.h"
|
||||
#include "isisd/isis_nb.h"
|
||||
#include "isisd/isis_flex_algo.h"
|
||||
|
||||
DEFINE_MTYPE_STATIC(ISISD, ISIS_LSP, "ISIS LSP");
|
||||
|
||||
@ -879,6 +880,65 @@ static uint16_t lsp_refresh_time(struct isis_lsp *lsp, uint16_t rem_lifetime)
|
||||
return refresh_time;
|
||||
}
|
||||
|
||||
static void lsp_build_internal_reach_ipv4(struct isis_lsp *lsp,
|
||||
struct isis_area *area,
|
||||
struct prefix_ipv4 *ipv4,
|
||||
uint32_t metric)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfgs[SR_ALGORITHM_COUNT] = {NULL};
|
||||
|
||||
if (area->oldmetric) {
|
||||
lsp_debug(
|
||||
"ISIS (%s): Adding old-style IP reachability for %pFX",
|
||||
area->area_tag, ipv4);
|
||||
isis_tlvs_add_oldstyle_ip_reach(lsp->tlvs, ipv4, metric);
|
||||
}
|
||||
|
||||
if (area->newmetric) {
|
||||
lsp_debug("ISIS (%s): Adding te-style IP reachability for %pFX",
|
||||
area->area_tag, ipv4);
|
||||
|
||||
if (area->srdb.enabled)
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
#ifndef FABRICD
|
||||
if (flex_algo_id_valid(i) &&
|
||||
!isis_flex_algo_elected_supported(i, area))
|
||||
continue;
|
||||
#endif /* ifndef FABRICD */
|
||||
pcfgs[i] =
|
||||
isis_sr_cfg_prefix_find(area, ipv4, i);
|
||||
}
|
||||
|
||||
isis_tlvs_add_extended_ip_reach(lsp->tlvs, ipv4, metric, false,
|
||||
pcfgs);
|
||||
}
|
||||
}
|
||||
|
||||
static void lsp_build_internal_reach_ipv6(struct isis_lsp *lsp,
|
||||
struct isis_area *area,
|
||||
struct prefix_ipv6 *ipv6,
|
||||
uint32_t metric)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfgs[SR_ALGORITHM_COUNT] = {NULL};
|
||||
|
||||
lsp_debug("ISIS (%s): Adding IPv6 reachability for %pFX",
|
||||
area->area_tag, ipv6);
|
||||
|
||||
if (area->srdb.enabled)
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
#ifndef FABRICD
|
||||
if (flex_algo_id_valid(i) &&
|
||||
!isis_flex_algo_elected_supported(i, area))
|
||||
continue;
|
||||
#endif /* ifndef FABRICD */
|
||||
pcfgs[i] = isis_sr_cfg_prefix_find(area, ipv6, i);
|
||||
}
|
||||
|
||||
isis_tlvs_add_ipv6_reach(lsp->tlvs, isis_area_ipv6_topology(area), ipv6,
|
||||
metric, false, pcfgs);
|
||||
}
|
||||
|
||||
|
||||
static void lsp_build_ext_reach_ipv4(struct isis_lsp *lsp,
|
||||
struct isis_area *area)
|
||||
{
|
||||
@ -904,13 +964,23 @@ static void lsp_build_ext_reach_ipv4(struct isis_lsp *lsp,
|
||||
isis_tlvs_add_oldstyle_ip_reach(lsp->tlvs, ipv4,
|
||||
metric);
|
||||
if (area->newmetric) {
|
||||
struct sr_prefix_cfg *pcfg = NULL;
|
||||
struct sr_prefix_cfg *pcfgs[SR_ALGORITHM_COUNT] = {
|
||||
NULL};
|
||||
|
||||
if (area->srdb.enabled)
|
||||
pcfg = isis_sr_cfg_prefix_find(area, ipv4);
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
#ifndef FABRICD
|
||||
if (flex_algo_id_valid(i) &&
|
||||
!isis_flex_algo_elected_supported(
|
||||
i, area))
|
||||
continue;
|
||||
#endif /* ifndef FABRICD */
|
||||
pcfgs[i] = isis_sr_cfg_prefix_find(
|
||||
area, ipv4, i);
|
||||
}
|
||||
|
||||
isis_tlvs_add_extended_ip_reach(lsp->tlvs, ipv4, metric,
|
||||
true, pcfg);
|
||||
true, pcfgs);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -938,14 +1008,24 @@ static void lsp_build_ext_reach_ipv6(struct isis_lsp *lsp,
|
||||
metric = MAX_WIDE_PATH_METRIC;
|
||||
|
||||
if (!src_p || !src_p->prefixlen) {
|
||||
struct sr_prefix_cfg *pcfg = NULL;
|
||||
struct sr_prefix_cfg *pcfgs[SR_ALGORITHM_COUNT] = {
|
||||
NULL};
|
||||
|
||||
if (area->srdb.enabled)
|
||||
pcfg = isis_sr_cfg_prefix_find(area, p);
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
#ifndef FABRICD
|
||||
if (flex_algo_id_valid(i) &&
|
||||
!isis_flex_algo_elected_supported(
|
||||
i, area))
|
||||
continue;
|
||||
#endif /* ifndef FABRICD */
|
||||
pcfgs[i] = isis_sr_cfg_prefix_find(
|
||||
area, p, i);
|
||||
}
|
||||
|
||||
isis_tlvs_add_ipv6_reach(lsp->tlvs,
|
||||
isis_area_ipv6_topology(area),
|
||||
p, metric, true, pcfg);
|
||||
p, metric, true, pcfgs);
|
||||
} else if (isis_area_ipv6_dstsrc_enabled(area)) {
|
||||
isis_tlvs_add_ipv6_dstsrc_reach(lsp->tlvs,
|
||||
ISIS_MT_IPV6_DSTSRC,
|
||||
@ -1062,9 +1142,30 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area)
|
||||
|
||||
/* Add Router Capability TLV. */
|
||||
if (area->isis->router_id != 0) {
|
||||
struct isis_router_cap cap = {};
|
||||
struct isis_router_cap *rcap;
|
||||
#ifndef FABRICD
|
||||
struct isis_router_cap_fad *rcap_fad;
|
||||
struct listnode *node;
|
||||
struct flex_algo *fa;
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
cap.router_id.s_addr = area->isis->router_id;
|
||||
rcap = isis_tlvs_init_router_capability(lsp->tlvs);
|
||||
|
||||
rcap->router_id.s_addr = area->isis->router_id;
|
||||
|
||||
#ifndef FABRICD
|
||||
/* Set flex-algo definitions */
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node,
|
||||
fa)) {
|
||||
if (!fa->advertise_definition)
|
||||
continue;
|
||||
lsp_debug("ISIS (%s): Flex-Algo Definition %u",
|
||||
area->area_tag, fa->algorithm);
|
||||
isis_tlvs_set_router_capability_fad(lsp->tlvs, fa,
|
||||
fa->algorithm,
|
||||
area->isis->sysid);
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
/* Add SR Sub-TLVs if SR is enabled. */
|
||||
if (area->srdb.enabled) {
|
||||
@ -1074,30 +1175,38 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area)
|
||||
/* SRGB first */
|
||||
range_size = srdb->config.srgb_upper_bound
|
||||
- srdb->config.srgb_lower_bound + 1;
|
||||
cap.srgb.flags = ISIS_SUBTLV_SRGB_FLAG_I
|
||||
| ISIS_SUBTLV_SRGB_FLAG_V;
|
||||
cap.srgb.range_size = range_size;
|
||||
cap.srgb.lower_bound = srdb->config.srgb_lower_bound;
|
||||
rcap->srgb.flags = ISIS_SUBTLV_SRGB_FLAG_I |
|
||||
ISIS_SUBTLV_SRGB_FLAG_V;
|
||||
rcap->srgb.range_size = range_size;
|
||||
rcap->srgb.lower_bound = srdb->config.srgb_lower_bound;
|
||||
/* Then Algorithm */
|
||||
cap.algo[0] = SR_ALGORITHM_SPF;
|
||||
cap.algo[1] = SR_ALGORITHM_UNSET;
|
||||
rcap->algo[0] = SR_ALGORITHM_SPF;
|
||||
rcap->algo[1] = SR_ALGORITHM_UNSET;
|
||||
#ifndef FABRICD
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos,
|
||||
node, fa)) {
|
||||
if (fa->advertise_definition)
|
||||
rcap_fad = rcap->fads[fa->algorithm];
|
||||
else
|
||||
rcap_fad = NULL;
|
||||
|
||||
if (!isis_flex_algo_elected_supported_local_fad(
|
||||
fa->algorithm, area, &rcap_fad))
|
||||
continue;
|
||||
lsp_debug("ISIS (%s): SR Algorithm %u",
|
||||
area->area_tag, fa->algorithm);
|
||||
rcap->algo[fa->algorithm] = fa->algorithm;
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
/* SRLB */
|
||||
cap.srlb.flags = 0;
|
||||
rcap->srlb.flags = 0;
|
||||
range_size = srdb->config.srlb_upper_bound
|
||||
- srdb->config.srlb_lower_bound + 1;
|
||||
cap.srlb.range_size = range_size;
|
||||
cap.srlb.lower_bound = srdb->config.srlb_lower_bound;
|
||||
rcap->srlb.range_size = range_size;
|
||||
rcap->srlb.lower_bound = srdb->config.srlb_lower_bound;
|
||||
/* And finally MSD */
|
||||
cap.msd = srdb->config.msd;
|
||||
} else {
|
||||
/* Disable SR Algorithm */
|
||||
cap.algo[0] = SR_ALGORITHM_UNSET;
|
||||
cap.algo[1] = SR_ALGORITHM_UNSET;
|
||||
rcap->msd = srdb->config.msd;
|
||||
}
|
||||
|
||||
isis_tlvs_set_router_capability(lsp->tlvs, &cap);
|
||||
lsp_debug("ISIS (%s): Adding Router Capabilities information",
|
||||
area->area_tag);
|
||||
}
|
||||
|
||||
/* IPv4 address and TE router ID TLVs.
|
||||
@ -1187,31 +1296,9 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area)
|
||||
struct listnode *ipnode;
|
||||
struct prefix_ipv4 *ipv4;
|
||||
for (ALL_LIST_ELEMENTS_RO(circuit->ip_addrs, ipnode,
|
||||
ipv4)) {
|
||||
if (area->oldmetric) {
|
||||
lsp_debug(
|
||||
"ISIS (%s): Adding old-style IP reachability for %pFX",
|
||||
area->area_tag, ipv4);
|
||||
isis_tlvs_add_oldstyle_ip_reach(
|
||||
lsp->tlvs, ipv4, metric);
|
||||
}
|
||||
|
||||
if (area->newmetric) {
|
||||
struct sr_prefix_cfg *pcfg = NULL;
|
||||
|
||||
lsp_debug(
|
||||
"ISIS (%s): Adding te-style IP reachability for %pFX",
|
||||
area->area_tag, ipv4);
|
||||
|
||||
if (area->srdb.enabled)
|
||||
pcfg = isis_sr_cfg_prefix_find(
|
||||
area, ipv4);
|
||||
|
||||
isis_tlvs_add_extended_ip_reach(
|
||||
lsp->tlvs, ipv4, metric, false,
|
||||
pcfg);
|
||||
}
|
||||
}
|
||||
ipv4))
|
||||
lsp_build_internal_reach_ipv4(lsp, area, ipv4,
|
||||
metric);
|
||||
}
|
||||
|
||||
if (circuit->ipv6_router && circuit->ipv6_non_link->count > 0) {
|
||||
@ -1219,22 +1306,9 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area)
|
||||
struct prefix_ipv6 *ipv6;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(circuit->ipv6_non_link,
|
||||
ipnode, ipv6)) {
|
||||
struct sr_prefix_cfg *pcfg = NULL;
|
||||
|
||||
lsp_debug(
|
||||
"ISIS (%s): Adding IPv6 reachability for %pFX",
|
||||
area->area_tag, ipv6);
|
||||
|
||||
if (area->srdb.enabled)
|
||||
pcfg = isis_sr_cfg_prefix_find(area,
|
||||
ipv6);
|
||||
|
||||
isis_tlvs_add_ipv6_reach(
|
||||
lsp->tlvs,
|
||||
isis_area_ipv6_topology(area), ipv6,
|
||||
metric, false, pcfg);
|
||||
}
|
||||
ipnode, ipv6))
|
||||
lsp_build_internal_reach_ipv6(lsp, area, ipv6,
|
||||
metric);
|
||||
}
|
||||
|
||||
switch (circuit->circ_type) {
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
#include "routemap.h"
|
||||
#include "affinitymap.h"
|
||||
|
||||
#include "isisd/isis_affinitymap.h"
|
||||
#include "isisd/isis_constants.h"
|
||||
#include "isisd/isis_common.h"
|
||||
#include "isisd/isis_flags.h"
|
||||
@ -281,7 +282,7 @@ int main(int argc, char **argv, char **envp)
|
||||
#endif /* FABRICD */
|
||||
#ifndef FABRICD
|
||||
isis_cli_init();
|
||||
#endif /* ifdef FABRICD */
|
||||
#endif /* ifndef FABRICD */
|
||||
isis_spf_init();
|
||||
isis_redist_init();
|
||||
isis_route_map_init();
|
||||
@ -290,7 +291,9 @@ int main(int argc, char **argv, char **envp)
|
||||
lsp_init();
|
||||
mt_init();
|
||||
|
||||
affinity_map_init();
|
||||
#ifndef FABRICD
|
||||
isis_affinity_map_init();
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
isis_zebra_init(master, instance);
|
||||
isis_bfd_init(master);
|
||||
|
||||
126
isisd/isis_nb.c
126
isisd/isis_nb.c
@ -102,6 +102,20 @@ const struct frr_yang_module_info frr_isisd_info = {
|
||||
.modify = isis_instance_purge_originator_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/admin-group-send-zero",
|
||||
.cbs = {
|
||||
.cli_show = cli_show_isis_admin_group_send_zero,
|
||||
.modify = isis_instance_admin_group_send_zero_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/asla-legacy-flag",
|
||||
.cbs = {
|
||||
.cli_show = cli_show_isis_asla_legacy_flag,
|
||||
.modify = isis_instance_asla_legacy_flag_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/lsp/mtu",
|
||||
.cbs = {
|
||||
@ -688,6 +702,118 @@ const struct frr_yang_module_info frr_isisd_info = {
|
||||
.modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify,
|
||||
}
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid",
|
||||
.cbs = {
|
||||
.create = isis_instance_segment_routing_algorithm_prefix_sid_create,
|
||||
.destroy = isis_instance_segment_routing_algorithm_prefix_sid_destroy,
|
||||
.pre_validate = isis_instance_segment_routing_algorithm_prefix_sid_pre_validate,
|
||||
.apply_finish = isis_instance_segment_routing_algorithm_prefix_sid_apply_finish,
|
||||
.cli_show = cli_show_isis_prefix_sid_algorithm,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/sid-value-type",
|
||||
.cbs = {
|
||||
.modify = isis_instance_segment_routing_algorithm_prefix_sid_sid_value_type_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/sid-value",
|
||||
.cbs = {
|
||||
.modify = isis_instance_segment_routing_algorithm_prefix_sid_sid_value_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/last-hop-behavior",
|
||||
.cbs = {
|
||||
.modify = isis_instance_segment_routing_algorithm_prefix_sid_last_hop_behavior_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/n-flag-clear",
|
||||
.cbs = {
|
||||
.modify = isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo",
|
||||
.cbs = {
|
||||
.cli_show = cli_show_isis_flex_algo,
|
||||
.cli_show_end = cli_show_isis_flex_algo_end,
|
||||
.create = isis_instance_flex_algo_create,
|
||||
.destroy = isis_instance_flex_algo_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/advertise-definition",
|
||||
.cbs = {
|
||||
.modify = isis_instance_flex_algo_advertise_definition_modify,
|
||||
.destroy = isis_instance_flex_algo_advertise_definition_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-alls/affinity-include-all",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_affinity_include_all_create,
|
||||
.destroy = isis_instance_flex_algo_affinity_include_all_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-anies/affinity-include-any",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_affinity_include_any_create,
|
||||
.destroy = isis_instance_flex_algo_affinity_include_any_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-exclude-anies/affinity-exclude-any",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_affinity_exclude_any_create,
|
||||
.destroy = isis_instance_flex_algo_affinity_exclude_any_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/prefix-metric",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_prefix_metric_create,
|
||||
.destroy = isis_instance_flex_algo_prefix_metric_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/metric-type",
|
||||
.cbs = {
|
||||
.modify = isis_instance_flex_algo_metric_type_modify,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-sr-mpls",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_dplane_sr_mpls_create,
|
||||
.destroy = isis_instance_flex_algo_dplane_sr_mpls_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-srv6",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_dplane_srv6_create,
|
||||
.destroy = isis_instance_flex_algo_dplane_srv6_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-ip",
|
||||
.cbs = {
|
||||
.create = isis_instance_flex_algo_dplane_ip_create,
|
||||
.destroy = isis_instance_flex_algo_dplane_ip_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/priority",
|
||||
.cbs = {
|
||||
.modify = isis_instance_flex_algo_priority_modify,
|
||||
.destroy = isis_instance_flex_algo_priority_destroy,
|
||||
},
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-isisd:isis/instance/mpls/ldp-sync",
|
||||
.cbs = {
|
||||
|
||||
@ -29,6 +29,8 @@ int isis_instance_overload_on_startup_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_advertise_high_metrics_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_metric_style_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_admin_group_send_zero_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_asla_legacy_flag_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_lsp_mtu_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_advertise_passive_only_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_lsp_refresh_interval_level_1_modify(
|
||||
@ -249,6 +251,67 @@ int isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_mo
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_pre_validate(
|
||||
struct nb_cb_pre_validate_args *args);
|
||||
void isis_instance_segment_routing_algorithm_prefix_sid_apply_finish(
|
||||
struct nb_cb_apply_finish_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_type_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_last_hop_behavior_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_create(struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_advertise_definition_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_advertise_definition_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_affinity_include_any_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_affinity_include_any_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_affinity_include_all_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_affinity_include_all_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_affinity_exclude_any_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_affinity_exclude_any_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_prefix_metric_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_prefix_metric_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_dplane_sr_mpls_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_dplane_sr_mpls_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_dplane_srv6_create(struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_dplane_srv6_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_dplane_ip_create(struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_dplane_ip_destroy(struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_metric_type_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_priority_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_priority_destroy(struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_frr_disable_modify(struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_frr_disable_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_affinity_mapping_create(
|
||||
struct nb_cb_create_args *args);
|
||||
int isis_instance_flex_algo_affinity_mapping_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_flex_algo_affinity_mapping_value_modify(
|
||||
struct nb_cb_modify_args *args);
|
||||
int isis_instance_flex_algo_affinity_mapping_value_destroy(
|
||||
struct nb_cb_destroy_args *args);
|
||||
int isis_instance_mpls_ldp_sync_destroy(struct nb_cb_destroy_args *args);
|
||||
int isis_instance_mpls_ldp_sync_create(struct nb_cb_create_args *args);
|
||||
int isis_instance_mpls_ldp_sync_holddown_modify(struct nb_cb_modify_args *args);
|
||||
@ -495,6 +558,12 @@ void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_mpls_te(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_admin_group_send_zero(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_asla_legacy_flag(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_mpls_te_router_addr(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
@ -538,6 +607,9 @@ void cli_show_isis_node_msd(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_prefix_sid(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_prefix_sid_algorithm(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_frr_lfa_priority_limit(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
@ -623,6 +695,9 @@ void cli_show_isis_mpls_if_ldp_sync(struct vty *vty,
|
||||
void cli_show_isis_mpls_if_ldp_sync_holddown(struct vty *vty,
|
||||
const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_flex_algo(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
void cli_show_isis_flex_algo_end(struct vty *vty, const struct lyd_node *dnode);
|
||||
|
||||
/* Notifications. */
|
||||
void isis_notif_db_overload(const struct isis_area *area, bool overload);
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
#include "vrf.h"
|
||||
#include "ldp_sync.h"
|
||||
#include "link_state.h"
|
||||
#include "affinitymap.h"
|
||||
|
||||
#include "isisd/isisd.h"
|
||||
#include "isisd/isis_nb.h"
|
||||
@ -39,8 +40,14 @@
|
||||
#include "isisd/isis_redist.h"
|
||||
#include "isisd/isis_ldp_sync.h"
|
||||
#include "isisd/isis_dr.h"
|
||||
#include "isisd/isis_sr.h"
|
||||
#include "isisd/isis_flex_algo.h"
|
||||
#include "isisd/isis_zebra.h"
|
||||
|
||||
#define AFFINITY_INCLUDE_ANY 0
|
||||
#define AFFINITY_INCLUDE_ALL 1
|
||||
#define AFFINITY_EXCLUDE_ANY 2
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance
|
||||
*/
|
||||
@ -416,6 +423,71 @@ int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args)
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/admin-group-send-zero
|
||||
*/
|
||||
int isis_instance_admin_group_send_zero_modify(struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct isis_circuit *circuit;
|
||||
struct isis_area *area;
|
||||
struct listnode *node;
|
||||
struct flex_algo *fa;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
area->admin_group_send_zero = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
if (area->admin_group_send_zero) {
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node,
|
||||
fa)) {
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_exclude_any);
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_include_any);
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_include_all);
|
||||
}
|
||||
} else {
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node,
|
||||
fa)) {
|
||||
admin_group_disallow_explicit_zero(
|
||||
&fa->admin_group_exclude_any);
|
||||
admin_group_disallow_explicit_zero(
|
||||
&fa->admin_group_include_any);
|
||||
admin_group_disallow_explicit_zero(
|
||||
&fa->admin_group_include_all);
|
||||
}
|
||||
}
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit))
|
||||
isis_link_params_update(circuit, circuit->interface);
|
||||
|
||||
lsp_regenerate_schedule(area, IS_LEVEL_1 | IS_LEVEL_2, 0);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/asla-legacy-flag
|
||||
*/
|
||||
int isis_instance_asla_legacy_flag_modify(struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
area->asla_legacy_flag = yang_dnode_get_bool(args->dnode, NULL);
|
||||
lsp_regenerate_schedule(area, IS_LEVEL_1 | IS_LEVEL_2, 0);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/lsp/mtu
|
||||
*/
|
||||
@ -2276,7 +2348,7 @@ int isis_instance_segment_routing_prefix_sid_map_prefix_sid_create(
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
|
||||
|
||||
pcfg = isis_sr_cfg_prefix_add(area, &prefix);
|
||||
pcfg = isis_sr_cfg_prefix_add(area, &prefix, SR_ALGORITHM_SPF);
|
||||
nb_running_set_entry(args->dnode, pcfg);
|
||||
|
||||
return NB_OK;
|
||||
@ -2466,6 +2538,833 @@ int isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify(
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid
|
||||
*/
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_create(
|
||||
struct nb_cb_create_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
struct prefix prefix;
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
uint32_t algorithm;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./algo");
|
||||
|
||||
pcfg = isis_sr_cfg_prefix_add(area, &prefix, algorithm);
|
||||
pcfg->algorithm = algorithm;
|
||||
nb_running_set_entry(args->dnode, pcfg);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
struct isis_area *area;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
pcfg = nb_running_unset_entry(args->dnode);
|
||||
area = pcfg->area;
|
||||
isis_sr_cfg_prefix_del(pcfg);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_pre_validate(
|
||||
struct nb_cb_pre_validate_args *args)
|
||||
{
|
||||
const struct lyd_node *area_dnode;
|
||||
struct isis_area *area;
|
||||
struct prefix prefix;
|
||||
uint32_t srgb_lbound;
|
||||
uint32_t srgb_ubound;
|
||||
uint32_t srgb_range;
|
||||
uint32_t sid;
|
||||
enum sr_sid_value_type sid_type;
|
||||
struct isis_prefix_sid psid = {};
|
||||
|
||||
yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
|
||||
srgb_lbound = yang_dnode_get_uint32(
|
||||
args->dnode, "../../label-blocks/srgb/lower-bound");
|
||||
srgb_ubound = yang_dnode_get_uint32(
|
||||
args->dnode, "../../label-blocks/srgb/upper-bound");
|
||||
sid = yang_dnode_get_uint32(args->dnode, "./sid-value");
|
||||
sid_type = yang_dnode_get_enum(args->dnode, "./sid-value-type");
|
||||
|
||||
/* Check for invalid indexes/labels. */
|
||||
srgb_range = srgb_ubound - srgb_lbound + 1;
|
||||
psid.value = sid;
|
||||
switch (sid_type) {
|
||||
case SR_SID_VALUE_TYPE_INDEX:
|
||||
if (sid >= srgb_range) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"SID index %u falls outside local SRGB range",
|
||||
sid);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
break;
|
||||
case SR_SID_VALUE_TYPE_ABSOLUTE:
|
||||
if (!IS_MPLS_UNRESERVED_LABEL(sid)) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"Invalid absolute SID %u", sid);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
SET_FLAG(psid.flags, ISIS_PREFIX_SID_VALUE);
|
||||
SET_FLAG(psid.flags, ISIS_PREFIX_SID_LOCAL);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Check for Prefix-SID collisions. */
|
||||
area_dnode = yang_dnode_get_parent(args->dnode, "instance");
|
||||
area = nb_running_get_entry(area_dnode, NULL, false);
|
||||
if (!area)
|
||||
return NB_OK;
|
||||
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) {
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
|
||||
struct isis_spftree *spftree;
|
||||
struct isis_vertex *vertex_psid;
|
||||
|
||||
if (!(area->is_type & level))
|
||||
continue;
|
||||
spftree = area->spftree[tree][level - 1];
|
||||
if (!spftree)
|
||||
continue;
|
||||
|
||||
vertex_psid =
|
||||
isis_spf_prefix_sid_lookup(spftree, &psid);
|
||||
if (vertex_psid &&
|
||||
!prefix_same(&vertex_psid->N.ip.p.dest, &prefix)) {
|
||||
snprintfrr(
|
||||
args->errmsg, args->errmsg_len,
|
||||
"Prefix-SID collision detected, SID %s %u is already in use by prefix %pFX (L%u)",
|
||||
CHECK_FLAG(psid.flags,
|
||||
ISIS_PREFIX_SID_VALUE)
|
||||
? "label"
|
||||
: "index",
|
||||
psid.value, &vertex_psid->N.ip.p.dest,
|
||||
level);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
void isis_instance_segment_routing_algorithm_prefix_sid_apply_finish(
|
||||
struct nb_cb_apply_finish_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
struct isis_area *area;
|
||||
|
||||
pcfg = nb_running_get_entry(args->dnode, NULL, true);
|
||||
area = pcfg->area;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/sid-value-type
|
||||
*/
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_type_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
pcfg = nb_running_get_entry(args->dnode, NULL, true);
|
||||
pcfg->sid_type = yang_dnode_get_enum(args->dnode, NULL);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/sid-value
|
||||
*/
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
pcfg = nb_running_get_entry(args->dnode, NULL, true);
|
||||
pcfg->sid = yang_dnode_get_uint32(args->dnode, NULL);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sid-map/algorithm-prefix-sid/last-hop-behavior
|
||||
*/
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_last_hop_behavior_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
pcfg = nb_running_get_entry(args->dnode, NULL, true);
|
||||
pcfg->last_hop_behavior = yang_dnode_get_enum(args->dnode, NULL);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/segment-routing/algorithm-prefix-sids/algorithm-prefix-sid/n-flag-clear
|
||||
*/
|
||||
int isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
pcfg = nb_running_get_entry(args->dnode, NULL, true);
|
||||
pcfg->n_flag_clear = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo
|
||||
*/
|
||||
int isis_instance_flex_algo_create(struct nb_cb_create_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
struct flex_algo *fa;
|
||||
bool advertise;
|
||||
uint32_t algorithm;
|
||||
uint32_t priority = FLEX_ALGO_PRIO_DEFAULT;
|
||||
struct isis_flex_algo_alloc_arg arg;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./flex-algo");
|
||||
advertise = yang_dnode_exists(args->dnode, "./advertise-definition");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
arg.algorithm = algorithm;
|
||||
arg.area = area;
|
||||
fa = flex_algo_alloc(area->flex_algos, algorithm, &arg);
|
||||
fa->priority = priority;
|
||||
fa->advertise_definition = advertise;
|
||||
if (area->admin_group_send_zero) {
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_exclude_any);
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_include_any);
|
||||
admin_group_allow_explicit_zero(
|
||||
&fa->admin_group_include_all);
|
||||
}
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
uint32_t algorithm;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./flex-algo");
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
flex_algo_delete(area->flex_algos, algorithm);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/advertise-definition
|
||||
*/
|
||||
int isis_instance_flex_algo_advertise_definition_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
struct flex_algo *fa;
|
||||
bool advertise;
|
||||
uint32_t algorithm;
|
||||
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
advertise = yang_dnode_exists(args->dnode, "./../advertise-definition");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
fa->advertise_definition = advertise;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_advertise_definition_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
fa->advertise_definition = false;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
static int isis_instance_flex_algo_affinity_set(struct nb_cb_create_args *args,
|
||||
int type)
|
||||
{
|
||||
struct affinity_map *map;
|
||||
struct isis_area *area;
|
||||
struct admin_group *ag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
const char *val;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "../../flex-algo");
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
val = yang_dnode_get_string(args->dnode, ".");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
map = affinity_map_get(val);
|
||||
if (!map) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"affinity map %s isn't found", val);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
break;
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
map = affinity_map_get(val);
|
||||
if (!map) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"affinity map %s isn't found", val);
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
if (type == AFFINITY_INCLUDE_ANY)
|
||||
ag = &fa->admin_group_include_any;
|
||||
else if (type == AFFINITY_INCLUDE_ALL)
|
||||
ag = &fa->admin_group_include_all;
|
||||
else if (type == AFFINITY_EXCLUDE_ANY)
|
||||
ag = &fa->admin_group_exclude_any;
|
||||
else
|
||||
break;
|
||||
|
||||
admin_group_set(ag, map->bit_position);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
static int
|
||||
isis_instance_flex_algo_affinity_unset(struct nb_cb_destroy_args *args,
|
||||
int type)
|
||||
{
|
||||
struct affinity_map *map;
|
||||
struct isis_area *area;
|
||||
struct admin_group *ag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
const char *val;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "../../flex-algo");
|
||||
area = nb_running_get_entry(args->dnode, NULL, true);
|
||||
val = yang_dnode_get_string(args->dnode, ".");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
map = affinity_map_get(val);
|
||||
if (!map) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"affinity map %s isn't found", val);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
break;
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
map = affinity_map_get(val);
|
||||
if (!map) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"affinity map %s isn't found", val);
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
if (type == AFFINITY_INCLUDE_ANY)
|
||||
ag = &fa->admin_group_include_any;
|
||||
else if (type == AFFINITY_INCLUDE_ALL)
|
||||
ag = &fa->admin_group_include_all;
|
||||
else if (type == AFFINITY_EXCLUDE_ANY)
|
||||
ag = &fa->admin_group_exclude_any;
|
||||
else
|
||||
break;
|
||||
|
||||
admin_group_unset(ag, map->bit_position);
|
||||
if (area->admin_group_send_zero)
|
||||
admin_group_allow_explicit_zero(ag);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-anies/affinity-include-any
|
||||
*/
|
||||
int isis_instance_flex_algo_affinity_include_any_create(
|
||||
struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_set(args, AFFINITY_INCLUDE_ANY);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_affinity_include_any_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_unset(args,
|
||||
AFFINITY_INCLUDE_ANY);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-alls/affinity-include-all
|
||||
*/
|
||||
int isis_instance_flex_algo_affinity_include_all_create(
|
||||
struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_set(args, AFFINITY_INCLUDE_ALL);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_affinity_include_all_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_unset(args,
|
||||
AFFINITY_INCLUDE_ALL);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath:
|
||||
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-exclude-anies/affinity-exclude-any
|
||||
*/
|
||||
int isis_instance_flex_algo_affinity_exclude_any_create(
|
||||
struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_set(args, AFFINITY_EXCLUDE_ANY);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_affinity_exclude_any_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_affinity_unset(args,
|
||||
AFFINITY_EXCLUDE_ANY);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/prefix-metric
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_prefix_metric_create(struct nb_cb_create_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
SET_FLAG(fa->flags, FAD_FLAG_M);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_prefix_metric_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
UNSET_FLAG(fa->flags, FAD_FLAG_M);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
static int isis_instance_flex_algo_dplane_set(struct nb_cb_create_args *args,
|
||||
int type)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
SET_FLAG(fa->dataplanes, type);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
if (type == FLEX_ALGO_SRV6 || type == FLEX_ALGO_IP) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"%s Flex-algo dataplane is not yet supported.",
|
||||
type == FLEX_ALGO_SRV6 ? "SRv6" : "IP");
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
break;
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
static int isis_instance_flex_algo_dplane_unset(struct nb_cb_destroy_args *args,
|
||||
int type)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
UNSET_FLAG(fa->dataplanes, type);
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-sr-mpls
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_dplane_sr_mpls_create(
|
||||
struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_set(args, FLEX_ALGO_SR_MPLS);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_dplane_sr_mpls_destroy(
|
||||
struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_unset(args, FLEX_ALGO_SR_MPLS);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-srv6
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_dplane_srv6_create(struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_set(args, FLEX_ALGO_SRV6);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_dplane_srv6_destroy(struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_unset(args, FLEX_ALGO_SRV6);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-ip
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_dplane_ip_create(struct nb_cb_create_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_set(args, FLEX_ALGO_IP);
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_dplane_ip_destroy(struct nb_cb_destroy_args *args)
|
||||
{
|
||||
return isis_instance_flex_algo_dplane_unset(args, FLEX_ALGO_IP);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/metric-type
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_metric_type_modify(struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
enum flex_algo_metric_type metric_type;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
metric_type = yang_dnode_get_enum(args->dnode, NULL);
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
fa->metric_type = metric_type;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/priority
|
||||
*/
|
||||
|
||||
int isis_instance_flex_algo_priority_modify(struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
uint32_t priority;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
priority = yang_dnode_get_uint32(args->dnode, NULL);
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
fa->priority = priority;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
int isis_instance_flex_algo_priority_destroy(struct nb_cb_destroy_args *args)
|
||||
{
|
||||
struct isis_area *area;
|
||||
const char *area_tag;
|
||||
struct flex_algo *fa;
|
||||
uint32_t algorithm;
|
||||
uint32_t priority = FLEX_ALGO_PRIO_DEFAULT;
|
||||
|
||||
area_tag = yang_dnode_get_string(args->dnode, "../../../area-tag");
|
||||
area = isis_area_lookup(area_tag, VRF_DEFAULT);
|
||||
if (!area)
|
||||
return NB_ERR_RESOURCE;
|
||||
|
||||
algorithm = yang_dnode_get_uint32(args->dnode, "./../flex-algo");
|
||||
priority = yang_dnode_get_uint32(args->dnode, NULL);
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_APPLY:
|
||||
fa = flex_algo_lookup(area->flex_algos, algorithm);
|
||||
if (!fa) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"flex-algo object not found");
|
||||
return NB_ERR_RESOURCE;
|
||||
}
|
||||
fa->priority = priority;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
break;
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
break;
|
||||
}
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-isisd:isis/instance/mpls/ldp-sync
|
||||
*/
|
||||
@ -2588,7 +3487,8 @@ int lib_interface_isis_area_tag_modify(struct nb_cb_modify_args *args)
|
||||
struct isis_circuit *circuit;
|
||||
|
||||
if (args->event == NB_EV_VALIDATE) {
|
||||
circuit = nb_running_get_entry_non_rec(lyd_parent(args->dnode), NULL, false);
|
||||
circuit = nb_running_get_entry_non_rec(lyd_parent(args->dnode),
|
||||
NULL, false);
|
||||
if (circuit) {
|
||||
snprintf(args->errmsg, args->errmsg_len,
|
||||
"Changing area tag is not allowed");
|
||||
|
||||
@ -36,9 +36,12 @@
|
||||
#include "isis_spf_private.h"
|
||||
#include "isis_route.h"
|
||||
#include "isis_zebra.h"
|
||||
#include "isis_flex_algo.h"
|
||||
|
||||
DEFINE_MTYPE_STATIC(ISISD, ISIS_NEXTHOP, "ISIS nexthop");
|
||||
DEFINE_MTYPE_STATIC(ISISD, ISIS_ROUTE_INFO, "ISIS route info");
|
||||
DEFINE_MTYPE_STATIC(ISISD, ISIS_ROUTE_TABLE_INFO, "ISIS route table info");
|
||||
|
||||
|
||||
DEFINE_HOOK(isis_route_update_hook,
|
||||
(struct isis_area * area, struct prefix *prefix,
|
||||
@ -51,8 +54,25 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
|
||||
struct prefix_ipv6 *src_p,
|
||||
struct isis_route_info *route_info);
|
||||
|
||||
static struct isis_nexthop *isis_nexthop_create(int family, union g_addr *ip,
|
||||
ifindex_t ifindex)
|
||||
static struct mpls_label_stack *
|
||||
label_stack_dup(const struct mpls_label_stack *const orig)
|
||||
{
|
||||
struct mpls_label_stack *copy;
|
||||
int array_size;
|
||||
|
||||
if (orig == NULL)
|
||||
return NULL;
|
||||
|
||||
array_size = orig->num_labels * sizeof(mpls_label_t);
|
||||
copy = XCALLOC(MTYPE_ISIS_NEXTHOP_LABELS,
|
||||
sizeof(struct mpls_label_stack) + array_size);
|
||||
copy->num_labels = orig->num_labels;
|
||||
memcpy(copy->label, orig->label, array_size);
|
||||
return copy;
|
||||
}
|
||||
|
||||
static struct isis_nexthop *
|
||||
isis_nexthop_create(int family, const union g_addr *const ip, ifindex_t ifindex)
|
||||
{
|
||||
struct isis_nexthop *nexthop;
|
||||
|
||||
@ -65,12 +85,40 @@ static struct isis_nexthop *isis_nexthop_create(int family, union g_addr *ip,
|
||||
return nexthop;
|
||||
}
|
||||
|
||||
static struct isis_nexthop *
|
||||
isis_nexthop_dup(const struct isis_nexthop *const orig)
|
||||
{
|
||||
struct isis_nexthop *nexthop;
|
||||
|
||||
nexthop = isis_nexthop_create(orig->family, &orig->ip, orig->ifindex);
|
||||
memcpy(nexthop->sysid, orig->sysid, ISIS_SYS_ID_LEN);
|
||||
nexthop->sr = orig->sr;
|
||||
nexthop->label_stack = label_stack_dup(orig->label_stack);
|
||||
|
||||
return nexthop;
|
||||
}
|
||||
|
||||
void isis_nexthop_delete(struct isis_nexthop *nexthop)
|
||||
{
|
||||
XFREE(MTYPE_ISIS_NEXTHOP_LABELS, nexthop->label_stack);
|
||||
XFREE(MTYPE_ISIS_NEXTHOP, nexthop);
|
||||
}
|
||||
|
||||
static struct list *isis_nexthop_list_dup(const struct list *orig)
|
||||
{
|
||||
struct list *copy;
|
||||
struct listnode *node;
|
||||
struct isis_nexthop *nh;
|
||||
struct isis_nexthop *nhcopy;
|
||||
|
||||
copy = list_new();
|
||||
for (ALL_LIST_ELEMENTS_RO(orig, node, nh)) {
|
||||
nhcopy = isis_nexthop_dup(nh);
|
||||
listnode_add(copy, nhcopy);
|
||||
}
|
||||
return copy;
|
||||
}
|
||||
|
||||
static struct isis_nexthop *nexthoplookup(struct list *nexthops, int family,
|
||||
union g_addr *ip, ifindex_t ifindex)
|
||||
{
|
||||
@ -238,13 +286,28 @@ isis_route_info_new(struct prefix *prefix, struct prefix_ipv6 *src_p,
|
||||
|
||||
rinfo->cost = cost;
|
||||
rinfo->depth = depth;
|
||||
rinfo->sr = *sr;
|
||||
rinfo->sr_algo[sr->algorithm] = *sr;
|
||||
rinfo->sr_algo[sr->algorithm].nexthops = rinfo->nexthops;
|
||||
rinfo->sr_algo[sr->algorithm].nexthops_backup =
|
||||
rinfo->backup ? rinfo->backup->nexthops : NULL;
|
||||
|
||||
return rinfo;
|
||||
}
|
||||
|
||||
static void isis_route_info_delete(struct isis_route_info *route_info)
|
||||
{
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
if (!route_info->sr_algo[i].present)
|
||||
continue;
|
||||
|
||||
if (route_info->sr_algo[i].nexthops == route_info->nexthops)
|
||||
continue;
|
||||
|
||||
route_info->sr_algo[i].nexthops->del =
|
||||
(void (*)(void *))isis_nexthop_delete;
|
||||
list_delete(&route_info->sr_algo[i].nexthops);
|
||||
}
|
||||
|
||||
if (route_info->nexthops) {
|
||||
route_info->nexthops->del =
|
||||
(void (*)(void *))isis_nexthop_delete;
|
||||
@ -260,6 +323,27 @@ void isis_route_node_cleanup(struct route_table *table, struct route_node *node)
|
||||
isis_route_info_delete(node->info);
|
||||
}
|
||||
|
||||
struct isis_route_table_info *isis_route_table_info_alloc(uint8_t algorithm)
|
||||
{
|
||||
struct isis_route_table_info *info;
|
||||
|
||||
info = XCALLOC(MTYPE_ISIS_ROUTE_TABLE_INFO, sizeof(*info));
|
||||
info->algorithm = algorithm;
|
||||
return info;
|
||||
}
|
||||
|
||||
void isis_route_table_info_free(void *info)
|
||||
{
|
||||
XFREE(MTYPE_ISIS_ROUTE_TABLE_INFO, info);
|
||||
}
|
||||
|
||||
uint8_t isis_route_table_algorithm(const struct route_table *table)
|
||||
{
|
||||
const struct isis_route_table_info *info = table->info;
|
||||
|
||||
return info ? info->algorithm : 0;
|
||||
}
|
||||
|
||||
static bool isis_sr_psid_info_same(struct isis_sr_psid_info *new,
|
||||
struct isis_sr_psid_info *old)
|
||||
{
|
||||
@ -273,6 +357,9 @@ static bool isis_sr_psid_info_same(struct isis_sr_psid_info *new,
|
||||
|| new->sid.value != old->sid.value)
|
||||
return false;
|
||||
|
||||
if (new->sid.algorithm != old->sid.algorithm)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -313,10 +400,22 @@ static int isis_route_info_same(struct isis_route_info *new,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!isis_sr_psid_info_same(&new->sr, &old->sr)) {
|
||||
if (buf)
|
||||
snprintf(buf, buf_size, "SR input label");
|
||||
return 0;
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
struct isis_sr_psid_info new_sr_algo;
|
||||
struct isis_sr_psid_info old_sr_algo;
|
||||
|
||||
new_sr_algo = new->sr_algo[i];
|
||||
old_sr_algo = old->sr_algo[i];
|
||||
|
||||
if (!isis_sr_psid_info_same(&new_sr_algo, &old_sr_algo)) {
|
||||
if (buf)
|
||||
snprintf(
|
||||
buf, buf_size,
|
||||
"SR input label algo-%u (old: %s, new: %s)",
|
||||
i, old_sr_algo.present ? "yes" : "no",
|
||||
new_sr_algo.present ? "yes" : "no");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (new->nexthops->count != old->nexthops->count) {
|
||||
@ -405,7 +504,9 @@ isis_route_create(struct prefix *prefix, struct prefix_ipv6 *src_p,
|
||||
zlog_debug(
|
||||
"ISIS-Rte (%s): route changed: %pFX, change: %s",
|
||||
area->area_tag, prefix, change_buf);
|
||||
rinfo_new->sr_previous = rinfo_old->sr;
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++)
|
||||
rinfo_new->sr_algo_previous[i] =
|
||||
rinfo_old->sr_algo[i];
|
||||
isis_route_info_delete(rinfo_old);
|
||||
route_info = rinfo_new;
|
||||
UNSET_FLAG(route_info->flag,
|
||||
@ -461,11 +562,42 @@ static void isis_route_remove_previous_sid(struct isis_area *area,
|
||||
* Explicitly uninstall previous Prefix-SID label if it has
|
||||
* changed or was removed.
|
||||
*/
|
||||
if (route_info->sr_previous.present &&
|
||||
(!route_info->sr.present ||
|
||||
route_info->sr_previous.label != route_info->sr.label))
|
||||
isis_zebra_prefix_sid_uninstall(area, prefix, route_info,
|
||||
&route_info->sr_previous);
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
if (route_info->sr_algo_previous[i].present &&
|
||||
(!route_info->sr_algo[i].present ||
|
||||
route_info->sr_algo_previous[i].label !=
|
||||
route_info->sr_algo[i].label))
|
||||
isis_zebra_prefix_sid_uninstall(
|
||||
area, prefix, route_info,
|
||||
&route_info->sr_algo_previous[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void set_merge_route_info_sr_algo(struct isis_route_info *mrinfo,
|
||||
struct isis_route_info *rinfo)
|
||||
{
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
if (rinfo->sr_algo[i].present) {
|
||||
assert(i == rinfo->sr_algo[i].algorithm);
|
||||
assert(rinfo->nexthops);
|
||||
assert(rinfo->backup ? rinfo->backup->nexthops != NULL
|
||||
: true);
|
||||
|
||||
if (mrinfo->sr_algo[i].nexthops != NULL &&
|
||||
mrinfo->sr_algo[i].nexthops != mrinfo->nexthops) {
|
||||
mrinfo->sr_algo[i].nexthops->del =
|
||||
(void (*)(void *))isis_nexthop_delete;
|
||||
list_delete(&mrinfo->sr_algo[i].nexthops);
|
||||
}
|
||||
|
||||
mrinfo->sr_algo[i] = rinfo->sr_algo[i];
|
||||
mrinfo->sr_algo[i].nexthops = isis_nexthop_list_dup(
|
||||
rinfo->sr_algo[i].nexthops);
|
||||
}
|
||||
}
|
||||
|
||||
UNSET_FLAG(rinfo->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
UNSET_FLAG(mrinfo->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
}
|
||||
|
||||
static void isis_route_update(struct isis_area *area, struct prefix *prefix,
|
||||
@ -484,19 +616,35 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
|
||||
/* Install route. */
|
||||
isis_zebra_route_add_route(area->isis, prefix, src_p,
|
||||
route_info);
|
||||
/* Install/reinstall Prefix-SID label. */
|
||||
if (route_info->sr.present)
|
||||
isis_zebra_prefix_sid_install(area, prefix, route_info,
|
||||
&route_info->sr);
|
||||
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
struct isis_sr_psid_info sr_algo;
|
||||
|
||||
sr_algo = route_info->sr_algo[i];
|
||||
|
||||
/*
|
||||
* Install/reinstall Prefix-SID label.
|
||||
*/
|
||||
if (sr_algo.present)
|
||||
isis_zebra_prefix_sid_install(area, prefix,
|
||||
&sr_algo);
|
||||
|
||||
hook_call(isis_route_update_hook, area, prefix,
|
||||
route_info);
|
||||
}
|
||||
|
||||
hook_call(isis_route_update_hook, area, prefix, route_info);
|
||||
|
||||
SET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
UNSET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_RESYNC);
|
||||
} else {
|
||||
/* Uninstall Prefix-SID label. */
|
||||
if (route_info->sr.present)
|
||||
isis_zebra_prefix_sid_uninstall(
|
||||
area, prefix, route_info, &route_info->sr);
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++)
|
||||
if (route_info->sr_algo[i].present)
|
||||
isis_zebra_prefix_sid_uninstall(
|
||||
area, prefix, route_info,
|
||||
&route_info->sr_algo[i]);
|
||||
|
||||
/* Uninstall route. */
|
||||
isis_zebra_route_del_route(area->isis, prefix, src_p,
|
||||
route_info);
|
||||
@ -516,6 +664,7 @@ static void _isis_route_verify_table(struct isis_area *area,
|
||||
#ifdef EXTREME_DEBUG
|
||||
char buff[SRCDEST2STR_BUFFER];
|
||||
#endif /* EXTREME_DEBUG */
|
||||
uint8_t algorithm = isis_route_table_algorithm(table);
|
||||
|
||||
for (rnode = route_top(table); rnode;
|
||||
rnode = srcdest_route_next(rnode)) {
|
||||
@ -538,10 +687,14 @@ static void _isis_route_verify_table(struct isis_area *area,
|
||||
src_p);
|
||||
if (rnode_bck) {
|
||||
rinfo->backup = rnode_bck->info;
|
||||
rinfo->sr_algo[algorithm].nexthops_backup =
|
||||
rinfo->backup->nexthops;
|
||||
UNSET_FLAG(rinfo->flag,
|
||||
ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
} else if (rinfo->backup) {
|
||||
rinfo->backup = NULL;
|
||||
rinfo->sr_algo[algorithm].nexthops_backup =
|
||||
NULL;
|
||||
UNSET_FLAG(rinfo->flag,
|
||||
ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
}
|
||||
@ -573,7 +726,7 @@ static void _isis_route_verify_table(struct isis_area *area,
|
||||
if (CHECK_FLAG(rinfo->flag, ISIS_ROUTE_FLAG_ACTIVE))
|
||||
continue;
|
||||
|
||||
/* Area is either L1 or L2 => we use level route tables
|
||||
/* In case the verify is not for a merge, we use a single table
|
||||
* directly for
|
||||
* validating => no problems with deleting routes. */
|
||||
if (!tables) {
|
||||
@ -581,13 +734,12 @@ static void _isis_route_verify_table(struct isis_area *area,
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If area is L1L2, we work with merge table and
|
||||
* therefore must
|
||||
* delete node from level tables as well before deleting
|
||||
/* If we work on a merged table,
|
||||
* therefore we must
|
||||
* delete node from each table as well before deleting
|
||||
* route info. */
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
|
||||
drnode = srcdest_rnode_lookup(tables[level - 1],
|
||||
dst_p, src_p);
|
||||
for (int i = 0; tables[i]; i++) {
|
||||
drnode = srcdest_rnode_lookup(tables[i], dst_p, src_p);
|
||||
if (!drnode)
|
||||
continue;
|
||||
|
||||
@ -604,10 +756,36 @@ static void _isis_route_verify_table(struct isis_area *area,
|
||||
}
|
||||
}
|
||||
|
||||
static void _isis_route_verify_merge(struct isis_area *area,
|
||||
struct route_table **tables,
|
||||
struct route_table **tables_backup,
|
||||
int tree);
|
||||
|
||||
void isis_route_verify_table(struct isis_area *area, struct route_table *table,
|
||||
struct route_table *table_backup)
|
||||
struct route_table *table_backup, int tree)
|
||||
{
|
||||
_isis_route_verify_table(area, table, table_backup, NULL);
|
||||
struct route_table *tables[SR_ALGORITHM_COUNT] = {table};
|
||||
struct route_table *tables_backup[SR_ALGORITHM_COUNT] = {table_backup};
|
||||
#ifndef FABRICD
|
||||
int tables_next = 1;
|
||||
int level = area->is_type == IS_LEVEL_1 ? ISIS_LEVEL1 : ISIS_LEVEL2;
|
||||
struct listnode *node;
|
||||
struct flex_algo *fa;
|
||||
struct isis_flex_algo_data *data;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node, fa)) {
|
||||
data = fa->data;
|
||||
tables[tables_next] =
|
||||
data->spftree[tree][level - 1]->route_table;
|
||||
tables_backup[tables_next] =
|
||||
data->spftree[tree][level - 1]->route_table_backup;
|
||||
_isis_route_verify_table(area, tables[tables_next],
|
||||
tables_backup[tables_next], NULL);
|
||||
tables_next++;
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
_isis_route_verify_merge(area, tables, tables_backup, tree);
|
||||
}
|
||||
|
||||
/* Function to validate route tables for L1L2 areas. In this case we can't use
|
||||
@ -624,18 +802,27 @@ void isis_route_verify_merge(struct isis_area *area,
|
||||
struct route_table *level1_table,
|
||||
struct route_table *level1_table_backup,
|
||||
struct route_table *level2_table,
|
||||
struct route_table *level2_table_backup)
|
||||
struct route_table *level2_table_backup, int tree)
|
||||
{
|
||||
struct route_table *tables[] = {level1_table, level2_table};
|
||||
struct route_table *tables[] = {level1_table, level2_table, NULL};
|
||||
struct route_table *tables_backup[] = {level1_table_backup,
|
||||
level2_table_backup};
|
||||
level2_table_backup, NULL};
|
||||
_isis_route_verify_merge(area, tables, tables_backup, tree);
|
||||
}
|
||||
|
||||
static void _isis_route_verify_merge(struct isis_area *area,
|
||||
struct route_table **tables,
|
||||
struct route_table **tables_backup,
|
||||
int tree)
|
||||
{
|
||||
struct route_table *merge;
|
||||
struct route_node *rnode, *mrnode;
|
||||
|
||||
merge = srcdest_table_init();
|
||||
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
|
||||
for (rnode = route_top(tables[level - 1]); rnode;
|
||||
for (int i = 0; tables[i]; i++) {
|
||||
uint8_t algorithm = isis_route_table_algorithm(tables[i]);
|
||||
for (rnode = route_top(tables[i]); rnode;
|
||||
rnode = srcdest_route_next(rnode)) {
|
||||
struct isis_route_info *rinfo = rnode->info;
|
||||
struct route_node *rnode_bck;
|
||||
@ -651,14 +838,18 @@ void isis_route_verify_merge(struct isis_area *area,
|
||||
(const struct prefix **)&src_p);
|
||||
|
||||
/* Link primary route to backup route. */
|
||||
rnode_bck = srcdest_rnode_lookup(
|
||||
tables_backup[level - 1], prefix, src_p);
|
||||
rnode_bck = srcdest_rnode_lookup(tables_backup[i],
|
||||
prefix, src_p);
|
||||
if (rnode_bck) {
|
||||
rinfo->backup = rnode_bck->info;
|
||||
rinfo->sr_algo[algorithm].nexthops_backup =
|
||||
rinfo->backup->nexthops;
|
||||
UNSET_FLAG(rinfo->flag,
|
||||
ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
} else if (rinfo->backup) {
|
||||
rinfo->backup = NULL;
|
||||
rinfo->sr_algo[algorithm].nexthops_backup =
|
||||
NULL;
|
||||
UNSET_FLAG(rinfo->flag,
|
||||
ISIS_ROUTE_FLAG_ZEBRA_SYNCED);
|
||||
}
|
||||
@ -667,6 +858,8 @@ void isis_route_verify_merge(struct isis_area *area,
|
||||
struct isis_route_info *mrinfo = mrnode->info;
|
||||
if (mrinfo) {
|
||||
route_unlock_node(mrnode);
|
||||
set_merge_route_info_sr_algo(mrinfo, rinfo);
|
||||
|
||||
if (CHECK_FLAG(mrinfo->flag,
|
||||
ISIS_ROUTE_FLAG_ACTIVE)) {
|
||||
/* Clear the ZEBRA_SYNCED flag on the
|
||||
@ -696,8 +889,9 @@ void isis_route_verify_merge(struct isis_area *area,
|
||||
ISIS_ROUTE_FLAG_ZEBRA_SYNCED)) {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
mrnode->info = rnode->info;
|
||||
}
|
||||
mrnode->info = rnode->info;
|
||||
}
|
||||
}
|
||||
|
||||
@ -710,6 +904,7 @@ void isis_route_invalidate_table(struct isis_area *area,
|
||||
{
|
||||
struct route_node *rode;
|
||||
struct isis_route_info *rinfo;
|
||||
uint8_t algorithm = isis_route_table_algorithm(table);
|
||||
for (rode = route_top(table); rode; rode = srcdest_route_next(rode)) {
|
||||
if (rode->info == NULL)
|
||||
continue;
|
||||
@ -717,6 +912,7 @@ void isis_route_invalidate_table(struct isis_area *area,
|
||||
|
||||
if (rinfo->backup) {
|
||||
rinfo->backup = NULL;
|
||||
rinfo->sr_algo[algorithm].nexthops_backup = NULL;
|
||||
/*
|
||||
* For now, always force routes that have backup
|
||||
* nexthops to be reinstalled.
|
||||
|
||||
@ -30,12 +30,16 @@ struct isis_route_info {
|
||||
uint8_t flag;
|
||||
uint32_t cost;
|
||||
uint32_t depth;
|
||||
struct isis_sr_psid_info sr;
|
||||
struct isis_sr_psid_info sr_previous;
|
||||
struct isis_sr_psid_info sr_algo[SR_ALGORITHM_COUNT];
|
||||
struct isis_sr_psid_info sr_algo_previous[SR_ALGORITHM_COUNT];
|
||||
struct list *nexthops;
|
||||
struct isis_route_info *backup;
|
||||
};
|
||||
|
||||
struct isis_route_table_info {
|
||||
uint8_t algorithm;
|
||||
};
|
||||
|
||||
DECLARE_HOOK(isis_route_update_hook,
|
||||
(struct isis_area * area, struct prefix *prefix,
|
||||
struct isis_route_info *route_info),
|
||||
@ -56,14 +60,14 @@ void isis_route_delete(struct isis_area *area, struct route_node *rode,
|
||||
/* Walk the given table and install new routes to zebra and remove old ones.
|
||||
* route status is tracked using ISIS_ROUTE_FLAG_ACTIVE */
|
||||
void isis_route_verify_table(struct isis_area *area, struct route_table *table,
|
||||
struct route_table *table_backup);
|
||||
struct route_table *table_backup, int tree);
|
||||
|
||||
/* Same as isis_route_verify_table, but merge L1 and L2 routes before */
|
||||
void isis_route_verify_merge(struct isis_area *area,
|
||||
struct route_table *level1_table,
|
||||
struct route_table *level1_table_backup,
|
||||
struct route_table *level2_table,
|
||||
struct route_table *level2_table_backup);
|
||||
struct route_table *level2_table_backup, int tree);
|
||||
|
||||
/* Unset ISIS_ROUTE_FLAG_ACTIVE on all routes. Used before running spf. */
|
||||
void isis_route_invalidate_table(struct isis_area *area,
|
||||
@ -73,9 +77,14 @@ void isis_route_invalidate_table(struct isis_area *area,
|
||||
void isis_route_node_cleanup(struct route_table *table,
|
||||
struct route_node *node);
|
||||
|
||||
|
||||
void isis_route_switchover_nexthop(struct isis_area *area,
|
||||
struct route_table *table, int family,
|
||||
union g_addr *nexthop_addr,
|
||||
ifindex_t ifindex);
|
||||
|
||||
struct isis_route_table_info *isis_route_table_info_alloc(uint8_t algorithm);
|
||||
void isis_route_table_info_free(void *info);
|
||||
uint8_t isis_route_table_algorithm(const struct route_table *table);
|
||||
|
||||
#endif /* _ZEBRA_ISIS_ROUTE_H */
|
||||
|
||||
962
isisd/isis_spf.c
962
isisd/isis_spf.c
File diff suppressed because it is too large
Load Diff
@ -12,6 +12,7 @@
|
||||
#define _ZEBRA_ISIS_SPF_H
|
||||
|
||||
#include "isisd/isis_lfa.h"
|
||||
#include "lib/json.h"
|
||||
|
||||
struct isis_spftree;
|
||||
|
||||
@ -37,16 +38,15 @@ struct isis_spf_adj {
|
||||
#define F_ISIS_SPF_ADJ_METRIC_INFINITY 0x04
|
||||
};
|
||||
|
||||
struct isis_spftree *isis_spftree_new(struct isis_area *area,
|
||||
struct lspdb_head *lspdb,
|
||||
const uint8_t *sysid, int level,
|
||||
enum spf_tree_id tree_id,
|
||||
enum spf_type type, uint8_t flags);
|
||||
struct isis_spftree *
|
||||
isis_spftree_new(struct isis_area *area, struct lspdb_head *lspdb,
|
||||
const uint8_t *sysid, int level, enum spf_tree_id tree_id,
|
||||
enum spf_type type, uint8_t flags, uint8_t algorithm);
|
||||
struct isis_vertex *isis_spf_prefix_sid_lookup(struct isis_spftree *spftree,
|
||||
struct isis_prefix_sid *psid);
|
||||
void isis_spf_invalidate_routes(struct isis_spftree *tree);
|
||||
void isis_spf_verify_routes(struct isis_area *area,
|
||||
struct isis_spftree **trees);
|
||||
void isis_spf_verify_routes(struct isis_area *area, struct isis_spftree **trees,
|
||||
int tree);
|
||||
void isis_spf_switchover_routes(struct isis_area *area,
|
||||
struct isis_spftree **trees, int family,
|
||||
union g_addr *nexthop_ip, ifindex_t ifindex,
|
||||
@ -63,7 +63,7 @@ int _isis_spf_schedule(struct isis_area *area, int level,
|
||||
const char *func, const char *file, int line);
|
||||
void isis_print_spftree(struct vty *vty, struct isis_spftree *spftree);
|
||||
void isis_print_routes(struct vty *vty, struct isis_spftree *spftree,
|
||||
bool prefix_sid, bool backup);
|
||||
json_object **json, bool prefix_sid, bool backup);
|
||||
void isis_spf_init(void);
|
||||
void isis_spf_print(struct isis_spftree *spftree, struct vty *vty);
|
||||
void isis_spf_print_json(struct isis_spftree *spftree,
|
||||
|
||||
@ -349,11 +349,16 @@ struct isis_spftree {
|
||||
uint32_t total[SPF_PREFIX_PRIO_MAX];
|
||||
} protection_counters;
|
||||
} lfa;
|
||||
uint8_t algorithm;
|
||||
uint8_t flags;
|
||||
};
|
||||
#define F_SPFTREE_HOPCOUNT_METRIC 0x01
|
||||
#define F_SPFTREE_NO_ROUTES 0x02
|
||||
#define F_SPFTREE_NO_ADJACENCIES 0x04
|
||||
#ifndef FABRICD
|
||||
/* flex-algo */
|
||||
#define F_SPFTREE_DISABLED 0x08
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
__attribute__((__unused__))
|
||||
static void isis_vertex_id_init(struct isis_vertex *vertex, const void *id,
|
||||
|
||||
@ -57,7 +57,17 @@ static void sr_adj_sid_del(struct sr_adjacency *sra);
|
||||
static inline int sr_prefix_sid_cfg_compare(const struct sr_prefix_cfg *a,
|
||||
const struct sr_prefix_cfg *b)
|
||||
{
|
||||
return prefix_cmp(&a->prefix, &b->prefix);
|
||||
int ret;
|
||||
|
||||
ret = prefix_cmp(&a->prefix, &b->prefix);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
||||
ret = a->algorithm - b->algorithm;
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
DECLARE_RBTREE_UNIQ(srdb_prefix_cfg, struct sr_prefix_cfg, entry,
|
||||
sr_prefix_sid_cfg_compare);
|
||||
@ -331,7 +341,8 @@ int isis_sr_cfg_srlb_update(struct isis_area *area, uint32_t lower_bound,
|
||||
* @return Newly added Prefix-SID configuration structure
|
||||
*/
|
||||
struct sr_prefix_cfg *isis_sr_cfg_prefix_add(struct isis_area *area,
|
||||
const struct prefix *prefix)
|
||||
const struct prefix *prefix,
|
||||
uint8_t algorithm)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
struct interface *ifp;
|
||||
@ -341,6 +352,7 @@ struct sr_prefix_cfg *isis_sr_cfg_prefix_add(struct isis_area *area,
|
||||
pcfg = XCALLOC(MTYPE_ISIS_SR_INFO, sizeof(*pcfg));
|
||||
pcfg->prefix = *prefix;
|
||||
pcfg->area = area;
|
||||
pcfg->algorithm = algorithm;
|
||||
|
||||
/* Pull defaults from the YANG module. */
|
||||
pcfg->sid_type = yang_get_default_enum(
|
||||
@ -386,11 +398,13 @@ void isis_sr_cfg_prefix_del(struct sr_prefix_cfg *pcfg)
|
||||
* @return Configured Prefix-SID structure if found, NULL otherwise
|
||||
*/
|
||||
struct sr_prefix_cfg *isis_sr_cfg_prefix_find(struct isis_area *area,
|
||||
union prefixconstptr prefix)
|
||||
union prefixconstptr prefix,
|
||||
uint8_t algorithm)
|
||||
{
|
||||
struct sr_prefix_cfg pcfg = {};
|
||||
|
||||
prefix_copy(&pcfg.prefix, prefix.p);
|
||||
pcfg.algorithm = algorithm;
|
||||
return srdb_prefix_cfg_find(&area->srdb.config.prefix_sids, &pcfg);
|
||||
}
|
||||
|
||||
@ -405,7 +419,7 @@ void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg, bool external,
|
||||
struct isis_prefix_sid *psid)
|
||||
{
|
||||
/* Set SID algorithm. */
|
||||
psid->algorithm = SR_ALGORITHM_SPF;
|
||||
psid->algorithm = pcfg->algorithm;
|
||||
|
||||
/* Set SID flags. */
|
||||
psid->flags = 0;
|
||||
@ -917,10 +931,12 @@ static int sr_adj_ip_disabled(struct isis_adjacency *adj, int family,
|
||||
*/
|
||||
static int sr_if_new_hook(struct interface *ifp)
|
||||
{
|
||||
struct sr_prefix_cfg *pcfgs[SR_ALGORITHM_COUNT] = {NULL};
|
||||
struct isis_circuit *circuit;
|
||||
struct isis_area *area;
|
||||
struct connected *connected;
|
||||
struct listnode *node;
|
||||
bool need_lsp_regenerate = false;
|
||||
|
||||
/* Get corresponding circuit */
|
||||
circuit = circuit_scan_by_ifp(ifp);
|
||||
@ -937,18 +953,24 @@ static int sr_if_new_hook(struct interface *ifp)
|
||||
* configuration before receiving interface information from zebra.
|
||||
*/
|
||||
FOR_ALL_INTERFACES_ADDRESSES (ifp, connected, node) {
|
||||
struct sr_prefix_cfg *pcfg;
|
||||
|
||||
pcfg = isis_sr_cfg_prefix_find(area, connected->address);
|
||||
if (!pcfg)
|
||||
continue;
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
|
||||
pcfgs[i] = isis_sr_cfg_prefix_find(
|
||||
area, connected->address, i);
|
||||
|
||||
if (sr_prefix_is_node_sid(ifp, &pcfg->prefix)) {
|
||||
pcfg->node_sid = true;
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
if (!pcfgs[i])
|
||||
continue;
|
||||
|
||||
if (sr_prefix_is_node_sid(ifp, &pcfgs[i]->prefix)) {
|
||||
pcfgs[i]->node_sid = true;
|
||||
need_lsp_regenerate = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (need_lsp_regenerate)
|
||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -998,10 +1020,12 @@ char *sr_op2str(char *buf, size_t size, mpls_label_t label_in,
|
||||
* @param area IS-IS area
|
||||
* @param level IS-IS level
|
||||
*/
|
||||
static void show_node(struct vty *vty, struct isis_area *area, int level)
|
||||
static void show_node(struct vty *vty, struct isis_area *area, int level,
|
||||
uint8_t algo)
|
||||
{
|
||||
struct isis_lsp *lsp;
|
||||
struct ttable *tt;
|
||||
char buf[128];
|
||||
|
||||
vty_out(vty, " IS-IS %s SR-Nodes:\n\n", circuit_t2string(level));
|
||||
|
||||
@ -1021,15 +1045,24 @@ static void show_node(struct vty *vty, struct isis_area *area, int level)
|
||||
cap = lsp->tlvs->router_cap;
|
||||
if (!cap)
|
||||
continue;
|
||||
if (cap->algo[algo] == SR_ALGORITHM_UNSET)
|
||||
continue;
|
||||
|
||||
if (cap->algo[algo] == SR_ALGORITHM_SPF)
|
||||
snprintf(buf, sizeof(buf), "SPF");
|
||||
else if (cap->algo[algo] == SR_ALGORITHM_STRICT_SPF)
|
||||
snprintf(buf, sizeof(buf), "S-SPF");
|
||||
#ifndef FABRICD
|
||||
else
|
||||
snprintf(buf, sizeof(buf), "Flex-Algo %d", algo);
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
ttable_add_row(tt, "%pSY|%u - %u|%u - %u|%s|%u",
|
||||
lsp->hdr.lsp_id, cap->srgb.lower_bound,
|
||||
cap->srgb.lower_bound + cap->srgb.range_size - 1,
|
||||
cap->srlb.lower_bound,
|
||||
cap->srlb.lower_bound + cap->srlb.range_size - 1,
|
||||
cap->algo[0] == SR_ALGORITHM_SPF ? "SPF"
|
||||
: "S-SPF",
|
||||
cap->msd);
|
||||
buf, cap->msd);
|
||||
}
|
||||
|
||||
/* Dump the generated table. */
|
||||
@ -1044,15 +1077,31 @@ static void show_node(struct vty *vty, struct isis_area *area, int level)
|
||||
}
|
||||
|
||||
DEFUN(show_sr_node, show_sr_node_cmd,
|
||||
"show " PROTO_NAME " segment-routing node",
|
||||
SHOW_STR
|
||||
PROTO_HELP
|
||||
"show " PROTO_NAME
|
||||
" segment-routing node"
|
||||
#ifndef FABRICD
|
||||
" [algorithm (128-255)]"
|
||||
#endif /* ifndef FABRICD */
|
||||
,
|
||||
SHOW_STR PROTO_HELP
|
||||
"Segment-Routing\n"
|
||||
"Segment-Routing node\n")
|
||||
"Segment-Routing node\n"
|
||||
#ifndef FABRICD
|
||||
"Show Flex-algo nodes\n"
|
||||
"Algorithm number\n"
|
||||
#endif /* ifndef FABRICD */
|
||||
)
|
||||
{
|
||||
struct listnode *node, *inode;
|
||||
struct isis_area *area;
|
||||
uint8_t algorithm = SR_ALGORITHM_SPF;
|
||||
struct isis *isis;
|
||||
#ifndef FABRICD
|
||||
int idx = 0;
|
||||
|
||||
if (argv_find(argv, argc, "algorithm", &idx))
|
||||
algorithm = (uint8_t)strtoul(argv[idx + 1]->arg, NULL, 10);
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(im->isis, inode, isis)) {
|
||||
for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, area)) {
|
||||
@ -1064,7 +1113,7 @@ DEFUN(show_sr_node, show_sr_node_cmd,
|
||||
}
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVELS;
|
||||
level++)
|
||||
show_node(vty, area, level);
|
||||
show_node(vty, area, level, algorithm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -61,6 +61,11 @@ struct isis_sr_psid_info {
|
||||
|
||||
/* Indicates whether the Prefix-SID is present or not. */
|
||||
bool present;
|
||||
|
||||
uint8_t algorithm;
|
||||
|
||||
struct list *nexthops;
|
||||
struct list *nexthops_backup;
|
||||
};
|
||||
|
||||
/* Segment Routing Local Block allocation */
|
||||
@ -147,6 +152,9 @@ struct sr_prefix_cfg {
|
||||
|
||||
/* Backpointer to IS-IS area. */
|
||||
struct isis_area *area;
|
||||
|
||||
/* SR Algorithm number */
|
||||
uint8_t algorithm;
|
||||
};
|
||||
|
||||
/* Per-area IS-IS Segment Routing Data Base (SRDB). */
|
||||
@ -198,11 +206,13 @@ extern int isis_sr_cfg_srgb_update(struct isis_area *area, uint32_t lower_bound,
|
||||
uint32_t upper_bound);
|
||||
extern int isis_sr_cfg_srlb_update(struct isis_area *area, uint32_t lower_bound,
|
||||
uint32_t upper_bound);
|
||||
extern struct sr_prefix_cfg *
|
||||
isis_sr_cfg_prefix_add(struct isis_area *area, const struct prefix *prefix);
|
||||
extern struct sr_prefix_cfg *isis_sr_cfg_prefix_add(struct isis_area *area,
|
||||
const struct prefix *prefix,
|
||||
uint8_t algorithm);
|
||||
extern void isis_sr_cfg_prefix_del(struct sr_prefix_cfg *pcfg);
|
||||
extern struct sr_prefix_cfg *
|
||||
isis_sr_cfg_prefix_find(struct isis_area *area, union prefixconstptr prefix);
|
||||
isis_sr_cfg_prefix_find(struct isis_area *area, union prefixconstptr prefix,
|
||||
uint8_t algorithm);
|
||||
extern void isis_sr_prefix_cfg2subtlv(const struct sr_prefix_cfg *pcfg,
|
||||
bool external,
|
||||
struct isis_prefix_sid *psid);
|
||||
|
||||
172
isisd/isis_te.c
172
isisd/isis_te.c
@ -164,6 +164,154 @@ void isis_mpls_te_term(struct isis_area *area)
|
||||
XFREE(MTYPE_ISIS_MPLS_TE, area->mta);
|
||||
}
|
||||
|
||||
static void isis_link_params_update_asla(struct isis_circuit *circuit,
|
||||
struct interface *ifp)
|
||||
{
|
||||
struct isis_asla_subtlvs *asla;
|
||||
struct listnode *node, *nnode;
|
||||
struct isis_ext_subtlvs *ext = circuit->ext;
|
||||
int i;
|
||||
|
||||
if (!HAS_LINK_PARAMS(ifp)) {
|
||||
list_delete_all_node(ext->aslas);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef FABRICD
|
||||
/* RFC 8919 Application Specific Link-Attributes
|
||||
* is required by flex-algo application ISIS_SABM_FLAG_X
|
||||
*/
|
||||
if (list_isempty(circuit->area->flex_algos->flex_algos))
|
||||
isis_tlvs_free_asla(ext, ISIS_SABM_FLAG_X);
|
||||
else
|
||||
isis_tlvs_find_alloc_asla(ext, ISIS_SABM_FLAG_X);
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
if (list_isempty(ext->aslas))
|
||||
return;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(ext->aslas, node, nnode, asla)) {
|
||||
asla->legacy = circuit->area->asla_legacy_flag;
|
||||
RESET_SUBTLV(asla);
|
||||
|
||||
if (asla->legacy)
|
||||
continue;
|
||||
|
||||
/* Fulfill ASLA subTLVs from interface link parameters */
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_ADM_GRP)) {
|
||||
asla->admin_group = ifp->link_params->admin_grp;
|
||||
SET_SUBTLV(asla, EXT_ADM_GRP);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_ADM_GRP);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_EXTEND_ADM_GRP)) {
|
||||
admin_group_copy(&asla->ext_admin_group,
|
||||
&ifp->link_params->ext_admin_grp);
|
||||
SET_SUBTLV(asla, EXT_EXTEND_ADM_GRP);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_EXTEND_ADM_GRP);
|
||||
|
||||
/* Send admin-group zero for better compatibility
|
||||
* https://www.rfc-editor.org/rfc/rfc7308#section-2.3.2
|
||||
*/
|
||||
if (circuit->area->admin_group_send_zero &&
|
||||
!IS_SUBTLV(asla, EXT_ADM_GRP) &&
|
||||
!IS_SUBTLV(asla, EXT_EXTEND_ADM_GRP)) {
|
||||
asla->admin_group = 0;
|
||||
SET_SUBTLV(asla, EXT_ADM_GRP);
|
||||
admin_group_clear(&asla->ext_admin_group);
|
||||
admin_group_allow_explicit_zero(&asla->ext_admin_group);
|
||||
SET_SUBTLV(asla, EXT_EXTEND_ADM_GRP);
|
||||
}
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_TE_METRIC)) {
|
||||
asla->te_metric = ifp->link_params->te_metric;
|
||||
SET_SUBTLV(asla, EXT_TE_METRIC);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_TE_METRIC);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_DELAY)) {
|
||||
asla->delay = ifp->link_params->av_delay;
|
||||
SET_SUBTLV(asla, EXT_DELAY);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_DELAY);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_MM_DELAY)) {
|
||||
asla->min_delay = ifp->link_params->min_delay;
|
||||
asla->max_delay = ifp->link_params->max_delay;
|
||||
SET_SUBTLV(asla, EXT_MM_DELAY);
|
||||
} else {
|
||||
UNSET_SUBTLV(asla, EXT_MM_DELAY);
|
||||
}
|
||||
|
||||
if (asla->standard_apps == ISIS_SABM_FLAG_X)
|
||||
/* Flex-Algo ASLA does not need the following TE
|
||||
* sub-TLVs
|
||||
*/
|
||||
continue;
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_MAX_BW)) {
|
||||
asla->max_bw = ifp->link_params->max_bw;
|
||||
SET_SUBTLV(asla, EXT_MAX_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_MAX_BW);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_MAX_RSV_BW)) {
|
||||
asla->max_rsv_bw = ifp->link_params->max_rsv_bw;
|
||||
SET_SUBTLV(asla, EXT_MAX_RSV_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_MAX_RSV_BW);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_UNRSV_BW)) {
|
||||
for (i = 0; i < MAX_CLASS_TYPE; i++)
|
||||
asla->unrsv_bw[i] =
|
||||
ifp->link_params->unrsv_bw[i];
|
||||
SET_SUBTLV(asla, EXT_UNRSV_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_UNRSV_BW);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_DELAY_VAR)) {
|
||||
asla->delay_var = ifp->link_params->delay_var;
|
||||
SET_SUBTLV(asla, EXT_DELAY_VAR);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_DELAY_VAR);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_PKT_LOSS)) {
|
||||
asla->pkt_loss = ifp->link_params->pkt_loss;
|
||||
SET_SUBTLV(asla, EXT_PKT_LOSS);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_PKT_LOSS);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_RES_BW)) {
|
||||
asla->res_bw = ifp->link_params->res_bw;
|
||||
SET_SUBTLV(asla, EXT_RES_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_RES_BW);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_AVA_BW)) {
|
||||
asla->ava_bw = ifp->link_params->ava_bw;
|
||||
SET_SUBTLV(asla, EXT_AVA_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_AVA_BW);
|
||||
|
||||
if (IS_PARAM_SET(ifp->link_params, LP_USE_BW)) {
|
||||
asla->use_bw = ifp->link_params->use_bw;
|
||||
SET_SUBTLV(asla, EXT_USE_BW);
|
||||
} else
|
||||
UNSET_SUBTLV(asla, EXT_USE_BW);
|
||||
}
|
||||
|
||||
|
||||
for (ALL_LIST_ELEMENTS(ext->aslas, node, nnode, asla)) {
|
||||
if (!asla->legacy && NO_SUBTLV(asla) &&
|
||||
admin_group_nb_words(&asla->ext_admin_group) == 0)
|
||||
/* remove ASLA without info from the list of ASLAs to
|
||||
* not send void ASLA
|
||||
*/
|
||||
isis_tlvs_del_asla_flex_algo(ext, asla);
|
||||
}
|
||||
}
|
||||
|
||||
/* Main initialization / update function of the MPLS TE Circuit context */
|
||||
/* Call when interface TE Link parameters are modified */
|
||||
void isis_link_params_update(struct isis_circuit *circuit,
|
||||
@ -210,6 +358,19 @@ void isis_link_params_update(struct isis_circuit *circuit,
|
||||
} else
|
||||
UNSET_SUBTLV(ext, EXT_EXTEND_ADM_GRP);
|
||||
|
||||
/* Send admin-group zero for better compatibility
|
||||
* https://www.rfc-editor.org/rfc/rfc7308#section-2.3.2
|
||||
*/
|
||||
if (circuit->area->admin_group_send_zero &&
|
||||
!IS_SUBTLV(ext, EXT_ADM_GRP) &&
|
||||
!IS_SUBTLV(ext, EXT_EXTEND_ADM_GRP)) {
|
||||
ext->adm_group = 0;
|
||||
SET_SUBTLV(ext, EXT_ADM_GRP);
|
||||
admin_group_clear(&ext->ext_admin_group);
|
||||
admin_group_allow_explicit_zero(&ext->ext_admin_group);
|
||||
SET_SUBTLV(ext, EXT_EXTEND_ADM_GRP);
|
||||
}
|
||||
|
||||
/* If known, register local IPv4 addr from ip_addr list */
|
||||
if (listcount(circuit->ip_addrs) != 0) {
|
||||
addr = (struct prefix_ipv4 *)listgetdata(
|
||||
@ -331,6 +492,8 @@ void isis_link_params_update(struct isis_circuit *circuit,
|
||||
ext->status = 0;
|
||||
}
|
||||
|
||||
isis_link_params_update_asla(circuit, ifp);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -503,7 +666,12 @@ int isis_mpls_te_update(struct interface *ifp)
|
||||
isis_link_params_update(circuit, ifp);
|
||||
|
||||
/* ... and LSP */
|
||||
if (circuit->area && IS_MPLS_TE(circuit->area->mta))
|
||||
if (circuit->area &&
|
||||
(IS_MPLS_TE(circuit->area->mta)
|
||||
#ifndef FABRICD
|
||||
|| !list_isempty(circuit->area->flex_algos->flex_algos)
|
||||
#endif /* ifndef FABRICD */
|
||||
))
|
||||
lsp_regenerate_schedule(circuit->area, circuit->is_type, 0);
|
||||
|
||||
rc = 0;
|
||||
@ -611,7 +779,7 @@ static struct ls_vertex *lsp_to_vertex(struct ls_ted *ted, struct isis_lsp *lsp)
|
||||
lnode.srgb.flag = cap->srgb.flags;
|
||||
lnode.srgb.lower_bound = cap->srgb.lower_bound;
|
||||
lnode.srgb.range_size = cap->srgb.range_size;
|
||||
for (int i = 0; i < SR_ALGORITHM_COUNT; i++)
|
||||
for (int i = 0; i < LIB_LS_SR_ALGO_COUNT; i++)
|
||||
lnode.algo[i] = cap->algo[i];
|
||||
}
|
||||
|
||||
|
||||
1133
isisd/isis_tlvs.c
1133
isisd/isis_tlvs.c
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,12 @@
|
||||
#ifndef ISIS_TLVS_H
|
||||
#define ISIS_TLVS_H
|
||||
|
||||
#include "segment_routing.h"
|
||||
#include "openbsd-tree.h"
|
||||
#include "prefix.h"
|
||||
#include "flex_algo.h"
|
||||
#include "affinitymap.h"
|
||||
|
||||
|
||||
DECLARE_MTYPE(ISIS_SUBTLV);
|
||||
|
||||
@ -102,7 +106,7 @@ struct isis_spine_leaf {
|
||||
enum isis_threeway_state {
|
||||
ISIS_THREEWAY_DOWN = 2,
|
||||
ISIS_THREEWAY_INITIALIZING = 1,
|
||||
ISIS_THREEWAY_UP = 0
|
||||
ISIS_THREEWAY_UP = 0,
|
||||
};
|
||||
|
||||
struct isis_threeway_adj {
|
||||
@ -177,19 +181,18 @@ struct isis_lan_adj_sid {
|
||||
#define ISIS_ROUTER_CAP_FLAG_D 0x02
|
||||
#define ISIS_ROUTER_CAP_SIZE 5
|
||||
|
||||
/* Number of supported algorithm for Segment Routing.
|
||||
* Right now only 2 have been standardized:
|
||||
* - 0: SPF
|
||||
* - 1: Strict SPF
|
||||
*/
|
||||
#define SR_ALGORITHM_COUNT 2
|
||||
#define SR_ALGORITHM_SPF 0
|
||||
#define SR_ALGORITHM_STRICT_SPF 1
|
||||
#define SR_ALGORITHM_UNSET 255
|
||||
|
||||
#define MSD_TYPE_BASE_MPLS_IMPOSITION 0x01
|
||||
#define MSD_TLV_SIZE 2
|
||||
|
||||
#ifndef FABRICD
|
||||
struct isis_router_cap_fad;
|
||||
struct isis_router_cap_fad {
|
||||
uint8_t sysid[ISIS_SYS_ID_LEN + 2];
|
||||
|
||||
struct flex_algo fad;
|
||||
};
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
struct isis_router_cap {
|
||||
struct in_addr router_id;
|
||||
uint8_t flags;
|
||||
@ -200,6 +203,11 @@ struct isis_router_cap {
|
||||
uint8_t algo[SR_ALGORITHM_COUNT];
|
||||
/* RFC 8491 */
|
||||
uint8_t msd;
|
||||
|
||||
#ifndef FABRICD
|
||||
/* RFC9350 Flex-Algorithm */
|
||||
struct isis_router_cap_fad *fads[SR_ALGORITHM_COUNT];
|
||||
#endif /* ifndef FABRICD */
|
||||
};
|
||||
|
||||
struct isis_item {
|
||||
@ -309,7 +317,7 @@ enum isis_tlv_context {
|
||||
ISIS_CONTEXT_SUBTLV_NE_REACH,
|
||||
ISIS_CONTEXT_SUBTLV_IP_REACH,
|
||||
ISIS_CONTEXT_SUBTLV_IPV6_REACH,
|
||||
ISIS_CONTEXT_MAX
|
||||
ISIS_CONTEXT_MAX,
|
||||
};
|
||||
|
||||
struct isis_subtlvs {
|
||||
@ -394,7 +402,22 @@ enum isis_tlv_type {
|
||||
ISIS_SUBTLV_AVA_BW = 38,
|
||||
ISIS_SUBTLV_USE_BW = 39,
|
||||
|
||||
ISIS_SUBTLV_MAX = 40
|
||||
/* RFC 7308 */
|
||||
ISIS_SUBTLV_EXT_ADMIN_GRP = 14,
|
||||
|
||||
/* RFC 8919 */
|
||||
ISIS_SUBTLV_ASLA = 16,
|
||||
|
||||
/* draft-ietf-lsr-isis-srv6-extensions */
|
||||
ISIS_SUBTLV_SID_END = 5,
|
||||
ISIS_SUBTLV_SID_END_X = 43,
|
||||
|
||||
ISIS_SUBTLV_MAX = 40,
|
||||
|
||||
/* draft-ietf-lsr-isis-srv6-extensions */
|
||||
ISIS_SUBSUBTLV_SID_STRUCTURE = 1,
|
||||
|
||||
ISIS_SUBSUBTLV_MAX = 256,
|
||||
};
|
||||
|
||||
/* subTLVs size for TE and SR */
|
||||
@ -422,19 +445,39 @@ enum ext_subtlv_size {
|
||||
/* RFC 7810 */
|
||||
ISIS_SUBTLV_MM_DELAY_SIZE = 8,
|
||||
|
||||
/* RFC9350 - Flex-Algorithm */
|
||||
ISIS_SUBTLV_FAD = 26,
|
||||
ISIS_SUBTLV_FAD_MIN_SIZE = 4,
|
||||
|
||||
ISIS_SUBTLV_HDR_SIZE = 2,
|
||||
ISIS_SUBTLV_DEF_SIZE = 4,
|
||||
|
||||
/* RFC 7308 */
|
||||
ISIS_SUBTLV_EXT_ADMIN_GRP = 14,
|
||||
ISIS_SUBTLV_MAX_SIZE = 180,
|
||||
|
||||
ISIS_SUBTLV_MAX_SIZE = 180
|
||||
/* draft-ietf-lsr-isis-srv6-extensions */
|
||||
ISIS_SUBSUBTLV_SID_STRUCTURE_SIZE = 4,
|
||||
|
||||
ISIS_SUBSUBTLV_HDR_SIZE = 2,
|
||||
ISIS_SUBSUBTLV_MAX_SIZE = 180,
|
||||
|
||||
/* RFC9350 - Flex-Algorithm */
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_FLAGS_SIZE = 1,
|
||||
};
|
||||
|
||||
enum ext_subsubtlv_types {
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_EXCAG = 1,
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_INCANYAG = 2,
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_INCALLAG = 3,
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_FLAGS = 4,
|
||||
ISIS_SUBTLV_FAD_SUBSUBTLV_ESRLG = 5,
|
||||
};
|
||||
|
||||
/* Macros to manage the optional presence of EXT subTLVs */
|
||||
#define SET_SUBTLV(s, t) ((s->status) |= (t))
|
||||
#define UNSET_SUBTLV(s, t) ((s->status) &= ~(t))
|
||||
#define IS_SUBTLV(s, t) (s->status & t)
|
||||
#define RESET_SUBTLV(s) (s->status = 0)
|
||||
#define NO_SUBTLV(s) (s->status == 0)
|
||||
|
||||
#define EXT_DISABLE 0x000000
|
||||
#define EXT_ADM_GRP 0x000001
|
||||
@ -506,6 +549,45 @@ struct isis_ext_subtlvs {
|
||||
/* Segment Routing Adjacency & LAN Adjacency Segment ID */
|
||||
struct isis_item_list adj_sid;
|
||||
struct isis_item_list lan_sid;
|
||||
|
||||
struct list *aslas;
|
||||
};
|
||||
|
||||
/* RFC 8919 */
|
||||
#define ISIS_SABM_FLAG_R 0x80 /* RSVP-TE */
|
||||
#define ISIS_SABM_FLAG_S 0x40 /* Segment Routing Policy */
|
||||
#define ISIS_SABM_FLAG_L 0x20 /* Loop-Free Alternate */
|
||||
#define ISIS_SABM_FLAG_X 0x10 /* Flex-Algorithm - RFC9350 */
|
||||
|
||||
#define ASLA_APP_IDENTIFIER_BIT_LENGTH 1
|
||||
#define ASLA_LEGACY_FLAG 0x80
|
||||
#define ASLA_APPS_LENGTH_MASK 0x7f
|
||||
|
||||
struct isis_asla_subtlvs {
|
||||
uint32_t status;
|
||||
|
||||
/* Application Specific Link Attribute - RFC 8919 */
|
||||
bool legacy; /* L-Flag */
|
||||
uint8_t standard_apps_length;
|
||||
uint8_t user_def_apps_length;
|
||||
uint8_t standard_apps;
|
||||
uint8_t user_def_apps;
|
||||
|
||||
/* Sub-TLV list - rfc8919 section-3.1 */
|
||||
uint32_t admin_group;
|
||||
struct admin_group ext_admin_group; /* Res. Class/Color - RFC 7308 */
|
||||
float max_bw; /* Maximum Bandwidth - RFC 5305 */
|
||||
float max_rsv_bw; /* Maximum Reservable Bandwidth - RFC 5305 */
|
||||
float unrsv_bw[8]; /* Unreserved Bandwidth - RFC 5305 */
|
||||
uint32_t te_metric; /* Traffic Engineering Metric - RFC 5305 */
|
||||
uint32_t delay; /* Average Link Delay - RFC 8570 */
|
||||
uint32_t min_delay; /* Low Link Delay - RFC 8570 */
|
||||
uint32_t max_delay; /* High Link Delay - RFC 8570 */
|
||||
uint32_t delay_var; /* Link Delay Variation i.e. Jitter - RFC 8570 */
|
||||
uint32_t pkt_loss; /* Unidirectional Link Packet Loss - RFC 8570 */
|
||||
float res_bw; /* Unidirectional Residual Bandwidth - RFC 8570 */
|
||||
float ava_bw; /* Unidirectional Available Bandwidth - RFC 8570 */
|
||||
float use_bw; /* Unidirectional Utilized Bandwidth - RFC 8570 */
|
||||
};
|
||||
|
||||
#define IS_COMPAT_MT_TLV(tlv_type) \
|
||||
@ -536,6 +618,12 @@ struct list *isis_fragment_tlvs(struct isis_tlvs *tlvs, size_t size);
|
||||
#define ISIS_MT_AT_MASK 0x4000
|
||||
#endif
|
||||
|
||||
/* RFC 8919 */
|
||||
#define ISIS_SABM_FLAG_R 0x80 /* RSVP-TE */
|
||||
#define ISIS_SABM_FLAG_S 0x40 /* Segment Routing Policy */
|
||||
#define ISIS_SABM_FLAG_L 0x20 /* Loop-Free Alternate */
|
||||
#define ISIS_SABM_FLAG_X 0x10 /* Flex-Algorithm - RFC9350 */
|
||||
|
||||
void isis_tlvs_add_auth(struct isis_tlvs *tlvs, struct isis_passwd *passwd);
|
||||
void isis_tlvs_add_area_addresses(struct isis_tlvs *tlvs,
|
||||
struct list *addresses);
|
||||
@ -567,8 +655,19 @@ void isis_tlvs_add_csnp_entries(struct isis_tlvs *tlvs, uint8_t *start_id,
|
||||
struct isis_lsp **last_lsp);
|
||||
void isis_tlvs_set_dynamic_hostname(struct isis_tlvs *tlvs,
|
||||
const char *hostname);
|
||||
void isis_tlvs_set_router_capability(struct isis_tlvs *tlvs,
|
||||
const struct isis_router_cap *cap);
|
||||
struct isis_router_cap *
|
||||
isis_tlvs_init_router_capability(struct isis_tlvs *tlvs);
|
||||
|
||||
struct isis_area;
|
||||
struct isis_flex_algo;
|
||||
void isis_tlvs_set_router_capability_fad(struct isis_tlvs *tlvs,
|
||||
struct flex_algo *fa, int algorithm,
|
||||
uint8_t *sysid);
|
||||
|
||||
struct isis_area;
|
||||
|
||||
int isis_tlvs_sr_algo_count(const struct isis_router_cap *cap);
|
||||
|
||||
void isis_tlvs_set_te_router_id(struct isis_tlvs *tlvs,
|
||||
const struct in_addr *id);
|
||||
void isis_tlvs_set_te_router_id_ipv6(struct isis_tlvs *tlvs,
|
||||
@ -577,10 +676,11 @@ void isis_tlvs_add_oldstyle_ip_reach(struct isis_tlvs *tlvs,
|
||||
struct prefix_ipv4 *dest, uint8_t metric);
|
||||
void isis_tlvs_add_extended_ip_reach(struct isis_tlvs *tlvs,
|
||||
struct prefix_ipv4 *dest, uint32_t metric,
|
||||
bool external, struct sr_prefix_cfg *pcfg);
|
||||
bool external,
|
||||
struct sr_prefix_cfg **pcfgs);
|
||||
void isis_tlvs_add_ipv6_reach(struct isis_tlvs *tlvs, uint16_t mtid,
|
||||
struct prefix_ipv6 *dest, uint32_t metric,
|
||||
bool external, struct sr_prefix_cfg *pcfg);
|
||||
bool external, struct sr_prefix_cfg **pcfgs);
|
||||
void isis_tlvs_add_ipv6_dstsrc_reach(struct isis_tlvs *tlvs, uint16_t mtid,
|
||||
struct prefix_ipv6 *dest,
|
||||
struct prefix_ipv6 *src,
|
||||
@ -596,6 +696,12 @@ void isis_tlvs_add_lan_adj_sid(struct isis_ext_subtlvs *exts,
|
||||
void isis_tlvs_del_lan_adj_sid(struct isis_ext_subtlvs *exts,
|
||||
struct isis_lan_adj_sid *lan);
|
||||
|
||||
void isis_tlvs_del_asla_flex_algo(struct isis_ext_subtlvs *ext,
|
||||
struct isis_asla_subtlvs *asla);
|
||||
struct isis_asla_subtlvs *
|
||||
isis_tlvs_find_alloc_asla(struct isis_ext_subtlvs *ext, uint8_t standard_apps);
|
||||
void isis_tlvs_free_asla(struct isis_ext_subtlvs *ext, uint8_t standard_apps);
|
||||
|
||||
void isis_tlvs_add_oldstyle_reach(struct isis_tlvs *tlvs, uint8_t *id,
|
||||
uint8_t metric);
|
||||
void isis_tlvs_add_extended_reach(struct isis_tlvs *tlvs, uint16_t mtid,
|
||||
|
||||
@ -327,14 +327,13 @@ void isis_zebra_route_del_route(struct isis *isis,
|
||||
*/
|
||||
void isis_zebra_prefix_sid_install(struct isis_area *area,
|
||||
struct prefix *prefix,
|
||||
struct isis_route_info *rinfo,
|
||||
struct isis_sr_psid_info *psid)
|
||||
{
|
||||
struct zapi_labels zl;
|
||||
int count = 0;
|
||||
|
||||
sr_debug("ISIS-Sr (%s): update label %u for prefix %pFX",
|
||||
area->area_tag, psid->label, prefix);
|
||||
sr_debug("ISIS-Sr (%s): update label %u for prefix %pFX algorithm %u",
|
||||
area->area_tag, psid->label, prefix, psid->algorithm);
|
||||
|
||||
/* Prepare message. */
|
||||
memset(&zl, 0, sizeof(zl));
|
||||
@ -342,7 +341,7 @@ void isis_zebra_prefix_sid_install(struct isis_area *area,
|
||||
zl.local_label = psid->label;
|
||||
|
||||
/* Local routes don't have any nexthop and require special handling. */
|
||||
if (list_isempty(rinfo->nexthops)) {
|
||||
if (list_isempty(psid->nexthops)) {
|
||||
struct zapi_nexthop *znh;
|
||||
struct interface *ifp;
|
||||
|
||||
@ -361,9 +360,9 @@ void isis_zebra_prefix_sid_install(struct isis_area *area,
|
||||
znh->labels[0] = MPLS_LABEL_IMPLICIT_NULL;
|
||||
} else {
|
||||
/* Add backup nexthops first. */
|
||||
if (rinfo->backup) {
|
||||
if (psid->nexthops_backup) {
|
||||
count = isis_zebra_add_nexthops(
|
||||
area->isis, rinfo->backup->nexthops,
|
||||
area->isis, psid->nexthops_backup,
|
||||
zl.backup_nexthops, ISIS_NEXTHOP_BACKUP, true,
|
||||
0);
|
||||
if (count > 0) {
|
||||
@ -373,7 +372,7 @@ void isis_zebra_prefix_sid_install(struct isis_area *area,
|
||||
}
|
||||
|
||||
/* Add primary nexthops. */
|
||||
count = isis_zebra_add_nexthops(area->isis, rinfo->nexthops,
|
||||
count = isis_zebra_add_nexthops(area->isis, psid->nexthops,
|
||||
zl.nexthops, ISIS_NEXTHOP_MAIN,
|
||||
true, count);
|
||||
if (!count)
|
||||
@ -400,8 +399,8 @@ void isis_zebra_prefix_sid_uninstall(struct isis_area *area,
|
||||
{
|
||||
struct zapi_labels zl;
|
||||
|
||||
sr_debug("ISIS-Sr (%s): delete label %u for prefix %pFX",
|
||||
area->area_tag, psid->label, prefix);
|
||||
sr_debug("ISIS-Sr (%s): delete label %u for prefix %pFX algorithm %u",
|
||||
area->area_tag, psid->label, prefix, psid->algorithm);
|
||||
|
||||
/* Prepare message. */
|
||||
memset(&zl, 0, sizeof(zl));
|
||||
|
||||
@ -36,7 +36,6 @@ void isis_zebra_route_del_route(struct isis *isis,
|
||||
struct isis_route_info *route_info);
|
||||
void isis_zebra_prefix_sid_install(struct isis_area *area,
|
||||
struct prefix *prefix,
|
||||
struct isis_route_info *rinfo,
|
||||
struct isis_sr_psid_info *psid);
|
||||
void isis_zebra_prefix_sid_uninstall(struct isis_area *area,
|
||||
struct prefix *prefix,
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#include "zclient.h"
|
||||
#include "vrf.h"
|
||||
#include "spf_backoff.h"
|
||||
#include "flex_algo.h"
|
||||
#include "lib/northbound_cli.h"
|
||||
#include "bfd.h"
|
||||
|
||||
@ -49,6 +50,7 @@
|
||||
#include "isisd/isis_te.h"
|
||||
#include "isisd/isis_mt.h"
|
||||
#include "isisd/isis_sr.h"
|
||||
#include "isisd/isis_flex_algo.h"
|
||||
#include "isisd/fabricd.h"
|
||||
#include "isisd/isis_nb.h"
|
||||
|
||||
@ -317,6 +319,12 @@ struct isis_area *isis_area_create(const char *area_tag, const char *vrf_name)
|
||||
if (area->is_type & IS_LEVEL_2)
|
||||
lsp_db_init(&area->lspdb[1]);
|
||||
|
||||
#ifndef FABRICD
|
||||
/* Flex-Algo */
|
||||
area->flex_algos = flex_algos_alloc(isis_flex_algo_data_alloc,
|
||||
isis_flex_algo_data_free);
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
spftree_area_init(area);
|
||||
|
||||
area->circuit_list = list_new();
|
||||
@ -3061,12 +3069,27 @@ int isis_area_passwd_hmac_md5_set(struct isis_area *area, int level,
|
||||
|
||||
void isis_area_invalidate_routes(struct isis_area *area, int levels)
|
||||
{
|
||||
#ifndef FABRICD
|
||||
struct flex_algo *fa;
|
||||
struct listnode *node;
|
||||
struct isis_flex_algo_data *data;
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
|
||||
if (!(level & levels))
|
||||
continue;
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) {
|
||||
isis_spf_invalidate_routes(
|
||||
area->spftree[tree][level - 1]);
|
||||
|
||||
#ifndef FABRICD
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos,
|
||||
node, fa)) {
|
||||
data = fa->data;
|
||||
isis_spf_invalidate_routes(
|
||||
data->spftree[tree][level - 1]);
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3074,7 +3097,7 @@ void isis_area_invalidate_routes(struct isis_area *area, int levels)
|
||||
void isis_area_verify_routes(struct isis_area *area)
|
||||
{
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++)
|
||||
isis_spf_verify_routes(area, area->spftree[tree]);
|
||||
isis_spf_verify_routes(area, area->spftree[tree], tree);
|
||||
}
|
||||
|
||||
void isis_area_switchover_routes(struct isis_area *area, int family,
|
||||
@ -3098,6 +3121,12 @@ void isis_area_switchover_routes(struct isis_area *area, int family,
|
||||
|
||||
static void area_resign_level(struct isis_area *area, int level)
|
||||
{
|
||||
#ifndef FABRICD
|
||||
struct flex_algo *fa;
|
||||
struct listnode *node;
|
||||
struct isis_flex_algo_data *data;
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
isis_area_invalidate_routes(area, level);
|
||||
isis_area_verify_routes(area);
|
||||
|
||||
@ -3110,6 +3139,20 @@ static void area_resign_level(struct isis_area *area, int level)
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef FABRICD
|
||||
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) {
|
||||
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node,
|
||||
fa)) {
|
||||
data = fa->data;
|
||||
if (data->spftree[level - 1]) {
|
||||
isis_spftree_del(
|
||||
data->spftree[tree][level - 1]);
|
||||
data->spftree[tree][level - 1] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
if (area->spf_timer[level - 1])
|
||||
isis_spf_timer_free(EVENT_ARG(area->spf_timer[level - 1]));
|
||||
|
||||
@ -3748,7 +3791,8 @@ struct cmd_node router_node = {
|
||||
.prompt = "%s(config-router)# ",
|
||||
.config_write = isis_config_write,
|
||||
};
|
||||
#else
|
||||
#endif /* ifdef FABRICD */
|
||||
#ifndef FABRICD
|
||||
/* IS-IS configuration write function */
|
||||
static int isis_config_write(struct vty *vty)
|
||||
{
|
||||
@ -3771,7 +3815,14 @@ struct cmd_node router_node = {
|
||||
.prompt = "%s(config-router)# ",
|
||||
.config_write = isis_config_write,
|
||||
};
|
||||
#endif /* ifdef FABRICD */
|
||||
|
||||
struct cmd_node isis_flex_algo_node = {
|
||||
.name = "isis-flex-algo",
|
||||
.node = ISIS_FLEX_ALGO_NODE,
|
||||
.parent_node = ISIS_NODE,
|
||||
.prompt = "%s(config-router-flex-algo)# ",
|
||||
};
|
||||
#endif /* ifdnef FABRICD */
|
||||
|
||||
void isis_init(void)
|
||||
{
|
||||
@ -3880,6 +3931,10 @@ void isis_init(void)
|
||||
install_element(ROUTER_NODE, &log_adj_changes_cmd);
|
||||
install_element(ROUTER_NODE, &no_log_adj_changes_cmd);
|
||||
#endif /* ifdef FABRICD */
|
||||
#ifndef FABRICD
|
||||
install_node(&isis_flex_algo_node);
|
||||
install_default(ISIS_FLEX_ALGO_NODE);
|
||||
#endif /* ifdnef FABRICD */
|
||||
|
||||
spf_backoff_cmd_init();
|
||||
}
|
||||
|
||||
@ -163,6 +163,10 @@ struct isis_area {
|
||||
/* do we support new style metrics? */
|
||||
char newmetric;
|
||||
char oldmetric;
|
||||
/* Allow sending the default admin-group value of 0x00000000. */
|
||||
bool admin_group_send_zero;
|
||||
/* Set the legacy flag (aka. L-FLAG) in the ASLA Sub-TLV */
|
||||
bool asla_legacy_flag;
|
||||
/* identifies the routing instance */
|
||||
char *area_tag;
|
||||
/* area addresses for this area */
|
||||
@ -220,6 +224,10 @@ struct isis_area {
|
||||
size_t tilfa_protected_links[ISIS_LEVELS];
|
||||
/* MPLS LDP-IGP Sync */
|
||||
struct ldp_sync_info_cmd ldp_sync_cmd;
|
||||
#ifndef FABRICD
|
||||
/* Flex-Algo */
|
||||
struct flex_algos *flex_algos;
|
||||
#endif /* ifndef FABRICD */
|
||||
/* Counters */
|
||||
uint32_t circuit_state_changes;
|
||||
struct isis_redist redist_settings[REDIST_PROTOCOL_COUNT]
|
||||
|
||||
@ -19,6 +19,7 @@ vtysh_daemons += fabricd
|
||||
endif
|
||||
|
||||
noinst_HEADERS += \
|
||||
isisd/isis_affinitymap.h \
|
||||
isisd/isis_adjacency.h \
|
||||
isisd/isis_bfd.h \
|
||||
isisd/isis_circuit.h \
|
||||
@ -45,6 +46,7 @@ noinst_HEADERS += \
|
||||
isisd/isis_spf.h \
|
||||
isisd/isis_spf_private.h \
|
||||
isisd/isis_sr.h \
|
||||
isisd/isis_flex_algo.h \
|
||||
isisd/isis_te.h \
|
||||
isisd/isis_tlvs.h \
|
||||
isisd/isis_tx_queue.h \
|
||||
@ -55,6 +57,7 @@ noinst_HEADERS += \
|
||||
# end
|
||||
|
||||
LIBISIS_SOURCES = \
|
||||
isisd/isis_affinitymap.c \
|
||||
isisd/isis_adjacency.c \
|
||||
isisd/isis_bfd.c \
|
||||
isisd/isis_circuit.c \
|
||||
@ -76,6 +79,7 @@ LIBISIS_SOURCES = \
|
||||
isisd/isis_routemap.c \
|
||||
isisd/isis_spf.c \
|
||||
isisd/isis_sr.c \
|
||||
isisd/isis_flex_algo.c \
|
||||
isisd/isis_te.c \
|
||||
isisd/isis_tlvs.c \
|
||||
isisd/isis_tx_queue.c \
|
||||
|
||||
@ -129,6 +129,7 @@ enum node_type {
|
||||
LDP_L2VPN_NODE, /* LDP L2VPN node */
|
||||
LDP_PSEUDOWIRE_NODE, /* LDP Pseudowire node */
|
||||
ISIS_NODE, /* ISIS protocol mode */
|
||||
ISIS_FLEX_ALGO_NODE, /* ISIS Flex Algo mode */
|
||||
ACCESS_NODE, /* Access list node. */
|
||||
PREFIX_NODE, /* Prefix list node. */
|
||||
ACCESS_IPV6_NODE, /* Access list node. */
|
||||
|
||||
142
lib/flex_algo.c
Normal file
142
lib/flex_algo.c
Normal file
@ -0,0 +1,142 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* flex_algo.c: Flexible Algorithm library
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#include "zebra.h"
|
||||
|
||||
#include "flex_algo.h"
|
||||
|
||||
DEFINE_MTYPE_STATIC(LIB, FLEX_ALGO, "Flex-Algo Definition");
|
||||
|
||||
struct flex_algos *flex_algos_alloc(flex_algo_allocator_t allocator,
|
||||
flex_algo_releaser_t releaser)
|
||||
{
|
||||
struct flex_algos *flex_algos;
|
||||
|
||||
flex_algos = XCALLOC(MTYPE_FLEX_ALGO, sizeof(*flex_algos));
|
||||
flex_algos->flex_algos = list_new();
|
||||
flex_algos->allocator = allocator;
|
||||
flex_algos->releaser = releaser;
|
||||
return flex_algos;
|
||||
}
|
||||
|
||||
struct flex_algo *flex_algo_alloc(struct flex_algos *flex_algos,
|
||||
uint8_t algorithm, void *arg)
|
||||
{
|
||||
struct flex_algo *fa;
|
||||
|
||||
fa = XCALLOC(MTYPE_FLEX_ALGO, sizeof(*fa));
|
||||
fa->algorithm = algorithm;
|
||||
if (flex_algos->allocator)
|
||||
fa->data = flex_algos->allocator(arg);
|
||||
admin_group_init(&fa->admin_group_exclude_any);
|
||||
admin_group_init(&fa->admin_group_include_any);
|
||||
admin_group_init(&fa->admin_group_include_all);
|
||||
listnode_add(flex_algos->flex_algos, fa);
|
||||
return fa;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Look up the local flex-algo object by its algorithm number.
|
||||
* @param algorithm flex-algo algorithm number
|
||||
* @param area area pointer of flex-algo
|
||||
* @return local flex-algo object if exist, else NULL
|
||||
*/
|
||||
struct flex_algo *flex_algo_lookup(struct flex_algos *flex_algos,
|
||||
uint8_t algorithm)
|
||||
{
|
||||
struct listnode *node;
|
||||
struct flex_algo *fa;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(flex_algos->flex_algos, node, fa))
|
||||
if (fa->algorithm == algorithm)
|
||||
return fa;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Compare two Flex-Algo Definitions (FAD)
|
||||
* @param Flex algo 1
|
||||
* @param Flex algo 2
|
||||
* @return true if the definition is equal, else false
|
||||
*/
|
||||
bool flex_algo_definition_cmp(struct flex_algo *fa1, struct flex_algo *fa2)
|
||||
{
|
||||
if (fa1->algorithm != fa2->algorithm)
|
||||
return false;
|
||||
if (fa1->calc_type != fa2->calc_type)
|
||||
return false;
|
||||
if (fa1->metric_type != fa2->metric_type)
|
||||
return false;
|
||||
|
||||
if (!admin_group_cmp(&fa1->admin_group_exclude_any,
|
||||
&fa2->admin_group_exclude_any))
|
||||
return false;
|
||||
if (!admin_group_cmp(&fa1->admin_group_include_all,
|
||||
&fa2->admin_group_include_all))
|
||||
return false;
|
||||
if (!admin_group_cmp(&fa1->admin_group_include_any,
|
||||
&fa2->admin_group_include_any))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void flex_algo_delete(struct flex_algos *flex_algos, uint8_t algorithm)
|
||||
{
|
||||
struct listnode *node, *nnode;
|
||||
struct flex_algo *fa;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(flex_algos->flex_algos, node, nnode, fa)) {
|
||||
if (fa->algorithm != algorithm)
|
||||
continue;
|
||||
if (flex_algos->releaser)
|
||||
flex_algos->releaser(fa->data);
|
||||
admin_group_term(&fa->admin_group_exclude_any);
|
||||
admin_group_term(&fa->admin_group_include_any);
|
||||
admin_group_term(&fa->admin_group_include_all);
|
||||
listnode_delete(flex_algos->flex_algos, fa);
|
||||
XFREE(MTYPE_FLEX_ALGO, fa);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check SR Algorithm is Flex-Algo
|
||||
* according to RFC9350 section 4
|
||||
*
|
||||
* @param algorithm SR Algorithm
|
||||
*/
|
||||
bool flex_algo_id_valid(uint16_t algorithm)
|
||||
{
|
||||
return algorithm >= SR_ALGORITHM_FLEX_MIN &&
|
||||
algorithm <= SR_ALGORITHM_FLEX_MAX;
|
||||
}
|
||||
|
||||
char *flex_algo_metric_type_print(char *type_str, size_t sz,
|
||||
enum flex_algo_metric_type metric_type)
|
||||
{
|
||||
switch (metric_type) {
|
||||
case MT_IGP:
|
||||
snprintf(type_str, sz, "igp");
|
||||
break;
|
||||
case MT_MIN_UNI_LINK_DELAY:
|
||||
snprintf(type_str, sz, "delay");
|
||||
break;
|
||||
case MT_TE_DEFAULT:
|
||||
snprintf(type_str, sz, "te");
|
||||
break;
|
||||
}
|
||||
return type_str;
|
||||
}
|
||||
121
lib/flex_algo.h
Normal file
121
lib/flex_algo.h
Normal file
@ -0,0 +1,121 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* flex_algo.h: Flexible Algorithm library
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#ifndef _FRR_FLEX_ALGO_H
|
||||
#define _FRR_FLEX_ALGO_H
|
||||
|
||||
#include "admin_group.h"
|
||||
#include "linklist.h"
|
||||
#include "prefix.h"
|
||||
#include "segment_routing.h"
|
||||
|
||||
#define FLEX_ALGO_PRIO_DEFAULT 128
|
||||
|
||||
#define CALC_TYPE_SPF 0
|
||||
|
||||
/* flex-algo definition flags */
|
||||
|
||||
/* M-flag (aka. prefix-metric)
|
||||
* Flex-Algorithm specific prefix and ASBR metric MUST be used
|
||||
*/
|
||||
#define FAD_FLAG_M 0x80
|
||||
|
||||
/*
|
||||
* Metric Type values from RFC9350 section 5.1
|
||||
*/
|
||||
enum flex_algo_metric_type {
|
||||
MT_IGP = 0,
|
||||
MT_MIN_UNI_LINK_DELAY = 1,
|
||||
MT_TE_DEFAULT = 2,
|
||||
};
|
||||
|
||||
|
||||
/* Flex-Algo data about a given algorithm.
|
||||
* It includes the definition and some local data.
|
||||
*/
|
||||
struct flex_algo {
|
||||
/* Flex-Algo definition */
|
||||
uint8_t algorithm;
|
||||
enum flex_algo_metric_type metric_type;
|
||||
uint8_t calc_type;
|
||||
uint8_t priority;
|
||||
uint8_t flags;
|
||||
|
||||
/* extended admin-groups */
|
||||
struct admin_group admin_group_exclude_any;
|
||||
struct admin_group admin_group_include_any;
|
||||
struct admin_group admin_group_include_all;
|
||||
|
||||
/* Exclude SRLG Sub-TLV is not yet supported by IS-IS
|
||||
* True if a Exclude SRLG Sub-TLV has been found
|
||||
*/
|
||||
bool exclude_srlg;
|
||||
|
||||
/* True if an unsupported sub-TLV other Exclude SRLG
|
||||
* has been received.
|
||||
* A router that receives an unsupported definition
|
||||
* that is elected must not participate in the algorithm.
|
||||
* This boolean prevents future sub-TLV from being considered
|
||||
* as supported.
|
||||
*/
|
||||
bool unsupported_subtlv;
|
||||
|
||||
/* Flex-Algo local data */
|
||||
|
||||
/* True if the local definition must be advertised */
|
||||
bool advertise_definition;
|
||||
|
||||
/* which dataplane must be used for the algorithm */
|
||||
#define FLEX_ALGO_SR_MPLS 0x01
|
||||
#define FLEX_ALGO_SRV6 0x02
|
||||
#define FLEX_ALGO_IP 0x04
|
||||
uint8_t dataplanes;
|
||||
|
||||
/*
|
||||
* This property can be freely extended among different routing
|
||||
* protocols. Since Flex-Algo is an IGP protocol agnostic, both IS-IS
|
||||
* and OSPF can implement Flex-Algo. The struct flex_algo thus provides
|
||||
* the general data structure of Flex-Algo, and the value of extending
|
||||
* it with the IGP protocol is provided by this property.
|
||||
*/
|
||||
void *data;
|
||||
};
|
||||
|
||||
typedef void *(*flex_algo_allocator_t)(void *);
|
||||
typedef void (*flex_algo_releaser_t)(void *);
|
||||
|
||||
struct flex_algos {
|
||||
flex_algo_allocator_t allocator;
|
||||
flex_algo_releaser_t releaser;
|
||||
struct list *flex_algos;
|
||||
};
|
||||
|
||||
/*
|
||||
* Flex-Algo Utilities
|
||||
*/
|
||||
struct flex_algos *flex_algos_alloc(flex_algo_allocator_t allocator,
|
||||
flex_algo_releaser_t releaser);
|
||||
struct flex_algo *flex_algo_alloc(struct flex_algos *flex_algos,
|
||||
uint8_t algorithm, void *arg);
|
||||
struct flex_algo *flex_algo_lookup(struct flex_algos *flex_algos,
|
||||
uint8_t algorithm);
|
||||
void flex_algos_free(struct flex_algos *flex_algos);
|
||||
bool flex_algo_definition_cmp(struct flex_algo *fa1, struct flex_algo *fa2);
|
||||
void flex_algo_delete(struct flex_algos *flex_algos, uint8_t algorithm);
|
||||
bool flex_algo_id_valid(uint16_t algorithm);
|
||||
char *flex_algo_metric_type_print(char *type_str, size_t sz,
|
||||
enum flex_algo_metric_type metric_type);
|
||||
|
||||
#endif /* _FRR_FLEX_ALGO_H */
|
||||
@ -92,6 +92,9 @@ struct ls_node_id {
|
||||
*/
|
||||
extern int ls_node_id_same(struct ls_node_id i1, struct ls_node_id i2);
|
||||
|
||||
/* Supported number of algorithm by the link-state library */
|
||||
#define LIB_LS_SR_ALGO_COUNT 2
|
||||
|
||||
/* Link State flags to indicate which Node parameters are valid */
|
||||
#define LS_NODE_UNSET 0x0000
|
||||
#define LS_NODE_NAME 0x0001
|
||||
@ -123,7 +126,7 @@ struct ls_node {
|
||||
uint32_t lower_bound; /* MPLS label lower bound */
|
||||
uint32_t range_size; /* MPLS label range size */
|
||||
} srlb;
|
||||
uint8_t algo[2]; /* Segment Routing Algorithms */
|
||||
uint8_t algo[LIB_LS_SR_ALGO_COUNT]; /* Segment Routing Algorithms */
|
||||
uint8_t msd; /* Maximum Stack Depth */
|
||||
};
|
||||
|
||||
|
||||
30
lib/segment_routing.c
Normal file
30
lib/segment_routing.c
Normal file
@ -0,0 +1,30 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* segment_routing.c: Segment-Routing Library
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#include "segment_routing.h"
|
||||
|
||||
const char *sr_algorithm_string(uint8_t algo)
|
||||
{
|
||||
switch (algo) {
|
||||
case SR_ALGORITHM_SPF:
|
||||
return "SPF";
|
||||
case SR_ALGORITHM_STRICT_SPF:
|
||||
return "Strict SPF";
|
||||
case SR_ALGORITHM_UNSET:
|
||||
return "Unset";
|
||||
default:
|
||||
return algo >= SR_ALGORITHM_FLEX_MIN ? "Flex-Algo" : "Unknown";
|
||||
}
|
||||
}
|
||||
42
lib/segment_routing.h
Normal file
42
lib/segment_routing.h
Normal file
@ -0,0 +1,42 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*********************************************************************
|
||||
* Copyright 2022 Hiroki Shirokura, LINE Corporation
|
||||
* Copyright 2022 Masakazu Asama
|
||||
* Copyright 2022 6WIND S.A.
|
||||
*
|
||||
* segment_routing.h: Segment-Routing Library
|
||||
*
|
||||
* Authors
|
||||
* -------
|
||||
* Hiroki Shirokura
|
||||
* Masakazu Asama
|
||||
* Louis Scalbert
|
||||
*/
|
||||
|
||||
#ifndef _FRR_SR_H
|
||||
#define _FRR_SR_H
|
||||
|
||||
#include <zebra.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* IGP Algorithm Types
|
||||
* https://www.iana.org/assignments/igp-parameters/igp-parameters.xhtml
|
||||
*/
|
||||
#define SR_ALGORITHM_SPF 0 /* RFC8665 */
|
||||
#define SR_ALGORITHM_STRICT_SPF 1 /* RFC8665 */
|
||||
#define SR_ALGORITHM_UNSET 127 /* FRRouting defined */
|
||||
#define SR_ALGORITHM_FLEX_MIN 128 /* RFC9350 Flex-Algorithm */
|
||||
#define SR_ALGORITHM_FLEX_MAX 255 /* RFC9350 Flex-Algorithm */
|
||||
#define SR_ALGORITHM_COUNT 256
|
||||
|
||||
const char *sr_algorithm_string(uint8_t algo);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _FRR_SR_H */
|
||||
@ -33,6 +33,7 @@ lib_libfrr_la_SOURCES = \
|
||||
lib/filter.c \
|
||||
lib/filter_cli.c \
|
||||
lib/filter_nb.c \
|
||||
lib/flex_algo.c \
|
||||
lib/frrcu.c \
|
||||
lib/frrlua.c \
|
||||
lib/frrscript.c \
|
||||
@ -99,6 +100,7 @@ lib_libfrr_la_SOURCES = \
|
||||
lib/sockopt.c \
|
||||
lib/sockunion.c \
|
||||
lib/spf_backoff.c \
|
||||
lib/segment_routing.c \
|
||||
lib/srcdest_table.c \
|
||||
lib/stream.c \
|
||||
lib/strformat.c \
|
||||
@ -210,6 +212,7 @@ pkginclude_HEADERS += \
|
||||
lib/distribute.h \
|
||||
lib/ferr.h \
|
||||
lib/filter.h \
|
||||
lib/flex_algo.h \
|
||||
lib/freebsd-queue.h \
|
||||
lib/frrlua.h \
|
||||
lib/frrscript.h \
|
||||
@ -282,6 +285,7 @@ pkginclude_HEADERS += \
|
||||
lib/sockopt.h \
|
||||
lib/sockunion.h \
|
||||
lib/spf_backoff.h \
|
||||
lib/segment_routing.h \
|
||||
lib/srcdest_table.h \
|
||||
lib/srte.h \
|
||||
lib/stream.h \
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
#include <zebra.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "lib/json.h"
|
||||
#include "printfrr.h"
|
||||
#include "memory.h"
|
||||
#include "termtable.h"
|
||||
@ -485,3 +486,45 @@ char *ttable_dump(struct ttable *tt, const char *newline)
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* Crude conversion from ttable to json array.
|
||||
* Assume that the first row has column headings.
|
||||
*
|
||||
* Formats are:
|
||||
* d int32
|
||||
* f double
|
||||
* l int64
|
||||
* s string (default)
|
||||
*/
|
||||
json_object *ttable_json(struct ttable *tt, const char *const formats)
|
||||
{
|
||||
struct ttable_cell *row; /* iteration pointers */
|
||||
json_object *json = NULL;
|
||||
|
||||
json = json_object_new_array();
|
||||
|
||||
for (int i = 1; i < tt->nrows; i++) {
|
||||
json_object *jobj;
|
||||
json_object *val;
|
||||
|
||||
row = tt->table[i];
|
||||
jobj = json_object_new_object();
|
||||
json_object_array_add(json, jobj);
|
||||
for (int j = 0; j < tt->ncols; j++) {
|
||||
switch (formats[j]) {
|
||||
case 'd':
|
||||
case 'l':
|
||||
val = json_object_new_int64(atol(row[j].text));
|
||||
break;
|
||||
case 'f':
|
||||
val = json_object_new_double(atof(row[j].text));
|
||||
break;
|
||||
default:
|
||||
val = json_object_new_string(row[j].text);
|
||||
}
|
||||
json_object_object_add(jobj, tt->table[0][j].text, val);
|
||||
}
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#define _TERMTABLE_H_
|
||||
|
||||
#include <zebra.h>
|
||||
#include "lib/json.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -277,6 +278,17 @@ void ttable_rowseps(struct ttable *tt, unsigned int row,
|
||||
*/
|
||||
char *ttable_dump(struct ttable *tt, const char *newline);
|
||||
|
||||
/**
|
||||
* Convert a table to a JSON array of objects.
|
||||
*
|
||||
* Caller must free the returned json_object structure.
|
||||
*
|
||||
* @param tt the table to convert
|
||||
* @param formats an array of characters indicating what JSON type should be
|
||||
* used.
|
||||
*/
|
||||
json_object *ttable_json(struct ttable *tt, const char *const formats);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -20,6 +20,9 @@ extern "C" {
|
||||
#define frr_each(prefix, head, item) \
|
||||
for (item = prefix##_first(head); item; \
|
||||
item = prefix##_next(head, item))
|
||||
#define frr_each_const(prefix, head, item) \
|
||||
for (item = prefix##_const_first(head); item; \
|
||||
item = prefix##_const_next(head, item))
|
||||
#define frr_each_safe(prefix, head, item) \
|
||||
for (typeof(prefix##_next_safe(head, NULL)) prefix##_safe = \
|
||||
prefix##_next_safe(head, \
|
||||
|
||||
@ -98,7 +98,7 @@ static void lsp_add_ip_reach(struct isis_lsp *lsp,
|
||||
{
|
||||
struct prefix prefix;
|
||||
struct sr_prefix_cfg pcfg = {};
|
||||
struct sr_prefix_cfg *pcfg_p = NULL;
|
||||
struct sr_prefix_cfg *pcfg_p[SR_ALGORITHM_COUNT] = {NULL};
|
||||
|
||||
if (str2prefix(prefix_str, &prefix) != 1) {
|
||||
zlog_debug("%s: invalid network: %s", __func__, prefix_str);
|
||||
@ -106,7 +106,7 @@ static void lsp_add_ip_reach(struct isis_lsp *lsp,
|
||||
}
|
||||
|
||||
if (CHECK_FLAG(tnode->flags, F_ISIS_TEST_NODE_SR)) {
|
||||
pcfg_p = &pcfg;
|
||||
pcfg_p[SR_ALGORITHM_SPF] = &pcfg;
|
||||
|
||||
pcfg.sid = *next_sid_index;
|
||||
*next_sid_index = *next_sid_index + 1;
|
||||
@ -163,31 +163,32 @@ static void lsp_add_reach(struct isis_lsp *lsp,
|
||||
static void lsp_add_router_capability(struct isis_lsp *lsp,
|
||||
const struct isis_test_node *tnode)
|
||||
{
|
||||
struct isis_router_cap cap = {};
|
||||
struct isis_router_cap *cap;
|
||||
|
||||
if (!tnode->router_id)
|
||||
return;
|
||||
|
||||
if (inet_pton(AF_INET, tnode->router_id, &cap.router_id) != 1) {
|
||||
cap = isis_tlvs_init_router_capability(lsp->tlvs);
|
||||
|
||||
if (inet_pton(AF_INET, tnode->router_id, &cap->router_id) != 1) {
|
||||
zlog_debug("%s: invalid router-id: %s", __func__,
|
||||
tnode->router_id);
|
||||
return;
|
||||
}
|
||||
|
||||
if (CHECK_FLAG(tnode->flags, F_ISIS_TEST_NODE_SR)) {
|
||||
cap.srgb.flags =
|
||||
cap->srgb.flags =
|
||||
ISIS_SUBTLV_SRGB_FLAG_I | ISIS_SUBTLV_SRGB_FLAG_V;
|
||||
cap.srgb.lower_bound = tnode->srgb.lower_bound
|
||||
? tnode->srgb.lower_bound
|
||||
: SRGB_DFTL_LOWER_BOUND;
|
||||
cap.srgb.range_size = tnode->srgb.range_size
|
||||
? tnode->srgb.range_size
|
||||
: SRGB_DFTL_RANGE_SIZE;
|
||||
cap.algo[0] = SR_ALGORITHM_SPF;
|
||||
cap.algo[1] = SR_ALGORITHM_UNSET;
|
||||
cap->srgb.lower_bound = tnode->srgb.lower_bound
|
||||
? tnode->srgb.lower_bound
|
||||
: SRGB_DFTL_LOWER_BOUND;
|
||||
cap->srgb.range_size = tnode->srgb.range_size
|
||||
? tnode->srgb.range_size
|
||||
: SRGB_DFTL_RANGE_SIZE;
|
||||
cap->algo[0] = SR_ALGORITHM_SPF;
|
||||
cap->algo[1] = SR_ALGORITHM_UNSET;
|
||||
}
|
||||
|
||||
isis_tlvs_set_router_capability(lsp->tlvs, &cap);
|
||||
}
|
||||
|
||||
static void lsp_add_mt_router_info(struct isis_lsp *lsp,
|
||||
|
||||
@ -49,12 +49,13 @@ static void test_run_spf(struct vty *vty, const struct isis_topology *topology,
|
||||
/* Run SPF. */
|
||||
spf_type = reverse ? SPF_TYPE_REVERSE : SPF_TYPE_FORWARD;
|
||||
spftree = isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
spf_type, F_SPFTREE_NO_ADJACENCIES);
|
||||
spf_type, F_SPFTREE_NO_ADJACENCIES,
|
||||
SR_ALGORITHM_SPF);
|
||||
isis_run_spf(spftree);
|
||||
|
||||
/* Print the SPT and the corresponding routing table. */
|
||||
isis_print_spftree(vty, spftree);
|
||||
isis_print_routes(vty, spftree, false, false);
|
||||
isis_print_routes(vty, spftree, NULL, false, false);
|
||||
|
||||
/* Cleanup SPF tree. */
|
||||
isis_spftree_del(spftree);
|
||||
@ -71,8 +72,9 @@ static void test_run_lfa(struct vty *vty, const struct isis_topology *topology,
|
||||
|
||||
/* Run forward SPF in the root node. */
|
||||
flags = F_SPFTREE_NO_ADJACENCIES;
|
||||
spftree_self = isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags);
|
||||
spftree_self =
|
||||
isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags, SR_ALGORITHM_SPF);
|
||||
isis_run_spf(spftree_self);
|
||||
|
||||
/* Run forward SPF on all adjacent routers. */
|
||||
@ -84,9 +86,9 @@ static void test_run_lfa(struct vty *vty, const struct isis_topology *topology,
|
||||
/* Print the SPT and the corresponding main/backup routing tables. */
|
||||
isis_print_spftree(vty, spftree_self);
|
||||
vty_out(vty, "Main:\n");
|
||||
isis_print_routes(vty, spftree_self, false, false);
|
||||
isis_print_routes(vty, spftree_self, NULL, false, false);
|
||||
vty_out(vty, "Backup:\n");
|
||||
isis_print_routes(vty, spftree_self, false, true);
|
||||
isis_print_routes(vty, spftree_self, NULL, false, true);
|
||||
|
||||
/* Cleanup everything. */
|
||||
isis_spftree_del(spftree_self);
|
||||
@ -107,8 +109,9 @@ static void test_run_rlfa(struct vty *vty, const struct isis_topology *topology,
|
||||
|
||||
/* Run forward SPF in the root node. */
|
||||
flags = F_SPFTREE_NO_ADJACENCIES;
|
||||
spftree_self = isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags);
|
||||
spftree_self =
|
||||
isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags, SR_ALGORITHM_SPF);
|
||||
isis_run_spf(spftree_self);
|
||||
|
||||
/* Run reverse SPF in the root node. */
|
||||
@ -162,9 +165,9 @@ static void test_run_rlfa(struct vty *vty, const struct isis_topology *topology,
|
||||
/* Print the SPT and the corresponding main/backup routing tables. */
|
||||
isis_print_spftree(vty, spftree_self);
|
||||
vty_out(vty, "Main:\n");
|
||||
isis_print_routes(vty, spftree_self, false, false);
|
||||
isis_print_routes(vty, spftree_self, NULL, false, false);
|
||||
vty_out(vty, "Backup:\n");
|
||||
isis_print_routes(vty, spftree_self, false, true);
|
||||
isis_print_routes(vty, spftree_self, NULL, false, true);
|
||||
|
||||
/* Cleanup everything. */
|
||||
isis_spftree_del(spftree_self);
|
||||
@ -187,8 +190,9 @@ static void test_run_ti_lfa(struct vty *vty,
|
||||
|
||||
/* Run forward SPF in the root node. */
|
||||
flags = F_SPFTREE_NO_ADJACENCIES;
|
||||
spftree_self = isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags);
|
||||
spftree_self =
|
||||
isis_spftree_new(area, lspdb, root->sysid, level, tree,
|
||||
SPF_TYPE_FORWARD, flags, SR_ALGORITHM_SPF);
|
||||
isis_run_spf(spftree_self);
|
||||
|
||||
/* Run reverse SPF in the root node. */
|
||||
@ -224,7 +228,7 @@ static void test_run_ti_lfa(struct vty *vty,
|
||||
* Print the post-convergence SPT and the corresponding routing table.
|
||||
*/
|
||||
isis_print_spftree(vty, spftree_pc);
|
||||
isis_print_routes(vty, spftree_self, false, true);
|
||||
isis_print_routes(vty, spftree_self, NULL, false, true);
|
||||
|
||||
/* Cleanup everything. */
|
||||
isis_spftree_del(spftree_self);
|
||||
|
||||
96
tests/topotests/isis_sr_flex_algo_topo1/rt1/isisd.conf
Normal file
96
tests/topotests/isis_sr_flex_algo_topo1/rt1/isisd.conf
Normal file
@ -0,0 +1,96 @@
|
||||
password 1
|
||||
hostname rt1
|
||||
log file isisd.log
|
||||
!
|
||||
!debug northbound
|
||||
!debug isis events
|
||||
!debug isis spf-events
|
||||
!debug isis route-events
|
||||
!debug isis sr-events
|
||||
!debug isis lsp-gen
|
||||
!
|
||||
affinity-map red bit-position 0
|
||||
affinity-map blue bit-position 1
|
||||
affinity-map green bit-position 2
|
||||
affinity-map yellow bit-position 3
|
||||
affinity-map orange bit-position 4
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
interface eth-rt3
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0001.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
mpls-te on
|
||||
!
|
||||
flex-algo 201
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any red
|
||||
!
|
||||
flex-algo 202
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any blue
|
||||
!
|
||||
flex-algo 203
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any green
|
||||
!
|
||||
flex-algo 204
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any blue green
|
||||
!
|
||||
flex-algo 205
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any red green
|
||||
!
|
||||
flex-algo 206
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any red blue
|
||||
!
|
||||
flex-algo 207
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-all yellow orange
|
||||
!
|
||||
segment-routing on
|
||||
segment-routing global-block 20000 23999
|
||||
segment-routing node-msd 8
|
||||
segment-routing prefix 1.1.1.1/32 index 1
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 201 index 101
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 202 index 201
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 203 index 301
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 204 index 401
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 205 index 501
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 206 index 601
|
||||
segment-routing prefix 1.1.1.1/32 algorithm 207 index 701
|
||||
segment-routing prefix 2001:db8:1000::1/128 index 1001
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 201 index 1101
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 202 index 1201
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 203 index 1301
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 204 index 1401
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 205 index 1501
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 206 index 1601
|
||||
segment-routing prefix 2001:db8:1000::1/128 algorithm 207 index 1701
|
||||
!
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,115 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: Not found
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,112 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: None
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,108 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20102,
|
||||
"outLabelStack":[
|
||||
20102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20303,
|
||||
"outLabelStack":[
|
||||
20303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20402,
|
||||
"outLabelStack":[
|
||||
20402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20603,
|
||||
"outLabelStack":[
|
||||
20603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20702,
|
||||
"outLabelStack":[
|
||||
20702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21102,
|
||||
"outLabelStack":[
|
||||
21102
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21303,
|
||||
"outLabelStack":[
|
||||
21303
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21402,
|
||||
"outLabelStack":[
|
||||
21402
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21603,
|
||||
"outLabelStack":[
|
||||
21603
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21702,
|
||||
"outLabelStack":[
|
||||
21702
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
39
tests/topotests/isis_sr_flex_algo_topo1/rt1/zebra.conf
Normal file
39
tests/topotests/isis_sr_flex_algo_topo1/rt1/zebra.conf
Normal file
@ -0,0 +1,39 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt1
|
||||
!
|
||||
log stdout notifications
|
||||
log monitor notifications
|
||||
log commands
|
||||
!
|
||||
!debug zebra packet
|
||||
!debug zebra dplane
|
||||
!debug zebra kernel
|
||||
!
|
||||
affinity-map red bit-position 0
|
||||
affinity-map blue bit-position 1
|
||||
affinity-map green bit-position 2
|
||||
affinity-map yellow bit-position 3
|
||||
affinity-map orange bit-position 4
|
||||
!
|
||||
interface lo
|
||||
ip address 1.1.1.1/32
|
||||
ipv6 address 2001:db8:1000::1/128
|
||||
!
|
||||
interface eth-rt2
|
||||
ip address 10.12.0.1/24
|
||||
link-params
|
||||
affinity red
|
||||
exit-link-params
|
||||
!
|
||||
interface eth-rt3
|
||||
ip address 10.13.0.1/24
|
||||
link-params
|
||||
affinity green yellow orange
|
||||
exit-link-params
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
||||
96
tests/topotests/isis_sr_flex_algo_topo1/rt2/isisd.conf
Normal file
96
tests/topotests/isis_sr_flex_algo_topo1/rt2/isisd.conf
Normal file
@ -0,0 +1,96 @@
|
||||
password 1
|
||||
hostname rt2
|
||||
log file isisd.log
|
||||
!
|
||||
!debug northbound
|
||||
!debug isis events
|
||||
!debug isis route-events
|
||||
!debug isis spf-events
|
||||
!debug isis sr-events
|
||||
!debug isis lsp-gen
|
||||
!
|
||||
affinity-map red bit-position 0
|
||||
affinity-map blue bit-position 1
|
||||
affinity-map green bit-position 2
|
||||
affinity-map yellow bit-position 3
|
||||
affinity-map orange bit-position 4
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
interface eth-rt3
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0002.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
mpls-te on
|
||||
!
|
||||
flex-algo 201
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any red
|
||||
!
|
||||
flex-algo 202
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any blue
|
||||
!
|
||||
flex-algo 203
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity exclude-any green
|
||||
!
|
||||
flex-algo 204
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any blue green
|
||||
!
|
||||
flex-algo 205
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any red green
|
||||
!
|
||||
flex-algo 206
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-any red blue
|
||||
!
|
||||
flex-algo 207
|
||||
dataplane sr-mpls
|
||||
advertise-definition
|
||||
affinity include-all yellow orange
|
||||
!
|
||||
segment-routing on
|
||||
segment-routing global-block 20000 23999
|
||||
segment-routing node-msd 8
|
||||
segment-routing prefix 2.2.2.2/32 index 2
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 201 index 102
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 202 index 202
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 203 index 302
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 204 index 402
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 205 index 502
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 206 index 602
|
||||
segment-routing prefix 2.2.2.2/32 algorithm 207 index 702
|
||||
segment-routing prefix 2001:db8:1000::2/128 index 1002
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 201 index 1102
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 202 index 1202
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 203 index 1302
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 204 index 1402
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 205 index 1502
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 206 index 1602
|
||||
segment-routing prefix 2001:db8:1000::2/128 algorithm 207 index 1702
|
||||
!
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20311":{
|
||||
"inLabel":20311,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21311":{
|
||||
"inLabel":21311,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,114 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: Not found
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,111 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: None
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,107 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: yes
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,482 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20003":{
|
||||
"inLabel":20003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20101,
|
||||
"outLabelStack":[
|
||||
20101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20103":{
|
||||
"inLabel":20103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20203":{
|
||||
"inLabel":20203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20203,
|
||||
"outLabelStack":[
|
||||
20203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20303":{
|
||||
"inLabel":20303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20401,
|
||||
"outLabelStack":[
|
||||
20401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20403":{
|
||||
"inLabel":20403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20503":{
|
||||
"inLabel":20503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20503,
|
||||
"outLabelStack":[
|
||||
20503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.12.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20603":{
|
||||
"inLabel":20603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20701,
|
||||
"outLabelStack":[
|
||||
20701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20703":{
|
||||
"inLabel":20703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21003":{
|
||||
"inLabel":21003,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21101,
|
||||
"outLabelStack":[
|
||||
21101
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21103":{
|
||||
"inLabel":21103,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21203":{
|
||||
"inLabel":21203,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21203,
|
||||
"outLabelStack":[
|
||||
21203
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21303":{
|
||||
"inLabel":21303,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21401,
|
||||
"outLabelStack":[
|
||||
21401
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21403":{
|
||||
"inLabel":21403,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21503":{
|
||||
"inLabel":21503,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21503,
|
||||
"outLabelStack":[
|
||||
21503
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21603":{
|
||||
"inLabel":21603,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21701,
|
||||
"outLabelStack":[
|
||||
21701
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21703":{
|
||||
"inLabel":21703,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt3"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
39
tests/topotests/isis_sr_flex_algo_topo1/rt2/zebra.conf
Normal file
39
tests/topotests/isis_sr_flex_algo_topo1/rt2/zebra.conf
Normal file
@ -0,0 +1,39 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt2
|
||||
!
|
||||
log stdout notifications
|
||||
log monitor notifications
|
||||
log commands
|
||||
!
|
||||
!debug zebra packet
|
||||
!debug zebra dplane
|
||||
!debug zebra kernel
|
||||
!
|
||||
affinity-map red bit-position 0
|
||||
affinity-map blue bit-position 1
|
||||
affinity-map green bit-position 2
|
||||
affinity-map yellow bit-position 3
|
||||
affinity-map orange bit-position 4
|
||||
!
|
||||
interface lo
|
||||
ip address 2.2.2.2/32
|
||||
ipv6 address 2001:db8:1000::2/128
|
||||
!
|
||||
interface eth-rt1
|
||||
ip address 10.12.0.2/24
|
||||
link-params
|
||||
affinity red
|
||||
exit-link-params
|
||||
!
|
||||
interface eth-rt3
|
||||
ip address 10.23.0.2/24
|
||||
link-params
|
||||
affinity blue yellow orange
|
||||
exit-link-params
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
||||
76
tests/topotests/isis_sr_flex_algo_topo1/rt3/isisd.conf
Normal file
76
tests/topotests/isis_sr_flex_algo_topo1/rt3/isisd.conf
Normal file
@ -0,0 +1,76 @@
|
||||
password 1
|
||||
hostname rt3
|
||||
log file isisd.log
|
||||
!
|
||||
!debug northbound
|
||||
!debug isis events
|
||||
!debug isis route-events
|
||||
!debug isis spf-events
|
||||
!debug isis sr-events
|
||||
!debug isis lsp-gen
|
||||
!
|
||||
affinity-map red bit-position 0
|
||||
affinity-map blue bit-position 1
|
||||
affinity-map green bit-position 2
|
||||
affinity-map yellow bit-position 3
|
||||
affinity-map orange bit-position 4
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
interface eth-rt2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-multiplier 3
|
||||
isis network point-to-point
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0003.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
mpls-te on
|
||||
!
|
||||
flex-algo 201
|
||||
dataplane sr-mpls
|
||||
flex-algo 202
|
||||
dataplane sr-mpls
|
||||
flex-algo 203
|
||||
dataplane sr-mpls
|
||||
flex-algo 204
|
||||
dataplane sr-mpls
|
||||
flex-algo 205
|
||||
dataplane sr-mpls
|
||||
flex-algo 206
|
||||
dataplane sr-mpls
|
||||
flex-algo 207
|
||||
dataplane sr-mpls
|
||||
!
|
||||
segment-routing on
|
||||
segment-routing global-block 20000 23999
|
||||
segment-routing node-msd 8
|
||||
segment-routing prefix 3.3.3.3/32 index 3
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 201 index 103
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 202 index 203
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 203 index 303
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 204 index 403
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 205 index 503
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 206 index 603
|
||||
segment-routing prefix 3.3.3.3/32 algorithm 207 index 703
|
||||
segment-routing prefix 2001:db8:1000::3/128 index 1003
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 201 index 1103
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 202 index 1203
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 203 index 1303
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 204 index 1403
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 205 index 1503
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 206 index 1603
|
||||
segment-routing prefix 2001:db8:1000::3/128 algorithm 207 index 1703
|
||||
!
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20202,
|
||||
"outLabelStack":[
|
||||
20202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20301,
|
||||
"outLabelStack":[
|
||||
20301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20502,
|
||||
"outLabelStack":[
|
||||
20502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20601,
|
||||
"outLabelStack":[
|
||||
20601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21202,
|
||||
"outLabelStack":[
|
||||
21202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21301,
|
||||
"outLabelStack":[
|
||||
21301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21502,
|
||||
"outLabelStack":[
|
||||
21502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21601,
|
||||
"outLabelStack":[
|
||||
21601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20202,
|
||||
"outLabelStack":[
|
||||
20202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20301,
|
||||
"outLabelStack":[
|
||||
20301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20502,
|
||||
"outLabelStack":[
|
||||
20502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20601,
|
||||
"outLabelStack":[
|
||||
20601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21202,
|
||||
"outLabelStack":[
|
||||
21202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21301,
|
||||
"outLabelStack":[
|
||||
21301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21502,
|
||||
"outLabelStack":[
|
||||
21502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21601,
|
||||
"outLabelStack":[
|
||||
21601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20202,
|
||||
"outLabelStack":[
|
||||
20202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20311":{
|
||||
"inLabel":20311,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20311,
|
||||
"outLabelStack":[
|
||||
20311
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20502,
|
||||
"outLabelStack":[
|
||||
20502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20601,
|
||||
"outLabelStack":[
|
||||
20601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21202,
|
||||
"outLabelStack":[
|
||||
21202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21311":{
|
||||
"inLabel":21311,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21311,
|
||||
"outLabelStack":[
|
||||
21311
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21502,
|
||||
"outLabelStack":[
|
||||
21502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21601,
|
||||
"outLabelStack":[
|
||||
21601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,514 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20202,
|
||||
"outLabelStack":[
|
||||
20202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20301":{
|
||||
"inLabel":20301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20301,
|
||||
"outLabelStack":[
|
||||
20301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20302":{
|
||||
"inLabel":20302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20502,
|
||||
"outLabelStack":[
|
||||
20502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20601,
|
||||
"outLabelStack":[
|
||||
20601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21202,
|
||||
"outLabelStack":[
|
||||
21202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21301":{
|
||||
"inLabel":21301,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21301,
|
||||
"outLabelStack":[
|
||||
21301
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21302":{
|
||||
"inLabel":21302,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21502,
|
||||
"outLabelStack":[
|
||||
21502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21601,
|
||||
"outLabelStack":[
|
||||
21601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,114 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: Not found
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
@ -0,0 +1,450 @@
|
||||
{
|
||||
"20001":{
|
||||
"inLabel":20001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20002":{
|
||||
"inLabel":20002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20101":{
|
||||
"inLabel":20101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20102":{
|
||||
"inLabel":20102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20201":{
|
||||
"inLabel":20201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20202":{
|
||||
"inLabel":20202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20202,
|
||||
"outLabelStack":[
|
||||
20202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20401":{
|
||||
"inLabel":20401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20402":{
|
||||
"inLabel":20402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20501":{
|
||||
"inLabel":20501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20502":{
|
||||
"inLabel":20502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20502,
|
||||
"outLabelStack":[
|
||||
20502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20601":{
|
||||
"inLabel":20601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":20601,
|
||||
"outLabelStack":[
|
||||
20601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20602":{
|
||||
"inLabel":20602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20701":{
|
||||
"inLabel":20701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.13.0.1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"20702":{
|
||||
"inLabel":20702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"nexthop":"10.23.0.2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21001":{
|
||||
"inLabel":21001,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21002":{
|
||||
"inLabel":21002,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21101":{
|
||||
"inLabel":21101,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21102":{
|
||||
"inLabel":21102,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21201":{
|
||||
"inLabel":21201,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21202":{
|
||||
"inLabel":21202,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21202,
|
||||
"outLabelStack":[
|
||||
21202
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21401":{
|
||||
"inLabel":21401,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21402":{
|
||||
"inLabel":21402,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21501":{
|
||||
"inLabel":21501,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21502":{
|
||||
"inLabel":21502,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21502,
|
||||
"outLabelStack":[
|
||||
21502
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21601":{
|
||||
"inLabel":21601,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":21601,
|
||||
"outLabelStack":[
|
||||
21601
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21602":{
|
||||
"inLabel":21602,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21701":{
|
||||
"inLabel":21701,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"21702":{
|
||||
"inLabel":21702,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"type":"SR (IS-IS)",
|
||||
"outLabel":3,
|
||||
"outLabelStack":[
|
||||
3
|
||||
],
|
||||
"distance":150,
|
||||
"installed":true,
|
||||
"interface":"eth-rt2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
Area 1: Algorithm 201
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000001
|
||||
Bit positions: 0
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 202
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000002
|
||||
Bit positions: 1
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 203
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: 0x00000004
|
||||
Bit positions: 2
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: not-set
|
||||
|
||||
Area 1: Algorithm 204
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000006
|
||||
Bit positions: 1, 2
|
||||
|
||||
Area 1: Algorithm 205
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000005
|
||||
Bit positions: 0, 2
|
||||
|
||||
Area 1: Algorithm 206
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: not-set
|
||||
Include-any admin-group: 0x00000003
|
||||
Bit positions: 0, 1
|
||||
|
||||
Area 1: Algorithm 207
|
||||
|
||||
Enabled Data-Planes: SR-MPLS
|
||||
|
||||
Elected and running Flexible-Algorithm Definition:
|
||||
Source: 0000.0000.0002
|
||||
Priority: 128
|
||||
Equal to local: no
|
||||
Local state: enabled
|
||||
Calculation type: spf
|
||||
Metric type: igp
|
||||
Prefix-metric: disabled
|
||||
Exclude SRLG: disabled
|
||||
Exclude-any admin-group: not-set
|
||||
Include-all admin-group: 0x00000018
|
||||
Bit positions: 3, 4
|
||||
Include-any admin-group: not-set
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user