当前存在这样一个问题:转发板卡 上有两个Tilera芯片,其中一个芯片是备用芯片,其流量只能通过主芯片出去,两个芯片间以PCEe总线连接;如何利用这备用芯片?
条件:芯片上安装了linux系统,支持tap/tun接口套接字
方案:采用pcie+socket,如图所示:
在系统中创建tap/tun接口,命名为sio1和sio2,可在该虚拟接口上绑定套接字;
tap/tun接口介绍如下(http://www.ibm.com/developerworks/cn/linux/l-tuntap/):
tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后再发到物理链路中。开源项目openvpn( http://openvpn.sourceforge.net)和Vtun( http://vtun.sourceforge.net)都是利用tun/tap驱动实现的隧道封装。
Tun/tap设备的工作过程:
Tun/tap设备提供的虚拟网卡驱动,从tcp/ip协议栈的角度而言,它与真实网卡驱动并没有区别。从驱动程序的角度来说,它与真实网卡的不同表现在tun/tap设备获取的数据不是来自物理链路,而是来自用户区,Tun/tap设备驱动通过字符设备文件来实现数据从用户区的获取。发送数据时tun/tap设备也不是发送到物理链路,而是通过字符设备发送至用户区,再由用户区程序通过其他渠道发送。
发送过程: