3. 设备设置

本节介绍特定于设备的配置操作以及 ATM 或 SONET 级别的常规诊断程序。 有关硬件安装和诊断的详细信息,请参阅适配器文档。

3.1. 基于 TCP 的 ATM 设置

如果您没有真正的 ATM 硬件,您仍然可以使用基于 TCP 的 ATM “驱动程序”来练习 API。 它模拟直接连接到远程设备的 ATM 设备(即,没有 VPI/VCI 交换)。

要建立一条(双向)“线路”,请在两个系统上都成为 root 用户(或在同一系统上运行两侧以创建两个连接的“接口”),并在其中一个系统上运行以下命令(我们称之为“a”)

# atmtcp virtual listen

然后在另一个系统(“b”)上运行

# atmtcp virtual connect address_of_a

两个 atmtcp 都将报告它们的进度,并且内核应该显示类似的消息

Link 0: virtual interface 2
Link 1: incoming ATMTCP connection from 127.0.0.1

Link 0: virtual interface 3
Link 1: ATMTCP connection to localhost

在两个系统上。 请注意,atmtcp 保持运行,中断它会中断虚拟线路。

通过指定端口号(默认为 2812),可以将多条“线路”连接到同一台机器。 请注意,不执行 AAL 处理。 因此,不可能接收使用与发送数据所用的 AAL(例如 AAL0)不同的 AAL 发送的数据。

3.2. ZN1221/ZN1225 调优

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”计数器。

3.3./proc/net/atm/

中的文件可以通过以下文件获取有关 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 套接字的缓冲区大小和其他内部信息。

3.4. ATM 诊断

可以使用 atmdiag 程序查询 ATM 设备驱动程序的各种计数器。 有关详细信息,请参见相应的 man 页面。

3.5. SONET 诊断

SONET 诊断工具可用于监视链路性能和模拟错误。 为了获取当前的 SONET 统计信息,请使用 ATM 接口编号作为参数运行它,例如

% sonetdiag 0

可以使用-z选项

# sonetdiag -z 0

重置计数器。可以模拟以下网络故障:[1]

sbip

插入节错误 (B1)

lbip

插入线路错误 (B2)

pbip

插入路径错误 (B3)

frame

强制 (RX) 帧丢失

los

插入信号丢失

lais

插入线路告警指示信号

pais

插入路径告警指示信号

hcs

插入标头校验和错误

通过在命令行上添加相应的关键字来启用故障。 通过在关键字前加上减号来清除故障,例如

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]

某些适配器可能仅支持此功能的子集。