工具/软件: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 ");
}否则{