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

发布于 2024-11-19 13:28:11 字数 92 浏览 1 评论 0原文

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

谢谢大家!

why struct net_device has a field uc_promisc? How this field is used?

Thank you all!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月寒剑心 2024-11-26 13:28:11

当不支持单播过滤的设备必须侦听多个单播地址时,根据 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 的设备中监听其他单播地址()

When a device that doesn't support unicast filtering has to listen to several unicast addresses, it is put on promiscous mode, according to dev->uc_count and dev->uc_promisc. Check the __dev_set_rx_mode() function.

Many devices implement ndo_set_rx_mode(), and set their unicast (and multicast) filters via ndo_set_rx_mode(). For devices that don't implement that, Linux sets the device to promiscuous mode, and keeps track of that fact with dev->uc_promisc.

So there are several flags for promiscuous mode:

  • dev->flags & IFF_PROMISC means the device is in promiscuous mode.
  • dev->gflags & IFF_PROMISC means the user has requested promiscuous mode.
  • dev->uc_promisc means promiscuous mode has been enabled (actually, its reference count has been incremented) due to the need to listen to additional unicast address in a device that doesn't implement ndo_set_rx_mode().
A君 2024-11-26 13:28:11

听起来这可能是一种启用(或跟踪启用/禁用状态)混杂模式 在设备上。

It sounds like it could be a way of enabling (or tracking the enabled/disabled status of) promiscuous mode on the device.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文