免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2311 | 回复: 6
打印 上一主题 下一主题

[网络子系统] 使用net_device创建虚拟接口,有什么风险吗? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-14 19:27 |只看该作者 |倒序浏览
一个交换机项目,需要出24个口。

众所周知,Linux网络协议栈是只支持一个设备对应一个接口的,而交换机中需要一个设备对应多个接口,因此如果想不对协议栈做改动基本不能实现。

所以,本人现在想到的一个办法是,创建多个虚拟接口来实现与网络端口的一一对应。虚拟接口中的DMA等硬件资源拷贝真实ETH对应的net_device的值。不知道这样实现有什么风险吗?有没有做过分享一下经验,谢谢先。

论坛徽章:
0
2 [报告]
发表于 2014-08-15 11:14 |只看该作者
应该可以吧。不过你这奇怪的用法是用来干什么的? 不能通过路由啊mac地址那些自动转发的,建这么多设备干什么用的?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2014-08-15 11:34 |只看该作者
奇怪是因为交换机的硬件架构导致的。通常交换机中,一个CPU通过一个ETH和一片或者多片Switch芯片相连,由Switch芯片出多个端口。

由于在内核中,一个net_device是对应的一个接口的,所以为了做到一一对应,才考虑创建多个device。

同时,创建这么多设备(其实也就是接口)的另一个目的是,方便上层应用收发协议报文。

我的疑问是,如果这么多设备共用一套硬件资源,会不会发生资源冲突的情况?

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
4 [报告]
发表于 2014-08-15 16:08 |只看该作者
应该可以,相当于软件实现交换机的功能嘛!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2014-08-15 16:13 |只看该作者
回复 4# qxhgd

数据交换还是由交换芯片来完成的,这里是为了处理一些特定的报文服务的,比如说协议报文等。


   

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
6 [报告]
发表于 2014-08-15 17:20 |只看该作者
回复 5# liwei_swjtu


    那也可以啊

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2014-08-15 17:21 |只看该作者
回复 6# qxhgd

嗯,谢谢了!


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP