特性介绍
MAC VLAN表
TM280使用U/M(Unicast/Multicast)VLAN表进行MAC+VLAN或者MAC转发和过滤。总共支持4K+128条表项,其中最大支持4K+128条单播表项,1K组播表项。单播表项为3K条均分,组播表项为1K条全局抢占。
VLAN表
VLAN表为每个VLAN定义了一组成员,提供VLAN域内过滤、广播、洪泛等功能。VLAN过滤默认是不使能的,所有的报文将不会被VLAN过滤掉。
流表
流表是PPP的一部分,主要用于对报文进行过滤和转发。基本原理是先通过用户配置或自学习的方式创建流表表项,表项形式为key-action形式,key为匹配规则,包含报文的多种形式的tuple信息,action为匹配之后的对报文的操作,可以为丢弃、转发到指定队列、转发到其他表进一步查表。
流控
流控通过实时了解对端设备对通信流量的要求,根据对端设备的要求来决定本设备是继续发送还是暂停发送数据包。
MTU
MTU即Maximum Transmission Unit(最大传输单元),是指一种通信协议的某一层上所能通过的最大数据包大小。通常人们所说的MTU为IP层的最大传输数据大小。TM280支持9.5kB的Jumbo帧
GRO
GRO是在协议栈接收报文时进行减负的一种处理方式,该方式在设计上考虑了多种协议报文。GRO功能在接收端通过把多个相关的报文(比如TCP分段报文)组装成一个大的报文后再传送给协议栈进行处理,因此减少了协议栈处理报文个数,加快协议栈对报文的处理速度。
VLAN
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。TM280最多支持4096个VLAN ID,即VLAN 0~VLAN 4095,其中VLAN 0和VLAN 4095为协议保留VLAN ID。
VxLAN
VXLAN是一种网络虚拟化技术,创建第2层逻辑网络,并将其封装在标准第3层IP数据包中。可以对二层网络在三层范围进行扩展,应用于数据中心,使虚拟机可以在互相连通的三层网络范围内迁移,而不需要改变IP地址和MAC地址。
TSO
TSO是一种利用网卡的少量处理能力,降低CPU发送数据包负载的技术,需要网卡硬件及驱动的支持。
RSS
RSS通过一定的hash算法实现接收方向上的负载均衡,使报文尽量平均地分配到不同队列,从而对应到不同的CPU核,降低因CPU切换调度带来的性能损失。
队列
在NIC领域,队列通常以QP(Queue Pair)方式存在,单个QP包含1个TX队列和1个RX队列。每个QP映射到一块存储空间,PF/VF通过申请1个或多个QP来实现配置和服务。
Checksum
校验功能,可以替代系统的TCP/IP协议栈来实现部分报文类型的校验和计算,如IP、TCP、UDP和SCTP。
点灯
点灯特指对网口设备的点灯,其LED指示灯可用于标识不同的工作状态,例Link状态,电源状态,故障状态等。
SR-IOV
TM280的25GE端口支持SR-IOV功能。每个物理端口使能出来的VF可以添加给VM(Virtual Machine)使用,与VM建立映射关系。
VMMQ
VMMQ是一种NIC特性,它允许VM的流量分散到多个队列,每个队列由不同的物理处理器处理。然后,流量被传递到VM中的多个LP,就像它在vRSS中一样,这允许向VM提供大量的网络带宽。
DPDK
DPDK是一个用来进行包数据处理加速的软件库,专注于网络应用中数据包的高性能处理。
技术优点
- 通过UIO技术将报文拷贝到应用空间处理,规避不必要的内存拷贝和系统调用,便于快速迭代优化。
- 通过大页内存HUGEPAGE,降低cache miss(访存开销),利用内存多通道交错访问提高内存访问有效带宽,即提高命中率,进而提高cpu访问速度。
- 通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换。特定任务可以被指定只在某个核上工作,避免线程在不同核间频繁切换,保证更多的cache命中。
- 通过无锁队列,减少资源竞争。cache行对齐,预取数据,多元数据批量操作。
- 通过轮询可在包处理时避免中断上下文切换的开销。
PXE
TM280的25GE端口支持PXE。PXE用于通过Ethernet或IP网络进行远程启动,远端连接PXE Server提供OS加载。