lx2160使用dpdk


难度 中等

硬件概要

底层驱动同事负责在操作系统启动的时候同时启动网卡,其中dpni.3为对外的10G网卡,是我们需要使用的网卡。

dpni.3对应eth3,与dpmac.4相连。对于eth3,可以使用标准的linux网络工具,可使用ethtool、ifconfig对其操作。

root@hx-A-Tiny:/mnt/emmc2# ls-listni
dprc.1/dpni.4 (interface: eth4, end point: dpmac.3)
dprc.1/dpni.3 (interface: eth3, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.13)
dprc.1/dpni.1 (interface: eth0)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.14)

查看网卡

  • 更换dpdk前
root@hx-A-Tiny:/mnt/emmc2# ls-listni
dprc.1/dpni.4 (interface: eth4, end point: dpmac.3)
dprc.1/dpni.3 (interface: eth3, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.13)
dprc.1/dpni.1 (interface: eth0)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.14)
  • 更换dpdk后
root@hx-A-Tiny:~# ls-listni
dprc.1/dpni.4 (interface: eth4, end point: dpmac.3)
dprc.1/dpni.3 (interface: eth3)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.13)
dprc.1/dpni.1 (interface: eth0)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.14)
dprc.1/dprc.2/dpni.5 (end point: dpmac.4)
root@hx-A-Tiny:~#

dpaa2

专有名词:

  • DPRC (Datapath Resource Container)

  • DPNI (Datapath Network Interface)

  • DPSW(Datapath Switch)

  • DPMAC (Datapath MAC)

  • DPIO (Datapath I/O)

dpaa软件结构如下:

dpaa2对象关系如下:

dpaa2的对象可以使用restool命令来进行查看和管理。

对于网卡来说,与linux相同,同样支持如下命令:

  • ifconfig
  • ip
  • ethtool

dpaa2支持的其他命令:

  • restool

    # 查看dprc资源
    restool dprc info dprc.2
    # 查看dprc下的dpiodpbp等
    restool dprc show dprc.2
    # 查看dpni资源
    restool dpni info dpni.1
    #查看dpmac信息
    restool dpmac info dpmac.4

dpaa2通过如下三种方式将硬件资源分配给container:

  • the datapath layout file
  • restool
  • Management Complex commands

DPRC

dprc是如下软件运行的基础:

  • linux内核
  • kvm
  • dpdk应用
  • aiop应用

创建dprcs

有两种方式创建dprcs:

  • 静态创建

    DPL file(RCW、DPC、DPL)

    • reset configuration word (RCW)
    • the data path configuration (DPC)
    • data path layout (DPL)
  • 动态创建

    restool命令创建

    #列出dprc
    restool dprc list
    #列出在dprc.1下的所有对象
    restool dprc show dprc.1
    #查看dpni.0的相关信息
    restool dpni info dpni.0
    # 创建dpbp
    restool dpbp create
    #将新创建的dpbp.5插入
    restool dprc assign dprc.1 --oect=dpbp.5 --plugged=1
    #配置ip
    ifconfig eth1 192.168.1.2
    #修改mac
    ifconfig eth1 hw ether 02:00:C0:01:02:0a
    ip link set dev eth1 address 02:00:C0:01:02:0b
  • 动态删除

    #unbind dpni.5
    echo dpni.5 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/unbind
    #destroy
    restool dpni destroy dpni.5
    #unbingd dprc.2
    echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/unbind
    #destroy
    restool dprc destroy dprc.2
    #unbind
    echo dpmac.4 > /sys/bus/fsl-mc/drivers/dpaa2_mac/unbind
    #destroy
    restool dpmac destroy dpmac.4

restool

其他命令

  • ls-addni

    用来创建DPNI。

  • ls-listni

  • ls-listmac


文章作者: growdu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 growdu !
  目录
分类导航
随笔2 AI27 算法1 计算机基础13 博客搭建7 ChatGPT2 集群63 计算机通信1 数据库34 数据库深入80 DPDK26 Docker11 Elasticsearch4 编辑工具4 FAQ1 Go Web1 hometown2 编程语言16 网络9 OPC1 Linux38 openGauss4 页面12 PostgreSQL54 程序员自我修养1 协议11 成长之路1 stock1 存储5 工具20 VPP18 视频作品1 Vue13 Web1 代码示例11 数据库15 BenchmarkSQL1 PostgreSQL 源码修炼之路14
最热文章
1
13 逻辑复制深入
数据库深入🔥 1570
2
0 Postgresql存储、索引及系统优化、主备切换
PostgreSQL🔥 1495
3
一文读懂openguass dcf网络模块
集群🔥 1420
4
逻辑复制源码分析
数据库深入🔥 1327
5
PostgreSQL 分区表:从一行 `PARTITION BY` 到路由热路径的全链路拆解
数据库🔥 1094
6
applyparallelworker.c 之 LA 端源码深度解析:Leader Apply Worker 的指挥中枢
数据库深入🔥 1082
7
PostgreSQL Background Worker 全解:从 `RegisterBackgroundWorker` 到逻辑复制 4 类 worker 的全生命周期
数据库🔥 1078
8
PostgreSQL的后台进程walsender分析 - 关系型数据库 - 亿速云
PostgreSQL🔥 1033
9
PostgreSQL 逻辑复制的监控:六张视图 + 一组可执行 SQL,把 publisher/subscriber 的速率与健康度彻底看透
数据库🔥 1032
10
PostgreSQL 逻辑复制支持 DDL 之后:DDL 与 DML 的时序难题(重点:分区表)
数据库🔥 999
11
reorderbuffer.c 源码深度解析:PostgreSQL 逻辑复制的"事务重组引擎
数据库深入🔥 953
12
PostgreSQL 内核开发:读取一张表的 9 步标准流程与缓存全景
数据库🔥 938
13
从 `postgres` 二进制到生产级守护 —— PostgreSQL 最外层模块与启动全流程拆解
数据库🔥 936
14
支持逻辑复制同步 DDL 适配 SQL Server 方案
数据库深入🔥 934
15
PostgreSQL 逻辑复制的 ReorderBuffer 与事务机制:从一行 WAL 到一致性变更流的全链路绑定
数据库🔥 913
16
DDL同步架构(美化版)
数据库深入🔥 908
17
PostgreSQL Latch 机制详解:从一行 SetLatch 到 epoll 的内核之旅
数据库🔥 871
18
pgbench 源码全解:一个 C 文件如何撑起 PostgreSQL 官方压测工具
数据库🔥 860
19
PostgreSQL libpq 机制与缓冲区详解
数据库🔥 850
20
PostgreSQL 逻辑复制 spill 文件深度剖析:从 `xid-*.spill` 到 TPC-C 的增长方程
数据库🔥 845