课程大纲:
dpdk培训
1. dpdk概述
2. 环境抽象层(EAL库)
· DPDK加载和启动
· 支持多进程和多线程执行类型
· cpu core亲和力/分配程序
· 系统内存分配/取消分配
· 原子/锁定操作
· 时间参考
· PCI总线访问
· 跟踪和调试功能
· CPU功能识别
· 中断处理
· 报警操作
· 内存管理(malloc)
3. 其他库
3.1 环管理器(librte_ring)
环形结构在有限大小的表中提供了无锁的多生产者,多消费者FIFO API
3.2 内存池管理器(librte_mempool)
3.3 网络数据包缓冲区管理(librte_mbuf)
该库提供了一个API,用于分配/释放mbuf,操纵作为通用消息缓冲区的控制消息缓冲区(ctrlmbuf)和用于承载网络数据包的数据包缓冲区(pktmbuf)
3.4 计时器管理器(librte_timer)
该库为DPDK执行单元提供计时器服务
3.5 数据包转发算法支持
DPDK包括哈希(librte_hash)和长前缀匹配(LPM,librte_lpm)库,以支持相应的数据包转发算法
3.6 librte_net
librte_net库是IP协议定义和便捷宏的集合它基于FreeBSD * IP堆栈中的代码,并包含协议编号(用于IP标头),与IP相关的宏,IPv4 / IPv6标头结构以及TCP,UDP和SCTP标头结构
4. 实例应用程序
4.1 Hello World示例应用程序
4.2 基本转发示例应用程序