首页> 中国专利> 物理层与网络层侧设备间传输数据的数据传输装置和方法

物理层与网络层侧设备间传输数据的数据传输装置和方法

摘要

本发明公开了在物理层侧设备和网络层侧设备之间进行数据传输的装置和方法。它采用了可变的SAPI值,将全新的LAPS帧/解帧封装到类HDLC帧的SPE/VC中。LAPS帧由标志序列、地址字段(SAPI,服务访问点标识符)、控制字段(0x03)、信息字段(IPv4、IPv6或PPP协议数据单元)、FCS字段(帧校验序列)和结束标志序列组成。标志序列(0x7E)指示LAPS帧的起始/结束。本发明可以将Internet/Intranet适配到电信基础设施上,可以应用于将IP信号直接适配到SDH/SONET、简化的SDH/SONET或其它物理层设备的设备,诸如核心和边缘路由器、交换设备、基于IP的网络接入设备、线卡和千兆位(Gigabit)的高速接口单元等设备。

著录项

  • 公开/公告号CN1310905A

    专利类型发明专利

  • 公开/公告日2001-08-29

    原文格式PDF

  • 申请/专利权人 信息产业部武汉邮电科学研究院;

    申请/专利号CN00800297.5

  • 发明设计人 余少华;

    申请日2000-07-13

  • 分类号H04L29/06;H04L12/56;

  • 代理机构柳沈知识产权律师事务所;

  • 代理人黄小临

  • 地址 中国武汉市洪山区邮科院路88号

  • 入库时间 2023-12-17 14:02:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-07

    专利权有效期届满 IPC(主分类):H04L29/06 授权公告日:20040728 申请日:20000713

    专利权的终止

  • 2004-07-28

    授权

    授权

  • 2003-04-23

    实质审查的生效

    实质审查的生效

  • 2001-09-05

    实质审查的生效

    实质审查的生效

  • 2001-08-29

    公开

    公开

说明书

发明领域

本发明涉及与Internet/Intranet相关的数据网络和开放式系统通信,特别是涉及物理层与网络层设备之间的数据传输装置和方法,例如核心和边缘路由器、交换设备、基于IP(因特网协议)的网络接入设备、线卡和在高速如千兆应用中使用的接口单元等设备,用于将IP信号直接适配到SDH(同步数字体系)/SONET(同步光网络)、简化SDH/SONET及其它物理层设备。

背景技术

目前,主要电信设备或传输通道传输的是IPv4(因特网协议版本4)数据包,以支持IP协议以及提供与IP相关的各种应用。最好的传输通道之一是SDH和与之相关的波分复用(WDM)光传输网被认为是宽带IP和宽带综合业务数字网(B-ISDN)物理层的基础。近十年来,SDH/SONET在全世界已广泛应用。

ITU(国际电信联盟)-TG.707叙述了SDH的优点和复用方法,规定了SDH系列速率、网络节点接口(NNI)的基本原理和帧结构、9行乘N×270列的总帧长、段开销(SOH)及其字节分配、同步传输模式(STM)的国际互连方式、在NNI处将元素复用和映射为STM-N的格式。

北美相当于SDH的标准是SONET,它是用于光媒质上同步数据传输的美国(ANSI,美国国家标准化组织)标准。人们采用标准是为了使数字网络能够国际互连,已有的传统传输系统能够通过一些附属设备而共享光媒质的优点。SONET的基本速率是51.84Mbps,基本速率的倍数为众所周知的光载波系列。SONET是定义了一系列标准速率和格式的八位组(octet)同步复用方案。SONET不象其名,它不仅仅用于光链路,也为单模光纤、多模光纤和CATV(有线电视)75欧姆同轴电缆规定了电气规范。其传输速率为51.84Mbps的整倍数,能够携带T3/E3位同步信号,同时它也强烈建议采用G.703E1/E3/E4/T1/E2/T4接口作为IP-over-SDH/SONET(IP适配到SDH/DONET上)的物理层,它是通过LAN(局域网)的普通用户接入方法。

SDH和SONET两种标准都能提供最高速率到9.953Gbps的一系列线路速率,实际线路速率有可能达到20Gbps。

如何最大限度地利用已有的巨大宽带资源来提供Internet(因特网)数据通信业务?如何将基于IP的网络和SDH/SONET结合起来,建立低成本和高速率的协议模型?RFC(IETF的一种推荐标准)2225(1998)定义了异步传输模式(ATM)网络环境下,构造为逻辑IP子网(LIS)的传统IP和ARP的初步应用,它仅仅只考虑了ATM直接替代“网络线”、本地LAN分段连接IP终端设备(“成员”)、及路由器在“传统”的基于LAN范例运行的应用情况。RFC 1619(1994)说明了PPP over SONET和SDH的电路的使用,PPP(RFC 1548,1993)设计作为点对点链路通信的标准方法,最初应用于短程本地线路、租用线路和使用调制解调器的普通电话业务(POTS)。随着新的包业务和更高速率线路的引入,RFC 1717(1994)提出了跨过多个逻辑数据链路的分断、重新合并和排序的方法。

Internet/Intranet(因特网/内联网)的快速增长已经导致需要建立电信Internet/Intranet(如:QoS(服务质量)、优先级、帐户管理等)的框架,同时,还有必要在其它Internet/Intranet领域考虑与当前因特网协议IPv4兼容和与下一代因特网协议IPv6兼容,这一点非常重要。

当前IP到SDH/SONET的适配方法是利用RFC 2615协议的PPP(包括LCP(链路控制协议)和NCP(网络控制协议))over HDLC(高级数据链路控制),包括RFC 1661、RFC 1662、RFC 1570、RFC 1547、RFC1340。PPP能够封装包括IPv4在内的30多个网络协议,但是,PPP最初是为调制解调器拨号(防火墙)的协议间适配提出的,且PPP的算法很复杂。

应用PPP over SONET或SDH时,存在下列不足:

(1)无标准支持低价虚容器应用,这将导致IP over SDH/SONET

不能应用于Internet的边缘接入;

(2)对于2.5Gbps及以上的速率,转发引擎的硬件开销过大,特

别是对于IP over使用简化SDH/SONET帧结构的WDM来说更是如此。

由于在RFC 1619中,建议使用LCP和魔数(Magic Number),两者都

非常复杂;

(3)在使用了RFC 1619的情况下,PPP中重新发送的定时器缺省

值是3秒,对于高速链路来讲太慢了。在特殊的工程应用中,要求支持的速率范围为2Mbit/s(兆位/秒)到10000Mbit/s(变化大约为4032倍),因此,重新发送的定时器值应根据线路往返程延迟来决定。但在RFC 1619中没有定义,这将导致在将不同厂商之间的设备互联时会产生不确定性;

(4)IP over SDH/SONET的情况中几乎没有使用PPP的填充字段,但其规定仍保留在RFC 2615中,此外,此填充字段要求在接收端具备区分RFC标准中定义的信息字段和填充字段的功能,这又增加了处理开销。

(5)LCP包括10个配置包,16个事件和12个动作,以及130多个协议状态,对于实现光的包交换是很困难的和昂贵的。为了说明以上情况,表1示出了使用传统的PPP over SONET/SDH标准时LCP有限状态机的事件与动作表。

表1  事件动作表

事件                                动作Up=lower layer is Up(低层为上)       Tlu=This-Layer-Up(该层为

                                    上)Down=lower layer is Down(低层为下)   Tld=This-Layer-Down(该层

                                    为下)Open=administrative Open(管理打      Tls=This-Layer-

开)                                 Started(该层开始)Close=administrative Close(管理关    Tlf=This-Layer-

闭)                                 Finished(该层结束)TO+=Timeout with counter>0(计       Irc=Initialize-Restart-

数器>0即到时)                      Count(初始化-重启动-

                                    计数)TO-=Timeout with counter             Zrc=Zero-Restart-

expired(计数器满即到时)             Count(零-重启动-计数)RCR+=Receive-Configure-Request       Scr=Send-Configure-

(Good)(接收-配置-请求(好))          Request(发送-配置-请

                                    求)RCR-=Receive-Configure-Request

(Bad)(接收-配置-请求(坏))RCA=Receive-Configure-Ack(接收-      Sca=Send-Configure-

配置-确认)                          Ack(发送-配置-确认)RCN=Receive-Configure-Nak/Rej(接     Scn=Send-Configure-

收-配置-无确认/拒绝)                Nak/Rej(发送-配置-无

                                    确认/拒绝)RTR=Receive-Terminate-Request(接     Str=Send-Terminate-

收终止请求)                         Request(发送-终止-请

                                    求)RTA=Receive-Terminate-Ack(接收-      Sta=Send-Terminate-

终止-确认)                          Ack(发送-终止-确认)RUC=Receive-Unknown-Code(接收未      Scj=Send-Code-Reject(发知码)                               送码拒绝)RXJ+=Receive-Code-Reject

(permitted)

    or Receive-Protocol-

Reject(接收码拒绝(允许)或接收

协议拒绝)RXJ-=Receive-Code-Reject

(catastrophic)

or Receive-Protocol-

Reject(接收码拒绝(故障)或接收

协议拒绝)RXR=Receive-Echo-Request              ser=Send-Echo-Reply(发送

or Receive-Echo-Reply                回程应答)

or Receive-Discard-

Request(接收回程请求或接收回

程应答或接收丢弃请求)

为了进行示例性说明,图1为传统PPP over SDH路由器中线卡的结构图。如图1所示,作为路由器1的组成部分,有多个线卡2-1、…、2-N,每一块都与交换背板单元(switch fabric unit)3相连,对于每一块线卡,来自O/E(光/电)转换模块5的类HDLC数据帧由OC-192c/48c/12c/3c或STM-64c/16c/4c/1收发器6接收,然后发送到POS(PPP over SDH/SONET)映射器/去映射器7(也叫成帧器/解帧器);在POS成帧器/解帧器7中,封装在HDLC帧中的PPP帧被提取出来,然后传送到包转发引擎8中,转发引擎8与路由引擎4协同运行,用于PPP处理,路由引擎4是由路由器中的嵌入式CPU运行的软件,转发引擎8通过使用一个将路由表或转发信息库的IP地址子集与线卡标识符相组合的机制,将数据包转发到交换背板3上,以便将数据包传送到目的地址。作为网络层处理的PPP功能是在路由器内每块线卡上的转发引擎和路由引擎中实现的。

图2说明了传统线卡上实现网络层PPP处理的示例。例如,假定此时的数据速率为2.5Gbit/s,图2中,PPP(LCP、NCP)的过滤功能可以由50,000门以上的现场可编程门阵列(FPGA)这样的硬件作为转发引擎实现,而其它的LCP功能则可以利用象路由引擎这样的软件的形式来实现;另一种方案是,所有PPP、LCP、NCP功能都能利用象转发引擎这样的硬件实现,但其FPGA的门数将超过500,000门。此外,PPP软件的C语言源代码超过10,000行,价值数万美元。

对于线卡上的映射器/去映射器芯片和网络处理引擎芯片的复杂性,发明人通过调查多家厂商映射器/去映射器芯片解决方案,发现了以下情况:

当配置为POS模式时,映射器/去映射器的发送HDLC处理器将HDLC帧信号插入SPE中,执行包成帧、帧间填充和发送FIFO错误恢复。此外,无论是前置还是后置HDLC处理器,均可选择执行扰码(x43+1)功能,执行RFC1662规定的透明性处理过程,还可选择性的产生16/32比特的FCS(帧校验序列)。

接收HDLC处理器提供以下功能:提取HDLC帧,去除透明性,(如有必要)解扰码,检查FCS错误,任选地删除HDLC地址字段和控制字段。LCP和NCP功能没有包含在映射器/去映射器芯片中。

定义下列情况的POS PHY(物理)接口:OC-3/STM-1为8位并行,25Mbps的速率;OC-12/STM-4为16位并行,速率为50Mbps;OC-48/STM-16时为32或64位并行,速率为100Mbps或50Mbps。

PPP中不同的LCP包的处理、链路建立、验证、网络协议和链路终止处理、以及状态转换表的形成,将可以在网络处理引擎处,或者由网络处理器转送到全局路由引擎处实现。许多厂商,如Agere、Broadcom、Conexant、C-port、IBM、Intel、Lucent、Maker、MMC network、Motorola、Sitera、softcom、TI和Vitesse(还有其它的欧洲、日本和中国公司)都在开发各种网络处理器引擎,有支持包模式的,有支持信元(cell)模式的,也有两种模式都支持的。例如已有公司发布其网络处理器或进入商用,它为800多只脚的BGA)封装,此外还需要一系列软件开发和测试工具,才能构建线卡。这种引擎具有多协议处理器,有许多必要的功能与基于IP的转发有关,如输入流调度、接收流解析、路由表查询和更新、接收编辑、输入队列管理、输出队列管理、发送编辑、输出信号调度、与SSRAM、SDRAM的接口,以及SNMP网络管理等等,导致引擎十分复杂。到目前通常使用基于微码或基于低层分类语言的编程。下一目标是建立一个纯ASIC(专用集成电路)来实现IP转发。由于基于IP的线速转发仍是基本的要求,在上面两种情况中,LCP和NCP协议的使用表明此种引擎增加了额外的负担。即使这种情况将来比以前复杂十倍,建立包括这种PPP机制在内的功能也不会出现问题(如Nexabit已在芝加哥和克里夫兰之间实现PPP over OC-192)。但在传统设计中不能做到降低成本,提高效率的主要要求。

从以上可见,传统的PPP over SDH/SONET解决方案是相当复杂、实现起来很困难和昂贵、速率缓慢,不适合高速速率传输,特别不适合于千兆速率应用。

发明概述

本发明的目的在于提供一种物理层和网络层之间的数据传输装置。它简单、高效、可靠、低成本,适于高速数据传输应用,如千兆或千兆以上速率的路由器、在边缘网络节点处的路由器等。

发送方向,本发明提供一种数据传输装置,用于将数据包从网络层侧设备传送到物理层侧设备,包括:第一接收装置,从网络层侧设备接收一定类型的数据包;SAPI识别符产生装置,识别数据包的类型,并根据识别的类型,产生SAPI识别符;第一成帧装置,用于以下列格式封装所述数据:起始标志、含SAPI标识符的SAPI字段、控制字段、含所述数据包的信息字段、FCS字段和结束标志,以形成第一类的帧;第二成帧装置,用于将第一类帧封装到净荷部分中,并插入适当的开销,以形成第二类的帧;以及,第一发送装置,将第二类帧发送到物理层侧设备中。

