相关代码:DPDK_Learning/ICMP_echo_reply at main · mfdycs/DPDK_Learning (github.com)
ICMP报文格式如图所示,每一个ICMP消息都将包含引发这条ICMP消息的数据包的完全IP...
阅读全文...
【DPDK】接收ARP请求并响应
相关代码:DPDK_Learning/ARP_response at main · mfdycs/DPDK_Learning (github.com)
相关原理
ARP数据包
ARP Request
ARP Response
ARP的功能
1....
阅读全文...
阅读全文...
【DPDK】接收并转发UDP数据
相关代码:DPDK_Learning/UDP_transmit at main · mfdycs/DPDK_Learning (github.com)
DPDK启动逻辑框架可以参考 接收UDP数据
定义网络信息
#define ENABLE_S...
阅读全文...
阅读全文...
【DPDK】接收UDP数据
相关代码:DPDK_Learning/UDP_recv at main · mfdycs/DPDK_Learning (github.com)
思路步骤
1. 进程初始化
固定方法,用于初始化DPDK,检测巨页、CPU是否有设置
if (rte_ea...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】进程
1. 进程号和父进程号
获取进程号:
#include <unistd.h>
pid_t getpid(void);
// always successfully returns process ID of caller
可以通过 Linux...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】文件I/O 2
1. 文件控制操作:fcntl()
#include <fcntl.h>
int fcntl(int fd, int cmd, ...);
// return on success depends on cmd, or -1 on error...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】通用I/O模型
本章重点介绍用于文件输入/输出的系统调用。本章开篇会讨论文件描述符的概念,随后会逐一讲解构成通用 I/O 模型的系统调用,其中包括:打开文件、关闭文件、从文件中读数据和向文件中写数据。
所有执行 I/O 操作的系统调用都以文件描述符,一个非负整数(通常...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】 系统编程概念
1. 系统调用
以x86平台为例,分析系统调用:
应用程序通过调用 C 语言函数库中的外壳(wrapper)函数,来发起系统调用
对系统调用中断处理例程来说,外壳函数必须保证所有的系统调用参数可用。通过堆栈,这些参数传入外壳函数,但内核却希望将这些参数...
阅读全文...
阅读全文...
【C/C++】函数指针
函数指针
基础知识
1. 获取函数地址
只要使用函数名,后面不跟参数即可,也就是说,如果 think() 是一个函数,那么 think 就是该函数的地址。
传递参数时一定要区分传递的是函数地址还是函数返回值
process(think) // 传递thi...
阅读全文...
阅读全文...
【makefile】使用make更新函数库文件
【原文作者:陈皓】 【原文地址】
函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令 ar 来完成打包工作。
10.1 函数库文件的成员
一个函数库文件由多个文件组成。你可以用如下格式指定函数库文件及...
阅读全文...
阅读全文...