summaryrefslogtreecommitdiff
path: root/isisd/isis_circuit.c
diff options
context:
space:
mode:
authorGabriel Goller <g.goller@proxmox.com>2025-02-25 10:24:58 +0100
committerGabriel Goller <g.goller@proxmox.com>2025-02-26 10:07:54 +0100
commit84d99ad8a6ba975f881fe272646aca18f0e4ffc7 (patch)
treebe7dc0b5e35668760a42393e663efb816e737452 /isisd/isis_circuit.c
parent80e96712e47b024ed5973c738acfb056bcd08b61 (diff)
fabricd: add option to treat dummy interfaces as loopback interfaces
Enable dummy-interfaces to be used as router-id interfaces in openfabric networks. This allows multiple openfabric routers with different router-ids on a single node when using IP unnumbered setup (interfaces without IPs configured). Previously we were limited by having a single loopback interface, allowing only one openfabric router per node. Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
Diffstat (limited to 'isisd/isis_circuit.c')
-rw-r--r--isisd/isis_circuit.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 5b62d3c518..eed2c52552 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -491,16 +491,17 @@ void isis_circuit_if_add(struct isis_circuit *circuit, struct interface *ifp)
{
struct connected *conn;
- if (if_is_broadcast(ifp)) {
+ if (if_is_loopback(ifp) || (isis_option_check(ISIS_OPT_DUMMY_AS_LOOPBACK) &&
+ CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_DUMMY))) {
+ circuit->circ_type = CIRCUIT_T_LOOPBACK;
+ circuit->is_passive = 1;
+ } else if (if_is_broadcast(ifp)) {
if (fabricd || circuit->circ_type_config == CIRCUIT_T_P2P)
circuit->circ_type = CIRCUIT_T_P2P;
else
circuit->circ_type = CIRCUIT_T_BROADCAST;
} else if (if_is_pointopoint(ifp)) {
circuit->circ_type = CIRCUIT_T_P2P;
- } else if (if_is_loopback(ifp)) {
- circuit->circ_type = CIRCUIT_T_LOOPBACK;
- circuit->is_passive = 1;
} else {
/* It's normal in case of loopback etc. */
if (IS_DEBUG_EVENTS)