接收方向,本发明提供一种数据传输装置,用于将数据包从物理层侧设备传送到网络层侧设备,所述数据包为将第一类帧作为净荷加上适当的开销,封装在第二类帧中形成。每个第一类帧包括:起始标志、地址字段、控制字段、信息字段、FCS字段和结束标志。所述装置包括:第二接收装置,用于从物理层侧设备接收数据包;第二解帧装置,用于从第二类帧的净荷中去掉开销,并提取第一类帧;第一解帧装置,从第一类帧中提取地址字段和信息字段中的数据;判决装置,将地址字段(SAPI字段)的值与至少包括第一值和第二值的一组预置值进行比较,如果地址字段数据的值与第一值相匹配,就判定所提取的数据是第一类,如果地址字段的值与第二类值相匹配,就判定所提取的数据是第二类;第二发送装置,用于向网络层侧设备发送所提取的数据包和判定的结果。

本发明还提供一种在网络层侧设备与物理层侧设备之间传输数据包的数据传输装置,其包括上述发送和接收两个方向的数据传输装置。

本发明还提供一种路由器设备,其包括多个线卡,至少有一线卡包括上述发送和接收两个方向的数据传输装置。

本发明还提供一种在网络层侧设备与物理层侧设备之间传输数据包的数据传输方法,包括以下步骤:接收来自网络层侧设备的一定类型数据包;识别数据包类型,并根据识别的类型产生SAPI标识符;第一成帧步骤,以下列的格式封装所述数据:起始标志、含SAPI标识符的SAPI字段、控制字段、含所述数据包的信息字段、FCS字段和结束标志;第二成帧步骤,将第一类帧加上适当的开销,封装到净荷部分,形成第二类帧;以及,将第二类帧发送到物理层侧设备。

本发明还提供一种将数据包从物理层设备传送到网络层设备的数据传输方法,所述数据包是通过将第一类帧作为净荷加上适当开销封装在第二类帧中形成,第一类帧包括起始标识、地址字段、控制字段、信息字段、FCS字段和结束标识,所述方法包括以下步骤:接收来自物理层侧设备的数据包;第二解帧步骤:去除开销,从第二类帧的净荷中提取第一类帧;第一解帧步骤:从第一类帧中提取地址字段和包含在信息字段中的数据;将地址字段(SAPI字段)的值与至少包括第一值和第二值的一组预置值进行比较,如果地址字段的值与第一值相匹配,就判定提取的数据是第一类,如果地址字段的值与第二类值相匹配,就判定提取的数据是第二类;以及,向网络层侧设备发送提取的数据包和判定的结果。

本发明中的数据传送装置和方法能够应用于核心和边缘路由器、交换设备、基于IP的网络接入设备、线卡和接口单元等等。

图例简要说明

以下结合附图对本发明进行示例说明,但不仅限于附图中的图形,图中相同标号表示类似部件。

图1示出了传统PPP over SDH路由器中的线卡结构;

图2示出了传统线卡中网络层中PPP处理的一种实施方式;

图3A为依据本发明的网络协议栈的结构的一个例子;

图3B示出了依据本发明的采用LAPS的IP over STM-N/协议栈结构;

图3C示出了依据本发明的采用LAPS的IP over sSTM/协议栈结构;

图4举例说明本发明中的LAPS帧格式;

图5A、5B举例说明网络层、链路层和物理层之间的关系,及相关的原语关系;

图6示出根据本发明的一个实施例的使用LAPS的IP over SDH路由器的架构;

图7示出根据本发明的IOSL成帧器/解帧器结构的一个实施例;

图8A显示STM-N的SPE/VC的结构示例;

图8B示出SDH和SONET中使用的的通道开销(POH)结构;

图8C示出SPE/VC中POH的位置;

图9示出根据本发明的IOSL成帧器/解帧器中扰码器和解扰器的结构;

图10是RFC 2615帧结构与本发明帧结构之间的比较;

图11是根据本发明,使用IP over SDH结构的网络互连示例;

优选实施例的详细说明

本发明从网络层处理器去掉了诸如过滤功能的PPP处理过程,用服务接入点标识符(SAPI)容纳多种逻辑链路,来封装多种类型的数据,如基于IPv4、基于IPv6和其它网络协议的数据包。

采用LAPS的IP over SDH是将Internet协议与SDH网络结合在一起的数据通信结构。图3A是根据本发明的网络协议栈结构示例,在连接局域网(LAN)到IP over SDH网络时,它显示了输入侧和输出侧节点的协议栈结构。如图3A所示,IP over SDH代表着IP与SDH的互连。在网关处可以提供SDH和MAC两种物理接口,而网络层是IPv4/IPv6。

图3B的IP over STM-N层/协议栈中和图3C的IP over sSTM-n的层/协议栈中,物理层、链路层和网络层分别规定为SDH/SONET、LAPS和IPv4/IPv6/PPP/中间系统-中间系统(IS-IS)。

图3B是依据本发明,举例说明采用LAPS的IP over STM-N层/协议栈结构。如图3B所示,有两种方法放入虚容器:一种是将LAPS帧放入低阶虚容器,然后根据SDH复用结构,利用字节交错间插将低阶VC复用到高阶VC中,最后依次传送给复用段、再生段和O/E转换单元,在接收侧可以根据上述过程的反过程来提取LAPS帧信号;另一种方式就是将LAPS帧放入SPE中,直接映射到高阶容器中,然后依次发送给复用段、再生段和O/E转换单元,接收侧根据反过程就可提取LAPS帧。

图3C是依据本发明,举例说明采用LAPS的IP over sSTM-n层/协议栈结构。如图3C所示,只能将LAPS帧信号放入低阶VCx(VC11、VC12、VC2)中,然后根据SDH的子类复用结构,利用字节间插将低阶VC复用到子类复用段中,依次发送到复用段、再生段和O/E转换单元,接收侧可按反过程提取LAPS帧。

图4根据本发明,举例说明LAPS的帧结构。如图4所示,LAPS的帧结构由起始标识序列、地址字段(SAPI服务接入点标识符)、控制字段(0x03)、信息字段(IPv4、IPv6、或PPP协议数据单元)、FCS(帧校验序列)和结束标识序列组成,标识序列(0x7E)指明了LAPS帧的开始/结束。

图5A、5B举例说明了LAPS、IP和SDH之间的原语关系。各层之间的通信是通过原语完成的。原语,抽象的说,是表示数据链路层和第三层或其它上层协议间信息和控制的逻辑交换。它们并没有规定或限制实现的方法。如图5B所示,DL-UNACK-DATA(请求和指示)原语用来请求和指示由使用UITS的数据链路层实体传输或接收的第三层IP包(用户数据)或其它上层用户数据。PH-DATA原语用来请求和指示为数据链路层对等通信的由物理层传送来的和将要传送到物理层去的数据链路帧。

MDL-ERROR原语是用来向连接管理实体指示作为与数据链路层对等实体通信的结果差错已发生。在收到MDL-ERROR指示原语时,连接管理实体要产生动作。参数与原语相联系,包含与业务相关的信息。在DATA原语的情况,参数数据包含业务数据单元。业务数据单元允许业务使用者将协议数据单元传送到对等业务使用者实体。例如,DL-UNACK-DATA参数包含第三层信息。PH_DATA参数包含数据链路层的帧。如供不同业务使用的用户数据和6位DS(组分业务)码点(codepoint)。

原语进程确定了相邻层间的相互作用以便调用和提供业务。业务原语代表了进程的元素。如图5B所示。

图6根据本发明的一个实施例的使用LAPS的IP over SDH(以后简称IOSL)路由器的线卡结构的架构。如图6所示,路由器包括2-1’、…、2-N’等多个线卡,每一线卡与一确定的网络节点相接口;交换背板3在线卡之间进行数据包交换;路由处理和网络管理单元4进行路由处理和必要的网络管理处理,如OSPF、BGPv4、RIPv1/v2、RSVP、CR-LDP,即系统SNMP。每块线卡包括与物理层设备接口的O/E模块5、从/向O/E模块接收/发送数据的OC收发器、执行LAPS成帧/解帧处理的IOSL成帧器/解帧器11、标准/速率适配的FPGA或网络处理器中的软件代码12、根据其接收的IP地址,向其目的节点转发IP包的网络处理引擎8、标准/速率适配的FPGA 13、从/向交换背板单元3接收/发送数据的串行背板收发器9。

图6中,O/E是具有OC3/12/48/192速率的光/电模块5,OC3/12/48/192收发器6是集成了时钟发生器,与SONET/SDH兼容的芯片,能够用于以2.488Gb/s数据速率工作的SONET/SDH系统。为了提供内部逻辑和输出重新定时的2.488GHz时钟,内部时钟发生器采用锁相环技术将77.76MHz或155.52MHz的参考时钟进行倍频。8/16/32/64位并行接口采用本机(onboard)FIFO(先入先出),通过提供灵活并行定时架构,消除了环路定时设计方面的考虑。此外,该设备还提供了设施和设备回馈模式两者和两个环路定时模式。

图6中,IOSL(采用LAPS的IP over SDH/SONET)成帧器/解帧器执行下列功能:

    ●将由SAPI识别的IPv4、IPv6、PPP、IS-IS和基于以太网的

数据包封装进LAPS信息字段。

    ●LAPS中参数“6位DS码点”(RFC 2460定义)可以用来完成

IPv4/IPv6和LAPS之间,或IPv4/IPv6和PPP之间的链路功能,以

提供对细分业务的支持;它不应用于LAPS的任何帧中。DS码点是

从IP数据中提取,将其放到信息字段,用以控制队列算法。

    ●用E1、E2、F1和D1-D12的传输/段开销接口,在发送和接

收两个方向处理SONET/SDH段、线路和通道层的源和宿。

    ●通过将LAPS帧全双工映射进SONET/SDH净荷,实现STS-

192/STM-64、或STS-48c/STM-16、或STS-12c/STM-4、或STS-3c/STM-1

数据流处理过程。

    ●利用多项式(X43+1)对LAPS信号进行自同步扰码/解扰。

    ●提供POS PHY接口或Utopia(乌托邦,一种接口标准名)接口。

    ●提供用于控制、配置和状态监视的8位或16位的微处理器

接口。

    ●符合ITU-T建议X.85的LAPS处理过程。

    ●符合ANSI T1.105、Bellcore GR-253-CORE和ITUG.707(2000

年4月版)SONET/SDH规范。

    ●提供IEEE 1149.1 JTAG测试端口。

    ●支持内部用于诊断的环回通道。

上述IOSL成帧器/解帧器中,发送方向包括下列基本功能:将LAPS帧插入SPE(同步净荷包封)帧中;帧间填充和传送FIFO差错恢复;扰码(X43+1);透明性处理;产生32位FCS。

接收方向包括下列基本功能:提取LAPS帧;去除透明性;解扰(如已设置);FCS错误检查;去除LAPS地址字段和控制字段。

根据本发明的一个实施例,图6中IOSL成帧器/解帧器的具体结构在图7中示出,在传送和接收两个方向成帧器/解帧器完成标准的STS-3c/STM-1处理过程。

发送方向,LAPS帧封装到SONET/SDH的SPE/VC中,插入POH(通道开销)和TOH/SOH(传输开销/段开销),得到的STS信号以字节宽的格式发送给并行/串行转换器,再到光纤收发器。如图7所示:IOSL成帧器/解帧器包括:在发送方向,TX FIFO(发送FIFO)18从网络层侧设备接收数据包并缓存,IP数据包可以为IPv4、IPv6、PPP、IS-IS、或其它;SAPI判决单元19判定接收的数据包类型,并产生对应的一个预定SAPI值;TX LAPS处理单元22,用于按照图4的格式将SAPI和数据包封装到LAPS帧中;用于LAPS帧的扰码单元23;SPE/VC指针调整单元,调整指示SPE/VC4位置的指针;SDH开销插入单元33插入适当的开销;TX SDH/SONET成帧器25,将解扰的LAPS帧装入SDH/SONET帧的SPE/VC4中,形成SDH/SONET帧;线路接口26,通过TX(发送)线路向物理层设备发送SDH/SONET帧,如图6的O/E模块。

在接收方向,处理过程反过来。当接收到字节宽的STS信号,IOSL成帧器/解帧器11定位帧和TOH/SOH,解析指针,终止TOH/SOH和POH,提取SPE/VC4,然后从SPE/VC4净荷中提取LAPS帧。SONET/SDH处理器由接收SONET/SDH处理器和发送SONET/SDH处理器组成。如图7所示,IOSL成帧器/解帧器包括:线路接口26,从物理层设备接收SDH/SONET帧(类HDLC帧);RX SDH/SONET解帧器27,对SDH/SONET进行解帧;SDH开销提取单元34,用于去除开销;指针解析单元28,用于定位和解析指针,提取SPE/VC4,并从SPE/VC4中提取LAPS帧;解扰单元29,对提取出来的LAPS帧解扰;RXLAPS处理单元30,对LAPS帧进行解帧,从LAPS帧中提取封装的SAPI和数据包;RX FIFO 20,用于缓存数据包和向网络层侧设备,例如图6中的网络引擎8,发送如IP包这样的数据包和SAPI值。IOSL成帧器/解帧器11还包括在接收侧判定是否需要重发的连接管理单元36。

IOSL成帧器/解帧器还包括监视POH的POH监视器、监视SOH的SDH开销监视器、连接到控制CPU的微处理器I/F(接口)36、测试用的JTAG端口、提供工作寄存器的GPIO(通用输入输出)寄存器;这些都将在随后的对应部分依次说明。

成帧器/解帧器接收和发送类HDLC的数据过程随后将详细说明。在以后的说明过程中,相关功能和操作、功能块或单元可以采用可执行程序和/或硬件设计来实现,其细节不予赘述,以避免不必要地模糊了本发明的主要方面。

类HDLC的帧结构

图8A举例说明HDLC帧结构的示例。如图8A所示,它包括261字节×9行的净荷(SPE/VC)、再生段开销(RSOH)、管理单元(AU)指针、和复用段开销来作为SDH/SONET开销。AU指针部分包括指示净荷起始位置的H1、H2字节,RSOH部分包括用于确定帧位置的A1、A2字节。

图8B显示的是通道开销的结构,图8C显示的是净荷(SPE/VC)中POH的位置,如图8B和图8C所示,POH分别包括用于SONET的J1、B3、C2、G1、F2、H4、Z3、Z4和Z5,用于SDH的J1、B3、C2、G1、F2、H4、F3、K3和N1,并且,9字节的POH放在净荷的第一列。

接收SONET/SDH处理

RX解帧器27实现为接收SONET/SDH处理器。接收SONET/SDH处理器用于实现STS信号的解帧、解扰、含B1和B2监控的TOH/SOH监控、AIS检测、指针处理、POH监控等。接收SONET/SDH处理器实现下列功能:

      ●根据SAPI,识别和提取LAPS字段;

      ●SONET/SDH解帧,检测[A1A1A2A2]字节并且用于解帧,提供

  OOF和LOF指示(单一事件和第二事件);

      ●采用SONET/SDH帧同步解扰器29,用多项式(X7+X6+1),对

  净荷解扰;

      ●通过开销监视块32实现开销监视;

      ●指针状态检测或解析单元28检查H1-H2字节,建立接收指

  针的状态(正常、LOP、AIS)。如果指针状态是正常的话,读取第一

  H1H2字节,确定SPE/VC的状态;

      ●POH监视块31由J1、B3、C2和G1监控组成。监控这些POH

  字节以发现状态错误或改变;

      ●为了判定接收的误码率是否高于或低于两个不同设置的阈

  值,IOSL提供两种B2错误率阈值块,当超过阈值时,通过中断报

  告信号错误(SF)和信号劣化(SD)情况。

发送SONET/SDH处理

  TX成帧器25实现为发送SONET/SDH处理器。发送SONET/SDH处理器用于实现LAPS帧到SPE/VC的封装,然后插入适当的POH和TOH/SOH,随后将最后的STS信号输出到并/串转换器上,再到光纤收发器。

      ●同步净荷区/虚拟容器(SPE/VC)指针调整块24调整指针,将

  来自系统接口的LAPS帧与其产生的通道开销(POH)复用,生成SONET

  的SPE,或SDH的VC;

      ●利用开销插入模块33插入开销∷POH字节;

      ●采用SONET/SDH帧同步扰码器29和多项式(X7+X6+1),对净

  荷扰码;

下面详细说明LAPS处理过程。

LAPS处理过程

根据本发明的具体情况,IOSL成帧器/解帧器11从SONET净荷区域(SPE)中提取帧信号/包信号,帧信号/包信号经由LAPS处理器提取。IOSL同时也支持直通模式,允许SPE直接通过,到达系统接口。LAPS处理器进行LLC(逻辑控制链路)和其它基于包的数据信号的类LAPS成帧。根据本发明,LAPS处理器是单一信道引擎,用于将数据包封装到LAPS帧中。LAPS处理器对于SONET/SDH,只对以字节排列的数据工作(如消息长度为字节的整数倍)。根据本发明的一个实施例,如图7所示,LAPS处理器可以分开成接收LAPS处理器和发送LAPS处理器。

封装

通过协调子层或等效的“POS PHY/UTOPIA”,LAPS链路实体从网络层或其它上层接收帧。IP、LAPS和SDH之间的适配和原语关系在图3B、3C和5A、5B中示出,图4展示了经过封装一种类型信息字段之后的LAPS格式。IP overSDH功能单元将全部输入LAPS信息字段转发给其对等的连接链路,原发出链路端口除外,并且在转发之前,还允许缓存一个或多个输入帧。

接收LAPS处理器

RX LAPS处理器27的LAPS接收(Rx)处理过程主要包括下列功能。

      -接收的SPE(同步净荷区域)八位组流假定包含一个或多个连

  续的LAPS帧流。

      -LAPS帧结构的组成为:起始标志序列、地址字段(SAPI,服

  务访问点标识符)、控制字段(0x03)、信息字段(IPv4、IPv6或PPP

  协议数据单元)、FCS(帧校验序列)和结束标志序列。

      -提取IPv4、IPv6、IS-IS或PPP协议数据单元,存储到Rx

  FIFO(接收先进先出)模块20中。

接收LAPS处理器27提取LAPS帧信号、透明性去除、FCS错误校验、SPE/VC净荷的解扰,任选删除控制字段和地址字段,并进行性能监视。

去除字段起始/结束标识和填充字节之后,余下的净荷包括数据字段和FCS字段,见后文详细描述。注意两个包信号之间实际上只需要一个标志字节。包信号之间的全部标志都丢弃。

具体地,接收LAPS处理器特别要实现系列功能:

      ●对接收的净荷任选地执行自同步解扰(X43+1多项式);

      ●检测和终止LAPS帧,如检测帧定界标志;

      ●去除控制转义(Control Escape)填充;

      ●计算可选的FCS码(32位),将其与接收的FCS值进行比较。

  在性能监视寄存器中积累错误,如果检测到FCS错误后,将输出数

  据标记为出错;

      ●检测字节流中的中止序列(0x7D、0x7E);

      ●任选地删除地址字段和控制字段;

      ●提供可选的数据包最小和最大检测长度(SW可配置),将数据

  标明RX_ERR以表明错误情况;

      ●产生八位组的性能监视:FCS错误、中止(abort)的包、短包、

  长包、因RX_FIFO错误而丢弃的包;

      ●任选地删除用于处理远端FIFO下溢情况下的包填充;

      ●对错误情况产生中断;

      ●自动删除标志中的包间缝隙。

下面详细说明RX LAPS处理器27的功能的实现。

LAPS帧同步

标志序列(0X7E)标识LAPS帧的起始/终止。逐个八位组搜索接收的SPE净荷数据,寻找标志序列,以确定LAPS帧的边界。用来识别标志序列的八位组值可以编程配置,缺省值为0x7E。

两个连续的标志序列组成一个空帧,可以简单地忽略。N个连续标志序列因此可以认为是N-1个空帧。太短的帧、无效的帧可以悄然丢弃。LAPS帧出现下列情况,可以认为是无效帧。

      a)没有正确的以两个标志为界;或

      b)在帧标志间的八位字节少于六个;或

      c)含有错误的帧校验序列;或

      d)包含的服务访问点标识符不是“4”(基于IPv4的服务)、“6”

  (基于IPv6的服务)、“255”(基于PPP的服务)、或不被接收装置支

  持;

      e)包含不能被识别的控制字段值;

      f)以超过六个1的序列作为结束。

LAPS字节去填充处理过程(透明性处理过程)

LAPS字节去填充过程(有时也指转义变换(escape transform))是应用于接收的LAPS帧上,它是在FCS计算之前,LAPS帧同步之后进行。通过检查起始和结束标志序列之间的全部LAPS帧,查找控制转义八位组,来进行字节去填充。当发现控制转义八位组后,从八位组流中去除控制转义八位组,并利用一个八位组去填充屏蔽八位组对后随八位组进行异或运算。放弃序列不应考虑为转义序列。

控制转义字节值可以通过编程配置,缺省值为0x7D。八位组去填充屏蔽八位组可以通过编程配置,缺省值为0x2O,例如,0x7E可以编码为0x7D、0x5E,0x7D可以编码为0x7D、0x5D。

SAPI协议封装字段(地址字段)的剥离

SAPI字段规定处在LAPS标志后面的八位组位置。SAPI字段为一个八位组长。十六进制值“0x04”、“0x06”、“0x08”、“0x0c”、“0xff”分别代表基于IPv4、基于IPv6、基于IS-IS、基于以太网和基于PPP的数据包。在将帧存储在Rx FIFO20之前,SAPI将被剥掉。

LAPS中止序列

中止序列(控制转义后随标志序列)可以任选地在输入LAPS帧信号中进行检测。中止序列标记一个中止LAPS帧的结束。

FCS计算

接收的FCS字段需要校验,在完成八位组字节去填充之后,对LAPS起始/结束定界标志序列(包括FCS字段)的所有八位组进行计算,得出FCS校验和值。可以采用两种不同的FCS类型完成校验。

第一种是用生成多项式1+X5+X12+X16产生的16位CRC-CCITT。16位FCS“好的最终FCS”值是0xF0B8(注意:当LAPS的SAPI值设置成“11111111”,与RFC 2615兼容时,16位FCS是参考RFC 2615,在这种情况下,FCS的长度变为2个八位组)。第二种是用生成多项式1+X+X2+X4+X5+X7+X8+X10+X11+X12+X16+X22+X23+X26+X32产生的32位CRC-32功能,“好的最终FCS”值是0xDEBB20E3。

最小有效FCS字节是紧随最后一个LAPS信息字段之后,最先到达的FCS字段。首先将每个八位组的最低有效位(最后到达的)送入CRC的计算器。当计算出来的FCS校验和值与“好的最终FCS值”不匹配时,则认为LAPS帧的FCS出错,缺省情况下,采用32位的CRC实现FCS校验。

用自同步扰码器(SSS)1+X43解扰

图9B为根据本发明的一实施例的图7中解扰器29的结构。如图9B所示,解扰器包括一个XOR门和一个43位的移位寄存器,输出位与输入加扰数据位进行异或计算,产生不加扰的位。

接收的数据利用自同步解扰器X43+1进行解扰,到达的数据位根据输入次序进行解扰。解扰可以采用三种方式运行:全解扰、部分解扰和不解扰。三种方式的选择是通过初始配置确定的。全解扰是在完成任一LAPS成帧功能之前,就应用SSS,SPE净荷的整个(全部)内容都要进行解扰。部分解扰是指除了标志序列和中止转义八位组之外的所有LAPS八位组应用SSS,在八位组去填充之后和在进行LAPS协议字段处理之前,应用部分解扰。两种解扰过程可以独立开/断。无解扰是禁止解扰功能。可以不添加扰码器功能,这对于与老设备互通非常重要。缺省情况是只将全解扰处理设定为开(使能)。

长包处理过程

如果写入Rx FIFO的包八位组数大于可编程最大包长(MPS)值时,则认为包“太长”。

对于长包来说,向Rx FIFO写入超过MPS的包可能是禁止的。无论此功能是使能还是禁止,写入Rx FIFO长包最后一个字是EOP(对于SDH/SONET系列速率STM-1/4/16/64,或OC-3/12/48/192,输入到网络处理器的接口配置/带宽为8bit×25MHz、16bit×50MHz、32bit×100MHz、64bit×50MHz、64bit×200MHz、128bit×100MHz)。另外,Rx FIFO错误标记和丢弃功能的操作与此功能无关。注意此选项只有在Rx FIFO错误标记和丢弃功能都使能时才能使用。IPv4的缺省MPS为1600八位组,IPv6的MPS可以改变和编程配置。缺省情况下,只有长包的MPS写入Rx FIFO。

短包处理

如果写入Rx FIFO的包字节数小于可编程最小包长(mPS)值时,则认为包“太短”。

mPS的缺省值是64字节,可以在8到65535范围之间进行配置。

SAPI和信息字段在Rx FIFO中的存储

对于每个LAPS帧,提取SAPI和信息字段,并存入Rx FIFO中,STM-64c/OC-192c,要与128位或64位边界对齐;对于STM-16c/OC-48c,与64位或32位边界对齐;对于STM-4c/OC-12c,与16位边界对齐;对于STM-1/OC-3c,与8位边界对齐。SAPI存入Rx FIFO可以被使能/禁止。缺省情况,SAPI字段是存入Rx FIFO。例如Rx FIFO在OC-48c/STM-16c时为512个字(32×100MHz),可以容纳下存储总共2048个信息字段八位组。假定MPS为1600个八位组,则它就可以容纳下用于一个包外加若干额外的开销(约448个字节)的缓冲区。一个字可以利用77.8MHz的核心时钟频率写入RxFIFO。各个接收信息字段之间有最小5个八位组的间隔(4个FCS八位组+1个标志序列八位组)。每77.8MHz核心时钟周期会有4个SPE净荷八位组到达,因此,每77.8MHz核心时钟周期可以将一个字写入Rx FIFO。因此对于任意大小的SAPI/信息字段,在Rx FIFO写入接口处均有足够的带宽来存储SAPI/信息字段。这样在Rx FIFO写入接口处,有足够的带宽来处理任何LAPS净荷流的接收。

Rx FIFO溢出事件处理

IP over SDH/SONET解帧器在接收方向向Rx FIFO写入包。如果Rx FIFO被填充满了(Rx FIFO槽的最后一个可用字节被填充),就会产生一个告警信号向管理接口报告溢出事件,FIFO溢出事件的发生同时也会导致性能计数器加一。在此情况下,存储在Rx FIFO的最后一个字的EOP(包结束)字段将自动被设置成逻辑“1”。

对于出现Rx FIFO满事件的包,剩下的包八位组(如果有)将不会被存储到Rx FIFO。更进一步,在接收到空存储区域可编程的初始化信号之前,不能将字写入Rx FIFO。紧随满事件写入Rx FIFO的第一个字应该为SOP(包开始)标记的字。

差错处理过程

若干事件定义接收的LAPS帧为“出错”,对于这些错误帧,可以采用两种不同的处理过程:

(1)差错标记。IP over SDH/SONET成帧器将标记由Rx FIFO溢出破坏的错误帧,将写入Rx FIFO的最后一个SAPI/信息字段字设置成RX_ERR,对应LAPS错误帧。

(2)包丢弃。写入Rx FIFO对应于LAPS错误帧的所有SAPI/信息字段的字(包)是无效的。

连接管理功能

如图7所示,IOSL成帧器/解帧器包括在数据传输过程中判定错误或断开的连接管理单元36。该连接管理单元36任选地用来监控接收对等链路帧的链路状态。它仅为局部事件,在RX和TX两端之间没有相关的要使用的帧。

连接管理单元36具体包括定时器T200和计数器N200。

      -初始化之后(T200和N200的缺省值分别为1秒和3),链路

  实体就进入发送器和接受器的正常工作状态。

      -如果定时器T200在接收到任一帧之前(包括信息帧和帧间时

  间填充)已经计满,链路实体将重启定时器T200,并递减重发计数

  器N200。

      -如果在接收到任一帧信号之前,定时器T200计满、重发计

  数器已经减为0,链路实体就利用MDL-ERROR指示原语,向本地连

  接管理实体指示这种情况,并重新启动定时器T200和重新赋N200

  的值。

      -T200和N200的值是可以配置的,T200和N200可配置的最

  小值分别是100毫秒和1。

可以从性能监控计数器处得到下列统计数据。全部性能监控计数器的长度应为32位长。

      ●接收空LAPS帧

      ●接收太长包

      ●接收无效帧

下面详细说明TX LAPS处理器的处理过程。

发送LAPS处理器

