summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Lee <dlqs@gmx.com>2021-08-18 20:29:22 +0800
committerDonald Lee <dlqs@gmx.com>2021-10-20 00:56:00 +0800
commit263951c1be0dd95571bbf27ebb1ea70d2a16e33b (patch)
treecc6794c89f3771d55b901fd4f8910126bbea1db6
parent9b851b74b0310a50530d505f20792ee7a108eb2e (diff)
lib: Register encoders/decoders for dplane hook
These are for encoding the dplane ctx object. The decoders are noops. Signed-off-by: Donald Lee <dlqs@gmx.com>
-rw-r--r--lib/frrscript.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/frrscript.h b/lib/frrscript.h
index c089df61fc..cb96b68323 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -24,6 +24,8 @@
#ifdef HAVE_SCRIPTING
#include <lua.h>
+#include <nexthop.h>
+#include <nexthop_group.h>
#include "frrlua.h"
#include "bgpd/bgp_script.h" // for peer and attr encoders/decoders
@@ -31,6 +33,13 @@
extern "C" {
#endif
+/* Forward declarations */
+extern struct zebra_dplane_ctx ctx;
+extern void lua_pushzebra_dplane_ctx(lua_State *L,
+ const struct zebra_dplane_ctx *ctx);
+extern void lua_decode_zebra_dplane_ctx(lua_State *L, int idx,
+ struct zebra_dplane_ctx *ctx);
+
typedef void (*encoder_func)(lua_State *, const void *);
typedef void *(*decoder_func)(lua_State *, int);
@@ -171,7 +180,12 @@ time_t * : lua_pushtimet, \
char * : lua_pushstring_wrapper, \
struct attr * : lua_pushattr, \
struct peer * : lua_pushpeer, \
-const struct prefix * : lua_pushprefix \
+const struct prefix * : lua_pushprefix, \
+const struct ipaddr * : lua_pushipaddr, \
+const struct ethaddr * : lua_pushethaddr, \
+const struct nexthop_group * : lua_pushnexthop_group, \
+const struct nexthop * : lua_pushnexthop, \
+struct zebra_dplane_ctx * : lua_pushzebra_dplane_ctx \
)((L), (value))
#define DECODE_ARGS_WITH_STATE(L, value) \
@@ -187,7 +201,12 @@ time_t * : lua_decode_timet, \
char * : lua_decode_stringp, \
struct attr * : lua_decode_attr, \
struct peer * : lua_decode_noop, \
-const struct prefix * : lua_decode_noop \
+const struct prefix * : lua_decode_noop, \
+const struct ipaddr * : lua_decode_noop, \
+const struct ethaddr * : lua_decode_noop, \
+const struct nexthop_group * : lua_decode_noop, \
+const struct nexthop * : lua_decode_noop, \
+struct zebra_dplane_ctx * : lua_decode_noop \
)((L), -1, (value))
/*