如何向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);
添加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);
相关文章推荐
- 如何向PPC-Boot中添加自定义命令
- 如何向PPC-Boot中添加自定义命令
- [Ubuntu] 如何添加自定义命令
- 如何在django里面添加自定义命令
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- 如何处理自定义消息 (非命令消息)
- 如何为Team Foundation Server的Daily Build添加自定义操作
- 如何在内存中自定义表用于添加和删除数据
- 如何在浏览器地址栏前添加自定义的小图标?
- 如何在WordPress中添加一个自定义的新页面
- 如何:向 Outlook 添加自定义菜单和菜单项
- 『GEF』如何在Palette中添加自定义菜单。
- Dedecms5.5如何添加自定义函数
- 当中有介绍如何在DNN中添加自定义模块的方法
- 在本地系统中挂载VHD硬盘(附如何添加右键快捷命令挂载VHD)
- ASP.NET : 如何为网站添加自定义的文件类型
- 自己解决如何获取在DropDownList中添加的自定义属性的值
- 如何在浏览器地址栏前添加自定义的小图标?
- 如何添加自定义系统菜单 - C++ & MFC
- Andriod 如何添加自定义C++库