多平台统一管理软件接口,如何实现多平台统一管理软件接口
483
2022-10-30
vpp接口数据结构
dpdk_device_t字段描述
lockp发送队列锁,当发送队列个数少于线程个数时往port发包需要加锁,lockp是一个数组,每个元素对应一个发送队列,即每个发送队列一把锁
device_index为port分配的index,每个port一个
vlib_hw_if_index该port对应的hw结构的索引
vlib_sw_if_index该port对应的sw结构的索引
per_interface_next_index通过插件设置的下一个节点的index,如果没有设置该字段,默认下一个节点为handoff
tx_vectors发包缓存(数组),每个线程一个,每个数组大小为4096
rx_vectors收包缓存(数组),每个接收队列一个,每个数组大小为256
d_trace_bufferstrace用于存放mbuf数组
frames用于分发包用的数组,每个线程一个,目前暂未使用
dev_type设备类型:ETH、KNI、VHOST_USER
pmd驱动类型:THUNDERX、E1000EM、IGB、IGBVF、IXGBE、IXGBEVF、I40E、I40EVF、VIRTIO、VICE
cpu_socket该port所在的numa
admin_upport的管理状态
promisc混杂模式
tx_q_usedport发送队列个数
rx_q_usedport接收队列个数
nb_rx_descport接收队列大小(描述符个数)
nb_tx_descPort发送队列大小(描述符个数)
cpu_socket_id_by_queue收每个接收队列的核对应的socket
port_confport的配置
tx_conf发送队列配置
kniKni口
kni_port_idKni口id
vu_if_id
vhost-user相关字段
vu_vhost_dev
vu_is_running
vu_intf
af_packet_port_idAF_PACKET口id
linkport状态
time_last_link_update最近一次更新port状态的时间
statsport的统计计数
last_stats上一次获取的port的统计技术
last_cleared_stats上次清除的port的统计计数
xstatsport扩展统计
last_cleared_xstats上次清除的port的扩展统计计数
time_last_stats_update最近一次更新port统计计数的时间
port_typePort的类型:1G、10G、40G、BOND、SWITCH、NETMAP、AF_PACKET
efd_agentefd功能相关
need_txlock发包是否需要加锁
ethernet_interface_t 字段描述
flag_changePort的管理状态、混在模式等flag修改函数
driver_instance暂未使用
address[6]Port的mac地址
vnet_hw_interface_t字段描述
namehw接口名字
flagsHw接口状态:
VNET_HW_INTERFACE_FLAG_LINK_UP
hw_addresshw接口mac地址
output_node_indexOutput节点的index
tx_node_indexTx节点的index
dev_class_index设备类型索引:dpdk_device_class.index
dev_instance设备实例索引:dpdk_device_t结构的索引
hw_class_indexhw接口类型索引:
ethernet_hw_interface_class.index
hw_instancehw接口类型实例索引:ethernet_interface_t结构的索引
hw_if_indexhw结构的索引
sw_if_indexSw结构的索引
max_rate_bits_per_sec每秒传输速率,暂未使用
min_supported_packet_bytes接口支持的最小包长,默认:64
max_supported_packet_bytes接口支持的最大包长,默认:9216
min_packet_bytes接口支持的最小包长,默认:64
max_packet_bytes接口支持的最大包长,默认:9216
per_packet_overhead_bytes额外的节点长度:20,目前没看到有用
max_l3_packet_bytes[]三层的MRU/MTU值,默认:9000
sub_interface_sw_if_index_by_id子接口索引哈希表,key为标签值,value为子接口索引
l2_if_count如果为1,所有的包都走ethernet-input?
bond_infobond口用
vnet_sw_interface_t字段描述
typesw接口类型: HARDWARE、
SUB
flags标志位:ADMIN_UP、PUNT、PROXY_ARP、UNNUMBERED、BOND_SLAVE
sw_if_indexsw接口索引
sup_sw_if_index父接口索引
unnumbered_sw_if_index无编号接口索引:
feature,暂时只有ipsec-output
hw_if_index/ sub联合体,父接口时hw_if_index指向hw的索引,子接口时sub用来保存子接口相关信息
vnet_sub_interface_t字段描述
id标签id
eth .outer_vlan_id外面标签id
eth .inner_vlan_id内存标签id
eth .raw_flags/eth .flags
标志位:
no_tags:没有tag
one_tag:有一个tag
two_tags:有两个tag
dot1ad:0 = dot1q, 1=dot1ad
exact_match:
default_sub:默认子接口?
outer_vlan_id_any:匹配任意外层标签,未实现
inner_vlan_id_any:匹配任意内层标签,未实现
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~