首页 > 代码库 > 管理TAP端口并加入网桥 ----------intel dpdk 例子:Exception Path Sample Application
管理TAP端口并加入网桥 ----------intel dpdk 例子:Exception Path Sample Application
intel给的sample文档中关于Exception Path Sample Application例子的解释已经很清楚了,但是对于我这个刚刚接触网关知识的人来说还是有点陌生。
引用他们的图例:数据流 流向图
过程分析:
线程CoreA0从port0读数据并写到tapA0;
线程CoreB1从tapB1读数据并写到port1;
这是我们需要创建一个网桥br0来连接tapA0和tapB1,这样他们就可以基于链路层mac直接发数据了。
一、对应intel dpdk例子中已经根据core id创建好了tap_dpdk_nn #nn就是core id
ifconfig tap_dpdk_00 up
ifconfig tap_dpdk_03 up
二、创建桥并加入tap
brctl addbr "br0"
brctl addif br0 tap_dpdk_00
brctl addif br0 tap_dpdk_03
ifconfig br0 up
三、发送命令产看数据包收发情况:
sudo killall -USR1 exception_path
在另一个运行程序的终端可以看到:
======= ====== ============ ============ ===============
Lcore Port RX TX Dropped on TX
------- ------ ------------ ------------ ---------------
0 0 14 14 0
1 1 0 0 0
2 0 0 0 0
3 1 16 16 0
======= ====== ============ ============ ===============
如果能到这里,说明你已经成功了。
但是我当时折腾了一段时间没有成功,原因说起来很简单:没有关闭防火墙(fedora 默认是开启防火墙的,并且还有加强版防火墙)
四、下面关闭防火墙:
1、关闭加强版防火墙SELinux:
打开文件sudo vi /etc/selinux/config
把 SELINUX=enforcing
改成SELINUX=disabled
保存。
2、关闭防火墙iptables:
sudo service iptables stop
sudo service iptables disable #不知道这两个哪个有用
查看防火墙状态:
zhiye@zhiye ~]$ sudo service iptables status
Redirecting to /bin/systemctl status iptables.service
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/lib/systemd/system/iptables.service; disabled)
Active: inactive (dead)
CGroup: name=systemd:/system/iptables.service
3、最后需要重启服务器。
五、扯一下:
intel文档里面应该说名外部网线应该怎么样连接部署,怎么样发包,怎么样把包传给port0等等。
我是弄了个发报机,直接把网线插到port0上的。初学不知道这个。
管理TAP端口并加入网桥 ----------intel dpdk 例子:Exception Path Sample Application