diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2020-05-15 08:38:06 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-15 08:38:06 -0400 |
| commit | 36caef199ae3af4efddda7b5d2a6d9f43b8f58c4 (patch) | |
| tree | 59e26fedb422cace74a0e5bbf5216b7204ed58b0 /isisd/isis_main.c | |
| parent | 5704e7109dc562d7d85c9b2a80ad8759cfba56ed (diff) | |
| parent | 82624cef0cf4475aed2be23ed8cad02a8e886d2e (diff) | |
Merge pull request #6404 from FRRouting/dev_isis_sr
isisd: IS-IS Segment Routing support
Diffstat (limited to 'isisd/isis_main.c')
| -rw-r--r-- | isisd/isis_main.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/isisd/isis_main.c b/isisd/isis_main.c index 4c841dffe2..78654b2f1c 100644 --- a/isisd/isis_main.c +++ b/isisd/isis_main.c @@ -83,7 +83,9 @@ struct zebra_privs_t isisd_privs = { .cap_num_i = 0}; /* isisd options */ -struct option longopts[] = {{0}}; +static const struct option longopts[] = { + {"int_num", required_argument, NULL, 'I'}, + {0}}; /* Master of threads. */ struct thread_master *master; @@ -99,6 +101,7 @@ void sigusr1(void); static __attribute__((__noreturn__)) void terminate(int i) { + isis_sr_term(); isis_zebra_stop(); exit(i); } @@ -196,13 +199,16 @@ FRR_DAEMON_INFO(isisd, ISIS, .vty_port = ISISD_VTY_PORT, int main(int argc, char **argv, char **envp) { int opt; + int instance = 1; #ifdef FABRICD frr_preinit(&fabricd_di, argc, argv); #else frr_preinit(&isisd_di, argc, argv); #endif - frr_opt_add("", longopts, ""); + frr_opt_add( + "I:", longopts, + " -I, --int_num Set instance number (label-manager)\n"); /* Command line argument treatment. */ while (1) { @@ -214,6 +220,12 @@ int main(int argc, char **argv, char **envp) switch (opt) { case 0: break; + case 'I': + instance = atoi(optarg); + if (instance < 1 || instance > (unsigned short)-1) + zlog_err("Instance %i out of range (1..%u)", + instance, (unsigned short)-1); + break; default: frr_help_exit(1); break; @@ -242,13 +254,14 @@ int main(int argc, char **argv, char **envp) isis_redist_init(); isis_route_map_init(); isis_mpls_te_init(); + isis_sr_init(); lsp_init(); mt_init(); /* create the global 'isis' instance */ isis_new(1, VRF_DEFAULT); - isis_zebra_init(master); + isis_zebra_init(master, instance); isis_bfd_init(); fabricd_init(); |
