本节介绍特定于设备的配置操作以及 ATM 或 SONET 级别的常规诊断程序。 有关硬件安装和诊断的详细信息,请参阅适配器文档。
如果您没有真正的 ATM 硬件,您仍然可以使用基于 TCP 的 ATM “驱动程序”来练习 API。 它模拟直接连接到远程设备的 ATM 设备(即,没有 VPI/VCI 交换)。
要建立一条(双向)“线路”,请在两个系统上都成为 root 用户(或在同一系统上运行两侧以创建两个连接的“接口”),并在其中一个系统上运行以下命令(我们称之为“a”)
然后在另一个系统(“b”)上运行两个 atmtcp 都将报告它们的进度,并且内核应该显示类似的消息
和在两个系统上。 请注意,atmtcp 保持运行,中断它会中断虚拟线路。通过指定端口号(默认为 2812),可以将多条“线路”连接到同一台机器。 请注意,不执行 AAL 处理。 因此,不可能接收使用与发送数据所用的 AAL(例如 AAL0)不同的 AAL 发送的数据。
ZeitNet ZN1221 和 ZN1225 适配器使用预先分配的空闲内存缓冲区池进行接收。 每当为具有特定最大 SDU 大小的 VC 打开接收时,设备驱动程序都会用空闲缓冲区填充相应的池。 适配器在接收数据时会删除缓冲区。 当剩余缓冲区的数量低于某个阈值时,设备驱动程序会再次补充池。
可以使用 zntune 程序设置空闲缓冲区的数量的下限和上限,以及适应新数据偏移量的阈值(有关详细信息,请参见下文)。 用法
zntune [-llow_water] [-hhigh_water] [-tthreshold] itf [pool]
如果未指定池编号,则更改将应用于所有池。 池 2 存储 64 字节的数据包,池 3 存储 128 字节的数据包,依此类推。 池 0 和 1 当前未使用。可以通过调用 zntune 而不指定新参数来获取当前设置和一些使用情况统计信息
zntune [-z]itf [pool]
“Size”列显示缓冲区大小(以字节为单位)。 “Ref”列显示使用该池的打开的 VC 的数量。“Alarm”列显示自计数器重置以来,空闲缓冲区的数量已降至低水位线以下的次数。 类似地,“Under”列显示由于相应的池为空而必须丢弃传入 PDU 的次数。
“Offs”、“NxOf”、“Count”和“Thres”列显示对齐适应状态。“Offs”是驱动程序当前期望传入 PDU 中用户数据的偏移量。 对于单副本,接收缓冲区会相应地对齐,以便在页面边界接收数据。“NxOf”是最近接收的 PDU 的用户数据偏移量,其中偏移量与当前假设的偏移量不同。“Count”是已按顺序接收的 PDU 的数量,偏移量为“NxOf”。 最后,“Thres”是“Count”必须达到的阈值,以便“NxOf”成为新的当前偏移量。
使用-z选项重置“Alarm”和“Under”计数器。
中的文件可以通过以下文件获取有关 ATM 子系统的一些状态信息/proc/net/atm/。 文件/proc/net/atm/arp包含特定于基于 ATM 的经典 IP 的信息,请参见CLIP 部分。
所有活动的 ATM 设备都列在/proc/net/atm/devices中。 对于每个设备,都会显示接口号、类型标签、终端系统标识符 (ESI) 和统计信息。 统计信息对应于通过 atmdiag 提供的统计信息。
各个 ATM 设备可以注册以下形式的条目type:number(例如eni:0),其中包含特定于设备的信息。
文件/proc/net/atm/pvc和/proc/net/atm/svc列出所有 PVC 和 SVC 套接字。 对于两种类型的套接字,都会显示接口、VPI 和 VCI 编号。 对于 PVC,后面是 AAL 和流量类别,以及为接收和发送方向选择的 PCR。 对于 SVC,会显示 SVC 状态和远程方的地址。 接口编号为 999 的 SVC 用于特殊控制目的,如“State”列所示。
此外,/proc/net/atm/vc显示所有 ATM 套接字的缓冲区大小和其他内部信息。
可以使用 atmdiag 程序查询 ATM 设备驱动程序的各种计数器。 有关详细信息,请参见相应的 man 页面。
SONET 诊断工具可用于监视链路性能和模拟错误。 为了获取当前的 SONET 统计信息,请使用 ATM 接口编号作为参数运行它,例如
可以使用-z选项
重置计数器。可以模拟以下网络故障:[1]
插入节错误 (B1)
插入线路错误 (B2)
插入路径错误 (B3)
强制 (RX) 帧丢失
插入信号丢失
插入线路告警指示信号
插入路径告警指示信号
插入标头校验和错误
通过在命令行上添加相应的关键字来启用故障。 通过在关键字前加上减号来清除故障,例如
a# sonetdiag -z 0 >/dev/null b# sonetdiag -z 0 >/dev/null a# sonetdiag 0 los a# sonetdiag 0 -los b# sonetdiag 0 | grep BIP Section BIP errors: 56200 Line BIP errors: 342 Path BIP errors: 152 a# sonetdiag 0 | grep FEBE Line FEBE: 342 Path FEBE: 152 |
如果任何诊断错误插入处于活动状态,则在使用 sonetdiag 获取统计信息时,会显示其关键字。 请注意,某些错误插入可能会被硬件自动关闭。
[1] | 某些适配器可能仅支持此功能的子集。 |