TX LAPS处理器22中的LAPS发送(Tx)处理过程主要包括下列功能:

      -从TX FIFO 18中读出IPv4、IPv6或PPP协议的数据单元并

  封装到LAPS帧中,该LAPS帧满足映射到SPE净荷要求。

      -LAPS封装包括:起始标志序列、地址字段(SAPI,服务访问

  点标识符)、控制字段(0x03)、信息字段(IPv4、IPv6或PPP协议数

  据单元)、FCS(帧校验序列)字段和结束标志序列。

      -发送的SPE(同步净荷区域)字节流假定包含一个或多个连续

  的LAPS帧流。

具体是:发送LAPS处理器22提供将基于包的信息插入STS SPE。它提供包封装、FCS字段的产生、包间填充、TX FIFO错误恢复和扰码。发送LAPS处理器完成下列功能:

      ●将包封装到LAPS帧中。利用起始标志(0x7E)、任选的FCS

  字段、任选的地址和控制字段、及任选的结束字段标志(0x7E)对每

  个包进行封装。

      ●任选的自同步发送净荷扰码器(X43+1多项式)。

      ●根据ITU-TX.85要求的透明性处理(用于标志及控制转义的

  字节填充)。在字段标志的起始和结束之间进行字节填充。利用两个

  字节序列替换与标志或控制转义字节相匹配的任何字节,该两字节

  序列由控制转义字节加原码与十六进制(0x20)进行异或运算得到的

  值组成。

     ●产生起始和结束字段标志(0x7E),注意一个单一的标志可以

  由两个包共享。

     ●任选地对帧校验序列(FCS)字段产生32位的CRC。

     ●提供插入FCS差错的功能,以便在SW控制下,进行测试。

     ●TX_PRTY错误产生中断。

     ●提供FIFO下溢的可选处理方法。当TX FIFO变空先于包结

  束发生时,就产生FIFO下溢。当发生这种情况时,产生一个中断。

  包可以采用下列方式结束:产生FCS错误;产生中止序列;通过SW

  可配置的转义码在缝隙间插入“填充(fill)”字节。

      ●产生性能监控计数,包括:FIFO错误事件数、中止包数、违

  反最短和最长包长参数的包数(SW可配置)。

LAPS帧封装

根据本发明采用标志序列描绘数据链路层的每一帧。标志用于指明LAPS帧的起始和结束。根据速率的需要,在LAPS帧之间插入标志序列使LAPS帧八位组流也适用于SPE净荷带宽。发送的LAPS帧至少用一个标志序列隔开,插入的标志序列值八位组是可以编程配置的,缺省值为0x7E。前一帧的结束标志可以是后一帧的起始标志。

LAPS地址字段(或SAPI)。在起始标志之后插入地址字段,插入的地址字段值可以通过编程配置,并依据封装的数据包类型而定。SAPI是由判决单元依据输入数据包的类型而判定。对于基于IPv4、基于IPv6、基于IS-IS、基于以太网、基于PPP的数据包,对应的值分别是“0x04”、“0x06”、“0x08”、“0x0C”和“0xFF”。

LAPS控制字段。地址字段的后面紧跟控制字段,插入的控制字段值是可以设置的,缺省值是0x03。

LAPS帧校验序列(FCS)。FCS是对所有的地址、控制、协议和信息字段计算得出的,它不包括标志序列,也不包括FCS字段自己本身。完成计算是在进行字节填充之前进行。能够产生两种FCS类型。第一种是16位的CRC函数,它是由生成多项式1+x5+x12+x16产生的。(注意:当LAPS的SAPI值设置成“11111111”,与RFC 2615兼容时,16位FCS是参考RFC 2615,在这种情况下,FCS的长度变为2个八位组)。第二种是32位的CRC-32,它是由生成多项式1+x+x2+x4+x5+x7+x8+x10+x11+x12+x16+x22+x23+x26+x32产生的。

IOSL成帧器/解帧器11支持CRC-32帧校验序列(FCS)的生成和校验。FCS首先发送最低有效八位组,它包含高阶系统。可以规定IOSL器件采用最低有效位顺序或最高有效位顺序来计算FCS。

FCS字段是对地址字段(SAPI值)、控制字段、信息字段的所有位计算得出的,但不包括插入的用于透明性的八位组。这还不包括标志序列和FCS字段自己本身。在这两种方式中,CRC发生器和校验器都初始化成逻辑“1”。完成FCS的计算之后,FCS值是“1”的补码。并将此新值插入FCS字段。

在插入LAPS帧之前,将计算出来的FCS值分别与0xFFFF或0xFFFFFFFF,进行异或运算,分别对应16位或32位的FCS,此时计算的FCS值就为补码。最小有效FCS八位组(高阶系统)是最先插入/发送的FCS字节,它紧位于最后的信息字段字节之后。每个八位组首先将最低有效位(最后发送的)馈入CRC计算器中。缺省情况下,插入的是32位的FCS值。

八位组填充

LAPS八位组填充过程(有时也称转义变换)是在FCS计算和进行部分扰码之后,对发送LAPS帧进行的。在全部LAPS帧的起始和结束标志序列之间寻找控制转义八位组,当找到时,0x7E被转换为0x7D,0x5E。0x7D被转换为0x7D,0x5D。中止序列不应考虑为转义序列。

控制转义八位组字节值是可以编程配置的,缺省值为0x7D。字节填充标记字节是可以编程配置的,缺省值为0x20。

用自同步扰码器(SSS)X43+1扰码

图9A示出本发明一实施例的图7中扰码器23的结构。如图9A所示,扰码器23包括一个XOR门和一个43位的移位寄存器,输出数据与输入的原始数据进行异或计算,产生扰码数据。

发送的数据利用自同步扰码器X43+1进行解扰,发送的各个位根据它们的发送次序依次扰码。扰码器可以采用三种方式运行:全扰码、部分扰码和不扰码。三种替代方式的选择是通过初始配置确定的。全扰码是在将其映射到SPE之前,就采用SSS,即SPE净荷的全部内容都要进行扰码;部分扰码是指除了标志序列和中止转义字节之外的所有LAPS八位组都要采用SSS。部分扰码是填充过程之前和在产生PPP/LAPS字段之后应用。两种扰码过程可以独立开/关(on/off)。无扰码是指禁止扰码功能。不是一定要加上扰码功能,这对于与老设备互通非常重要。缺省情况是只将全扰码设定为开(使能)。

SAPI和信息字段

SAPI和信息字段可以内部产生,或按照每个LAPS帧从Tx FIFO处得到,该Tx FIFO对于STM-64c/OC-192c,与128位或64位边界对齐;STM-16c/OC-48c,与64位或32位边界对齐;STM-4c/OC-12c,与16位边界对齐;STM-1/OC-3c,与8位边界对齐。当内部产生时,插入的SAPI字段大小(1个或2个字节)或数值应可以编程配置,缺省值为1个八位组,数值为0x04(代表基于IPv4业务),当从TX FIFO处得到时,存入Tx FIFO的包就作为SAPI/信息字段插入生成的LAPS帧中。缺省情况下,SAPI字段的来源就是Tx FIFO。

按照每个LAPS帧,各个包对于STM-64c/OC-192c,与128位或64位边界对齐;STM-16c/OC-48c,与64位或32位边界对齐;STM-4c/OC-12c,与16位边界对齐;STM-1/OC-3c,与8位边界对齐。Tx FIFO的大小是在1到4096个字的范围内可编程配置的,此时1个字等于32位。缺省情况下,大小是4096个字,等于16384个八位组的包数据存储。

存储于Tx FIFO的所有有效包八位组都被读出,并映射到生成的LAPS帧的SAPI/信息字段中。数据将从Tx FIFO处读出,并以背对背(back-to-back)的方式将LAPS帧映射到SPE中。

在包转发模式下,当Tx FIFO中至少出现一个EOP(包结束)标记字时,就开始读包。在字转发模式下,当整个包还未存储到Tx FIFO中时,就可以开始从Tx FIFO中读包。缺省模式为字转发模式。

Tx FIFO下溢处理过程

在从TX FIFO读出数据包的过程中,如果在读到EOP包标记字之前,TxFIFO以一种未预料的空方式运行的话,正在将包映射进去的LAPS帧就可以任选地利用LAPS中止序列中止。如果因为Tx FIFO下溢导致其后帧丢弃的话,通过CPU接口产生的LAPS中止请求仍为有效。

如果任选的中止选项是设置成关(off)的话,发送的LAPS帧将根据计算出来的FCS字段结束。当下溢发生时,从Tx FIFO读出的剩余包部分将被冲掉(flush)。在发现SOP标记字之前,一直从Tx FIFO读数据。同时,发送空帧。

中止帧

特殊的字节编码(0x7D 0x7E)用于指示帧已被中止。如果接收到这些字节,相关的帧将被丢弃。如果包发送给对等的链路装置,则标记为错。

下面详细描述本发明的一个实施例的成帧器/解帧器在发送方向对数据的处理过程。

在发送方向,IOSL装置提供基于包的数据插入STS/STM SPE的功能。该装置的工作模式可通过管理控制接口规定。

发送FIFO接口

IOSL装置中,发送系统接口作为“POS PHY/UTOPIA”兼容的系统接口工作。

-发送FIFO

发送系统接口是由链路层设备控制的,链路层设备在传输路径的发送方向先于IOSL装置。链路层提供到IOSL装置的接口,用于同步所有的接口转送这个约定要求IOSL装置采用一个速率匹配的缓冲器(即FIFO)时钟。FIFO的尺寸为256个八位组。

IOSL装置还通过FIFO转送包状况(包/信元的起始/结束,包信号的最后一个字是否由1个或2个字节组成,包错误)。

-发送FIFO错误

在IOSL装置中,由IOSL装置监控FIFO的状态。每当下列条件,出现FIFO错误:1)先于接收到包结束标记(TX_EOP指示)之前接收到IOS_TX_SOP;或2)不再断言TX_CLAV信号之后,在“发送窗口”外IOS_TX_ENB为有效。通过设置IOS_TX_FIFOERR_E=1向管理接口报告FIFO错误事件。

IOSL装置包括8位FIFO错误计数器,计数由FIFO错误事件影响的每个包。

当性能监视计数器被锁存时,该计数器值由IOS_TX_FIFOERR_CNT[7:0]锁存,并清除FIFO错误计数器。

如果由于LATCH_EVENT的最后上升沿,至少有一个FIFO错误事件的话,那么就设置(set)FIFO错误事件位IOS_TX_FIFOERR_SECE。

在IOS模式(IOS_TX_IOS=1)下,IOSL装置中止错误包。

-IOS错误包的处理

在IOS运行模式下(IOS_TX_IOS=1),提供下列错误包处理过程:

--TX_ERR链路层指示

发送系统接口提供一种指示方法,当特殊的数据包包括错误,应被中止或丢弃时(见IOS_TX_ERR的定义),链路层设备就能给IOSL装置指示。

IOSL装置包括8位FIFO错误计数器,计数标记为出错的从链路层接收的每个包。当性能监视计数器被锁存时(LATCH_EVENT变为高),该计数器值由IOS_TX_IOS_LLPKT_ERRCNT[7:0]锁存,并清除FIFO错误计数器。

如果由于LATCH_EVENT的最后上升沿,至少有一个链路层包错误的话,那么就设置链路层包错误事件位IOS_TX_IOS_LLPKT_ERR_SECE。

--最小/最大包长

作为一种选项,IOSL装置在包信号违反最小/最大包长时,可以认为包是错误包,不将其发送或中止。包的大小只指LAPS包的大小,不包括由IOSL装置插入的字节(标志序列、地址、控制、FIFO下溢、透明性或FCS字节)。

最小和最大包长可以通过管理控制接口进行编程配置。IOSL装置中,有一组寄存器存储不同的值,如上面的mPS、MPS。

-线路侧包信号环回

为了测试目的,IOSL装置还为用户提供环回(Loopback)功能,将从SDH/SONET信号中提取的包,放入到发送方向的FIFO,在其中替代从系统接口接收的数据。然后数据经历发送端的LAPS处理,并被发送回SDH/LINE线路。当IOS_R_TO_T_LOOP设置为1时环回功能有效,当IOS_R_TO_T_LOOP为0时,禁止环回,进行正常处理过程。

环回功能主要用于装置测试目的。实际运行中,如果接收时钟比发送时钟快,且SONET/SDH净荷中填有数据包的话,由于发送端不能适应接收端的全速率,将可能出现周期性的错误。

作为一种选择方案,IOSL装置可以只插入一个标志,指明是一个帧的结束和下一帧的开始。这通过管理接口控制,如果IOS_TX_IOS_EOP_FLAG=1,IOSL装置插入分开的标志,表明帧的开始和结束;如果IOS_TX_IOS_EOP_FLAG=0(缺省值),就只插入一个标志序列。

在FCS字段的生成被禁止的特殊情况下,IOSL装置忽略IOS_TX_IOS_EOP_FLAG,仍总为插入帧起始/结束标志序列。这是一种非标准的运行,因为根据ITU-TX.85,FCS字段是强制的,这一特性要求在测试期间,接收端保证适当的运行方式,其中,FCS是被禁止的,单一字节的包是可能的。

--地址和控制字段

紧随帧的起始标志序列有两个字段:设置成“0x0c”的地址字段和定义为00000011的控制字段。在IOS模式下(IOS_TX_IOS=1),任选地,如果IOS_TX_IOS_ADRCTL_INS=1,IOSL装置就插入这些字段。如果IOS_TX_IOS_ADRCTL_INS=0(缺省),就不插入这些字段。

--透明性

在此处实现八位组填充过程,也称为透明性处理过程。特殊字节--控制转义(01111101或16进制0x7D)用作一个标识,指明这些字节需要在接收侧进行特殊处理。控制转义用于标记帧数据中特定编码的出现。

经过FCS计算后,IOSL装置在任意两个标志序列之间检查整个帧,每发现一个标识为0x7E或0x7D的码,就用一个双八位组序列替代,此双八位组序列由控制转义八位组随原码与十六进制数0x20异或而得。IOSL装置对后面的字节序列进行透明性处理过程,除了由IOSL装置插入的用于描绘帧信号的标志序列之外。净荷(标志序列之间)中出现0x7E处理过程如下:

0x7E被转换成0x7D,0x5E

0x7D被转换成0x7D,0x5D

SPE的建立

