udev 上的 `ATTR{type}=="1"` 是什么意思?

udev 上的 `ATTR{type}=="1"` 是什么意思?

在获取网络设备上的信息时,为顶级设备列出的属性之一是:

ATTR{type}=="1"

这是什么意思以及为什么为网络设备提供持久名称的规则与它相匹配?

答案1

ATTR{type}指定 中相应条目的值/sys,由 udev 过滤器中的其他元素过滤。如果您这样做,find /sys/ -name type您会发现它可以应用于各个子系统中的大量对象。

既然您用我标记了您的问题,linux networking我可以假设问题仅与网络设备有关,然后就是网络接口协议type:

内容:/sys/class/net/<iface>/type
日期:2005 年 4 月
内核版本:2.6.12
联系方式: [电子邮件受保护]
说明:
以十进制值表示接口协议类型。看include/uapi/linux/if_arp.h对于所有可能的值。

这个文件依次定义已知值:

#define ARPHRD_ETHER    1       /* Ethernet 10Mbps      */

这就是1in ATTR{type}=="1",它只是意味着“以太网设备”(无论其速度如何,无论是真实的,包括无线等伪以太网设备,还是虚拟的,包括 veth 或网桥......)。

另一种常见的接口是lo类型为 772 的接口(因此udev如果它检测到与前一个一起出现,则不会关心它ATTR{type}=="1"),如下所示:

#define ARPHRD_LOOPBACK 772     /* Loopback device      */

可以通过以下方式验证:

$ cat /sys/class/net/lo/type
772

相关内容