测试环境

操作系统: Ubuntu 20.04 LTS;
处理器为: Intel® Core™ i7-4790K CPU @ 4.00GHz。
网卡使用的是Intel的X710万兆网卡。
DPDK版本19.02。

测试拓扑:

                      |----------------||  Ubuntu(DPDK)  ||                ||  eth0   eth1   |2001:11::1 |----|------|----|  2001:22::100:60:E0:6F:C8:7D      |      |       00:60:E0:6F:C8:7E/        \/          \/            \/              \00:60:E0:7A:6C:78   /                \   00:60:E0:7A:6C:792001:11::2/64   |                  |  2001:22::2/64|--------|------|   |-------|-------||      eth0     |   |     eth0      ||               |   |               ||    Ubuntu0    |   |    Ubuntu1    ||---------------|   |---------------|

环境配置

如下l3fwd_lpm.c文件中的默认路由表项(经过了修改),port0的网段为:2001:11::0/64;port1的网段为:2001:22::0/64。以上拓扑假定port0的IP地址为:2001:11::1;port1的IP地址为:2001:22::1,当然也可以使用其它的地址,只要是同一网段即可。

 53 static struct ipv6_l3fwd_lpm_route ipv6_l3fwd_lpm_route_array[] = {54     {{0x20, 1, 0, 0x11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 64, 0},55     {{0x20, 1, 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 64, 1},

以下为Ubuntu0的配置,其接口eth0的IP地址为2001:11::2,默认网关设置为Ubuntu(DPDK)的eth0(DPDK中的port0):

/ # ip -6 r add default via 2001:11::1
/ #
/ # ip -6 r
2001:11::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2001:11::1 dev eth0 metric 1024

由于DPDK的l3fwd不能处理ARP,需要在Ubuntu0上静态指定Ubuntu(DPDK)的eth0接口IP地址对应的MAC地址:

/ # ip -6 n add 2001:11::1 lladdr 00:60:E0:6F:C8:7D dev eth0
/ #
/ # ip ne
2001:11::1 dev eth0 lladdr 00:60:e0:6f:c8:7d PERMANENT

以下为Ubuntu1的配置,配置与Ubuntu0类似。其接口eth0的IP地址为2001:22::2,默认网关设置为Ubuntu(DPDK)的eth1(DPDK中的port1):

/ # ip -6 route add default via 2001:22::1
/ #
/ # ip -6 r
2001:22::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2001:22::1 dev eth0 metric 1024
/ #

由于DPDK的l3fwd不能处理ARP,需要在Ubuntu1上静态指定Ubuntu(DPDK)的eth1接口IP地址对应的MAC地址:

/ # ip -6 n add 2001:22::1 lladdr 00:60:E0:6F:C8:7E dev eth0
/ #
/ # ip nei
2001:22::1 dev eth0 lladdr 00:60:e0:6f:c8:7e PERMANENT

启动l3fwd

如下命令启动l3fwd例程,eth-dest参数分别指定Ubuntu0和Ubuntu1的eth0接口的MAC地址。

./l3fwd -c 0x6 -- -p 0x3 -P --eth-dest=0,00:60:E0:7A:6C:78 --eth-dest=1,00:60:E0:7A:6C:79

如下的启动信息,port0发送报文时,使用源MAC地址为:00:60:E0:6F:C8:7D,目的MAC地址为:00:60:E0:7A:6C:78。port1发送报文时,使用源MAC地址00:60:E0:6F:C8:7E,目的MAC地址为00:60:E0:7A:6C:79。

另外,也可看到添加到LPM中的IPv6路由项,原始的l3fwd并不打印LPM6路由表项,以下显示为自行添加。

LPM or EM none selected, default LPM on
Initializing port 0 ... Creating queues: nb_rxq=1 nb_txq=2...
Port 0 modified RSS hash function based on hardware support,requested:0xa38c configured:0x2288
Address:00:60:E0:6F:C8:7D, Destination:00:60:E0:6D:90:76, Allocated mbuf pool on socket 0
LPM: Adding route 0x01010100 / 24 (0)
LPM: Adding route 0x02010100 / 24 (1)
LPM6: Adding route 2001:0011:0000:0000:0000:0000:0000:0000 / 64 (0)
LPM6: Adding route 2001:0022:0000:0000:0000:0000:0000:0000 / 64 (1)
txq=1,0,0 (lcoreid, queueid, socketid)txq=2,1,0 (lcoreid, queueid, socketid)
Initializing port 1 ... Creating queues: nb_rxq=1 nb_txq=2...
Port 1 modified RSS hash function based on hardware support,requested:0xa38c configured:0x2288
Address:00:60:E0:6F:C8:7E, Destination:00:60:E0:6D:90:77,
txq=1,0,0 (lcoreid, queueid, socketid)txq=2,1,0 (lcoreid, queueid, socketid)Initializing rx queues on lcore 1 ... rxq=0,0,0
Initializing rx queues on lcore 2 ... rxq=1,0,0 Checking link statusdone
Port0 Link Up. Speed 10000 Mbps -full-duplex
Port1 Link Up. Speed 10000 Mbps -full-duplex
L3FWD: entering main loop on lcore 2
L3FWD:  -- lcoreid=2 portid=1 rxqueueid=0
L3FWD: entering main loop on lcore 1
L3FWD:  -- lcoreid=1 portid=0 rxqueueid=0

在Ubuntu0上ping主机Ubuntu1的IP地址:2001:22::2,收到回复,链路是通的。

DPDK-l3fwd示例IPv6测试相关推荐

  1. l3fwd 是什么_服务器DPDK l3fwd性能测试

    1.测试背景 由于项目中需要用到dpdk,当时在服务器平台选型上有如下2种不同配置可供选择,为了理解老的Xeon处理器和Xeon金牌处理器对DPDK转发性能的影响,需要在两台服务器上分别进行DPDK ...

  2. DPDK l3fwd

    DPDK l3fwd l3fwd负责三层转发,比l2fwd要复杂点. 1 /*- 2 * BSD LICENSE 3 * 4 * Copyright(c) 2010-2014 Intel Corpor ...

  3. java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】

    摘要:这篇Python开发技术栏目下的"Python实现获取汉字偏旁部首的方法示例[测试可用]",介绍的技术点是"Python实现.Python.偏旁部首.测试.可用.示 ...

  4. selenium 示例_Selenium测试中所需的功能和示例

    selenium 示例 所需功能是用于声明一组基本要求(例如浏览器,操作系统,浏览器版本等的组合)的类,以对Web应用程序执行自动跨浏览器测试. 当我们尝试通过Selenium自动化测试来自动化测试脚 ...

  5. IOS的IPV6测试

    公司里的iOS审核过程,遇到AppStore审核测试过程IPV6测试不通过. 如果IPV6测试通过,审核通过的几率会大有提升.只有在IPv6环境下运行成功,才能保证我们的App万无一失的通过审核并上线 ...

  6. Activiti Workflow HelloWorld 示例与测试环境搭建

    作者:Rock 出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell Activiti Workflow HelloWo ...

  7. 用spark自带的示例SparkPi测试scala和spark集群

    在按照王家林的文档安装完scala,spark集群和idea-IC开发工具后,用spark自带的示例SparkPi测试scala和spark集群 1.按照王家林文档中的方法把spark自带的Spark ...

  8. 本地 Mac 搭建 IPv6 测试环境

    http://blog.csdn.net/potato512/article/details/51680203 搭建 IPv6 测试环境说白了就是用 Mac 做一个热点,然后用 iPhone 连接这个 ...

  9. Qt官方示例-正则测试工具

    该正则测试工具(regularexpression)是基于Qt 5.0新引入的QRegularExpression类实现的.   QRegularExpression实现与Perl兼容的正则表达式,支 ...

  10. 重庆宽带公网IPv6测试

    重庆在今年已经全面部署IPv6,不论是手机基站业务还是宽带有线业务都可以从运营商那里获取到公网IPv6地址. 这里我着重测试有线宽带IPv6业务.手机基站业务可以访问http://test-ipv6. ...

最新文章

  1. Lucene的简单应用
  2. java switch 表达式_尝鲜Java 12新特性:switch表达式
  3. Esper学习之十二:EPL语法(八)
  4. Winform中实现拖拽文件到ListView获取文件类型(附代码下载)
  5. 广西2021高考成绩什么时候可以查询,2021年广西高考成绩什么时候公布出来,几月几号几点钟可以查询...
  6. python 批量查询网页导出结果_李亚涛:python批量查询网页收录情况并计算收录率...
  7. ubuntu命令行语法_Linux中重定向命令行的总结(ubuntu学习第三讲)
  8. python常用正则表达式
  9. MySQL的安装与连接方法
  10. 软件工程期末试题及答案(史上最全)
  11. 探索大神科比,30000多次投篮数据,有好玩的发现
  12. C语言课程设计——停车场管理系统
  13. GD32F4xx控制DGUS触控按键
  14. B. Combinatorics Homework(抽屉原理)
  15. 同花顺_代码解析_技术指标_Z_3
  16. 计算机考试如何高级筛选,2013年职称计算机Excel考试复习:高级筛选
  17. UE4 视角切换,从第一人称角色的视角切换到第三人称角色的视觉
  18. 利用BP神经网络逼近sin函数
  19. 网康出钱 请您换最新款上网行为管理
  20. 八万红客将国旗插到美国白宫网站,聊聊三个世界著名黑客的事迹

热门文章

  1. 软件测试精华总结,入门到精通全流程(必看,知识点很全)
  2. P2P追债也用上大数据
  3. 如何计算机械能增加量,探讨优化验证机械能守恒定律实验中动能增加量的计算方法...
  4. MySQL(二) DDL、DML、DQL、DTL概述
  5. Java 版本中文数字转阿拉伯数字实现
  6. 星空之翼游戏的设计与实现
  7. 计算机 蚂蚁搬家 教案,大班科学活动教案:小蚂蚁搬家教案(附教学反思)
  8. Typo3 CVE201912747 反序列化漏洞分析
  9. 历年考研计算机专业国家线,历年工学考研国家线一览_考研国家线公布时间
  10. referenced libraries