1.HW checksum offload : 指将报文的IP\TCP\UDP校验和的计算交给CP去做,减少CPU(ap)的负担
2.HW GRO :CP pktproc 的一个针对TCP\UDP 的merge操作,其配合着ap的linux gro来做merge 。相当于merge 的操作一部分在CP (HW) ,一部分在AP(SW)。把一部分merge操作放在硬件完成,这样有效降低CPU usage。而GRO的目的是为了在linux networkstack 减少cpu 运算时间,同时也减少了ack包的数量,有利于cp 有更多资源处理data 包
3.RSS: 全称Receive side scaling 。以5 tuples (src ip, dst ip, src port, dst port, protocol) 作为key,来计算hash值,以此选择cpu和irq,提高cpu 并行度。应用场景: 网络数据大流量
4.HW CLAT :IPV4和IPV6的转换,转换目的是为了让某些IPV4应用也能在IPV6-ONLY 的网络环境下使用。HW CLAT等同于将ap android 的CLATD的活放到CP来做
5.Zero memcpy :指不使用reserved memory ,让cp能直接通过DMA访问SKB。 ? ?reserved memory 方案: ap(skb) --cpu copy-> reserved memory -->DNA -->CP? ? ?Zero memcpy 方案: ap(skb)--->DNA--->CP ? ?出于安全,在使用Zero memcpy时,必须采用dma attack gate,例如IOMMU,限制device的dma访问区域
6.NAPI: linux 网络收包的一种标准方式,采用中断和轮询相结合,当数据包来到时,触发硬件中断,将napi_struct结构插入到当前cpu de softnet_data的poll_list链表尾部,raise NET_RX_SOFTIRQ ,disable HW IRQ。 在软中断中对数据包轮询操作(napi_poll),若数据包处理完,则退出轮询,enable HW IRQ ,若数据包没处理完,而时间片netdev_budget_usecs用完,则退出轮询,同时raise NET_RX_SOFTIRQ,等待下一次软中断响应。
|