This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/LINUXSDK-AM35x:将接口设置为混杂时出现错误消息

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601127/linux-linuxsdk-am35x-error-message-when-setting-interface-to-promisc

器件型号:LINUXSDK-AM35x

工具/软件:Linux

我们使用的是 SDK 7、内核版本3.12。  我们的板具有2个接口、即 eth0和 eth1。  我们的电路板将用作路由器、因此我们将为每个接口设置混杂状态。  我们使用以下命令:

ifconfig eth0混杂

ifconfig eth1混杂

执行第二条命令时,系统日志中会出现错误:

 由于另一个接口仍处于混杂模式,因此未禁用混杂模式

查看代码时,此消息只应在您尝试关闭混杂状态但仍在其中一个接口上设置时显示。  但这里并非如此。  我们正在打开它。  这是错误吗?  我们是否应该关注此错误消息?  我在 drivers/net/ti/cpsw.c 中查看的代码

静态空 cpsw_set_混杂(struct net_device *ndev,bool 启用)

       struct cpsw_privt *priv=netdev_priv(ndev);
       struct cpsw_ale *ale = priv->ale;

       if (priv->data.dual_emac){
               /*将为一个接口启用混杂模式
                *作为接口共享、这两个接口都是公共的
                *相同的硬件资源。
                *
               if (!enable &&(((priv->Slave[0].ndev->flags & if_PROMISC)|
                               (PRIV->Slave[1].ndev->flags & IFF_PROMISC))){
                       ENABLE = true;
                       DEV_ERR(&nDEV->DEV,"由于另一个接口仍处于混杂模式,因此未禁用混杂\n 攠;
               }

               如果(启用){
                       /*启用旁路*/
                       cpsw_ale_control_set (ALE、0、ALE_BYPASS、1);

                       dev_dbg (_ndev->dev、"已启用混杂\n ");
               }否则{

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tim、

    这似乎是内核中的某种错误。 在运行内核4.4.41的 AM335x 入门套件上、我执行了以下操作:

    root@AM335x-EVM:~# ifconfig eth0                                                  

    eth0   Link encap:ethernet HWaddr 00:18:31:E0:18:9C                                       

         上广播多播 MTU:1500 公制:1                                        

         RX 数据包:0错误:0丢弃:0超限:0帧:0                                    

         TX 数据包:0错误:0丢弃:0超限:0载波:0                                   

         冲突:0 txqueuelen:1000                                               

         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)                                          

         中断:172                                                       

    root@AM335x-EVM:~# ifconfig eth1                                                  

    ETH1   链路连接:以太网 HWaddr 00:18:31:E0:18:9D                                       

         上广播多播 MTU:1500 公制:1                                        

         RX 数据包:0错误:0丢弃:0超限:0帧:0                                    

         TX 数据包:0错误:0丢弃:0超限:0载波:0                                   

         冲突:0 txqueuelen:1000                                               

         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)                                          

    root@AM335x-EVM:~# ifconfig eth0混杂                                              

    [126.942804] 设备 eth0进入混杂模式                                         

    root@AM335x-EVM:~# ifconfig eth1混杂                                              

    [134.133296] net eth1:未禁用混杂,因为另一个接口仍处于混杂模式                

    [134.209782] 设备 eth1进入混杂模式                                         

    您可以看到、当我检查接口设置时、我会收到相同的警告:

    root@AM335x-EVM:~# ifconfig eth0                                                  

    eth0   Link encap:ethernet HWaddr 00:18:31:E0:18:9C                                       

         向上广播 PROMISC 多播 MTU:1500 公制:1                                    

         RX 数据包:0错误:0丢弃:0超限:0帧:0                                    

         TX 数据包:0错误:0丢弃:0超限:0载波:0                                   

         冲突:0 txqueuelen:1000                                               

         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)                                          

         中断:172

    root@AM335x-EVM:~# ifconfig eth1                                                  

    ETH1   链路连接:以太网 HWaddr 00:18:31:E0:18:9D                                       

         向上广播 PROMISC 多播 MTU:1500 公制:1                                    

         RX 数据包:0错误:0丢弃:0超限:0帧:0                                    

         TX 数据包:0错误:0丢弃:0超限:0载波:0                                   

         冲突:0 txqueuelen:1000                                               

         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)                                          

    您可以看到 eth0和 eth1都处于混杂模式。 因此、您现在可以忽略它。

    此致、

    Yordan