免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: 独孤九贱
打印 上一主题 下一主题

Linux网桥源码框架分析初步 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-01-19 11:22 |只看该作者
如果对于有3个以上端口的网桥,designated port是可能有2个或者更多个的,难道LINUX网桥就是指的2个端口的网桥吗?

论坛徽章:
0
42 [报告]
发表于 2006-01-19 11:45 |只看该作者
原帖由 Pagliuca 于 2006-1-19 11:22 发表
如果对于有3个以上端口的网桥,designated port是可能有2个或者更多个的,难道LINUX网桥就是指的2个端口的网桥吗?


端口是不限的……所以有个遍历所有端口的过程:
br_configuration_update->br_designated_port_selection:

/* called under bridge lock */
static void br_designated_port_selection(struct net_bridge *br)
{
        struct net_bridge_port *p;

        p = br->port_list;
        while (p != NULL) {
                if (p->state != BR_STATE_DISABLED &&
                    br_should_become_designated_port(p))
                        br_become_designated_port(p);

                p = p->next;
        }
}
br_should_become_designated_port为判断,br_become_designated_port为指定,请注意这个while循环,它是遍历桥中所有的端口;

论坛徽章:
0
43 [报告]
发表于 2006-01-19 18:31 |只看该作者

brctl

精彩!
不知道大侠有没有研究过brctl这个工具?
可不可以解释一下这个工具
里面有命令类似brctl addif br0 eth1 //eth1 is one of my NIC card
为什么不是brctl addif br0 0x8000

论坛徽章:
0
44 [报告]
发表于 2006-01-20 08:57 |只看该作者
原帖由 casonic 于 2006-1-19 18:31 发表
精彩!
不知道大侠有没有研究过brctl这个工具?
可不可以解释一下这个工具
里面有命令类似brctl addif br0 eth1 //eth1 is one of my NIC card
为什么不是brctl addif br0 0x8000


brctl是一个很简单的网桥管理工具,就是通过ioctl与内核交互,我自己重写了一个图形界面的,运行得很好^o^

论坛徽章:
0
45 [报告]
发表于 2006-01-25 16:51 |只看该作者
/* called under bridge lock */
int br_is_designated_port(struct net_bridge_port *p)
{
        return !memcmp(&p->designated_bridge, &p->br->bridge_id, 8) &&
                (p->designated_port == p->port_id);
}
这几天没有看网桥,今天有时间又看了一下,觉得对于判断指定端口这个函数还是有些疑惑,希望大侠能说得清楚一些:
    上面的判断应该是:第一步,看端口的所在的网桥ID是否是指定网桥;第二步,看端口ID是否是指定端口ID。
    我看的资料理解的是:判断是否是指定端口,是看这个网桥的BPDU的信息:1根端口ID,2开销,3发送网桥ID。这3个组成的BPDU是否优于网桥从这个端口收到的BPDU。如果网桥的BPDU优,则这个端口是网桥的指定端口,网桥会往这些指定端口发送自己的BPDU。这些指定端口和根端口都是生成树的一部分。
    怎么跟这个函数写的意思不太一样呢?

[ 本帖最后由 Pagliuca 于 2006-1-25 17:01 编辑 ]

论坛徽章:
0
46 [报告]
发表于 2006-01-25 17:17 |只看该作者
支持一下了

论坛徽章:
0
47 [报告]
发表于 2006-01-26 11:08 |只看该作者
原帖由 Pagliuca 于 2006-1-25 16:51 发表
/* called under bridge lock */
int br_is_designated_port(struct net_bridge_port *p)
{
        return !memcmp(&p->designated_bridge, &p->br->bridge_id, &&
            ...


前阵子好像讨论过吧,这个函数只是“查看”,不是“判断”……,如果我没有看错的话,最近在忙一个东东,没有时间来搞这个了!

论坛徽章:
0
48 [报告]
发表于 2006-05-24 23:13 |只看该作者

非prism2的无线网卡能否设置无线网桥与有线网通信?

我现在linux中,用的无线芯片是philip的bgw200,用它能否构建无线接入点?如果不行,能不能用linux内置的网桥功能构建一个网桥,实现无线网和有线网的桥接?请高手指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP