跳至内容
发送过程的实现
- 加宏定义ENABLE_SEND,之后在recv.c基础上改的内容都框在
#if ENABLE_SEND 与 #endif间。
- 定义6个全局变量,分别是:源mac,目的mac,源ip,目的ip,源port,目的port。并且在拆包时给它们依次赋值。
- 从外到里:
- 源mac是虚拟机网卡eth0的mac地址(
rte_eth_macaddr_get(gDpdkPortId, (struct rte_ether_addr *)gSrcMac);)从绑定pci地址(dpdk-setup.sh的【49】那一步来的)
- 目的mac是windows的网卡mac地址,从刚刚收到的包的eth中拆出来(
rte_memcpy(gDstMac, ehdr->s_addr.addr_bytes, RTE_ETHER_ADDR_LEN);)
- 后四个值是iphdr和udphdr源和目的互换而来 (hdr是header的意思)
继续阅读“dpdk-发送udp包的实现”
一些工具
| 工具 |
用途 |
版本 |
| Ubuntu虚拟机 |
运行dpdk代码 |
16 Server |
| vmware |
虚拟机软件 |
17 |
| Source Insight |
阅读代码、编写代码 |
|
| NetAssist |
模拟发包 |
5.0.14 |
| xshell |
远程连接 |
8(free for home/school) |
| wireshark |
抓包,看包到底发出去了没有 |
4.2.4 |
| Samba |
在虚拟机里装,共享文件 |
|
继续阅读“dpdk的第一份代码”
↑