随后IOS数据流被映射到SONET/SDH同步净荷区域(SPE)的净荷里。IOS八位组的边界是与SPE八位组的边界对齐。由IOS帧是变长的,允许其跨越SPE的边界。运行过程中,当无LAPS帧可以立即插入SPE时,就发送标志序列来填充LAPS帧之间的时间。这只有在完整帧之间才能进行。

SPE/VC的产生

-SPE/VC的结构

SPE/VC的第一列是POH。如图8A-8C所示,以下示出对于SONET和SDH的9个字节的次序。

为了便于参考,SDH虚拟容器的带宽和STM接口速率分别在表2和图3中示出。

表2 SDH虚拟容器的带宽

    虚容器(VC)类型    VC带宽(kbit/s)    VC净负荷(kbit/s)    VC-11    1 664    1 600    VC-12    2 240    2 176    VC-2    6 848    6 784    VC-3    48 960    48 384
    VC-4    150 336    149 760    VC-4-4c    601 304    599 040    VC-4-16c    2 405 376    2 396 160    VC-4-64c*    9 621 504    9 584 640
表3 STM接口速率    STM类型    STM 速率(kbit/s)    sSTM-11    2   880    sSTM-12    5   184    sSTM-14    9   792    sSTM-18    19  792    sSTM-116    37  444    sSTM-21    7   488    sSTM-22    14  400    sSTM-24    28  224    STM-0    51  840    STM-1    155 052    STM-4    622 080    STM-16    2 488 320    STM-64    9 953 280

SONET传输速率是STS-1(51.840 Mbps)的整数倍,当前允许的倍数如下:

    STS-1:51.840 Mbps

    STS-3:155.520 Mbps

    STS-9:466.560 Mbps

    STS-12:622.080 Mbps

    STS-18:933.120 Mbps

    STS-24:1244.160 Mbps

    STS-36:1866.240 Mbps

    STS-48:2488.320 Mbps

    STS-192:9953280 Mbps

-POH

通道开销有9个字节。通道开销的第一个字节是通道轨迹字节J1。其对于SONET/SDH的TOH/SOH的位置由相关的STS/AU指针指示。下一节定义了POH字节的发送值。由于SONET和SDH之间的命名不一样,SONET的命名列在前。

--通道轨迹(J1)

可以将205L装置设为在J1字节中发送16字节或64字节的通道轨迹消息。这些消息存入IOS_TX_J1_[63:0]_[7:0]。如果IOS_TX_J1SEL=0,则以IOS_TX_J1_[15]_[7:0]下数至IOS_TX_J1_[0]_[7:0]的16字节序列,重复发送J1字节。否则的话,发送IOS_TX_J1_[63]_[7:0]至IOS_TX_J1_[0]_[7:0]里的字节序列。(SDH模式下,通常采用16字节序列,SONET模式则采用64字节序列。)

--通道BIP-8(B3)

如果B3_INV=0,就发送比特交错校验字节(BIP-8),作为偶校验(正常情况),否则的话,生成奇校验(不正确情况)。BIP8是通过对前一SPE/VC的所有字节(包括POH)进行计算得到的,并置于当前SPE/VC的B3字节。

根据BIP-8的定义,B3的第一位提供前一SPE/VC所有字节第一位的校验;B3的第二位提供上一SPE/VC所有字节第二位的校验,等等。

--信号标志(C2)

信号标志字节指明SPE/VC的组成,将TX_C2_[7:0]规定值插入生成的C2字节里。

--通道状态(G1)

Path REI。接收端在接收的SPE/VC中监视B3位的错误。每帧(0至8)检测到的B3错误数从接收端被转送到发送端,插入发送通道状态字节G1,作为远端错误指示。

如果FORCE_G1ERR=1,G1的4个MSB以1000连续发送(作测试用)。否则的话,如果PERI_INH=0,就将其设置为等于接收端POH监控模块最近检测到的B3错误数的二进制值(0000到1000,表示0到8)。如果是其它情况,将其全部设置为零。

Path RDI。G1的第5位可用作通道/AU远程故障指示(RDI-P),或者G1的第5、6和7位用作增强的RDI-P指示符。G1第5、6和7位中的发送值或者从TX_G1_[2:0]寄存器取出(如果PRDI_AUTO=0),或者IOSL装置自动生成一个增强的RDI信号(如果PRDI_AUTO=1,且PRDI_ENH=1),或者由一位RDI信号取出(如果PRDI_AUTO=1,且PRDI_ENH=0)。G1的第5、6和7位发送值如表4所示。

                  表4  通道RDI位值

    PRDI_Auto    PRDI_ENH    RX_PAISRX_LOP    RX_UNEQ    RX_PLM   G1的5、6和7位    0    x    x    x    x   Tx_G1[2,0]    1    0    1    x    x    100    0    x    x    000    1    1    x    x    101    0    1    x    110    0    0    1    010    0    0    0    001
如PRDI_AUTO=1,上面所述的值最少发送20帧,一旦以相同值发送了20帧,就发送表1中故障指示值对应的的当前状态。

G1的第8位(最低有效位)没有使用,设置为0。

--其它POH字节

IOSL装置不支持其余的POH字节,全部以固定全零的字节发送。这些字节包括通道用户信道(F2)、位置指示符(H4)、通道增长/用户信道(Z3/F3)、通道增长/通道APS信道(Z4/K3)以及串列连接监控字节(Z5/N1)。

SONET/SDH帧生成

SONET/SDH帧生成模块通过生成传输(段)开销(TOH/SOH)字节、用来自SPE/VC的字节填充净荷、对除TOH/SOH字节第一行外的SONET/SDH的所有字节进行扰码,创建STS-3c/STM-1。

-帧排列

对输入TX_FRAME_IN来说,生成帧的位置是固定的。帧起始指示输出TX_FRAME_OUT与TX_FRAME_IN输入有一个固定的但非规定的关系。TX_FRAME_OUT上1个时钟周期宽脉冲与发送线路输出TX_DATA[7:0]数据字节的关系由IOS_TX_FOUT_BYTE_TYPE[1:0]和TX_FOUT_BYTE_NUMBER[3:0]寄存器控制。

-净荷生成

SONET或SDH净荷在正常情况下由来自SPE/VC的字节填充而成。在STS-3c/STM-1模式(IOS_TX_SIG_MODE=0)中SPE/VC的J1字节放置在第1行第10列。

--AIS生成

在线路(复用段,MS)报警指示信号(AIS)LAIS,或通道(管理单元,AU)报警指示信号PAIS发送期间,暂停(suspend)SONET/SDH净荷的正常生成。IOS_TX_LAIS和IOS_TX_PAIS寄存器控制AIS的生成。

如果IOS_TX_LAIS或IOS_TX_PAIS=1,整个净荷(9396或2349字节)全部填充为全1字节。

--无填充生成

除非激活了AIS,否则的话,如果TX_UNEQ=1,就生成没有填充的SPE/VC(所有SPE/VC字节全部用全零字节填充)。

-TOH/SOH生成

SONET TOH字节通常与SDH TOH字节是一样的。下文中定义生成的所有TOH/SOH字节值。当SONET和SDH字节名称不同时,首先列出SONET所用名称。标准中的空白之处是SONET中没有定义的或者在SDH中的非标准化保留字节。IOSL装置将这些字节全部用全零填充。

--AIS生成

在LAIS或PAIS传送过程中,暂停TOH/SOH字节的正常生成。如果IOS_TX_LAIS=1,正常生成TOH/SOH头3行,但TOH/SOH剩余部分(以及所有SPE/VC字节)作为全1字节进行传送。如果IOS_TX_PAIS=1,除第4行中的指针字节外,TOH/SOH所有行字节均正常生成。H1、H2和H3字节(以及所有SPE/VC字节)以全1字节传送。

--帧字节(A1和A2)

正常生成下面固定格式的帧字节:

      ●A1:1111_0110=F6;

      ●A2:0010_1000=28。

为了测试之目的,A1和A2生成时可以包含错误。如果A1A2_ERR=0,不插入错误。当A1A2_ERR=1时,用A1A2_ERR_PAT[15:0]的值与A1和A2进行异或操作在每组8个帧中生成m个连续帧(其中m相当于A1A2_ERR_NUM[2:0]的二进制数)。A1的MSB是与A1A2_ERR_PAT[15]异或,A2的LSB是与A1A2_ERR_PAT[0]异或。

--段轨迹/再生段轨迹(J0)和段生长/空余(Z0)段轨迹

16个连续帧的期间,IOSL装置连续发送包含在IOS_TX_J0_[15:0]_[7:0]的16字节格式,从IOST_TX_J0[15]_[7:0]字节开始按递减顺序发送。

ITU-TG.707标准规定含第3条/G.831定义的段访问点识别符(SAPI)的16位段轨迹帧以连续J0字节连续发送。注意,只有帧开始标记字节在其MSB为1。

目前,SONET没有定义段轨迹功能。除非给SONET定义一个相似的段轨迹字段,所有的IOS_TX_J0字节应采用0000_0001填充,以便在J0中连续发送十进制的1。

段生长/空余。

在STS-12c/STM-4(IOS_TX_SIG_MODE=1)模式中,作相当于2到12的二进制依序发送Z0字节,在STS-3c/STM-1(IOS_TX_SIG_MODE=0)模式中为2到3(GR-253中规定)。

--段BIP-8(B1)

如果IOS_B1_INV=0,B1比特交错奇偶校验8(BIP-8)以偶数校验(正常)发送,否则生成奇数校验(不正确)。BIP-8是对前1个扰码后的STS-3c/STM-1帧所有位进行计算后得出的,并在扰码之前置入当前帧的B1字节。通过定义BIP-8,B1的第一位提供前一帧所有字节的第一位上的奇偶校验,B1的第二位提供前一帧所有字节的第二位上的奇偶校验,依次类推。

--指令线(E1和E2)和段用户通道(F1)

定义指令线字节用来携带两个64kb/s的数字化语音信号。F1字节可供网络提供商使用,发送块接收3个串行输入:IOS_TX_E1_DATA、IOS_TX_E2_DATA和TX_F1_DATA,用来插入到要发送的E1、E2和F1字节中。从IOSL装置输出一个单一的64kHz时钟(IOS_TX_E1E2F1_CLK),以便为这三个串行输入提供时钟参考。

这些字节的第一位(MSB)应与输入帧开始脉冲IOS_TX_FRAME_IN对齐。在接收到E1、E2和F1字节的最后一位后,接收到的E1、E2和F1字节插入到输出SONET/SDH帧中。

--数据通信信道,DCC(D1-D12)

TOH/SOH定义了两种DCC(数据通信通道)。段/再生段DCC用D1、D2和D3字节来产生一个192kb/s的信道。线路/复用段DCC用D4到D12的字节来产生一个576kb/s的信道。发送端通过两个串行输入:IOS_TX_SDCC_DATA和IOS_TX_LDCC_DATA,接收DCC数据。为了保证位同步,发送端输出两个时钟:192kHz的IOS_TX_SDCC_CLK;以及576kHz的IOS_TX_LDCC_CLK。时钟信号使得能够为从IOS_TX_SDCC_DATA和IOS_TX_LDCC_DATA到寄存器的码流插入到TOH/SOH重新定时。因为重新定时是根据上升沿做出的,因此IOS_TX_SDCC_DATA和IOS_TX_LDCC_DATA输入应在IOS_TX_SDCC_CLK和IOS_TX_LDCC_CLK的下降沿变化。

--指针字节(H1,H2)和指针动作字节(H3)

H1和H2字节包含3个字段。由于SPE/VC与TOH同步生成,所以无需生成变化指针。与此相反,有效的H1和H2字节以固定指针值522(十进制)=10_0000_1010(二进制)生成,H3字节固定为全0。这样SPE/VC中J1字节在STS-3c/STM-1模式(IOS_TX_SIG_MODE=0)中被放置在第1行第10列。

AIS生成:如果IOS_TX_LAIS或TX_PAIS有效,H1、H2和H3字节以全1发送。当IOS_TX_LAIS或TX_PAIS变化,使得两个位都变为0时,IOSL装置在下一个帧中用一个使能的新数据标志(NDF)发送第一个H1字节。利用第一个H1字节中无效的NDF字段生成随后的帧。

无AIS生成。第一个H1-H2字节对以正常指针发送,此时:

  ●NDF=0110;

  ●SS=TX_SDH_PG,0;

  ●指针值=10_0000_1010;

所有其它H1-H2字节对以级联指示字节发送,此时:

  ●NDF=1001;

  ●SS=TX_SDG_PG,0;

  ●指针值=11_1111_1111;

--线路/MS BIP-96/24(B2)

在下面B2字节的说明中,根据设备模式(STS-12c模式与STS-3c模式)的不同,其数目略有变化。为了描述两种模式的运行,采用下面的约定来区分每种模式的要求:STS-3c。TOH/SOH有12[3]个B2字节,他们提供BIP-96[BIP-24]错误检测能力。

每个B2字节为前一个帧的12[3]组字节之一中的字节提供BIP-8奇偶校验。第j列中的B2字节为前一个帧(TOH/SOH开始3行中的除外)中位于第j+12k(j+3k)列的字节提供BIP-8奇偶校验,其中k=0到89。如果B2_INV=0,BIP-8以偶数校验(正常态)发送。否则,生成奇数校验(错误态)。BIP-8值是对前一个STS-3c/STM-1帧在扰码之前的字节计算而得出来的,在扰码前置入当前帧的B2字节中。

--APS信道和线路/MS AIS/RDI(K1和K2)

K1和K2的5位最高有效位用作自动保护交换(APS)信号。K2的3个最低有效位在线路/MS级用作AIS或远程故障指示(RDI),在SONET中,他们也用于APS信令。IOSL装置在发送的K1字节中插入IOS_TX_K1_[7:0],在发送的K2字节的5个MSB中插入IOS_TX_K2_[7:3]。

K2的3个LSB位由3个源控制,按照优先级,他们是:

      ●If(如果)TX_LAPS=1,以全1发送(同所有的线路/MS开销字

  节一样)。

      ●Else if(否则如果)LRDI_INH=0,以及如果(IOS_RX_LOS AND

  NOT RX_LOS_INH)、IOS_RX_LOF、IOS_RX_LOC或IOS_RX_LAIS中任

  何一个等于1,它们以110码发送。无论何时该特殊事件为有效时,

  最少20帧的K2设置为110。

      ●Else(否则)发送IOS_TX_K2_[2:0]。

