lib: move bgp routemap stuff out of frrlua.[ch]

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2019-08-11 19:23:35 +00:00 committed by Quentin Young
parent f937164459
commit 0fe6a43d90
3 changed files with 39 additions and 54 deletions

View File

@ -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)
{

View File

@ -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

View File

@ -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.
*