summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_routemap.c39
-rw-r--r--lib/frrlua.c24
-rw-r--r--lib/frrlua.h30
3 files changed, 39 insertions, 54 deletions
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 5274c4fae..247391ade 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -338,6 +338,45 @@ static const struct route_map_rule_cmd route_match_peer_cmd = {
};
#if defined(HAVE_LUA)
+
+enum frrlua_rm_status {
+ /*
+ * Script function run failure. This will translate into a
+ * deny
+ */
+ LUA_RM_FAILURE = 0,
+ /*
+ * No Match was found for the route map function
+ */
+ LUA_RM_NOMATCH,
+ /*
+ * Match was found but no changes were made to the
+ * incoming data.
+ */
+ LUA_RM_MATCH,
+ /*
+ * Match was found and data was modified, so
+ * figure out what changed
+ */
+ LUA_RM_MATCH_AND_CHANGE,
+};
+
+static enum frrlua_rm_status frrlua_run_rm_rule(lua_State *L, const char *rule)
+{
+ int status;
+
+ lua_getglobal(L, rule);
+ status = lua_pcall(L, 0, 1, 0);
+ if (status) {
+ zlog_debug("Executing Failure with function: %s: %d",
+ rule, status);
+ return LUA_RM_FAILURE;
+ }
+
+ status = lua_tonumber(L, -1);
+ return status;
+}
+
static enum route_map_cmd_result_t
route_match_command(void *rule, const struct prefix *prefix, void *object)
{
diff --git a/lib/frrlua.c b/lib/frrlua.c
index 7dc878690..252b66796 100644
--- a/lib/frrlua.c
+++ b/lib/frrlua.c
@@ -170,28 +170,4 @@ void frrlua_export_logging(lua_State *L)
lua_setfield(L, -2, "log");
}
-
-/*
- * Experimental.
- *
- * This section has experimental Lua functionality that doesn't belong
- * elsewhere.
- */
-
-enum frrlua_rm_status frrlua_run_rm_rule(lua_State *L, const char *rule)
-{
- int status;
-
- lua_getglobal(L, rule);
- status = lua_pcall(L, 0, 1, 0);
- if (status) {
- zlog_debug("Executing Failure with function: %s: %d",
- rule, status);
- return LUA_RM_FAILURE;
- }
-
- status = lua_tonumber(L, -1);
- return status;
-}
-
#endif
diff --git a/lib/frrlua.h b/lib/frrlua.h
index 56c43b775..f77842b44 100644
--- a/lib/frrlua.h
+++ b/lib/frrlua.h
@@ -32,31 +32,6 @@ extern "C" {
#endif
/*
- * Status enum for Lua routemap processing results
- */
-enum frrlua_rm_status {
- /*
- * Script function run failure. This will translate into a
- * deny
- */
- LUA_RM_FAILURE = 0,
- /*
- * No Match was found for the route map function
- */
- LUA_RM_NOMATCH,
- /*
- * Match was found but no changes were made to the
- * incoming data.
- */
- LUA_RM_MATCH,
- /*
- * Match was found and data was modified, so
- * figure out what changed
- */
- LUA_RM_MATCH_AND_CHANGE,
-};
-
-/*
* Pushes a new table containing relevant fields from a prefix structure.
*
* Additionally sets the global variable "prefix" to point at this table.
@@ -69,11 +44,6 @@ void frrlua_newtable_prefix(lua_State *L, const struct prefix *prefix);
void frrlua_newtable_interface(lua_State *L, const struct interface *ifp);
/*
- * Runs a routemap rule or something
- */
-enum frrlua_rm_status frrlua_run_rm_rule(lua_State *L, const char *rule);
-
-/*
* Retrieve a string from table on the top of the stack.
*
* key