“当前消息级别:0x00000033(51)”是什么意思?


4

这里有一个类似的问题 什么是“当前消息级别”?

参考链接在答案中 没有提到这个 0x00000033 (51) 值。

以下是ethtool的完整输出:

Settings for enp5s0:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                     100baseT/Half 100baseT/Full 
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000033 (51)
               drv probe ifdown ifup
Link detected: yes

Answers:


1

关键词 来自 Documentation/networking/netif-msg.txt 资源 引用的 什么是“当前消息级别”? 题 (并引用 尼拉罗的回答 对这个问题) 是“变量是位图......”。 如果您不知道这意味着什么,请做一些研究。

您询问的是消息级别0x00000033。 0x33 = 0x1 | 0x2 | 0x10 |为0x20, 所以消息级别相当于 NETIF_MSG_DRV + NETIF_MSG_PROBE + NETIF_MSG_RX_ERR + NETIF_MSG_TX_ERR + NETIF_MSG_TX_QUEUED。 如果你不知道什么 手段, 你需要做更多的研究, 可能包括提出一个新问题 这清楚地表明了你的知识水平, 以及你做什么和不明白的事情。


谢谢你的回答,我现在明白了。我使用过C / C ++(初级级别的东西)。我没有意识到它有点面具。
Peter Sandor

-1

取自以下链接 http://pastebin.com/raw/WKyEQAUp


NETIF消息等级

网络接口消息级别设置的设计。

历史

调试消息接口的设计是指导和  受先前实践的向后兼容性约束。它是有益的  了解历史和进化,以了解当前  练习并将其与较旧的驱动程序源代码相关联。

从Linux开始,每个网络设备驱动程序都有一个本地  控制调试消息级别的整数变量。消息  水平范围从0到7,并且在冗长度上单调增加。

消息级别在3级之后没有精确定义,但是  始终在指定级别的+ -1范围内实现。司机倾向于
在他们成熟时传递更详细的信息。
0最小的消息,只有关于致命错误的基本信息。
1标准消息,初始化状态。没有运行时消息
2特殊媒体选择消息,通常是定时器驱动程序。
3接口启动和停止,包括正常状态消息
4个Tx和Rx帧错误消息,以及异常的驱动程序操作
5个Tx包队列信息,中断事件。
6每个完成的Tx数据包和收到的Rx数据包的状态
7 Tx和Rx数据包的初始内容

最初,此消息级别变量在每个驱动程序中唯一命名  例如“lance_debug”,以便内核符号调试器可以找到和  修改设置。当内核模块变得普遍时,变量  一直被重命名为“debug”并允许设置为模块  参数。

这种方法效果很好。然而,总是有需求  附加功能。多年来,以下出现了  合理且易于实施的增强功能    使用ioctl()调用来修改级别。    每个接口而不是每个驱动程序的消息级别设置。    对发出的消息类型进行更有选择性的控制。

netif_msg建议只添加了一些辅助功能  复杂性和代码大小增加。

建议如下     将每个驱动程序的整数变量“debug”保留为模块     参数的默认级别为“1”。

Adding a per-interface private variable named "msg_enable".  The
variable is a bit map rather than a level, and is initialized as
   1 << debug
Or more precisely
    debug < 0 ? 0 : 1 << min(sizeof(int)-1, debug)

Messages should changes from
  if (debug > 1)
       printk(MSG_DEBUG "%s: ...
to
  if (np->msg_enable & NETIF_MSG_LINK)
       printk(MSG_DEBUG "%s: ...


The set of message levels is named
  Old level   Name   Bit position
    0    NETIF_MSG_DRV      0x0001
    1    NETIF_MSG_PROBE    0x0002
    2    NETIF_MSG_LINK     0x0004
    2    NETIF_MSG_TIMER    0x0004
    3    NETIF_MSG_IFDOWN   0x0008
    3    NETIF_MSG_IFUP     0x0008
    4    NETIF_MSG_RX_ERR   0x0010
    4    NETIF_MSG_TX_ERR   0x0010
    5    NETIF_MSG_TX_QUEUED    0x0020
    5    NETIF_MSG_INTR     0x0020
    6    NETIF_MSG_TX_DONE  0x0040
    6    NETIF_MSG_RX_STATUS    0x0040
    7    NETIF_MSG_PKTDATA  0x0080
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.