- 博客(9)
- 资源 (12)
- 收藏
- 关注
翻译 Cisco vpp(6) 工作模式
还在初学阶段,如果有误,希望多批评指正。VPP 四种模式:单线程只有worker线程多线程IO和worker线程都是多线程主线程多线程,主线程同时做了IO和worker的工作 单线程主线程做了包处理和其他的管理功能(CLI、API、统计)。这是默认设置,不需要特殊的启动配置。只有worker多线程主线程负责管理功能(CL
2016-06-08 21:38:39 9657
原创 tcmalloc简单测试
测试方式如下:20个线程同时进行malloc和free的操作,每个线程进行malloc和free的操作1M次,每次申请的大小是操作次数的大小(比如第10次操作,就malloc(10))。测试每个线程操作1M次malloc和free的时间。glibc malloc的结果如下:time use 20118516 secondtime use 20159695 secondtim
2016-05-06 16:47:18 2589 1
原创 Cisco VPP(4) node
参照前面的帖子Cisco VPP启动流程vlib_main()->vlib_register_all_static_nodes()->register_node()主要是将node链表中的所有node进行初始化,并且根据node之间的关系进行串联。vlib_main_loop()主要是去处理node中的操作。核心操作包含以下两个点:收包的入口函数,比如d
2016-04-29 16:03:21 6489
原创 Cisco VPP(7) 插件开发
还在初学阶段,如果有误,希望多批评指正。在VPP中,插件可以在程序启动的时候加载,一般我们会往里面加入node,实现一些功能。首先介绍怎么直接重定义硬件接口RX到我们的nodevnet_hw_interface_rx_redirect_to_node(vnet_main,hw_if_index, my_graph_node.index /* redirect to my_gra
2016-04-22 10:44:21 9270
原创 Cisco VPP(3) 启动流程
VPP初始化VLIB_INIT_FUNCTION用来定义构造函数,注册函数到vlib_main_t->init_function_registrations,这个链表在main()函数之前创建。vlib_main()-> vlib_call_all_init_functions()注册的函数在这里被调用初始化,最后执行函数vlib_main_loop()。像这样由宏定义和构造函数创建的
2016-04-21 14:25:42 9266
原创 Cisco VPP(2) 基本安装
VPP目前安装主要支持debian和redhat系,本人在CentOS7上验证。1、 下载代码: gitclone https://gerrit.fd.io/r/vpp2、 进入目录并且安装: cdvpp; make install-dep;3、 生成Makefile: cdvpp/build-root;make distclean;./bootstrap.sh;4、
2016-04-21 14:06:37 9639 1
原创 Cisco VPP(1) 简介
思科开源了VPP,属于一个可以灵活扩展的框架,并且内置了网络的一部分功能,主要是L2和L3。该软件将DPDK纳入为一种收包方式。
2016-04-21 13:58:53 29622 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人