dsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/networking/netif-msgmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/networking/netif-msgmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/networking/netif-msgmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/networking/netif-msgmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/networking/netif-msgmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/networking/netif-msgmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhU/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/networking/netif-msg.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h'Documentation/networking/netif-msg.rst h]h)}(h&Documentation/networking/netif-msg.rsth]h&Documentation/networking/netif-msg.rst}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhKubh)}(h-王亚鑫 Wang Yaxin h]h)}(h,王亚鑫 Wang Yaxin h](h王亚鑫 Wang Yaxin <}(hj hhhNhNubh reference)}(hwang.yaxin@zte.com.cnh]hwang.yaxin@zte.com.cn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:wang.yaxin@zte.com.cnuh1j(hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h网络接口消息级别h]h网络接口消息级别}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjXhhhhhK ubh)}(h0网络接口消息级别设置的设计方案。h]h0网络接口消息级别设置的设计方案。}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXhhubjW)}(hhh](j\)}(h 历史背景h]h 历史背景}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjyhhhhhKubh)}(h调试消息接口的设计遵循并受制于向后兼容性及历史实践。理解其发展历史有助于把握 当前实践,并将其与旧版驱动代码相关联。h]h调试消息接口的设计遵循并受制于向后兼容性及历史实践。理解其发展历史有助于把握 当前实践,并将其与旧版驱动代码相关联。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjyhhubh)}(h自Linux诞生之初,每个网络设备驱动均包含一个本地整型变量以控制调试消息级别。 消息级别范围为0至7,数值越大表示输出越详细。h]h自Linux诞生之初,每个网络设备驱动均包含一个本地整型变量以控制调试消息级别。 消息级别范围为0至7,数值越大表示输出越详细。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjyhhubh)}(h消息级别的定义在3级之后未明确细化,但实际实现通常与指定级别相差±1。驱动程序 成熟后,冗余的详细级别消息常被移除。h]h消息级别的定义在3级之后未明确细化,但实际实现通常与指定级别相差±1。驱动程序 成熟后,冗余的详细级别消息常被移除。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjyhhubh block_quote)}(hX- 0 最简消息,仅显示致命错误的关键信息。 - 1 标准消息,初始化状态。无运行时消息。 - 2 特殊介质选择消息,通常由定时器驱动。 - 3 接口开启和停止消息,包括正常状态信息。 - 4 Tx/Rx帧错误消息及异常驱动操作。 - 5 Tx数据包队列信息、中断事件。 - 6 每个完成的Tx数据包和接收的Rx数据包状态。 - 7 Tx/Rx数据包初始内容。 h]h bullet_list)}(hhh](h list_item)}(h90 最简消息,仅显示致命错误的关键信息。h]h)}(hjh]h90 最简消息,仅显示致命错误的关键信息。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h91 标准消息,初始化状态。无运行时消息。h]h)}(hjh]h91 标准消息,初始化状态。无运行时消息。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h92 特殊介质选择消息,通常由定时器驱动。h]h)}(hjh]h92 特殊介质选择消息,通常由定时器驱动。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h<3 接口开启和停止消息,包括正常状态信息。h]h)}(hjh]h<3 接口开启和停止消息,包括正常状态信息。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h/4 Tx/Rx帧错误消息及异常驱动操作。h]h)}(hjh]h/4 Tx/Rx帧错误消息及异常驱动操作。}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h,5 Tx数据包队列信息、中断事件。h]h)}(hj6h]h,5 Tx数据包队列信息、中断事件。}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj4ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h=6 每个完成的Tx数据包和接收的Rx数据包状态。h]h)}(hjMh]h=6 每个完成的Tx数据包和接收的Rx数据包状态。}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjKubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h!7 Tx/Rx数据包初始内容。 h]h)}(h 7 Tx/Rx数据包初始内容。h]h 7 Tx/Rx数据包初始内容。}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjbubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjyhhubh)}(h最初,该消息级别变量在各驱动中具有唯一名称(如"lance_debug"),便于通过 内核符号调试器定位和修改其设置。模块化内核出现后,变量统一重命名为"debug", 并作为模块参数设置。h]h最初,该消息级别变量在各驱动中具有唯一名称(如”lance_debug”),便于通过 内核符号调试器定位和修改其设置。模块化内核出现后,变量统一重命名为”debug”, 并作为模块参数设置。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjyhhubh)}(h这种方法效果良好。然而,人们始终对附加功能存在需求。多年来,以下功能逐渐 成为合理且易于实现的增强方案:h]h这种方法效果良好。然而,人们始终对附加功能存在需求。多年来,以下功能逐渐 成为合理且易于实现的增强方案:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjyhhubj)}(h- 通过ioctl()调用修改消息级别。 - 按接口而非驱动设置消息级别。 - 对发出的消息类型进行更具选择性的控制。 h]j)}(hhh](j)}(h(通过ioctl()调用修改消息级别。h]h)}(hjh]h(通过ioctl()调用修改消息级别。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h*按接口而非驱动设置消息级别。h]h)}(hjh]h*按接口而非驱动设置消息级别。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h:对发出的消息类型进行更具选择性的控制。 h]h)}(h9对发出的消息类型进行更具选择性的控制。h]h9对发出的消息类型进行更具选择性的控制。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhhhK-hjyhhubh)}(hdnetif_msg 建议添加了这些功能,仅带来了轻微的复杂性增加和代码规模增长。h]hdnetif_msg 建议添加了这些功能,仅带来了轻微的复杂性增加和代码规模增长。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjyhhubh)}(h推荐方案如下:h]h推荐方案如下:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjyhhubj)}(hX- 保留驱动级整型变量"debug"作为模块参数,默认值为'1'。 - 添加一个名为 "msg_enable" 的接口私有变量。该变量是位图而非级别, 并按如下方式初始化:: 1 << debug 或更精确地说:: debug < 0 ? 0 : 1 << min(sizeof(int)-1, debug) 消息应从以下形式更改:: if (debug > 1) printk(MSG_DEBUG "%s: ... 改为:: if (np->msg_enable & NETIF_MSG_LINK) printk(MSG_DEBUG "%s: ... h]j)}(hhh](j)}(hJ保留驱动级整型变量"debug"作为模块参数,默认值为'1'。 h]h)}(hI保留驱动级整型变量"debug"作为模块参数,默认值为'1'。h]hQ保留驱动级整型变量”debug”作为模块参数,默认值为’1’。}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXz添加一个名为 "msg_enable" 的接口私有变量。该变量是位图而非级别, 并按如下方式初始化:: 1 << debug 或更精确地说:: debug < 0 ? 0 : 1 << min(sizeof(int)-1, debug) 消息应从以下形式更改:: if (debug > 1) printk(MSG_DEBUG "%s: ... 改为:: if (np->msg_enable & NETIF_MSG_LINK) printk(MSG_DEBUG "%s: ... h](h)}(hw添加一个名为 "msg_enable" 的接口私有变量。该变量是位图而非级别, 并按如下方式初始化::h]hz添加一个名为 “msg_enable” 的接口私有变量。该变量是位图而非级别, 并按如下方式初始化:}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hj8ubh literal_block)}(hU 1 << debug 或更精确地说:: debug < 0 ? 0 : 1 << min(sizeof(int)-1, debug)h]hU 1 << debug 或更精确地说:: debug < 0 ? 0 : 1 << min(sizeof(int)-1, debug)}hjLsbah}(h]h ]h"]h$]h&]hhuh1jJhhhK:hj8ubh)}(h 消息应从以下形式更改::h]h消息应从以下形式更改:}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj8ubjK)}(h-if (debug > 1) printk(MSG_DEBUG "%s: ...h]h-if (debug > 1) printk(MSG_DEBUG "%s: ...}hjhsbah}(h]h ]h"]h$]h&]hhuh1jJhhhKBhj8ubh)}(h改为::h]h改为:}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj8ubjK)}(hCif (np->msg_enable & NETIF_MSG_LINK) printk(MSG_DEBUG "%s: ...h]hCif (np->msg_enable & NETIF_MSG_LINK) printk(MSG_DEBUG "%s: ...}hjsbah}(h]h ]h"]h$]h&]hhuh1jJhhhKGhj8ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhK5hjubah}(h]h ]h"]h$]h&]uh1jhhhK5hjyhhubh)}(h消息级别命名对应关系h]h消息级别命名对应关系}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjyhhubj)}(hX========= =================== ============ 旧级别 名称 位位置 ========= =================== ============ 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 ========= =================== ============h]htable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(h 旧级别h]h 旧级别}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h名称h]h名称}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h 位位置h]h 位位置}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(h1h]h1}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjEubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh]h)}(hNETIF_MSG_PROBEh]hNETIF_MSG_PROBE}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj\ubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh]h)}(h0x0002h]h0x0002}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjsubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h2h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_LINKh]hNETIF_MSG_LINK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0004h]h0x0004}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(hjh]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_TIMERh]hNETIF_MSG_TIMER}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0004h]h0x0004}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h3h]h3}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj.ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hNETIF_MSG_IFDOWNh]hNETIF_MSG_IFDOWN}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjEubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(h0x0008h]h0x0008}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj\ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(hj3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThj|ubah}(h]h ]h"]h$]h&]uh1jhjyubj)}(hhh]h)}(hNETIF_MSG_IFUPh]hNETIF_MSG_IFUP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubah}(h]h ]h"]h$]h&]uh1jhjyubj)}(hhh]h)}(h0x0008h]h0x0008}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h4h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_RX_ERRh]hNETIF_MSG_RX_ERR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0010h]h0x0010}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(hjh]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_TX_ERRh]hNETIF_MSG_TX_ERR}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhj-ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0010h]h0x0010}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjDubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h5h]h5}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjdubah}(h]h ]h"]h$]h&]uh1jhjaubj)}(hhh]h)}(hNETIF_MSG_TX_QUEUEDh]hNETIF_MSG_TX_QUEUED}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj{ubah}(h]h ]h"]h$]h&]uh1jhjaubj)}(hhh]h)}(h0x0020h]h0x0020}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(hjih]h5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_INTRh]hNETIF_MSG_INTR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0020h]h0x0020}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h6h]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_TX_DONEh]hNETIF_MSG_TX_DONE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0040h]h0x0040}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(hjh]h6}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjMubah}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh]h)}(hNETIF_MSG_RX_STATUSh]hNETIF_MSG_RX_STATUS}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjcubah}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh]h)}(h0x0040h]h0x0040}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjzubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhj?ubj)}(hhh](j)}(hhh]h)}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNETIF_MSG_PKTDATAh]hNETIF_MSG_PKTDATA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x0080h]h0x0080}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhKMhjyhhubeh}(h]id2ah ]h"] 历史背景ah$]h&]uh1jVhjXhhhhhKubeh}(h]id1ah ]h"]网络接口消息级别ah$]h&]uh1jVhhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j[N generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj0error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j jjju nametypes}(j juh}(jjXjjyu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j>KsRparse_messages]transform_messages] transformerN include_log]9Documentation/translations/zh_CN/networking/netif-msg.rst(NNNNta decorationNhhub.