
dpdk
文章平均质量分 94
于顾而言
https://www.zhihu.com/people/whisper-of-the-Koo
深信服高级安全研发工程师
SASE/ZTNA 领域5Years+
云原生,网络,IPS, KV,Url Filter,Threat Info,DPDK,零信任都懂一点
展开
-
DPDK源码分析之网络基础知识
线程使用的底层函数和进程一样,都是clone。从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表是相同的。进程可以蜕变成线程。三级映射:进程PCB --> 页目录(可看成数组,首地址位于PCB中) --> 页表 --> 物理页面 --> 内存单元。两个线程具有各自独立的PCB,但共享同一个页目录,也就共享同一个页表和物理页面。在B +树中, 记录(数据)只能存储在叶节点上, 而内部节点只能存储键值。B +树的叶节点以单链接列表的形式链接在一起, 以使搜索查询更高效创建。原创 2024-03-11 09:50:12 · 537 阅读 · 0 评论 -
DPDK源码分析之l2fwd
2层转发,即对应OSI模型中的数据链路层,该层以Mac帧进行传输,运行在2层的比较有代表性的设备就是交换机了。当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是因为交换机内部有一个MAC地址表,MAC地址表记录了网络中所有MAC地址与该交换机各端口的对应信息。原创 2024-03-11 09:49:41 · 1184 阅读 · 0 评论 -
DPDK源码分析之hello_world
rte_eal_init后会启动若干个线程,个数与硬件核数或配置核数有关,每个子线程都有各自的与主线程通信的pipe管道,这个管道的作用是:当主线程想要分配某一个函数让子线程执行时,主线程会通过pipe发送消息(1个字节,内容无所谓),子线程读取到这个消息后会回送给主线程一个消息,然后子进程便开始执行主线程赋值的函数(lcore_hello),而主线程收到子线程的回信后,就可以去给其他的线程分配函数了。至此,各个子线程死循环执行线程函数eal_thread_loop,不断执行主线程分配的函数。原创 2024-03-11 09:49:04 · 940 阅读 · 0 评论 -
DPDK源码分析之rte_eal_init(二)
插件机制,就是动态库,首先会通过NOLOAD加载.so测试当前运行程序是否是动态链接库加载dpdk,如果是静态库加载直接返回,否则将会加载插件,插件的路径可以由-d参数指定,也可以由RTE_EAL_PMD_PATH(/usr/local/lib64/dpdk/pmds-21.0)指定,函数会加载-d指定的so或者将指定路径下满足条件的插件加入管理(eal_plugin_add),并通过dlopen加载。pci_scan_one (扫描/sys/bus/pci/devices目录下的设备)原创 2024-03-11 09:47:36 · 730 阅读 · 0 评论 -
DPDK源码分析之rte_eal_init(一)
而这些内部函数和宏是变化的。将driver注册到bus上,当用户需要使用AT24C01时,以AT24C01的参数构建一个对应device,注册到bus中,bus的match函数匹配上之后,调用probe函数,即可完成AT24C01的初始化,完成在用户空间的文件接口注册。总线(bus)是linux发展过程中抽象出来的一种设备模型,为了统一管理所有的设备,内核中每个设备都会被挂载在总线上,这个bus可以是对应硬件的bus(i2c bus、spi bus)、可以是虚拟bus(platform bus)。原创 2024-03-11 09:46:48 · 1315 阅读 · 0 评论 -
DPDK源码分析之DPDK技术简介
DPDK的线程可以作为控制线程,也可以作为数据线程。硬件的能力提升迅速,在一块小小的网卡上,处理器能够提供的性能已经远远超出了简单的数据包接收转发的需求,这在技术上提供了将许多原先软件实现的功能下移由网卡硬件直接完成的可能。DPDK采用了轮询或者轮询混杂中断的模式来进行收包和发包,此前传统的方法都是系统内核态的网卡驱动程序基于异步中断处理模式,我们都知道中断是十分耗性能的。其次DPDK充分利用指令的并发,比如说rte_memcpy,虽然功能只是简单的内存拷贝功能,但是它的实现使用了平台。原创 2024-03-11 09:46:03 · 632 阅读 · 0 评论 -
DPDK源码分析之DPDK基础概览
data-plane-development-kit,数据平面的开发套件,可以极大提高数据处理性能和吞吐量,为数据平面应用程序提供更多时间。DPDK并非是凭空使用了什么神秘的技术,而是多年的工程优化迭代和最佳实践的融合。(1)轮询技术为了减少中断处理开销,DPDK使用了轮询技术来处理网络报文。网卡收到报文后,直接将报文保存到处理器缓存中(有DDIO(Direct Data I/O)技术的情况下),或者内存中(没有DDIO技术的情况下),并设置报文到达的标志位。原创 2024-03-11 09:45:20 · 831 阅读 · 0 评论 -
一种网卡排障的实践方法
网卡是计算机中非常重要的组件之一,它负责计算机与网络之间的通信。然而,由于各种原因,网卡可能会出现不可用的情况。其中,固件错误和PCIE错误是导致网卡不可用的常见原因之一。为了方便能够做故障隔离,需要检测出网卡错误,这里针对PCIE错误导致的网卡不可用,提供一种可靠断定网卡不可用的实践方法。原创 2024-03-07 14:28:19 · 949 阅读 · 0 评论