1 // SPDX-License-Identifier: GPL-2.0-or-later
4 * Copyright (C) 1998, 1999 Kunihiro Ishiguro
9 #include <lib/version.h>
26 #include "ripngd/ripngd.h"
27 #include "ripngd/ripng_nb.h"
30 struct option longopts
[] = {{0}};
32 /* ripngd privileges */
33 zebra_capabilities_t _caps_p
[] = {ZCAP_NET_RAW
, ZCAP_BIND
, ZCAP_SYS_ADMIN
};
35 uint32_t zebra_ecmp_count
= MULTIPATH_NUM
;
37 struct zebra_privs_t ripngd_privs
= {
45 .vty_group
= VTY_GROUP
,
48 .cap_num_p
= array_size(_caps_p
),
52 /* Master of threads. */
53 struct event_loop
*master
;
55 static struct frr_daemon_info ripngd_di
;
58 static void sighup(void)
60 zlog_info("SIGHUP received");
62 /* Reload config file. */
63 vty_read_config(NULL
, ripngd_di
.config_file
, config_default
);
67 static void sigint(void)
69 zlog_notice("Terminating on signal");
71 ripng_vrf_terminate();
78 /* SIGUSR1 handler. */
79 static void sigusr1(void)
84 struct frr_signal_t ripng_signals
[] = {
103 static const struct frr_yang_module_info
*const ripngd_yang_modules
[] = {
111 FRR_DAEMON_INFO(ripngd
, RIPNG
, .vty_port
= RIPNG_VTY_PORT
,
113 .proghelp
= "Implementation of the RIPng routing protocol.",
115 .signals
= ripng_signals
,
116 .n_signals
= array_size(ripng_signals
),
118 .privs
= &ripngd_privs
,
120 .yang_modules
= ripngd_yang_modules
,
121 .n_yang_modules
= array_size(ripngd_yang_modules
),
124 #define DEPRECATED_OPTIONS ""
126 /* RIPngd main routine. */
127 int main(int argc
, char **argv
)
129 frr_preinit(&ripngd_di
, argc
, argv
);
131 frr_opt_add("" DEPRECATED_OPTIONS
, longopts
, "");
136 opt
= frr_getopt(argc
, argv
, NULL
);
138 if (opt
&& opt
< 128 && strchr(DEPRECATED_OPTIONS
, opt
)) {
140 "The -%c option no longer exists.\nPlease refer to the manual.\n",