VPP cli
VPP/命令行 (CLI)
具體內容詳見下發連接
VPP/命令行 (CLI) 指南
VPP cli
| create sub BondEthernet0 834 | 創建子接口,tag是834 |
| set interface ip table BondEthernet0.834 1 | 將此接口設置在fib 1里 |
| set interface ip address BondEthernet0.834 192.168.0.250/24 | 設置接口ip |
| set interface state BondEthernet0.834 up | up接口 |
| set interface l2 bridge BondEthernet0.834 834 | 將此接口設置到bridge 834里 |
| set ip arp GigabitEthernet2/6/0 192.168.2.2 00:0c:29:dc:96:f8 | 設置靜態arp |
| ip route add 1.2.3.0/24 via GigabitEthernet2/6/0 | 添加路由 |
| create vhost socket /tmp/sock2.sock server | 創建vhost接口 |
| l2fib add fa:16:3e:b0:a9:71 834 BondEthernet0.834 | 添加二層轉發流表 |
| create host-interface name vpp5a | 創建veth口,name后參數名字必須和linux里創建的veth口名字對應 |
| set dpdk interface descriptors TenGigabitEthernet6/0/0 tx/rx 1024 | 設置此接口rx或是tx隊列大小,intel人說2000-4000差距不大 |
| trace add dpdk-input 8 | 跟蹤dpdk接口數據包 (dpdk-input是節點的名字,想跟蹤任何節點都可以) |
| trace add vhost-user-input 8 | 跟蹤vhost接口數據包 |
| trace add af-packet-input 8 | 跟蹤veth接口數據包 |
| show hardware-interfaces | 查看接口mac |
| show vlib graph | 查看node邏輯圖 |
| show threads | 查看vpp線程 |
| show l2fib | 查看二層轉發流表 |
| show ip fib | 查看路由表 |
| show ip arp | 查看arp |
| show affinity | 查看主線程cpu親和性 |
| show version | 查看vpp版本 |
| show int | 查看接口統計 |
| show interfaces address | 查看接口ip |
| show bridge-domain | 查看bridge 接口情況 |
VPP 源代碼小知識
注冊宏中函數有用__attribute__((constructor))進行修飾,其作用是什么?
解:constructor參數讓系統執行main()函數之前調用函數(被__attribute__((constructor))修飾的函數).同理,
destructor讓系統在main()函數退出或者調用了exit()之后,調用我們的函數.帶有這些修飾屬性的函數,對于我們初始化一些在程序中使用的數據非常有用.
2.返回的error值 解:
#define foreach_vnet_api_error \ _(UNSPECIFIED, -1, "Unspecified Error") \ _(INVALID_SW_IF_INDEX, -2, "Invalid sw_if_index") \ _(NO_SUCH_FIB, -3, "No such FIB / VRF") \ _(NO_SUCH_INNER_FIB, -4, "No such inner FIB / VRF") \ _(NO_SUCH_LABEL, -5, "No such label") \ _(NO_SUCH_ENTRY, -6, "No such entry") \ _(INVALID_VALUE, -7, "Invalid value") \ _(INVALID_VALUE_2, -8, "Invalid value #2") \ _(UNIMPLEMENTED, -9, "Unimplemented") \ _(INVALID_SW_IF_INDEX_2, -10, "Invalid sw_if_index #2") \ _(MISSING_CERT_KEY, -161, "Missing certifcate or key")typedef enum { #define _(a,b,c) VNET_API_ERROR_##a = (b),foreach_vnet_api_error #undef _ /*注意這里的下劃線,這里的下發線與上面對應,c語言宏的命名方式不能以特殊符號開始*/VNET_API_N_ERROR, } vnet_api_error_t;總結
- 上一篇: nsis访问php,Inetc是NSIS
- 下一篇: 设计师案头必备的配色灵感宝典软件\插件!