DPDK Rx flexible descriptor 在Intel E810 网卡中的使用

什么是Rx flexible descriptor

Intel E810系列网卡支持Rx flexible descriptor,这是一种可以通过软件定义格式并配置到网卡硬件中的Rx descriptor(接收描述符)。Flexible descriptor中的metadata和flags字段可以根据需求和应用场景,自定义为特定的内容。

Rx flexible descriptor的作用

一般Rx descriptor的作用在于网卡接收和解析数据包后,向驱动软件传达数据包的状态,并携带必要信息。由于硬件限制,传统的descriptor的格式是固定的,在任何应用场景下,面对不同的协议,其内容都是一致的。这会导致数据处理过程死板,且需要额外的CPU运算资源来将这些原始数据处理成软件需要的数据。Flexible descriptor则是在此基础上,让用户可以自定义descriptor所携带的内容。经过配置后的网卡硬件可以按照flexible descriptor的特殊格式,解析数据包并将指定内容直接填入descriptor的相应字段中。这一步简化了后续的软件处理过程,从而大大提高了处理速度,也使得功能更加丰富。

如何定义Rx flexible descriptor

通过使用E810网卡所支持的DDP(Dynamic Device Personalization)package文件,网卡可以在启动时加载DDP中已配置的flexible descriptor格式,并通过RXDID选择对应的flexible descriptor来使用。而根据DDP类型的不同(OS default,COMMS和Custom等),能选择使用的flexible descriptor格式也不同。所以用户在使用时需要特别注意DDP package的类型和版本,以及DPDK的版本。

E810网卡对flexible descriptor的支持

E810系列网卡提供了63个Descriptor Builder Profile,可以用来配置63种Rx descriptor格式,包括传统的16字节和32字节的两种legacy descriptor。这些profile都有对应的RXDID,网卡硬件通过由软件写入到相应寄存器中的RXDID值来决定要使用的Rx descriptor格式,软件也可根据收到的Rx descriptor中的RXDID字段验证当下所使用的Rx descriptor格式。

Rx flexible descriptor的通用格式

其中,用户可以灵活配置的字段为

1. metadata (FlexiMD.0 ~ FlexiMD.5)

2. flags (FlexiFlags.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值