Documentation / translations / zh_CN / networking / generic-hdlc.rst


Based on kernel version 6.19. Page generated on 2026-02-12 08:38 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
.. SPDX-License-Identifier: GPL-2.0

.. include:: ../disclaimer-zh_CN.rst

:Original: Documentation/networking/generic-hdlc.rst

:翻译:

   孙渔喜 Sun yuxi <sun.yuxi@zte.com.cn>

==========
通用HDLC层
==========

Krzysztof Halasa <khc@pm.waw.pl>


通用HDLC层当前支持以下协议:

1. 帧中继(支持ANSI、CCITT、Cisco及无LMI模式)

   - 常规(路由)接口和以太网桥接(以太网设备仿真)接口
     可共享同一条PVC。
   - 支持ARP(内核暂不支持InARP,但可通过实验性用户空间守护程序实现,
     下载地址:http://www.kernel.org/pub/linux/utils/net/hdlc/)。

2. 原始HDLC —— 支持IP(IPv4)接口或以太网设备仿真
3. Cisco HDLC
4. PPP
5. X.25(使用X.25协议栈)

通用HDLC仅作为协议驱动 - 必须配合具体硬件的底层驱动
才能运行。

以太网设备仿真(使用HDLC或帧中继PVC)兼容IEEE 802.1Q(VLAN)和
802.1D(以太网桥接)。


请确保已加载 hdlc.o 和硬件驱动程序。系统将为每个WAN端口创建一个
"hdlc"网络设备(如hdlc0等)。您需要使用"sethdlc"工具,可从以下
地址获取:

	http://www.kernel.org/pub/linux/utils/net/hdlc/

编译 sethdlc.c 工具::

	gcc -O2 -Wall -o sethdlc sethdlc.c

请确保使用与您内核版本匹配的 sethdlc 工具。

使用 sethdlc 工具设置物理接口、时钟频率、HDLC 模式,
若使用帧中继还需添加所需的 PVC。
通常您需要执行类似以下命令::

	sethdlc hdlc0 clock int rate 128000
	sethdlc hdlc0 cisco interval 10 timeout 25

或::

	sethdlc hdlc0 rs232 clock ext
	sethdlc hdlc0 fr lmi ansi
	sethdlc hdlc0 create 99
	ifconfig hdlc0 up
	ifconfig pvc0 localIP pointopoint remoteIP

在帧中继模式下,请先启用主hdlc设备(不分配IP地址),再
使用pvc设备。


接口设置选项:

* v35 | rs232 | x21 | t1 | e1
    - 当网卡支持软件可选接口时,可为指定端口设置物理接口
  loopback
    - 启用硬件环回(仅用于测试)
* clock ext
    - RX与TX时钟均使用外部时钟源
* clock int
    - RX与TX时钟均使用内部时钟源
* clock txint
    - RX时钟使用外部时钟源,TX时钟使用内部时钟源
* clock txfromrx
    - RX时钟使用外部时钟源,TX时钟从RX时钟派生
* rate
    - 设置时钟速率(仅适用于"int"或"txint"时钟模式)


设置协议选项:

* hdlc - 设置原始HDLC模式(仅支持IP协议)

  nrz / nrzi / fm-mark / fm-space / manchester - 传输编码选项

  no-parity / crc16 / crc16-pr0 (预设零值的CRC16) / crc32-itu

  crc16-itu (使用ITU-T多项式的CRC16) / crc16-itu-pr0 - 校验方式选项

* hdlc-eth - 使用HDLC进行以太网设备仿真. 校验和编码方式同上
  as above.

* cisco - 设置Cisco HDLC模式(支持IP、IPv6和IPX协议)

  interval - 保活数据包发送间隔(秒)

  timeout - 未收到保活数据包的超时时间(秒),超过此时长将判定
	    链路断开

* ppp - 设置同步PPP模式

* x25 - 设置X.25模式

* fr - 帧中继模式

  lmi ansi / ccitt / cisco / none - LMI(链路管理)类型

  dce - 将帧中继设置为DCE(网络侧)LMI模式(默认为DTE用户侧)。

  此设置与时钟无关!

  - t391 - 链路完整性验证轮询定时器(秒)- 用户侧
  - t392 - 轮询验证定时器(秒)- 网络侧
  - n391 - 全状态轮询计数器 - 用户侧
  - n392 - 错误阈值 - 用户侧和网络侧共用
  - n393 - 监控事件计数 - 用户侧和网络侧共用

帧中继专用命令:

* create n | delete n - 添加/删除DLCI编号为n的PVC接口。
  新创建的接口将命名为pvc0、pvc1等。

* create ether n | delete ether n - 添加/删除用于以太网
  桥接帧的设备设备将命名为pvceth0、pvceth1等。




板卡特定问题
------------

n2.o 和 c101.o 驱动模块需要参数才能工作::

	insmod n2 hw=io,irq,ram,ports[:io,irq,...]

示例::

	insmod n2 hw=0x300,10,0xD0000,01

或::

	insmod c101 hw=irq,ram[:irq,...]

示例::

	insmod c101 hw=9,0xdc000

若直接编译进内核,这些驱动需要通过内核(命令行)参数配置::

	n2.hw=io,irq,ram,ports:...

或::

	c101.hw=irq,ram:...



若您的N2、C101或PLX200SYN板卡出现问题,可通过"private"
命令查看端口数据包描述符环(显示在内核日志中)

	sethdlc hdlc0 private

硬件驱动需使用#define DEBUG_RINGS编译选项构建。
在提交错误报告时附上这些信息将很有帮助。如在使用过程中遇
到任何问题,请随时告知。

获取补丁和其他信息,请访问:
<http://www.kernel.org/pub/linux/utils/net/hdlc/>.