您的位置:首页 > 运维架构 > Linux

如何向Quagga(或zebra)添加自定义命令

2017-04-12 11:47 274 查看


添加cli的节点

1、lib/command.h文件的枚举node_type中定义要新增的节点,如LXTEST_NODE

2、定义一个对应的cmd_node结构体变量,如:

struct cmd_node lxtest_node =

{

         LXTEST_NODE,

         “%s(lxtest)#”,

};

3、添加exit命令处理:在config_exit_cmd的代码中,添加一个分支以让exit可以退回到上一级,如:

case LXTEST_NODE:

         vty->node= CONFIG_NODE;

4、添加end命令处理:在config_end_cmd的代码中,添加一个分支以让end可以退回到enable节点

5、在模块初始化时调用install_node安装节点,如:

install_node(&lxtest_node, NULL);

6、在节点安装后调用install_default为节点设置默认命令,如:

install_default(LXTEST_NODE);

7、添加一个命令以进入到本节点,在其中设置vty->node为本节点即可,如:

vty->node = LXTEST_NODE;;

然后把它安装到合适的节点下

如何添加命令,见下一节

添加cli命令

1、调用宏DEFUN,第一个参数是命令指针,第二个参数是命令连接,第三个参数是命令详细定义,接着是对应命令各步骤的提示信息。比如定义lx_test命令指针,连接为lx_test_cmd。命令代码中可以处理参数,argc为参数个数,argv为字符串形式的参数数组。命令执行成功必须返回CMD_SUCCESS,输出到终端的函数为vty_out

2、调用install_element安装命令,第一个参数是所在的节点,第二个参数是命令连接,如:

install_element(CONFIG_NODE,&lx_test_cmd);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux Quagga zebra 命令