vppctl的基础命令

1.vppctl基础命令

参考VPP 20.01,说明vppctl的基础命令:

shell 复制代码
# 设备硬件信息
vppctl show cpu #查看机器的CPU信息
vppctl show int #查看机器的网卡情况
vppctl show hardware-interfaces #查看更详细的网卡信息

# vpp进程信息
vppctl show plugins #查看加载的插件
vppctl show threads #查看运行的线程情况
vppctl show logging #查看vpp的日志信息,如dpdk启动信息。可用vlib_log_notice()函数输出

# vpp收报处理统计
vppctl show node counters #查看各节点的处理情况,一般只有dpdk-input

# vpp节点流图
vppctl vlib graphviz #查看完整的节点流图
vppctl vlib graph #查看完整的节点流通
vppctl vlib graph xxx #查看指定xxx节点的图信息

# vpp各节点的处理报文情况
vppctl show runtime #查看vpp的活跃节点的调用信息,可查看当前vpp运作的大致情况
vppctl show node xxx #查看指定xxx节点的信息,index/next/before;不如runtime准确,有些没有记录下来
vppctl show node error-drop |grep 485 #快速查看index=485的节点信息

2.常见节点的功能

node func
dpdk-input 使用dpdk从网卡接收原始包
ethernet-input 接收处理ethernet以太包
ip4-input 接收处理ipv4包
ip6-input 接收处理ipv6包
error-drop 接收处理丢弃的包
l2-input 接收处理需要进行l2转发的包:与ethernet-input有区别

3.场景与用例

3.1 跟踪报文的处理过程

当报文从网卡接收后,vpp是如何一个个节点流转处理的呢?

使用下面的命令,可方便跟踪报文的处理过程,比增加打印日志要方便

shell 复制代码
#输入vppctl命令,进入vppctl工具里,执行如下vpp的内建命令
trace add dpdk-input 30 #命令设置:从dpdk-input这个入口点,跟踪30个报文的处理过程
show trace #展示30个报文的处理过程
clear trace #清空命令设置,重头开始