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

2 ответа2

1

Ключевая фраза из ресурса Documentation/networking/netif-msg.txt ссылается Что такое «Текущий уровень сообщения»? вопрос (и процитированный ответом nelaaro на этот вопрос):«Переменная - это битовая карта…»  Если вы не знаете, что это значит, проведите небольшое исследование.

Вы спрашиваете об уровне сообщения 0x00000033.  0x33 = 0x1 | 0x2 | 0x10 | 0x20, поэтому уровень сообщения эквивалентен NETIF_MSG_DRV + NETIF_MSG_PROBE + NETIF_MSG_RX_ERR + NETIF_MSG_TX_ERR + NETIF_MSG_TX_QUEUED . И если вы не знаете, что это значит, вам нужно провести еще какое-то исследование, возможно, в том числе задать новый вопрос, который четко определяет ваш уровень знаний, а также то, что вы делаете и чего не понимаете.

-1

По следующей ссылке http://pastebin.com/raw/WKyEQAUp


NETIF Msg Level

Дизайн настройки уровня сообщения сетевого интерфейса.

история

Дизайн интерфейса сообщения отладки руководствовался и ограничивался предыдущей практикой обратной совместимости. Полезно понять историю и эволюцию, чтобы понять текущую практику и связать ее с более старым исходным кодом драйвера.

С самого начала 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .