嵌入式爱好者

查看: 39384|回复: 12

[Ubuntu] 使用brctl建网桥时,当分别把2个端口加到2个网桥配成access口报错

[复制链接]

4

主题

19

帖子

44

积分

扫一扫,手机访问本帖
发表于 2021-6-17 09:43:09 | 显示全部楼层 |阅读模式
使用的OK1028-linux-fs源码,Linux version 5.4.3-svn42 (root@ubuntu) (gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)) #1 SMP PREEMPT Wed Jun 16 16:17:37 +08 2021
我想使用brctl建立2个网桥,然后把2个端口以access口分别加入这2个网桥,当加入第二个的时候报错,所有的端口只能以access口加入到一个网桥里面,能请教下吗?命令如下

vconfig add swp0 100
ifconfig swp0 up
brctl addbr br100
brctl addif br100 swp0
ifconfig br100 up

vconfig add swp1 200
ifconfig swp1 up
brctl addbr br200
brctl addif br200 swp1
ifconfig br200 up


出错信息如下:
root@forlinx:~# ifconfig swp1 up
root@forlinx:~# brctl addbr br200
root@forlinx:~# brctl addif br200 swp1
--ifindex:5,dev:[   56.114381] mscc_felix 0000:00:00.5 swp1: 1========br_add_if:
swp1
++ifindex:5,ENODEV:19,ifr.ifr_name:br200
[   56.125580] mscc_felix 0000:00:00.5 swp1: 2========br_add_if:
[   56.133000] mscc_felix 0000:00:00.5 swp1: 3========br_add_if:
[   56.139786] mscc_felix 0000:00:00.5 swp1: 4========br_add_if:
[   56.146351] mscc_felix 0000:00:00.5 swp1: 5========br_add_if:
[   56.152944] mscc_felix 0000:00:00.5 swp1: 6========br_add_if:
[   56.159491] mscc_felix 0000:00:00.5 swp1: 7========br_add_if:
[   56.165983] mscc_felix 0000:00:00.5 swp1: 8========br_add_if:
[   56.172437] 21====__netdev_upper_dev_link:1
[   56.177990] 22====__netdev_upper_dev_link:0
[   56.182434] 23====__netdev_upper_dev_link:0
[   56.186828] 24====__netdev_upper_dev_link:-19
[   56.191457] 27====__netdev_upper_dev_link:-19
[   56.195858] mscc_felix 0000:00:00.5 swp1: 9========err:-19
[   56.201467] mscc_felix 0000:00:00.5 swp1: 14========br_add_if:
--========br_soc[   56.207858] mscc_felix 0000:00:00.5 swp1: 1========br_add_if:
ket_fd:3,err:-1,[   56.215490] mscc_felix 0000:00:00.5 swp1: 2========br_add_if:
dev:swp1,errno:1[   56.222696] mscc_felix 0000:00:00.5 swp1: 3========br_add_if:
9
[   56.229943] mscc_felix 0000:00:00.5 swp1: 4========br_add_if:
[   56.236201] mscc_felix 0000:00:00.5 swp1: 5========br_add_if:
[   56.242492] mscc_felix 0000:00:00.5 swp1: 6========br_add_if:
[   56.248723] mscc_felix 0000:00:00.5 swp1: 7========br_add_if:
[   56.254935] mscc_felix 0000:00:00.5 swp1: 8========br_add_if:
[   56.261152] 21====__netdev_upper_dev_link:1
[   56.265439] 22====__netdev_upper_dev_link:0
[   56.269755] 23====__netdev_upper_dev_link:0
[   56.274117] 24====__netdev_upper_dev_link:-19
[   56.278595] 27====__netdev_upper_dev_link:-19
[   56.283074] mscc_felix 0000:00:00.5 swp1: 9========err:-19
[   56.289185] mscc_felix 0000:00:00.5 swp1: 14========br_add_if:
--++++br_socket_fd:3,err:-1,dev:swp1,errno:19
bridge br200 does not exist,ifname index:5,ifname:swp1,err is:19,brname index:12


通过追踪发现OK1028-linux-kernel\net\bridge下面的br_if.c里面的函数br_add_if里面的 err = netdev_master_upper_dev_link(dev, br->dev, NULL, NULL, extack);这句调用出错,这个函数在net\core\dev.c里面的        调用 ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,&changeupper_info.info); 这个函数返回-19
能问下这是什么问题导致的吗 ?怎么修改 ?谢谢


回复

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-17 14:40:08 | 显示全部楼层
本帖最后由 djh 于 2021-6-17 14:41 编辑

我烧写的是我们的出厂镜像测试的,您是自己编译的镜像吗?
您的具体需求是什么啊?您能描述一下您的应用场景吗?
我在板子上测试了一下,swp0-swp3这四个switch网口只能添加一个到网桥中,具体原因现在还不清楚,这个switch 可能和其他独立的网口有区别;
但可以将eno0t添加到网桥br200中,不知这样能不能满足您的需求如下所示:
root@forlinx:~# vconfig add swp0 100
Added VLAN with VID == 100 to IF -:swp0:-
root@forlinx:~# ifconfig swp0 up
root@forlinx:~# brctl addbr br100
root@forlinx:~# brctl addif br100 swp0
root@forlinx:~# ifconfig br100 up
root@forlinx:~# vconfig add eno0 200
Added VLAN with VID == 200 to IF -:eno0:-
root@forlinx:~# ifconfig eno0 up
root@forlinx:~# brctl addbr br200
root@forlinx:~# brctl addif br200 eno0
root@forlinx:~# ifconfig br200 up
root@forlinx:~# brctl show
bridge name     bridge id               STP enabled     inte**ces
br100           8000.ae6af6a00920      no                  swp0
br200           8000.3221262b515c       no                eno0
docker0         8000.0242a53af8f9       no


点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-17 15:05:36 | 显示全部楼层
本帖最后由 shocking 于 2021-6-17 15:30 编辑

您好,就是想把swp0-swp3这四个switch网口添加到不同的网桥当中,因为交换机假如有5个口,第1个口可以以access模式加到vlan100,2口可以以access模式加到vlan200,3口可以以access模式加到vlan300 这是很常见的需求吧
我试了在ubuntu系统里面把不同的网卡加到不同的网桥是可以的,不知道为啥板子里面swp0-swp3只能加到一个网桥

至于您说的swp0-swp3这四个switch网口只能添加一个到网桥中,具体原因现在还不清楚,我已经跟到OK1028-linux-kernel里面的代码了,原因如下:
通过追踪发现OK1028-linux-kernel\net\bridge下面的br_if.c里面的函数br_add_if里面的 err = netdev_master_upper_dev_link(dev, br->dev, NULL, NULL, extack);这句调用出错,

netdev_master_upper_dev_link这个函数在net\core\dev.c里面的        调用 ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,&changeupper_info.info); 这个函数返回-19

最终可能想实现这样的 :root@forlinx:~# brctl show
bridge name     bridge id               STP enabled     inte**ces
br100           8000.1636ad6de5ed       no              swp0
br200           8000.1636ad6de5ed       no              swp1
                                                                              swp2
                                                                              swp3.200
docker0         8000.0242dc4cb099       no
br100里面swp0:access
br200里面swp1:access  swp2:access  swp3:trunk


1.因为call_netdevice_notifiers_info这个函数出错导致的直接跳到异常处理代码 所以报错,能请你们开发看看原因吗? 怎么解决这个BUG
2.我们的需求就是swp0-swp3和eno0当作交换机的5个网口,每个口可以以access模式任意加到不同的vlan, 或者能请教下  怎么把网口以access或者trunk模式配置到vlan里面,能具体给出命令吗? 比如swp0:access 加到vlan100,     swp1:access swp2:trunk 加到vlan200, 能给出这2个需求的命令吗?


3.另外再请教个某个端口配置trunk native vlan的命令是什么?





点评

djh
您好,这个问题已跟我们的研发反馈了,但不能确定什么时候能解决, 还有能问一下,您打算设计什么样的产品啊?实现什么功能?  详情 回复 发表于 2021-6-17 15:34
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-17 15:34:23 | 显示全部楼层
shocking 发表于 2021-6-17 15:05
您好,就是想把swp0-swp3这四个switch网口添加到不同的网桥当中,因为交换机假如有5个口,第1个口可以以acc ...

您好,这个问题已跟我们的研发反馈了,但不能确定什么时候能解决,
还有能问一下,您打算设计什么样的产品啊?实现什么功能?

点评

就是普通的交换机vlan功能,麻烦能回答下我上面帖子请教的2,3问题吗 那些个把网口以access加入vlan和以trunk加入vlan的命令 以及某个端口配置trunk native vlan的详细命令吗?谢谢啦  详情 回复 发表于 2021-6-17 15:37
点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-17 15:37:23 | 显示全部楼层
djh 发表于 2021-6-17 15:34
您好,这个问题已跟我们的研发反馈了,但不能确定什么时候能解决,
还有能问一下,您打算设计什么样的产 ...

就是普通的交换机vlan功能,麻烦能回答下我上面帖子请教的2,3问题吗  那些个把网口以access加入vlan和以trunk加入vlan的命令 以及某个端口配置trunk native vlan的详细命令吗?谢谢啦
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-17 15:46:26 | 显示全部楼层
您好按照您的操作,测试结果如下,但没有出现您的那些报错信息,我烧写的是我们的出厂镜像,您是用的我们的出厂镜像吗?
反馈问题的话,我需要复现一下问题,您是这么做的吗?
添加网桥.png

点评

是用的你们的镜像,只不过我在内核源码里面加了一些打印信息。 能请教下我在三楼问的那些命令吗 谢谢  详情 回复 发表于 2021-6-17 15:49
点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-17 15:49:00 | 显示全部楼层
djh 发表于 2021-6-17 15:46
您好按照您的操作,测试结果如下,但没有出现您的那些报错信息,我烧写的是我们的出厂镜像,您是用的我们的 ...

是用的你们的镜像,只不过我在内核源码里面加了一些打印信息。 能请教下我在三楼问的那些命令吗 谢谢

点评

djh
抱歉,这个我们这边没做过,对于这些命令的研究不深入,也不知道这个命令是什么,您可以在网上找找相关的资料吧  详情 回复 发表于 2021-6-17 16:01
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-17 16:01:20 | 显示全部楼层
shocking 发表于 2021-6-17 15:49
是用的你们的镜像,只不过我在内核源码里面加了一些打印信息。 能请教下我在三楼问的那些命令吗 谢谢

抱歉,这个我们这边没做过,对于这些命令的研究不深入,也不知道这个命令是什么,您可以在网上找找相关的资料吧

点评

好吧,如果这个加桥报错的问题有啥进展 麻烦告知我下哈 谢谢~  详情 回复 发表于 2021-6-17 16:24
点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-17 16:24:58 | 显示全部楼层
djh 发表于 2021-6-17 16:01
抱歉,这个我们这边没做过,对于这些命令的研究不深入,也不知道这个命令是什么,您可以在网上找找相关的 ...

好吧,如果这个加桥报错的问题有啥进展 麻烦告知我下哈 谢谢~

点评

djh
好,如果您那边先有进展的话,希望您也能告诉我一下。 Thanks!  详情 回复 发表于 2021-6-19 09:55
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-19 09:55:02 | 显示全部楼层
shocking 发表于 2021-6-17 16:24
好吧,如果这个加桥报错的问题有啥进展 麻烦告知我下哈 谢谢~

好,如果您那边先有进展的话,希望您也能告诉我一下。
Thanks!
点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-25 10:04:42 | 显示全部楼层
您好 版主有啥更新吗?

点评

djh
目前没有有效的进展;我这边还有其他平台的问题处理,进度会很慢,但找了一些参考资料,您也可以看看: https://blog.csdn.net/shipinsky/article/details/114155959?utm_medium=distribute.pc_relevant.none-task-  详情 回复 发表于 2021-6-25 11:58
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-6-25 11:58:20 | 显示全部楼层
shocking 发表于 2021-6-25 10:04
您好 版主有啥更新吗?

目前没有有效的进展;我这边还有其他平台的问题处理,进度会很慢,但找了一些参考资料,您也可以看看:
https://blog.csdn.net/shipinsky/ ... du%7Edefault-6.base

点评

好的 谢谢~有消息通知下哈,等着米下锅呢  详情 回复 发表于 2021-6-25 15:27
点评回复 支持 反对

使用道具 举报

4

主题

19

帖子

44

积分

 楼主| 发表于 2021-6-25 15:27:37 | 显示全部楼层
djh 发表于 2021-6-25 11:58
目前没有有效的进展;我这边还有其他平台的问题处理,进度会很慢,但找了一些参考资料,您也可以看看:
...

好的 谢谢~有消息通知下哈,等着米下锅呢:'(
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 13:57

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表