首页 > 代码库 > 管理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