forked from Mirror/frr
zebra: Add dplane hook point
Signed-off-by: Donald Lee <dlqs@gmx.com>
This commit is contained in:
parent
4f7e32bafe
commit
1247efcce4
|
@ -383,6 +383,9 @@ typedef uint32_t route_tag_t;
|
|||
#define ROUTE_TAG_MAX UINT32_MAX
|
||||
#define ROUTE_TAG_PRI PRIu32
|
||||
|
||||
/* Name of hook calls */
|
||||
#define ZEBRA_ON_RIB_PROCESS_HOOK_CALL "on_rib_process_dplane_results"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "nexthop_group_private.h"
|
||||
#include "frr_pthread.h"
|
||||
#include "printfrr.h"
|
||||
#include "frrscript.h"
|
||||
|
||||
#include "zebra/zebra_router.h"
|
||||
#include "zebra/connected.h"
|
||||
|
@ -57,6 +58,7 @@
|
|||
#include "zebra/zapi_msg.h"
|
||||
#include "zebra/zebra_dplane.h"
|
||||
#include "zebra/zebra_evpn_mh.h"
|
||||
#include "zebra/zebra_script.h"
|
||||
|
||||
DEFINE_MGROUP(ZEBRA, "zebra");
|
||||
|
||||
|
@ -4134,7 +4136,31 @@ static int rib_process_dplane_results(struct thread *thread)
|
|||
continue;
|
||||
}
|
||||
|
||||
#ifdef HAVE_SCRIPTING
|
||||
char *script_name = frrscript_names_get_script_name(
|
||||
ZEBRA_ON_RIB_PROCESS_HOOK_CALL);
|
||||
|
||||
int ret = 1;
|
||||
struct frrscript *fs;
|
||||
|
||||
if (script_name) {
|
||||
fs = frrscript_new(script_name);
|
||||
if (fs)
|
||||
ret = frrscript_load(
|
||||
fs, ZEBRA_ON_RIB_PROCESS_HOOK_CALL,
|
||||
NULL);
|
||||
}
|
||||
#endif /* HAVE_SCRIPTING */
|
||||
|
||||
while (ctx) {
|
||||
|
||||
#ifdef HAVE_SCRIPTING
|
||||
if (ret == 0)
|
||||
frrscript_call(fs,
|
||||
ZEBRA_ON_RIB_PROCESS_HOOK_CALL,
|
||||
("ctx", ctx));
|
||||
#endif /* HAVE_SCRIPTING */
|
||||
|
||||
switch (dplane_ctx_get_op(ctx)) {
|
||||
case DPLANE_OP_ROUTE_INSTALL:
|
||||
case DPLANE_OP_ROUTE_UPDATE:
|
||||
|
|
Loading…
Reference in a new issue