码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DPDK以太网部分代码整理


    总体流程如图所示,初始化时配置设备和队列,运行时通过rte_eth_tx_burst和rte_eth_rx_burst来收发包。

    收包内存池创建

    rte_pktmbuf_pool_create(pool_name, num, cache_size, priv_size, data_room_size, socket_id);

    1. num是pool里block个数

    2. cache_size是一些lcore的指针,指向本mempool里的buffer,注意每个lcore都会reserve这么多指针,其它buffer就没法访问这些block了。

    3. priv_size是预留的内部空间,比如可以作为一些custom header的存储位置。

    4. data_room_size是实际payload size + RTE_PKTMBUF_HEADROOM

    5. socket_id可以是0,如果只有1个socket。也可以是任意的,比如SOCKET_ID_ANY,也就是-1。主要涉及到不同的NUMA,会用到不同的DMA。

    6. 有些驱动比如ice的一些驱动,不支持iova=va的模式,因为PMD需要大块的连续物理内存。

    7. 收包DMA会搬运到事先分配好的收包内存池。注意发包内存池不需要给驱动额外创建,rte_eth_tx_burst前的buffer已经分配好了。

    设备端口初始化

    1. rte_eth_dev_count_avail()
      看有几个eth port,就是几个eth设备,包括所有PF和VF的数量。

    2. rte_eth_dev_info_get(port, &dev_info);
      看当前port支持哪些功能,比如最大的rx queue和tx queue数量。

    3. rte_eth_dev_configure(port, n_rx_q, n_tx_q + n_free_tx_q, &port_conf)
      配置port有几个tx和rx的队列。

    4. rte_eth_dev_set_vlan_offload(port_id, vlan_offload)
      先获得当前的VLAN offload配置。rte_eth_dev_get_vlan_offload(port_id),再配置vlan offload配置。rte_eth_dev_get_vlan_offload

    5. rte_eth_dev_vlan_filter(port_id, vlan_id, 1)
      给port_id和vlan_id配置offload,1表示使能,也就是允许让这些p

  • 相关阅读:
    速看!!带你揭秘3D建模行业内幕!!
    Python + Selenium + Chrome Driver 自动化点击+评论+刷弹幕(仅供学习)
    数据工程师日记:10年职场老鸟,我居然被新人给上了一课
    数值分析复习:Richardson外推和Romberg算法
    动态规划——leetcode5、最长回文子串
    基于SSM的食用菌菌棒溯源系统
    【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器(TcpServer板块)
    第04章 逻辑架构【1.MySQL架构篇】【MySQL高级】
    CrownCAD 2022 特征操作及编辑
    Python 算法交易实验44 实验笔记2
  • 原文地址:https://blog.csdn.net/weixin_60043341/article/details/126623758
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号