summaryrefslogtreecommitdiffstats
path: root/isisd/isis_main.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* *: fix route map integrationRafael Zalamena2020-02-041-0/+2
| | | | | | | Add the appropriated code to bootstrap route map northbound for all daemons. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* lib: rename memory_vty.c to lib_vty.cDavid Lamparter2019-12-061-1/+0
| | | | | | And memory_init() to lib_cmd_init(). Signed-off-by: David Lamparter <equinox@diac24.net>
* *: make frr_yang_module_info constDavid Lamparter2019-11-301-1/+1
| | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* isisd: split northbound callbacks into multiple filesRenato Westphal2019-10-301-0/+1
| | | | | | | | | | | | | | | | | Rearrange the isisd northbound callbacks as following: * isis_nb.h: prototypes of all northbound callbacks. * isis_nb.c: definition of all northbound callbacks and their associated YANG data paths. * isis_nb_config.c: implementation of YANG configuration nodes. * isis_nb_state.c: implementation of YANG state nodes. * isis_nb_notifications.c: implementation of YANG notifications. This should help to keep to code more organized and easier to maintain. No behavior changes intended. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* isisd: Add vrf_id to the main isis structureDonald Sharp2019-09-101-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: move old BFD command to fabricd onlyRafael Zalamena2019-07-091-2/+3
| | | | | | | The `isisd` will receive a northbound version of the BFD command, so this is the first step to implement it. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* isisd: replace dict_* with DECLARE_RBTREEDavid Lamparter2019-04-271-1/+0
| | | | | | | | Historically, isisd has been carrying around its own red-black tree to manage its LSP DB in. This replaces that with the newly-added DECLARE_RBTREE_*. This allows completely removing the dict_* code. Signed-off-by: David Lamparter <equinox@diac24.net>
* *: use array_size instead of raw divisionQuentin Young2019-02-261-1/+1
| | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* isisd: implement sighup handlerEmanuele Di Pascale2018-12-181-2/+13
| | | | Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
* isisd, yang: add configuration model and callback stubsEmanuele Di Pascale2018-12-181-0/+7
| | | | Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
* fabricd: Update neighbor list on adjacency state changeChristian Franke2018-12-071-0/+2
| | | | | | | We should update our neighbors list immediately when an adjacency changes state, not when we run SPF. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* *: remove the configuration lock from all daemonsRenato Westphal2018-11-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | A while ago all FRR configuration commands were converted to use the QOBJ infrastructure to keep track of configuration objects. This means the configuration lock isn't necessary anymore because the QOBJ code detects when someones tries to edit a configuration object that was deleted and react accordingly (log an error and abort the command). The possibility of accessing dangling pointers doesn't exist anymore since vty->index was removed. Summary of the changes: * remove the configuration lock and the vty_config_lockless() function. * rename vty_config_unlock() to vty_config_exit() since we need to clean up a few things when exiting from the configuration mode. * rename vty_config_lock() to vty_config_enter() to remove code duplication that existed between the three different "configuration" commands (terminal, private and exclusive). Configuration commands converted to the new northbound model don't need the configuration lock either since the northbound API also detects when someone tries to edit a configuration object that doesn't exist anymore. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* yang, lib: add 'frr-interface.yang' and associated stub callbacksRenato Westphal2018-10-271-0/+1
| | | | | | | | | | | | | Introduce frr-interface.yang, which defines a model for managing FRR interfaces. Update the 'frr_yang_module_info' array of all daemons that will implement this module. Add automatically generated stub callbacks in if.c. These callbacks will be implemented in the following commit. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* *: add empty array of YANG modulesRenato Westphal2018-10-271-1/+5
| | | | | | | | | | FRR_DAEMON_INFO should now contain an array of 'frr_yang_module_info' structures describing the YANG modules implemented by the daemon. This array will be used by frr_init() function to load all YANG modules and initialize the northbound callbacks during the daemon initialization. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* isisd: Add a hook when writing interface configChristian Franke2018-10-051-0/+2
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* isisd: Replace isis_event_adjacency_state_change with a hookChristian Franke2018-10-051-0/+2
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* isisd: Register as BFD clientChristian Franke2018-10-051-0/+2
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* isis: Cleanup CLI, split into parts which are shared, fabricd and isisdChristian Franke2018-09-051-0/+2
| | | | | | | | Remove isis_vty.c and create three new files isis_vty_common.c, isis_vty_fabricd.c and isis_vty_isisd.c which are built into both daemons, only fabricd and only isisd, respectively. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* fabricd: add new daemon as build of isisdChristian Franke2018-09-051-0/+11
| | | | | | | fabricd is built using the sources of isisd. To allow differentiation in the code, -DFABRICD=1 is added to its preprocessor flags. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* *: add a vrf update hook to be informed of the vrf namePhilippe Guibert2018-08-281-1/+1
| | | | | | | | The Vrf aliases can be known with a specific hook. That hook will then, from zebra propagate the information to the relevant zapi clients. The registration hook function is the same for all daemons. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* isisd: Add isis_errors and generate custom Error CodesDonald Sharp2018-08-141-0/+2
| | | | | | Generate appropriate error codes for ISIS. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: Convert to use LIB_ERR_XXXDonald Sharp2018-08-141-1/+1
| | | | | | | Where an obvious choice could be made about converting to a LIB_ERR_XXX function do so. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: send/receive LSPs with new parserChristian Franke2017-08-031-1/+0
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* *: reindentreindent-master-afterwhitespace / reindent2017-07-171-115/+99
| | | | | | indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'` Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: Fix zclient cleanup on shutdownDonald Sharp2017-06-301-0/+1
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #537 from donaldsharp/vrf_stuffDavid Lamparter2017-05-171-1/+1
|\ | | | | Vrf stuff
| * *: Consolidate vrf_hooks into vrf_initDonald Sharp2017-05-161-1/+1
| | | | | | | | | | | | | | | | We only needed to add/change the vrf callbacks when we initialize the vrf subsystem. As such it is not necessary to handle the callbacks in any other way than through the init function. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | *: make consistent & update GPLv2 file headersDavid Lamparter2017-05-151-4/+4
|/ | | | | | | | | | | The FSF's address changed, and we had a mixture of comment styles for the GPL file header. (The style with * at the beginning won out with 580 to 141 in existing files.) Note: I've intentionally left intact other "variations" of the copyright header, e.g. whether it says "Zebra", "Quagga", "FRR", or nothing. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: remove reload-by-reexecDavid Lamparter2017-03-081-38/+1
| | | | | | This is a quite horrible mechanism... Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* lib: remove remaining struct zlog * argsDavid Lamparter2017-03-081-1/+1
| | | | | | These don't serve any purpose either. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: add frr_run()David Lamparter2017-03-081-11/+1
| | | | | | | Contains the fetch-and-run-thread logic, and vty startup (which is the last thing happening before entering the main loop). Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: add frr_config_fork()David Lamparter2017-03-081-56/+3
| | | | | | | | | Centralise read_config/daemonize/dryrun/pidfile/vty_serv into libfrr. This also makes multi-instance pid/config handling available as part of the library. It's only wired up in ospfd, but the code is in lib/. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: centralize more into frr_init()David Lamparter2017-03-071-4/+1
| | | | | | Move CLI/VTY/Memory accounting init into frr_* Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: add frr_init() infrastructureDavid Lamparter2017-03-071-100/+28
| | | | | | | | | Start centralising startup & option parsing into the library. FRR_DAEMON_INFO is a bit weird, but it will become useful later (e.g. for killing the ZLOG_* enum, and having the daemon name available) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: fix warning fallout from set_socket_pathDavid Lamparter2017-02-011-1/+1
| | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: Add vty_socket cli option to override the compiled-in location for ↵Martin Winter2017-01-251-1/+11
| | | | | | the VTY Socket Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
* build: rename (1 of ?): configure.ac + preprocDavid Lamparter2016-12-201-6/+6
| | | | | | | This replaces Quagga -> FRR in most configure.ac settings as well as a handful of preprocessor macros in the source code. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: fix some licensing SNAFUsDavid Lamparter2016-11-141-1/+0
| | | | | | | | bgpd/bgpd.c had a typo zebra/zebra_mpls_netlink.c was derived from rt_netlink.c isisd/include-netbsd/* are not needed (2 constants moved over) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* lib, isisd: enable concurrent configuration editingDavid Lamparter2016-10-071-0/+1
| | | | | | | | Finally, this disables the config editing lock for isisd. It also enables deprecation warnings for the lib/ and isisd/ to catch accidental uses of vty->index. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: qobj: register everythingDavid Lamparter2016-10-071-0/+1
| | | | | | | Wire up all neccessary isisd first-class objects to be able to use qobj safe-pointers on them. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* lib: migrate to new memory-type handlingDavid Lamparter2016-09-191-0/+1
| | | | | | | | | Move over to the new allocation counting added in the previous commit. (This commit is mostly mechanical.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
* Add support of Traffic Engineering to IS-ISOlivier Dugeon2016-09-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | These patches is an implementation of RFC5305 that enable the support of Traffic Engineering in IS-IS * isisd/Makefile.am: Add new files isis_te.c and isis_te.h * isisd/isis_circuit.[c,h]: Add new mpls_te_circuit structure to isis_circuit structure to handle new Traffic Engineering TLVs * isisd/isis_lsp.c: Update LSP handler to mux/demux Traffic Engineering TLVs * isisd/isis_main.c: Add initialisation of ISIS TE * isisd/isis_pdu.c: Update function process_p2p_hello() to retrieve remote IP address to populate Traffic Engineering TLV. * isisd/isis_te.[c,]: Implementation of RFC5305 * isisd/isis_tlv.[c,h]: Update TLV definition and function to handle Traffic Engineering ones * isisd/isis_zebra.c: Add new function isis_zebra_link_params() to retrieve the link parameters of interfaces from ZBus to populate the Traffic Engineering TLVs * isisd/isisd.[c,h]: Add Traffic Engineering support with new debug command Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* Fix for CM-12450 Ensure quagga logs at startup are sent to syslog (until log ↵Sid Khot2016-08-181-1/+3
| | | | | | | | configuration is processed) Ticket: CM-12450 Reviewed By: CCR-5112 Testing Done: Manual
* all: add default log file if none are definedDon Slice2016-07-111-1/+2
| | | | | | | | | | | | Added a default log file named /var/log/quagga/Quagga.log to every daemon to capture log entries if no log file is defined. This also allows the capture of logged information prior to reading each daemon's config file. If a log file is defined manually, it will override this default file name. Ticket: CM-10987 Signed-off-by: Don Slice Reviewed By: Donald Sharp Testing Done: Manual testing
* Quagga: Fix code to use srandom/randomDonald Sharp2016-05-301-1/+1
| | | | | | | | Quagga was using a mix of srand/rand and srandom/random. Consolidate to use srandom/random which are the POSIX versions of random number generators Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* quagga: Fixup startup to allow consistency between sysV and systemdDonald Sharp2016-04-271-4/+0
| | | | | | | | | | | | | | | | | | | We want the ability to start up quagga in a varied set of environments. This needs to be done in SysV and systemd startups. As such refactor the code to allow us to allow end users to easily switch between the two sysV: edit the /etc/quagga/daemons file service quagga [start|stop|reload|restart] Systemd: edit the /etc/quagga/daemons file systemctl [start|stop|reload|restart] quagga Ticket: CM-10634 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
* isisd: add support to import routes from other protocolsChristian Franke2016-03-301-0/+5
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* *: Modify protocols to have systemd integrationDonald Sharp2016-02-101-0/+4
| | | | | | | | Modify the daemons to integrate with systemd, if it is enabled via configure, and to notify systemd that they are running/stopping and to send watch notifications. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Quagga: Fixup some compile warningsDonald Sharp2015-11-231-3/+3
| | | | | | Fixup compile warnings for when you turn on --enable-gcc-ultra-verbose=yes Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* *: call if_init()/if_terminate() from vrf_init()/vrf_terminate()Feng Lu2015-10-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Later, an interface will belong to a specific VRF, and the interface initialization will be a part of the VRF initialization. So now call if_init() from vrf_init(), and if_terminate() from vrf_terminate(). Daemons have the according changes: - if if_init() was called or "iflist" was initialized, now call vrf_init() instead; - if if_terminate() was called or "iflist" was destroyed, now call vrf_terminate() instead. Signed-off-by: Feng Lu <lu.feng@6wind.com> Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Conflicts: bgpd/bgp_main.c pimd/pim_iface.c pimd/pim_iface.h pimd/pim_main.c pimd/pimd.c