dpdk-发送udp包的实现

发送过程的实现

  1. 加宏定义ENABLE_SEND,之后在recv.c基础上改的内容都框在 #if ENABLE_SEND#endif间。
  2. 定义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包的实现”