linux - net_device.uc_promisc 字段的用途是什么?

标签 linux linux-kernel

为什么 struct net_device 有一个字段 uc_promisc?这个字段怎么用?

谢谢大家!

最佳答案

当不支持单播过滤的设备必须监听多个单播地址时,根据 dev->uc_countdev->uc_promisc<,它会被置于混杂模式。检查 __dev_set_rx_mode() 函数。

许多设备实现ndo_set_rx_mode(),并通过ndo_set_rx_mode() 设置它们的单播(和多播)过滤器。对于未实现该功能的设备,Linux 会将设备设置为混杂模式,并使用 dev->uc_promisc 跟踪这一事实。

所以混杂模式有几个标志:

  • dev->flags & IFF_PROMISC 表示设备处于混杂模式。
  • dev->gflags & IFF_PROMISC 表示用户已请求混杂模式。
  • dev->uc_promisc 表示混杂模式已启用(实际上,其引用计数已递增),因为需要在未实现 ndo_set_rx_mode().

关于linux - net_device.uc_promisc 字段的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666257/

相关文章:

linux - `kill "$! "` 在 FOR 循环时不起作用

c++ - 如何在 linux 中的两个进程之间传递事件 fd

linux - 调试Linux内核 panic

linux - 检查挂起后恢复系统的Linux内核中断

linux-kernel - 如何创建 100 M 字节缓冲区

linux -/proc/iomem 的内容

arrays - Bash 脚本和数组推送

Python 或 Bash 命令来确定自 cron 作业字符串触发以来的时间

java.lang.UnsupportedClassVersionError : myApp : Unsupported major. 次要版本 51.0(无法加载类 myApp)在 Linux 上

linux - 如何阻止 Linux 计算机上的所有其他进程 XXX 毫秒?