summaryrefslogtreecommitdiff
path: root/isisd/isis_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_main.c')
-rw-r--r--isisd/isis_main.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index b7ed8f7605..0d9b3df39c 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -80,9 +80,12 @@ struct zebra_privs_t isisd_privs = {
.cap_num_p = array_size(_caps_p),
.cap_num_i = 0};
+#define OPTION_DUMMY_AS_LOOPBACK 2000
+
/* isisd options */
static const struct option longopts[] = {
{"int_num", required_argument, NULL, 'I'},
+ {"dummy_as_loopback", no_argument, NULL, OPTION_DUMMY_AS_LOOPBACK},
{0}};
/* Master of threads. */
@@ -269,15 +272,16 @@ int main(int argc, char **argv, char **envp)
{
int opt;
int instance = 1;
+ bool dummy_as_loopback = false;
#ifdef FABRICD
frr_preinit(&fabricd_di, argc, argv);
#else
frr_preinit(&isisd_di, argc, argv);
#endif
- frr_opt_add(
- "I:", longopts,
- " -I, --int_num Set instance number (label-manager)\n");
+ frr_opt_add("I:", longopts,
+ " -I, --int_num Set instance number (label-manager).\n"
+ " --dummy_as_loopback Treat dummy interfaces like loopback interfaces.\n");
/* Command line argument treatment. */
while (1) {
@@ -295,6 +299,9 @@ int main(int argc, char **argv, char **envp)
zlog_err("Instance %i out of range (1..%u)",
instance, (unsigned short)-1);
break;
+ case OPTION_DUMMY_AS_LOOPBACK:
+ dummy_as_loopback = true;
+ break;
default:
frr_help_exit(1);
}
@@ -311,6 +318,9 @@ int main(int argc, char **argv, char **envp)
/* thread master */
isis_master_init(frr_init());
master = im->master;
+ if (dummy_as_loopback)
+ isis_option_set(ISIS_OPT_DUMMY_AS_LOOPBACK);
+
/*
* initializations
*/