免费注册 查看新帖 |

Chinaunix

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

linux路由表拷贝问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-13 11:28 |只看该作者 |倒序浏览
  我现在想把linux内核里面的routing table,拷贝一个复本到共享内存中,share给其他
程序使用。要求保留内核中routing table的结构和数据,不知道这样做是否可行?如果可行
的话,如何拷贝?memcpy不知道行不行?


  谢谢

论坛徽章:
0
2 [报告]
发表于 2007-04-13 12:56 |只看该作者
路由表不是数组,拷贝解决不了问题。

论坛徽章:
0
3 [报告]
发表于 2007-04-13 13:36 |只看该作者

回复 #2 雨丝风片 的帖子

谢谢雨丝风片的回复。
我的想法是把整个结构和数据都复制到另一片内存区域,然后将指向路由hash表入口的指针丢给用路由表的程序。现在关键是想知道是否能够做这样的copy?

论坛徽章:
0
4 [报告]
发表于 2007-04-13 14:00 |只看该作者
当然是可以的。但是不知你是否知道路由的数据结构和关系非常复杂,你确信有能力驾驭它?

论坛徽章:
0
5 [报告]
发表于 2007-04-13 14:30 |只看该作者

回复 #4 qtdszws 的帖子

路由表的数据结构和关系确实非常复杂,这几天看的头都晕了。确实,需要对这部份非常熟悉。

现在我要实现的功能是这样:
[core A]
------------
[core B]

coreA上运行一个完整的linux系统,coreB上运行一个IP stack,coreA和coreB之间通过share memory通讯。现在想让coreB上的IP stack,share coreA上linux内核中的routing talbe(主要就是search的操作)。

coreB上的IP stack和coreA上的linux共同share linux kernel里面的routing table 也是可以的。但是考虑到效率问题(因为routing table里面有很多锁),想从kernel中把当前routing talbe的结构和数据copy一份到share memory,让coreB的IP stack单独使用,由于只有IP Stack对routing table做操作,这样就不需要加锁。coreB上的 IP stack可以跑的效率更高点。

所以,就涉及到copy的问题。现在对这个方式还持部分怀疑态度。
请大家多提建议。谢谢

论坛徽章:
0
6 [报告]
发表于 2007-04-13 15:15 |只看该作者
原帖由 Goodfriend 于 2007-4-13 14:30 发表于 5楼  
路由表的数据结构和关系确实非常复杂,这几天看的头都晕了。确实,需要对这部份非常熟悉。

现在我要实现的功能是这样:

------------


coreA上运行一个完整的linux系统,coreB上运行一个IP stack,co ...



如何同步?

论坛徽章:
0
7 [报告]
发表于 2007-04-13 15:18 |只看该作者
里面的锁多是RCU,可以同时读写

论坛徽章:
0
8 [报告]
发表于 2007-04-13 15:30 |只看该作者
既然有ip stack,不就可以单独实现路由功能了吗,何必如此麻烦?

论坛徽章:
0
9 [报告]
发表于 2007-04-13 16:31 |只看该作者

回复 #8 qtdszws 的帖子

不错,有ip stack,确实是可以实现路由功能,但是路由的配置信息都是在coreA上的linux中配置的。
也就是说ip stack中用的路由表信息,在coreB的linux中。

[ 本帖最后由 Goodfriend 于 2007-4-13 16:40 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-04-13 16:36 |只看该作者
原帖由 R.wen 于 2007-4-13 15:18 发表于 7楼  
里面的锁多是RCU,可以同时读写



现在不想用到锁,在coreB的ip stack以while (1) 来运行,查找路由表时候,从share memory中查找。
而在share memory中的路由表,只有coreB 的ip stack来使用。这样做的话,就不需要锁。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP