diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index 5274c4fae0..247391adef 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 7dc8786901..252b667961 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 56c43b7755..f77842b445 100644 --- a/lib/frrlua.h +++ b/lib/frrlua.h @@ -31,31 +31,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. * @@ -68,11 +43,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. *