RX_LOS可为高有效(IOS_RX_LOS_LEVEL=0,缺省值)或低有效(IOS_RX_LOS_LEVEL=1)。在内部,如果IOS_RX_LOS_LEVEL=1,反相IOS_RX_LOS产生IOS_RX_LOS。GR-253的R6-180到R-182要求规定应在检测和去除接收到的LOS,LOF或LAIS的125μs时间内插入和移去RDI。

--同步状态(S1)

该字节的4个LSB传送同步状态消息。设置发送的S1字节等于IOS_TX_S1_[7:0]。

--线路/MS REI(M1)

接收端在接收信号中监控B2位错误。在STS-12c/STM-4模式中每帧检测到的B2错误数范围为每帧0到96个B2位,或在STS-3c/STM-1模式中为每帧0到24个B2位。在正常情况下线路/MS远程错误指示(REI)字节,即M1字节传送在接收信号中检测到的B2错误计数。

通过设置TX_M1_ERR=1,用户可强制发送REI错误指示。这使得在M1字节中发送24个中的任何一个计数(STS-3c/STM-1模式下)。如果LREI_INH=0,M1字节等于最近的B2错误计数。否则的话,M1字节设置为全0。

--生长/未定义(Z1和Z2)

由于Z1和Z2字节的使用没有标准化。IOSL装置将这些字节用全0填充。

HDLC成帧中的扰码

用一个帧同步扰码序列对输入数据进行扰码,扰码生成多项式为g(x)=x7+x6+1。在第一SPE/VC字节(在STS-3c/STM-1模式中位于1行10列的字节)开始处扰码器初始化为1111111,对除第一行TOH/SOH以外的所有SONET/SDH信号进行扰码。为了测试之目的,可通过设置SCRINH位为1使扰码器失效。

如上所述,LAPS帧封装到SDH/SONET帧中的SPE/VC中,LAPS帧可以从多个虚容器中获得,称为所谓的级联。插入的指针指示虚容器,也就是净荷的起始位置。

以下描述本发明的一个实施例在接收方向的数据处理过程。

接收方向的数据处理过程

T到R的环回和LOC

如果R_LOOP=1,IOSL装置接收部分能够配置为环回(Loopback)生成的发送信号。否则,选择从SONET/SDH接口接收到的信号。在环回中,利用TX_SONETCLK输入确定接收成帧器和其它接收电路的时钟。如果没有选择环回,RX_SONETCLK输入用于确定该电路的时钟。

RX_SONETCLK输入用TX_CLK输入监视时钟丢失。如果RX_SONETCLK上在16个TX_CLK周期没有检测到变换,则设置RX_LOC位。如果检测到了变换,则清除它。如果RX_LOC从0变换到1或从1变换到0,就设置RX_LOC_Ddelta位。

传输开销监视

TOH/SOH监视模块由J0、B2、K1K2、S1和M1监视字节组成。监视这些TOH/SOH字节有无错误或状态是否发生变化。

-J0字节监视

J0监视有两种运行模式,一种用于SONET应用,一种用于SDH应用。在IOS_RX_J0=0模式(SONET)下,J0监视包括检查接收到的3个连续帧中J0字节值是否匹配一致。当接收到相同的J0值,把它写入IOS_RX_J0_[15]_[7:0]。

在IOS_RX_J0=1情况(SDH)下,J0字节可以包含一个重复的16字节段轨迹帧,该帧包括段访问点标识符。J0监视包括锁定16字节段轨迹帧的起始、检查接收段轨迹帧值是否在3个连续帧匹配相同。当接收到相同的帧值,把它写入IOS_RX_J0_[15:0]_[7:0]。段轨迹帧的第一个字节(包括帧起始标志)写入IOS_RX_J0_[15]_[7:0]。

--成帧

除帧起始标志字节的MSB外,所有段轨迹帧字节的MSB均为0。J0监视成帧器搜索15个连续J0字节,查找在本字节MSB为0,后接的J0字节MSB为1的Jo字节。当发现这种码型(pattern),成帧器进入帧内,此时J0_OOF=0。一旦J0监视成帧器在帧内,它一直留在帧内直到接收到3个连续段轨迹帧中至少有1个MSB位错误。如果IOS_RX_J0=0,J0帧字节保留在帧内状态IOS_J0_OOF=0。当IOS_J0_OOF改变其状态时,设置IOS_J0_OOF_Ddelta位。

--格式接受和比较

一旦处在帧内,如果IOS_RX_J0=1,J0监视模块就查找3个连续的16字节的段轨迹帧;如果IOS_RX_J0=0,就查找1个字节的段轨迹帧。当接收到3个连续相同的帧时,接受的帧就存入IOS_RX_J0_[15:0]_[7:0](SONET模式下,存入IOS_RX_J0_[15]_[7:0])。接受的帧与这些寄存器的先前内容进行比较,当存储了一个新值时,就设置IOS_RX_J0_D的delta位。

-BIP-96(B2)校验

在下面B2的说明中,根据设备的模式(STS-3c),数目略有变化。为了说明两种情况的操作,将利用以下约定来确定模式(STS-3c)的要求。IOSL装置校验接收的B2字节是否为正确的BIP-8值。(12或3个B2字节组合在一起形成1个BIP-96或BIP-24)。除去TOH(在SONET中为SOH,在SDH中为RSOH)的最前3行,对每帧的全部12或3字节组进行计算,得到BIP-96或BIP-24偶校验。解扰之后对接收的数据进行计算,得到的值然后与解扰之后的下一帧的B2值进行比较。通过比较可以得到0到96或0到24的不匹配(B2位错误)。每帧检测到的B2位错误数可以插入到发送的M1字节。

--B2错误计数

IOSL装置包括一个20位的B2错误计数器,当BIT_BLKCNT=0时,可以对每个B2位错误计数;当BIT_BLKCNT=1时,可以计数至少有一个B2错误的帧。当性能监视计数器被锁存时(LATCH_EVENT变成高电平),此计数器的值就由B2_ERRCNT[19:0]寄存器锁存,并清除B2错误计数器。如果由于LATCH_EVENT的最后上升沿,而导致至少还有一个B2错误时,则设置B2错误第二事件位B2ERR_SECE。采用B2错误率阈值模块。

为了判定接收信号的误码率是否高于或低于两个规定的不同阈值(信号故障和信号衰减情况),IOSL装置提供了两个B2错误率阈值模块。如果SF模块或SD模块判定错误率高于阈值的话,就设置B2_ERR_SF或B2_ERR_SD。如果对应的错误率位改变了值的话,也设置delta位B2_ERR_SF_D或B2_ERR_SD_D。对于每种错误率阈值模块,用户可以规定一个BLOCK(块)寄存器和2对THRESH(阈值)和GROUP(组)寄存器。为了允许设置和清除状态位的滞后,每个错误率阈值模块有1对THRESH和GROUP寄存器来设置状态,1对THRESH和GROUP寄存器来清除状态。因此用于错误率门限模块的寄存器是

      ·当B2_ERR_SF=0,判定其是否应使用:B2_BLOCK_SF[7:0],

  B2_THRESH_SET_SF[7:0],和B2_GROUP_SET_SF[5:0]来设置,

      ·当B2_ERR_SF=1,判定其是否应使用:B2_BLOCK_SF[7:0],

  B2_THRESH_CLR_SF[7:0],和B2_GROUP_CLR_SF[5:0]来清除,

      ·当B2_ERR_SD=0,判定其是否应使用:B2_BLOCK_SD[15:0],

  B2_THRESH_SET_SD[5:0],和B2_GROUP_SET_SD[5:0]来设置,

      ·当B2_ERR_SD=1,判定其是否应使用:B2_BLOCK_SD[15:0],

  B2_THRESH_CLR_SD[5:0],和B2_GROUP_CLR_SD[5:0]来清除。

K1K2监视

K1和K2字节是用于发送Line/MS AIS或RDI,及用于APS信令,监视它们的状态的改变。

-Line/MS AIS监视和LRDI的产生

K2字节的3个LSB在线路/MS级上能够用于AIS或远端故障指示(RDI)。

如果对于K2_CONSEC[3:0]连续帧都收到它们为“111”,就设置RX_LAIS,同时RX_LAIS_OUT输出为高;如果对于K2_CONSEC[3:0]连续帧没有收到它们为“111”,就清除RX_LAIS和RX_LAIS_OUT。当RX_LAIS状态改变时,就设置RX_LAIS_D delta位。

-Line/MS RDI监视

K2字节的3个LSB同时也可以用于监视K2_CONSEC[3:0]连续接收“110”或不接收“110”,发生这种情况时,就设置或清除RX_LRDI,当RX_LRDI改变状态时就设置RX_LRDI_D。

-APS监视

K1字节和K2字节的4个MSB是用于发送APS请求和信道数的,当对于3个连续帧接收到同样的数值时,就将其写入RX_K1_[7:0]和RX_K2_[7:4]。然后将接收的值与寄存器原先的值进行比较,当存入一个新的12位值时,就设置RX_K1_D delta位。

检查K1字节察看其不稳定性。如果在12个连续帧中,没有3个连续帧接收到同样的K1字节时,就设置K1_UNSTAB位,当连续3帧都接收到同一K1字节时就清除。在K1_UNSTAB改变状态时,就设置K1_UNSTAB_D delta位。K2的0到3位可以包括APS模式信息,对于K2_CONSEC[3:0]监视这些位是否为连续的同样值。出现上述情况时就写入RX_K2_[3:0],除非K2字节的1位和2位的值为“11”(表明线路/MS AIS或RDI)。当新值写入RX_K2_[3:0]时,设置RX_K2_D delta位。

3个delta位IOS_RX_K1_D,RX_K2_D and IOS_K1_UNSTAB_D均与APS监视有关,都能提供APS中断信号APS_INTB。此外,这3种deltas位还能提供标准的概要中断信号INTB。

-S1监视

监视接收的S1字节的4个LSB是否为相同值,在SONET模式下,IOS_RX_SDH_S1=0,需要监视8个连续帧;在SDH模式下,IOS_RX_SDH_S1=1,需要监视3个连续帧。当这些位包括相同的同步状态消息时,就将接收的值写入RX_S1_[3:0]。将接收的值与该寄存器先前的值进行比较,当存储了一个新值时,就设置IOS_RX_S1_D delta位。S1字节的监视也用于消息故障。如果由于LATCH_EVENT的最后一个上升沿,而没有消息能够满足上述有效判据(它是否与最后接收的值相同还是不同),就设置S1故障第二事件位S1_FAIL_SECE。

-M1监视

M1字节表示由远程终端在接收信号中检测的B2错误。IOSL装置包含1个20位的M1错误计数器,当BIT_BLKCNT=0时,就计数由M1指示的每个错误;当BIT_BLKCNT=1时,就计数接收的M1不等于0的每一帧。当IOS_RX_SIG_MODE=1时,BIT_BLKCNT=0情况下,M1的有效值范围是0到96;其它任何值都解释为0错误。当RX_SIG_MODE=0和BIT_BLKCNT=0时,M1字节的有效值范围是0到24;任何其它值都解释为0错误。当性能监视计数器被锁存时,该计数器的值是由M1_ERRCNT[19:0]寄存器锁存,并且清除M1错误计数器。

如果由于LATCH_EVENT最后的上升沿,使得至少还有1个接收M1错误指示的话,就设置M1错误第二事件位M1_ERR_SECE。

传送开销下路(drop)

TOH/SOH下路模块输出接收的E1、F1和E2字节,以及2个串行DCC信道。

-指令线(E1和E2)和用户信道段(F1)

3个串行输出IOS_RX_E1_DATA、IOS_RX_E2_DATA和IOS_RX_F1_DATA包含接收的E1、E2和F1字节的值。还提供独立的64kHz时钟参考输出(IOS_RX_E1E2F1_CLK),在RX_FRAME_OUT上升沿之后,E1、E2和F1字节的MSB出现在第一个64kHz时钟周期。

-数据通信信道,DCC,(D1-D12)

TOH/SOH中定义了两个DCC。段/再生段DCC采用D1、D2和D3字节建立1个192kb/s的信道。线路/复用段DCC采用D4到D12字节建立576kb/s的信道。TOH/SOH下路模块通过2个串行信道RX_SDCC_DATA和RX_LDCC_DATA输出DCC数据。这些信道与输出IOS_RX_SDCC_CLK和IOS_RX_LDCC_CLK同步。DCC数据输出在RX_SDCC_CLK和RX_LDCC_CLK的下降沿改变。

指针状态判定或指针解释

指针状态判定是检查H1-H2字节,建立STS-3c/AU-4接收指针的状态。

-状态变化规则

在下列指针状态判定说明中,依据装置的模式(STS-3c),数字略有变化。为了说明两种情况的运行,将利用以下约定来确定模式(STS-3c)的要求:

