码农知识堂 - 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

  • 相关阅读:
    Python---练习:有一物,不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?
    EntityUtils MapStruct BeanCopier 数据实体类转换工具 DO BO VO DTO 附视频
    java基于微信小程序的在线学习考试系统 uniapp 小程序
    Python 中的迭代器(iter、next)与生成器(yield)解析
    tiktok接口对接
    springboot+旅游管理系统 毕业设计-附源码261117
    基于kolla的openstack在线变更网卡(bond)
    Spring 面向切面编程 第3关:AOP实现原理-JDK动态代理
    【栈和队列刷题】 有效的括号、删除字符串中的所有相邻重复项、用栈实现队列、用队列实现栈
    Linux--CE--ansible安装以及配置主控服务器和被控服务器
  • 原文地址:https://blog.csdn.net/weixin_60043341/article/details/126623758
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号