Note
此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。
- Original:
- 翻译:
孙渔喜 Sun yuxi <sun.yuxi@zte.com.cn>
通用HDLC层¶
Krzysztof Halasa <khc@pm.waw.pl>
通用HDLC层当前支持以下协议:
帧中继(支持ANSI、CCITT、Cisco及无LMI模式)
常规(路由)接口和以太网桥接(以太网设备仿真)接口 可共享同一条PVC。
支持ARP(内核暂不支持InARP,但可通过实验性用户空间守护程序实现, 下载地址:http://www.kernel.org/pub/linux/utils/net/hdlc/)。
原始HDLC —— 支持IP(IPv4)接口或以太网设备仿真
Cisco HDLC
PPP
X.25(使用X.25协议栈)
通用HDLC仅作为协议驱动 - 必须配合具体硬件的底层驱动 才能运行。
以太网设备仿真(使用HDLC或帧中继PVC)兼容IEEE 802.1Q(VLAN)和 802.1D(以太网桥接)。
请确保已加载 hdlc.o 和硬件驱动程序。系统将为每个WAN端口创建一个 “hdlc”网络设备(如hdlc0等)。您需要使用”sethdlc”工具,可从以下 地址获取:
编译 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/>.