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