欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

r2p2之DPDK学习记录(2)

程序员文章站 2022-07-08 18:08:11
dpdk函数rte_eth_tx_burst()对于要发送的每个包,rte_eth_tx_burst()函数会执行下列操作:在传输ring中选择下一个可用的描述符。释放先前与该描述符一起发送的网络缓冲区,如果有的话。使用*rte_mbuf数据结构中提供的信息初始化传输描述符。static uint16_t rte_eth_tx_burst(uint16_tport_id,uint16_tqueue_id,......

名称解释

简称 全称 备注
DPDK Data Plane Development Kit 数据平面开发套件
RTE RunTime Environment 运行时环境
EAL Environment Abstraction Layer 环境抽象层
lcore logical core EAL pthread
TLS Thread Local Storage 线程本地存储

dpdk函数

dpdk的主要对外函数接口都以rte_作为前缀,抽象化函数接口是典型软件设计思路,可以帮助DPDK运行在多个操作系统上。

rte_eth_tx_burst()

对于要发送的每个包,rte_eth_tx_burst()函数会执行下列操作:

  • 在传输ring中选择下一个可用的描述符。
  • 释放先前与该描述符一起发送的网络缓冲区,如果有的话。
  • 使用*rte_mbuf数据结构中提供的信息初始化传输描述符。
static uint16_t rte_eth_tx_burst ( uint16_t  port_id,
    uint16_t  queue_id,
    struct rte_mbuf **  tx_pkts,
    uint16_t  nb_pkts 
  )

参数

 port_id:以太网设备的端口标识符。

queue_id:必须通过其发送输出数据包的传输队列的索引。该值必须在先前提供给rte_eth_dev_configure()的[0,nb_tx_queue - 1]范围内。

tx-pkts:包含输出包的rte_mbuf结构的nb_pkts指针数组的地址。

nb_pkts:要传输的最大数据包数。

return发送成功的数据包的个数。

lcore

一个lcore是一个基于pthread实现的线程。

rte_eal_init(int argc, char **argv)

主线程运行入口是main函数,调用了rte_eal_init入口函数,启动基础运行环境。

函数参数是启动DPDK的命令行,比较复杂,它将被解析并且保存作为DPDK运行的系统信息。

 rte_lcore_count()

返回当前系统上存在的lcore的个数。

rte_eth_dev_count()

获取在PCI探测阶段由匹配的以太网驱动程序成功初始化的以太网设备总数。所有端口标识符在[0,rte_eth_dev_count() - 1]范围内的设备都可以在调用rte_eal_init()后立即被网络应用程序操作。

rte_eth_dev_configure(port_id, nb_rx_queue, nb_tx_queue, eth_conf)

配置以太网设备。

参数

port_id: 需要配置的以太网设备的端口id。

nb_rx_queue: 为以太网设备设置的接收队列的数量。

nb_tx_queue: 为以太网设备设置的发送队列的数量。

eth_conf: 指向用于以太网设备的配置数据的指针。

rte_eth_tx_queue_setup(port_id, tx_queue_id, nb_tx_desc, socket_id, tx_conf)

给以太网设备分配并配置一个传输队列。

参数

tx_queue_id: 要设置的传输队列的索引。该值必须在先前提供给rte_eth_dev_configure()的[0,nb_tx_queue-1]范围内。

nb_tx_desc: 分配给传输ring的传输描述符的数量。

socket_id: 在r2p2的dpdk_init()中,socket_id = rte_eth_dev_socket_id(port_id),socket_id这里指的是什么?

tx_conf: 指向传输队列的配置数据的指针。

rte_eth_dev_socket_id()

返回以太网设备所连接的NUMA socket.

 

本文地址:https://blog.csdn.net/qq_43012789/article/details/108857129

相关标签: dpdk