Chinaunix
标题:
使用net_device创建虚拟接口,有什么风险吗?
[打印本页]
作者:
liwei_swjtu
时间:
2014-08-14 19:27
标题:
使用net_device创建虚拟接口,有什么风险吗?
一个交换机项目,需要出24个口。
众所周知,Linux网络协议栈是只支持一个设备对应一个接口的,而交换机中需要一个设备对应多个接口,因此如果想不对协议栈做改动基本不能实现。
所以,本人现在想到的一个办法是,创建多个虚拟接口来实现与网络端口的一一对应。虚拟接口中的DMA等硬件资源拷贝真实ETH对应的net_device的值。不知道这样实现有什么风险吗?有没有做过分享一下经验,谢谢先。
作者:
hmsghnh
时间:
2014-08-15 11:14
应该可以吧。不过你这奇怪的用法是用来干什么的? 不能通过路由啊mac地址那些自动转发的,建这么多设备干什么用的?
作者:
liwei_swjtu
时间:
2014-08-15 11:34
奇怪是因为交换机的硬件架构导致的。通常交换机中,一个CPU通过一个ETH和一片或者多片Switch芯片相连,由Switch芯片出多个端口。
由于在内核中,一个net_device是对应的一个接口的,所以为了做到一一对应,才考虑创建多个device。
同时,创建这么多设备(其实也就是接口)的另一个目的是,方便上层应用收发协议报文。
我的疑问是,如果这么多设备共用一套硬件资源,会不会发生资源冲突的情况?
作者:
qxhgd
时间:
2014-08-15 16:08
应该可以,相当于软件实现交换机的功能嘛!
作者:
liwei_swjtu
时间:
2014-08-15 16:13
回复
4#
qxhgd
数据交换还是由交换芯片来完成的,这里是为了处理一些特定的报文服务的,比如说协议报文等。
作者:
qxhgd
时间:
2014-08-15 17:20
回复
5#
liwei_swjtu
那也可以啊
作者:
liwei_swjtu
时间:
2014-08-15 17:21
回复
6#
qxhgd
嗯,谢谢了!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2