第一对H1-H2字节包含STS-3c/AU-4指针,监视此字节对,并考虑它们是下列3种状态之一:

   ·正常(NOPM=00)

   ·告警指示信号(AIS=01)

   ·指针丢失((LOP=10)

    其剩余的11[2]对H1-H2字节用于监视正确级联指示。它们被认为是下列3种状态之一:

   ·级联(CONC=11)

   ·告警指示信号(AISC=01)

   ·指针丢失(LOPC=10)

各自的状态存储于IOS_PTR_STATE_[1:12]_[1:0][IOS_PTR_STATE_[1:3]_[1:0]],其中IOS_PTR_STATE_[i]_[1:0]表示第i对H1-H2字节的状态。然后合并各对单独的H1-H2字节,来决定STS-3c/AU-4指针状态。

-STS-3c/AU-4指针状态

IOSL装置提供寄存器状态位IOS_RX_PAIS和IOS_RX_LOP,用于指示接收的STS-3c/AU-4指针的指针状态,它们可能为3种状态之一:

      ·正常(IOS_RX_PAIS=0和RX_LOP=0)-IOS_PTR_STATE_[1]_[1:0]

  为NORM(00),其它PTR_STATE_[i]_[1:0]为CONC(11)。

      ·通道/AU AIS(IOS_RX_PAIS=1和RX_LOP=0)-所有

  PTR_STATE_[i]_[1:0]为AIS或AISC(01)。

      ·指针丢失(IOS_RX_PAIS=0和IOS_RX_LOP=1)-所有其它情况

  (PTR_STATE_[i]_[1:0]值不能满足正常或通道/AU AIS情况)。

  IOS_RX_PAIS和IOS_RX_LOP信号提供给通道远程故障指示(PRDI)。通过IOS_RX_PAIS_D和IOS_RX_LOP_D delta位表明这些状态值的改变。

指针解释单元

图7指针解释单元28中,H1-H2字节对被解释以为SPE/VC的起始定位,指针解释规则如下:

1.在正常运行情况下,指针找到SPE/VC的起始位置。

2.当前接受指针的任何变化都将被忽略,除非连续3次接收到1个相同的新指针值,或者由于规则3、4或5中的任何一条而优先。任何连续3次接收到相同的新指针值优先于规则3或4。

3.当IOS_RX_SDH_PI=0,如果4位NDF位中至少3位匹配于无效指示(0110)以及10位指针值位中至少8位匹配于当前接收到的I位反转指针,就表明这是一个正的调整(justification)。跟在H3字节后面的字节是正填充字节,当前接收到的指针值加1(模783)。

当IOS_RX_SDH_PI=1,如果4位NDF位中至少3位匹配于无效指示(0110),指针值I位中3位或更多位以及指针值D位中2位或更少位匹配于当前接收到的所有位反转指针,并且任何一个接收到的SS位是10或IOS_RX_SS_EN=0,就表明这是一个正调整(justification)。跟在H3字节后的字节是正填充字节,当前接受的指针值加1(模783)。

4.当IOS_RX_SDH_PI=0,如果4位NDF位中至少3位匹配于无效指示(0110)以及10位指针值位中至少8位匹配于当前接收到的D位反转指针,就表明这是一个负调整。H3字节被认为是负填充字节(它是SPE的一部分),当前接收到的指针值减1(模783)。

当IOS_RX_SDH_PI=1,如果4位NDF位中至少3位匹配于禁止指示(0110),指针值D位中3位或更多位以及指针值I位中2位或更少位匹配于当前接收到的所有位反转指针,并且接收到的SS位是10或IOS_RX_SS_EN=0,就表明这是一个负调整。H3字节被认为是负填充字节(它是VC的一部分),当前接收到的指针值减1(模783)。

5.当IOS_RX_SDH_PI=0,如果4位NDF位中至少3位匹配于使能指示(1001),指针值在0到782之间,接收的指针替换当前已经接收到的指针值。

当IOS_RX_SDH_PI=1,如果4位NDF位中至少3位匹配于使能指示(1001),指针值在0到782之间,任何一个接收到的SS位是10或IOS_RX_SS_EN=0,接收到的指针替换当前已经接收到的指针值。

利用这些指针解释规则,指针解释模块判定SPE/VC净荷和POH字节的位置。

-指针处理

关于在IOSL装置中实现指针跟踪算法,指针跟踪状态机是基于ITU-T要求确定的指针轨迹状态机,对Bellcore和ANSI标准一样有效。在Bellcore模式中没有从AIS到LOP的状态机转换(如设置BELLCORE位为逻辑1)。

使用了四个指针跟踪状态机,每个AU-4/STS-3c使用一个。指针跟踪采用H11和H21字节,从H1n和H2n字节的级联中提取指针,解释如下:

N=新数据标志位,解释为:使能=1001或0001/1101/1011/1000,正常或禁止=0110或1110/0010/0100/0111(即可容忍单比特位错误)。

SS=指针跟踪状态机中的位长,如果使能,BELLCORE控制位设置为0。当BELLCORE设置为1时忽略这些位,但当它设置为0时,这些位为10。

I=增加位,定义为H1n的位7以及H2n的位1、3、5和7。

D=降低位,定义为H1n的位8以及H2n的位2、4、6和8。

负调整:反转5个D位,接受多数规则。通过设置在OR#Conf 3到0中的Just ITU位,使能[GR-253]O3-92的10个对象中的8个。

正调整:反转5个I位,接受多数规则。通过设置在OR#Conf 3到0中的Just ITU位,使能[GR-253]03-92的10个对象中的8个。

对于STM-1/STS-3c操作模式,指针为一个二进制数,范围为0到782(十进制)。它是一个10位的数值,其中有两位来自H1字节的两个最低有效位,与H2字节级联,形成与H3字节位置起算有3个字节的偏差。例如,对STM-1信号,指针值为0表示VC-4在H3字节后3个字节处开始,而偏置字段值为87表示VC-4从K2字节后3个字节开始。

在STM-4/STS-12模式有4个字节-交错AU-4,因此有4个H1/H2字节对用于确定他们各自VC-4的开始(如J1字节位置)。在这种情况下,4个指针跟踪状态机的操作等同于4×STM-1/STS-3c的运行。

在处理STS-12c/STM-4c时,对宏1的指针跟踪状态机用来定位VC-4-4c的起始。使用H11和H21字节进行指针跟踪,指针从H11和H21级联字节中提取出来,指针解释如上面所述。但形成的偏置字段是一个12字节的数值,其值从H3字节位置开始算起。例如,对STM-12c信号,指针值为0表示VC-4在H3字节后12个字节处位置开始,而偏置字段值为87表示VC-4从K2字节后12个字节开始。在对应宏(宏2-4)中也检查级联指示字节,根据[G.783]附件C监视每状态机的LOP和HPAIS。下面的状态图说明了级联指示器的状态转换。转换定义请参考[G.783]。

此外,8位计数器用来记录正和负调整事件,以及NDF事件。提供状态位用来指示负调整、正调整、NDF、无效指针、新指针和级联指示的检测。当进入如上所述的LOP或LOPC态时,将在相应OR#IRQ2寄存器中设置LOP中断请求位。同样,如果进入了AIS或AISC态,将设置相应的HPAIS中断请求。

通道开销监视

通道开销监视模块由J1、B3、C2和G1监视组成。这些通道开销字节用于监视状态中的错误或变化。

-通道轨迹(J1)捕获/监视

通过插入J1字节,IOSL装置支持两种通道轨迹(J1)捕获方法。第一种主要用于SONET,在STS-3c/AU-4中捕获64个连续的J1字节。第二种用于SDH,查找重复的16个连续的J1字节。在3个连续事件中检测到相同的16字节码型(pattern)后,J1格式存储在指定的寄存器中。

--SONET J1捕获

当IOS_RX_SDH_J1=0(SONET模式),IOSL装置能设为捕获通道轨迹消息的抽样。当J1_CAP从0转换成1,IOSL装置从特定支路(tributary)上连续捕获64个J1字节,将他们写入IOS_RX_J1_[63:0]_[7:0]。

SONET中没有定义通道轨迹帧结构,但GR-253的确建议一个64字节的序列,该序列由一串ASCⅡ字符组成,空字符(00)填充了62字节,结束为<CR>(0D)和<LF>(0A)字节。如果设置了J1_CRLF位,IOSL装置在J1字节位置上,从接收字节中捕获以{0A,0D}结束的第一个64字节字符串。如果J1_CRLF=0,IOSL装置1捕获下一个64字节的J1字节,不考虑它们的内容。一旦完成捕获,IOSL装置设置J1_CAP_E事件位。

--16字节J1监控

如果IOS_RX_SDH_J1=1(一般用于SDH模式),J1字节包含一个重复的16字节的通道轨迹帧,它包括PAPI。在这种模式中,不使用J1_CAP、J1_CRLF和J1_CAP_E位。

J1监视包括锁定16字节通道轨迹帧的起始、检查接收通道轨迹帧值是否3个连续帧匹配一致。当接收到一个相同的帧值时,把它写入IOS_RX_J1_[15:0]_[7:0]。通道轨迹帧的第一个字节(它包括帧起始标志)写入IOS_RX_J1_[15]_[7:0]。

成帧:除帧起始标志字节的MSB外,所有通道轨迹帧字节的MSB均为0。J1监视成帧器搜索15个连续J1字节,该字节的MSB为0,后接J1字节的MSB为1。一旦搜索到这种格式,成帧器进入帧内,此时J1_OOF=0。一旦J1监视成帧器在帧内,一直留在帧内直到接收到3个连续通道轨迹帧中至少有1个MSB位错误。(在SONET模式,J1帧指示保持在帧内状态,J1_OOF=0)。如果J1_OOF状态改变,设置J1_OOF_D delta位。

格式接受和比较。一旦在帧内,J1监视模块查找3个连续的16字节通道轨迹帧。当接收到3个连续相同的帧时,接收的帧就存入IOS_RX_J1_[15:0]_[7:0]。接收的帧与这些寄存器的先前内容进行比较。当存储了一个新值时,就设置RX_J1_D的delta位。

-BIP-8(B3)校验

IOSL装置检查接收到的B3字节,获得正确的BIP-8值。通过对每帧SPE/VC(包括POH)中所有位的计算得出BIP-8的偶数校验。然后这些值与下一帧接收到的B3值进行比较,比较的结果可能会是0到8的不匹配(B3位错误),该值将插入到发送端的G1字节中。

IOSL装置包含一个16位B3错误计数器,该计数器对每个B3位错误(如果BIT_BLKCNT=0)或者至少有一个B3位错误(如果BIT_BLKCNT=1)的每个帧进行计数。当性能监控计数器被锁存(LATCH_EVENT变为高电平)时,该计数器值锁定为B3ERRCNT_[15:0]寄存器,并清除B3错误计数器。

如果由于LATCH_EVENT的最后1个上升沿,而导致至少有一个B3错误,则设置B3错误第二次事件位B3ERR_SECE。

-信号标签(C2)监视

监视接收到的C2字节,确认接收到正确类型的净荷。连续5帧接收到同样的C2值时,将接收到的值写入IOS_RX_C2[7:0]中。当接收到一个新的C2值,设置IOS_RX_C2_D的delta位。

接收到C2字节的期望值保留在EXP_C2[7:0]中。如果当前接受的值与期望值不匹配,接受的值也不符合以下条件,则将净荷标签不匹配寄存器位IOS_RX_PLM设置为高电平:

      ●全部为0,没配备标签的;

      ●01(十六进制),配备了非特殊标签;

      ●FC(十六进制),有净荷错误标签;

      ●FF(十六进制),有保留标签。

如果当前接收到的值是全0、无标签,且EXP_C2[7:0]!=00(十六进制),则设置无配备寄存器位IOS_RX_UNEQ为高电平。

IOS_RX_PLM和IOS_RX_UNEQ信号提供通道RDI在发送端的插入。当IOS_RX_PLM或IOS_RX_UNEQ状态发生改变时,设置IOS_RX_PLM或IOS_RX_UNEQ delta位。

-通道状态(G1)监视

--通道REI监视

通道状态字节的位1到位4(4个MSB)表示远程终端在其接收到的SPE/VC信号中检测的B3错误数。只有在0到8间的二进制值是合法的。如果接收到的值大于8,将其解释为0错误(正如GR-253和ITU-T建议G.707所规定的一样)。IOSL装置包含一个16位的G1错误计数器,它对G1指示的每个错误(如果BIT_BLKCNT=0)计数,或者对接收到G1的头4位不等于0的每个帧(如果BIT_BLKCNT=1)计数。当性能监视计数器被锁存时(LATCH_EVENT变成高电平),该计数器的值就由G1_ERRCNT[15:0]寄存器锁定,并清空G1错误计数器。

如果由于LATCH_EVENT的最后1个上升沿,而导致至少接收到一次G1错误指示,则设置G1错误第二次事件位G1ERR_SECE。

--通道RDI监视

如果IOS_RX_PRDI5=1,IOSL装置可监视G1的第5位(RDI-P指示符);如果IOS_RX_PRDI5=0,可监视G1的第5、6和7位(增强RDI-P指示符)。监视过程包括检查G1_CONSEC[3:0]连续接收的监视位值是否完全相同。当接收到完全相同的值,G1的5、6和7位写入IOS_RX_G1[2:0]。接收值与该寄存器先前值进行比较(3位全都被写入,但如果IOS_RX_PRDI5=1,只将G1的第5位和IOS_RX_G1[2]进行比较)。当存储一个新值,设置IOS_RX_G1_Ddelta位。

-其它POH字节

IOSL装置不对POH剩下的其它字节进行监视。这些字节包括通道用户信道(F2)、位置指示符(H4)、通道增长/用户信道(Z3/F3)、通道增长/通道APS信道(Z4/K3)以及串列连接监控(Z5/N1)字节。

接收净荷的解扰

从SONET/SDH信号中提取净荷后,净荷数据用自同步X43+1解扰器29进行解扰。全部模式中,寄存器IOS_RX_DSCR_INH控制解扰器的运行。当IOS_RX_DSCR_INH=0(缺省设置),解扰器正常工作。当IOS_RX_DSCR_INH=1,解扰器禁止工作。

IOSL装置提供一个基于生成多项式:X43+1的自同步解扰器。

接收LAPS过程

此处SPE从SONET/SDH帧中提取,然后进入LAPS处理器做进一步的处理。在IOS模式下,IOS_RX_POS=1,LAPS处理过程将LAPS包信号/帧从SPE中提取。

-LAPS解帧器

通过从帧的起始/结束位置识别标志序列(0x7e),从SPE净荷中提取LAPS帧。

IOSL装置检查净荷中的每个八位组,当格式为0x7e的八位组被检查到时,IOSL装置就认为这是1个包信号的起始/结束,然后检查紧跟其后的八位组,如果仍为0x7e,则认为它们是用于填充包信号缝隙的标志序列,并将其丢弃。跟随起始标志序列,且不等于0x7e的第一个八位组是LAPS帧的第一个八位组。在找到帧起始标志之后,IOSL装置继续检查净荷的每个八位组,查找标志序列。如果找到了标志序列,且其前面字节为控制转义字节(0x7d),则此帧为中止帧;否则,就认为是当前帧的正常结尾。在FCS字段的终止被禁止的特殊情况下(见6.9.5节),在各帧之间必须检测到最小量为2个标志序列的信息。

-透明性填充字节的删除

IOSL装置将透明性字节填充过程反过来,恢复原始包信息流。FIFO下溢字节序列是在发送端的FIFO下溢过程中插入的,如果IOS_RX_POS_FIFOUNDR_MODE=1,在透明性处理过程中需要检测出,并删除。该参数值的缺省值为禁止:IOS_RX_IOS_FIFOUNDR_MODE=0。特殊的FIFO下溢字节编码可以利用寄存器IOS_RX_IOS_FIFOUNDR_BYTE[7:0]配置。

--下溢字节删除

在IOS模式下,如果IOS_RX_IOS_FIFOUNDR_MODE=1匹配于FIFO下溢字节(IOS_RX_IOS_FIFOUNDR_BYTE[7:0])的字节如果其后没有紧跟控制转义字节(0x7d)则被丢弃。

-错误帧

在IOS模式下(IOS_RX_IOS=1),在205模式利用1个特殊的字节编码(0x7d7e)来指明该帧是中止帧。如果接收到此字节,含此字节的帧就为被中止,不需继续将该包的更多的八位组送入FIFO;如果该包信号是发送到链路层设备的,则标记为错误。

IOSL装置包括1个8位计数器,计算检测到中止序列的每个包。当性能监视的计数器被锁存时(LATCH_EVENT变成高电平),该计数器的值由寄存器IOS_RX_IOS_PABORT_ERRCNT[7:0]锁存,并清除包中止错误计数器。

如果因LATCH_EVENT的最后1个上升沿,而导致至少还有1个包中止错误,则需设置包中止错误第二事件位IOS_RX_IOS_PABORT_ERR_SECE。

作为一种替换方案,通过反转FCS字节也可以中止1个包。这对于IOSL装置接收LAPS处理器来说,是简化了FCS错误。其处理过程,如下段说明。

作为1种选项,IOSL装置也可以将包视为错误包,并根据其是否违反最小或最大包规定,而进行标记。包的大小只是指从IOSL出来的包信号大小,不包括去掉的标志序列、地址字节、控制字节、透明性字节、FIFO下溢字节和FCS字节。通过管理接口可以配置包长的最小值和最大值。寄存器IOS_RX_IOS_PMIN[3:0]包含包长的最小值,该寄存器的缺省值是0;寄存器IOS_RX_IOS_PMAX[15:0]含有包长的最大值,该寄存器的缺省值是0x05E0。

当被指令为通过管理接口时,IOSL装置可以使最小和最大包校验功能禁止/使能。寄存器IOS_RX_IOS_PMIN_ENB和IOS_RX_IOS_PMAX_ENB(两个的缺省值为0)控制任何处理违反了最小和最大包长。当任何一个寄存器设置为1时,任何违反对应的包长规定,都会标记为错误。

IOSL装置包括2个8位计数器,分别计数违反最小和最长包长限制的违例。当性能监视计数器被锁存时(LATCH_EVENT变为高电平),计数器值由寄存器IOS_RX_IOS_PMIN_ERRCNT[7:0]和IOS_RX_IOS_PMAX_ERRCNT[7:0]锁存,并清除包违例计数器。

如果由于LATCH_EVENT的最后上升沿,而导致至少还有1个包大小违例错误的话,就设置合适的包长违例第二事件位IOS_RX_IOS_PMIN_ERR_SECE或IOS_RX_IOS_PMAX_ERR_SECE。

-帧校验序列(FCS)字段

在IOS模式下(IOS_RX_IOS=1),计算出FCS,并在每帧的结尾处对FCS字节进行检查。该选项是由寄存器IOS_RX_IOS_FCS_INH控制的。IOS_RX_IOS_FCS_INH=0使能FCS。IOS_RX_IOS_FCS_INH=1值为禁止FCS。仅采用32位的校验序列(CRC-32)。

IOS_RX_IOS_FCS_MODE=0使该装置处于FCS-32模式。

IOSL装置提供CRC-32功能,采用下列生成多项式:1+x+x2+x4+x5+x7+x8+x10+x11+x12+x16+x22+x23+x26+x32

FCS字段是对所有帧码位计算而得出的,除了标志序列和FCS字段自己本身。

如果IOS_RX_IOS_FCS_BIT_ORDR=0(缺省值),采用最高有效位(先为MSB)次序将接收的信号读进移位寄存器;如果IOS_RX_IOS_FCS_BIT_ORDR=1,采用最低有效位(先为LSB)次序将接收的信号读进移位寄存器。任何一种情况下,FCS计算后,数据都是采用最高有效位进行存储,以便处理。

得到的FCS结果值与接收在FCS字段里的值进行比较,如果检测到1个错误,就告知管理控制接口,对应的计数器加1,FIFO中包的最后1个字标记为错误。IOSL装置包含1个20位的FCS错误计数器,对每个FCS CRC违例进行计数,当性能监视计数器被锁存时(LATCH_EVENT变为高电平),该计数器的值由寄存器IOS_RX_IOS_FCS_ERRCNT[19:0]锁存,并清除FCS错误计数器。

如果由于LATCH_EVENT的最后上升沿,而导致至少还有1个FCS错误,则设置FCS错误第二事件位IOS_RX_IOS_FCS_ERR_SECE。

FCS校验后,终止FCS字节(它们没有存储到FIFO)。如果通过管理接口,使FCS校验禁止的话,最后2或4个字节就发送到FIFO。假定检测到1个FCS,当发送到链路层设备时,标记包信号为错误(RX_ERR)。

-LAPS帧终止

在IOS模式(IOS_RX_IOS=1)下,FCS计算之后,监视下列LAPS字节,并任选地终止。

--标志序列

所有用于帧描绘和帧间填充目的而出现的标志序列都被删除。帧信息的起始和结束标志仍由IOSL装置保留,通过RX_SOP和RX_EOP信号发送给链路层。

--地址和控制字节

地址和控制字节(LAPS帧中紧跟标志序列的前两2个字节)是由IOSL装置监视。监视是检查有效地址字段和控制字段(0xFF03)。如果检测到不匹配,就认为该字段是压缩的,不发送出去。如果检测到无效值,这两个字节不被丢弃,而是通过IOS接口送到链路层。通过设置IOS_RX_IOS_ADRCTL_INVALID=1告知管理控制接口检测到无效地址和控制字段。通过设置IOS_RX_IOS_ADRCTL_INVALID_D delta位为1,表明IOS_RX_IOS_ADRCTL_INVALID的状态发生改变。

如果检测到有效地址和控制字段(0xFF03),IOSL装置就终止这两个字节,不让通过,到达RX FIFO。通过设置IOS_RX_IOS_ADRCTL_DROP_INH=1,可以禁止删除有效地址和控制字节,该寄存器的缺省值是0(自动丢弃使能)。

--FCS字节

如在FCS一节中提到的,IOSL装置也可以终止4个FCS字节。如果通过管理控制接口(IOS_RX_IOS_FCS_INH=1)禁止FCS校验的话,终止功能也被禁止,LAPS帧最后4个字节发送到链路层。

接收FIFO接口

-系统侧包信号的环回

IOSL装置通过系统接口为用户提供环回接受的包信号功能。

当SYS_T_TO_R_LOOP=1时,从链路层设备接收的包从发送FIFO直接送到接收FIFO,再输出回发出该信元数据的链路层设备。当SYS_T_TO_R_LOOP设置为0时,在SONET/SDH线路信号内接收的包数据,发送到接收FIFO,然后输出到系统接口。

-FIFO处理过程

IOSL装置将包数据写入FIFO,准备通过接收系统接口输出到链路层设备。FIFO具有256个八位组。连同包信号,下列可应用的标识符必须伴随FIFO的每个字:包的开始,包的结尾,是否包结尾,1个字里有几个八位组(1还是2),包是否出错,等等。一旦在包信号里检测到1个错误,包信号里不再有更多的字节装入FIFO中。

IOSL装置监视FIFO的状态。通过设置IOS_RX_FIFOOVER_E=1,向管理控制接口报告FIFO下溢事件,FIFO下溢的发生同时也会使对应的性能监视计数器增加。

IOSL装置包括1个8位FIFO溢出错误的计数器,计数因FIFO溢出事件而受影响的每个包。当性能监视计数器被锁存时(LATCH_EVENT变为高电平),该计数器的值就由寄存器IOS_RX_FIFOOVER_ERRCNT[7:0]锁存,并清除FIFO溢出错误计数器。

如果由于LATCH_EVENT的最后上升沿,而导致至少还有1个FIFO溢出事件的话,就设置FIFO溢出错误事件位IOS_RX_FIFOOVER_ERR_SECE。

一旦检测到溢出错误,就不再有包的字节送入FIFO。在IOS模式(IOS_RX_IOS=1)下,包信号的最后1个字标记为错误(RX_ERR)。

该FIFO就在接收系统兼容接口之前,其目的是完成SONET时钟域和链路层时钟域之间的速率匹配功能。

--错误包信号处理

在IOS模式(IOS_RX_IOS=1)下,IOSL装置采用RX_ERR,将由FIFO溢出事件破坏的包标记为错误。

无效帧满足下列条件:

      1〕没有正确的以两个标志序列为界;

      2〕帧标志序列间的八位组少于8个;

      3〕包含有一个帧校验序列差错;

      4〕包含一个与接收端不匹配或不支持的服务访问点标识符

       (见ITU-TX.85的A.3.3);

     5〕包含一个不可识别的控制字段值;

     6〕结束标志为超过六个1的序列。

无效帧将被丢弃,不通知发送方。也不为该帧产生任何动作。

--接收数据奇偶校验

对于MAC-PHY的规定,IOSL装置提供1个奇偶检验位,它跟随发送到链路层的每个八位组或两个八位组的字(IOS_RX_SYS_DAT[15:0])。在RX_PRTY管脚提供该奇偶校验位。在缺省时(IOS_RX_PRTY_MODE=0),提供奇校验;当IOS_RX_PRTY_MODE=1时,提供偶校验。

管理控制接口

下面说明IOSL的管理控制接口,定义由外部处理器读或写的所有寄存器的地址。

微处理器总线地址的MSB--ADDR[8:0]是说明映射是传送方向(ADDR[8]=0)还是接收方向(ADDR[8]=1)。ADDR[7:0]是指示特殊的映射,判别这些值是利用下面每种映射的详细说明。通常的配置和状况映射表是设置ADDR[8]=0。

中断或轮询操作

管理控制接口能够工作在中断驱动或轮询模式。两种模式下,都能够采用IOSL装置寄存器位SUM_INT来判定IOSL装置的监视寄存器状态是否发生改变,该信息位于通用配置和总状况映射表的地址0x002。

-中断源

--传送端

传送端寄存器映射表几乎为全部的规定参数,它决定SONET/SDH信号的组成,提供LAPS、SONET/SDH POH和SONET/SDH TOH/SOH的值。除了这些规定的参数之外,传送端寄存器映射表还包括系统接口和通用的I/O监视。如果这些指示是有效的话,寄存器0x002的SUM_INT位将为高(逻辑1)。如果SUM_INT_MASK=0,微处理器接口的中断输出INTB变为有效(逻辑0)。

--接收端

表(TBD)同时在寄存器0x005也包含接收端的总状态位,这些位决定寄存器0x002的SUM_INT位。如果总状态位里的任何位是“1”,及对应的掩蔽位是“0”的话,则SUM_INT位设置为“1”。

表(TBD)寄存器0x005的总状态位都为“1”,如果表(TBD)里对应位组有1个或多个是“1”的话,需要掩蔽各自的TOH/SOH delta位和第二事件位(表(TBD),地址0x104-0X106)。

-中断生成

在中断生成模式下,通用配置和总状态映射表中寄存器0x006的SUM_INT_MASK位应被清除(变为逻辑0)。它允许INTB的输出变为有效(逻辑0)。该输出是INTB=!(!SUM_INT_MASK && SUM_INT)。此外接收端的IOS_RX_APS_INT_MASK位应被清除(变为逻辑0),这允许APS_INTB的输出变为有效(逻辑0)。该输出是APS_INTB=!(!IOS_RX_APS_INT_MASK &&IOS_RX_APS_INT)。

如果发生中断,微处理器首先读总状态寄存器0x004-0x005,判断有效中断源的等级,然后读该等级的特定寄存器,判断发生中断的准确原因。

-轮询模式

为了抑制所有的硬件中断并在轮询模式下操作,应设置SUM_INT_MASK和I0S_RX_APS_INT_MASK位(变为逻辑1)。这种模式下,在无效(逻辑1)状态下保留IOSL的输出INTB和APS_INTB。

注意:SUM_INT_MASK和IOS_RX_APS_INT_MASK位不会影响寄存器位SUM_INT和IOS_RX_APS_INT的状态。可以轮询这些字节,来判定是否需要更多的寄存器询问。

微处理器接口

微处理器接口连接IOSL装置和系统CPU,微处理器接口可以使系统CPU访问IOSL装置内的所有寄存器。微处理器接口能够运行于中断和轮询两种模式,中断模式中,IOSL装置能够支持多个中断源。无论在哪种中断模式下,IOSL装置能够掩蔽出中断。

与旧PPP over SDH/SONET设备的兼容

图10是RFC 2615的帧格式与本发明的帧格式之间的比较。如图所示,如果SAPI设置为255,LAPS帧格式几乎与PPP/HDLC的一样,因此,采用LAPS成帧器/解帧器的IP over SDH不需要在结构上作任何改动,就能用本发明的数据传输装置处理PPP包,并将提取的PPP包传送给网络层进行PPP处理。

图11是根据本发明采用IP over SDH架构的网络互联示例。其中实线表示节点之间SDH的物理连接;虚线表示建议的节点之间的包交换;黑色节点代表起网关作用的网络边缘节点;白色节点代表网络骨干节点,这样可以从节点角度看到IP over SDH网络的概貌。需要着重强调的是:IP overSDH网络中,在网络中链路上可以有各种不同速率的IP over SDH物理接口,只要同一链路上的两个对等物理接口具有同样的接口速率和物理参数。

根据从网络层或上层接收的数据类型,本发明的SAPI值是可变的,能够适应IPv4、IPv6、PPP、IS-IS、以太网、或其它类型的数据,例如,对于MPEG数据传输来说,SAPI可以安排为“64”或“128”。本发明的架构能够适用于将IP适配到SDH/SONET、简化的SDH,或IP适配到SDH,然后再到WDM,或PDH(准SDH)。对于PDH情况,LAPS帧的封装信息字段是面向位的,不是面向八位组。

工业实用性

从上述说明可以看出,本发明揭示了一种全新的数据传输装置和方法,它能够应用于将IP信号直接适配到SDH/SONET的核心和边缘路由器、交换设备、基于IP的网络接入设备、线卡,及用于Gigabit的高速接口单元。本发明的优点是:简单、有效、可靠、低成本,适合高速数据传输应用,特别是在网络边缘节点上的应用。本发明的装置和路由器可以方便的配置为与象PPP over SDH线卡或路由器这样的旧设备兼容。

以下用优选实施例,已经叙述和说明了本发明的原理。很明显,不偏离本发明的精神和范围,在结构和细节上能对发明进行改变。例如除了SDH和SONET之外,传送和/或接收方向的数据传输装置和方法能够应用于其它如简化的SDH、准SDH、WDM、以太网等物理层设备,并且容纳其它网络层协议。所有这些变化和改变都应落在所附权利要求定义范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号