summaryrefslogtreecommitdiff
path: root/eigrpd/eigrp_main.c
AgeCommit message (Collapse)Author
2021-12-21*: rework renaming the default VRFIgor Ryzhov
Currently, it is possible to rename the default VRF either by passing `-o` option to zebra or by creating a file in `/var/run/netns` and binding it to `/proc/self/ns/net`. In both cases, only zebra knows about the rename and other daemons learn about it only after they connect to zebra. This is a problem, because daemons may read their config before they connect to zebra. To handle this rename after the config is read, we have some special code in every single daemon, which is not very bad but not desirable in my opinion. But things are getting worse when we need to handle this in northbound layer as we have to manually rewrite the config nodes. This approach is already hacky, but still works as every daemon handles its own NB structures. But it is completely incompatible with the central management daemon architecture we are aiming for, as mgmtd doesn't even have a connection with zebra to learn from it. And it shouldn't have it, because operational state changes should never affect configuration. To solve the problem and simplify the code, I propose to expand the `-o` option to all daemons. By using the startup option, we let daemons know about the rename before they read their configs so we don't need any special code to deal with it. There's an easy way to pass the option to all daemons by using `frr_global_options` variable. Unfortunately, the second way of renaming by creating a file in `/var/run/netns` is incompatible with the new mgmtd architecture. Theoretically, we could force daemons to read their configs only after they connect to zebra, but it means adding even more code to handle a very specific use-case. And anyway this won't work for mgmtd as it doesn't have a connection with zebra. So I had to remove this option. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-11*: Convert quagga_signal_X to frr_signal_XDonald Sharp
Naming functions/data structures more appropriately for the project we are actually in. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-25*: Drop `break` after using frr_help_exit() in switch/caseDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-05-04eigrpd: fix `distribute-list...` command for EIGRPDonald Sharp
The distribute-list command was being registered but never setup properly in EIGRP. Put it into place. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-03-17*: require semicolon after FRR_DAEMON_INFO & co.David Lamparter
... again ... Signed-off-by: David Lamparter <equinox@diac24.net>
2021-01-12eigrpd: Create eigrp_yang.h and move stuff aroundDonnie Savage
Move the prototypes for eigrp_yang that are in eigrpd.h into eigrp_yang.h. Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Donnie Savage <diivious@hotmail.com>
2021-01-12eigrpd: Create eigrp_cli.h and move forward declarationsDonnie Savage
Move the forward declarations for eigrp_cli.c from eigrpd.h into eigrp_cli.h. Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Donnie Savage <diivious@hotmail.com>
2020-06-05*: add filter northbound supportRafael Zalamena
Allow all daemons to work with filter northbound. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-16*: include vrf northbound module in initChirag Shah
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2020-02-10Merge pull request #5763 from ton31337/fix/return_without_parentRenato Westphal
*: Remove parenthesis on return for constants
2020-02-09*: Remove parenthesis on return for constantsDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-04*: fix route map integrationRafael Zalamena
Add the appropriated code to bootstrap route map northbound for all daemons. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-11-30*: make frr_yang_module_info constDavid Lamparter
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-08-06eigrpd: Add various vrf handling functionsDonald Sharp
Basic enable/disable/add/delete vrf handling functions. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-03eigrpd: implement configuration reloadRafael Zalamena
Reload configuration on SIGHUP using the northbound. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-08-03eigrpd: migrate old CLI to northboundRafael Zalamena
Move all configuration commands to the new CLI code (`eigrp_cli.c`), implement the northbound and do all the necessary wiring to get it working. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-02-19lib, rip, ripng, eigrp: rework if_rmap contextPhilippe Guibert
so as to handle ri/ripng/eigrp multiple instances, the need is to encapsulate if_rmap hash table into a container context self to each instance. This work then reviews the if_rmap api, mainly by adding a if_rmap_ctx context, that is passed for each exchange between library and the daemon. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-12-28lib, rip, ripng, babel, eigrp: add ctx pointer to distribute apiPhilippe Guibert
a distribute_ctx context pointer is returned after initialisation to the calling daemon. this context pointer will be further used to do discussion with distribute service. Today, there is no specific problem with old api, since the pointer is the same in all the memory process. but the pointer will be different if we have multiple instances. Right now, this is not the case, but if that happens, that work will be used for that. distribute-list initialisation is split in two. the vty initialisation is done at global level, while the context initialisation is done for each routing daemon instance. babel daemon is being equipped with a routing returning the main babel instance. also, a delete routine is available when the daemon routing instance is suppressed. a list of contexts is used inside distribute_list. This will permit distribute_list utility to handle in the same daemon to handle more than one context. This will be very useful in the vrf context. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-10-27yang, lib: add 'frr-interface.yang' and associated stub callbacksRenato Westphal
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>
2018-10-27*: add empty array of YANG modulesRenato Westphal
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>
2018-08-28*: add a vrf update hook to be informed of the vrf namePhilippe Guibert
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>
2018-08-14eigrpd: Add EIGRP_ERR_XXX for zlog_err to zlog_ferrDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-25eigrpd: Follow other protocol leads and exit when told toDonald Sharp
EIGRP was continuing to run after being told to exit. Fixes:#1224 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19eigrpd: Setup eigrp to send FRR versionDonald Sharp
Send to our peer the major/minor version of FRR that we are working with. I decided to use FRR instead of the os major/minor because the os itself doesn't tell you what version of EIGRP you are actually using. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-25Merge pull request #837 from qlyoung/fix-eigrp-routemap-cliDavid Lamparter
eigrpd, vtysh: add dummy route-map cli
2017-07-22Revert "*: reindent pt. 2"David Lamparter
This reverts commit c14777c6bfd0a446c85243d3a9835054a259c276. clang 5 is not widely available enough for people to indent with. This is particularly problematic when rebasing/adjusting branches. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-20eigrpd, vtysh: add dummy route-map cliQuentin Young
eigrpd will successfully accept `(conf)# route-map foo ...` because it is not sent to eigrpd from vtysh, but of course, this is the classic node sync syndrome. Since eigrpd apparently doesn't support proper routemaps yet just add the cli so we can suppress the vtysh errors. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-17*: reindent pt. 2whitespace / reindent
w/ clang 5 * reflow comments * struct members go 1 per line * binpack algo was adjusted
2017-07-17*: reindentreindent-master-afterwhitespace / reindent
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'` Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-05-17Merge pull request #537 from donaldsharp/vrf_stuffDavid Lamparter
Vrf stuff
2017-05-15*: Consolidate vrf_hooks into vrf_initDonald Sharp
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>
2017-05-15*: make consistent & update GPLv2 file headersDavid Lamparter
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>
2017-04-08eigrpd: Cleanup tab/spacing of the *.c filesDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-03-08eigrp: Initial CommitDonald Sharp
Please Note, I will be redoing this commit message with more information. Additionally I will rework the lib/* changes into their own commits. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>