summaryrefslogtreecommitdiffstats
path: root/ripngd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-09-18 22:20:04 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-09-19 19:34:06 +0200
commit138c5a745018a291c8463b67dba7602886859d2e (patch)
tree58e5fa805122bfb110bc347db2d263c9ef1a5920 /ripngd
parentlib, zebra: Allow for interface deletion when kernel event happens (diff)
downloadfrr-138c5a745018a291c8463b67dba7602886859d2e.tar.xz
frr-138c5a745018a291c8463b67dba7602886859d2e.zip
*: Add infrastructure to support zapi interface callbacks
Start the conversion to allow zapi interface callbacks to be controlled like vrf creation/destruction/change callbacks. This will allow us to consolidate control into the interface.c instead of having each daemon read the stream and react accordingly. This will hopefully reduce a bunch of cut-n-paste stuff Create 4 new callback functions that will be controlled by lib/if.c create -> A upper level protocol receives an interface creation event The ifp is brand spanking newly created in the system. up -> A upper level protocol receives a interface up event This means the interface is up and ready to go. down -> A upper level protocol receives a interface down destroy -> A upper level protocol receives a destroy event This means to delete the pointers associated with it. At this point this is just boilerplate setup for future commits. There is no new functionality. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'ripngd')
-rw-r--r--ripngd/ripng_interface.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 9ed9dc28f..02c35e04c 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -989,6 +989,26 @@ static struct cmd_node interface_node = {
INTERFACE_NODE, "%s(config-if)# ", 1 /* VTYSH */
};
+static int ripng_ifp_create(struct interface *ifp)
+{
+ return 0;
+}
+
+static int ripng_ifp_up(struct interface *ifp)
+{
+ return 0;
+}
+
+static int ripng_ifp_down(struct interface *ifp)
+{
+ return 0;
+}
+
+static int ripng_ifp_destroy(struct interface *ifp)
+{
+ return 0;
+}
+
/* Initialization of interface. */
void ripng_if_init(void)
{
@@ -999,4 +1019,6 @@ void ripng_if_init(void)
/* Install interface node. */
install_node(&interface_node, interface_config_write);
if_cmd_init();
+ if_zapi_callbacks(ripng_ifp_create, ripng_ifp_up,
+ ripng_ifp_down, ripng_ifp_destroy);
}