一种实现atm多信元封装电路仿真的方法及网络处理器的制作方法

文档序号:7766189阅读:316来源:国知局
专利名称:一种实现atm多信元封装电路仿真的方法及网络处理器的制作方法
技术领域
本发明涉及数据传输领域,具体的说,涉及一种实现ATM (Asynchronous Transfer Mode,异步传输模式)多信元封装电路仿真的方法及网络处理器。
背景技术
ATM技术的实质是电路交换和分组交换的综合。因此ATM技术具有很大的灵活性, 任何时候都能按实际需要来占用资源;对特定业务,传送速率随信息到达的速率而变化,能 够适应任何类型的业务,无论其速率高低、突发性大小、实时性要求和质量要求如何,都能 提供满意的服务。但ATM高速网络会导致分组交换网络的带宽效率低下,主要是由于信元 中继需要交换所有信元中继分组,因而会降低分组转发速率。即如果需要传输N个ATM信 元,网络核心设备就要交换N个分组,耗费N个分组转发的带宽。但是,如果利用信元打包 技术,将N个ATM信元打包到同一个分组之中,网络核心设备只需要交换一个分组,而且只 需要耗费一个分组转发的带宽。因此,电信运营商多利用信元打包技术节约网络核心设备 的分组转发带宽。ATM多信元封装(又被称为信元串联)是一种能够将多个信元中继ATM信元封 装到同一个分组中的机制。它让电信运营商能够克服信元中继传输所固有的带宽效率低 下问题。请参阅图1,该图为现有技术中ATM多信元封装系统的结构框图,由图中可见,现 有的ATM多信元封装系统包括信元打包FPGA (Field-Programmable Gate Array现场可编 程门阵列)及硬件转发 ASIC(Application Specific Integrated Circuit,专用集成电 路),在输入供应商边缘,将ATM信元发送到信元打包FPGA,信元打包FPGA会根据配置参数 MNCP(Minimum Number Cell Packet最小信元打包数)和MCPT(Maximum Cell Packet Time 最大信元打包计时器)实现多信元的分段与重组。信元打包FPGA会在MCPT超时之前,利 用其FIF0(First Input First Out,先入先出)缓存将输入ATM信元排队组合为一个信元 包,直到达到预定的信元包大小为止,同时为每个信元包分组生成一个序列号,将该信元包 分组转发到硬件转发ASIC,硬件转发ASIC会进行报文封装并转发出去。现有技术中ATM多 信元封装系统设计复杂而且价格昂贵,局限了其实际应用的场景。现有技术中的网络处理器既具有通用处理器的低价格、高灵活性的特点,又具有 ASIC的高速度和可扩展性特点,是具有多引擎并行处理的高速转发芯片,其可灵活实现二、 三层转发功能,具有多引擎并行处理的特点可达到很高的转发速率。但也正因为如此,和绝 大多数通用处理器一样,现有技术中的网络处理器没有FIFO机制无法实现多个数据包的 保序,所以无法实现ATM多信元封装的电路仿真。

发明内容
本发明提供一种实现ATM多信元封装电路仿真的方法及网络处理器,用以解决现 有技术中网络处理器没有FIFO机制无法实现对ATM多信元封装的问题。本发明技术方案包括
—种实现异步传输模式多信元封装电路仿真的方法,包括步骤A、提取进入到网络处理器的异步传输模式ATM信元的属性,确定每个ATM信元的 出口并通过硬件锁锁住相应的出口;B、将具有相同出口的ATM信元依次缓存在相同队列中;C、在所述队列达到预设的发包条件时,解锁相应的出口,将所述队列中的ATM信 元取出组成ATM载荷后通过所述出口转发出去。进一步地,所述步骤A中,按照ATM信元的属性通过查出口表确定每个ATM信元的 出口。进一步地,所述预设的发包条件为队列中的ATM信元数达到最小信元打包数或 者超时计时器达到最大信元打包计时器的超时值。进一步地,将所述队列中的ATM信元取出组成ATM载荷的具体过程为采用环回方式从所述队列中依次取出ATM信元组成ATM载荷,取信元时拒绝其他 弓丨擎访问该队列,信元取出后允许其他弓I擎访问该队列,在所述ATM载荷内的ATM信元数量 达到最小信元打包数或所述队列为空时,将所述ATM载荷从所述出口顺序发送出去。进一步地,所述取信元时,申请互斥信号量,将所述队列上锁,此时拒绝其他引擎 访问该队列;信元取出后,释放互斥信号量,将所述队列解锁,此时允许其他引擎访问该队 列。一种实现异步传输模式多信元封装电路仿真的网络处理器,包括微码模块,用于提取进入到网络处理器的异步传输模式ATM信元的属性,确定每 个ATM信元的出口并通过硬件锁锁住相应的出口,在所述队列达到预设的发包条件时,解 锁相应的出口,将所述队列中的ATM信元取出组成ATM载荷后通过所述出口转发出去;缓存模块,用于将具有相同出口的ATM信元依次缓存在相同队列中。进一步地,还包括计数器模块,用于为缓存模块中缓存的队列分配对应的队列指针,并为每个队列 指针分配互斥信号量。进一步地,所述微码模块按照ATM信元的属性通过查出口表确定每个ATM信元的 出口。进一步地,所述预设的发包条件为队列中的ATM信元数达到最小信元打包数或 者超时计时器达到最大信元打包计时器的超时值。进一步地,所述微码模块采用环回方式从所述缓存模块内的队列中依次取出ATM 信元组成ATM载荷,取信元时申请互斥信号量拒绝其他引擎访问该队列,信元取出后释放 互斥信号量允许其他引擎访问该队列,在所述ATM载荷内的ATM信元数量达到最小信元打 包数或所述队列为空时,将所述ATM载荷从所述出口顺序发送出去。本发明有益效果如下为克服现有技术中网络处理器没有FIFO机制无法实现分段和重组功能的难题, 本发明利用网络处理器实现FIFO机制进而实现分段和重组功能,同时利用其固有的硬件 转发功能,使原本复杂的ATM多信元封装系统功能利用一个网络处理器即可实现。采用本 发明可以在普通的网络处理器上实现复杂的多信元缓存和组合的功能,从而实现多信元电 路仿真技术,可以让ATM多信元封装系统设计的复杂度大大降低,同时降低系统成本,加之网络处理器本身的灵活、转发能力强的优点,可灵活的支持多种AAL(ATM适配层)业务及 QoS (质量服务)。


图1为现有技术中ATM多信元封装系统的结构框图;图2为本发明所述实现ATM多信元封装电路仿真的方法的一个较佳实施例的流程 图;图3为本发明所述实现ATM多信元封装电路仿真的网络处理器一个较佳实施例的 结构框图;图4为本发明实施例中将队列中的ATM信元取出组成ATM载荷的流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。为了清晰描述本发明以其一典型 应用为例展开描述,将其应用场景设为ATM多信元电路仿真承载于MPLS (Multi-Protocol Label Switching,多协议标签交换)网络,则出口为PW(Pseudo Wire伪线)出口,对应的 出口表为PW出口表。请参阅图2,该图为本发明所述实现ATM多信元封装电路仿真的方法的一个较佳 实施例的流程图,具体包括如下步骤Si、提取进入到网络处理器的ATM信元的属性,按照ATM信元的属性通过查PW出 口表确定每个ATM信元的PW出口;S2、开启硬件锁锁住接收到的ATM信元对应的PW出口表项,将硬件锁的位置与ATM 队列的semID (信号量标识)和队列指针相对应,通过该方式可达到每一条队列对应一个PW 出口 ;S3、将具有相同PW出口的ATM信元依次缓存在相同队列中,每来一个ATM信元都 为其申请互斥信号量,将该队列上锁,将其相应的队列指针顺序后移;信元存到该队列中 后,释放互斥信号量,将该队列解锁,此时允许其他引擎访问该队列。保证具有相同PW出口 的ATM信元按进入网络处理器的顺序在同一队列中排队;S4、在队列达到预设的发包条件时,解锁相应的PW出口表项,将队列中的ATM信元 取出组成ATM载荷后通过相应的PW出口转发出去。其中,所述预设的发包条件为队列中的ATM信元数达到MNCP或者超时计时器达 到MCPT的超时值。其中,将队列中的ATM信元取出组成ATM载荷的具体过程为采用环回方式从队列中依次取出ATM信元组成ATM载荷,取信元时,申请互斥信号 量,将队列上锁,拒绝其他引擎访问该队列,信元取出后,释放互斥信号量,将队列解锁,允 许其他弓I擎访问该队列,在ATM载荷内的ATM信元数量达到MNCP或所述队列为空时,将ATM 载荷从相应的PW出口顺序转发出去。请参阅图3,该图为本发明所述实现ATM多信元封装电路仿真的网络处理器一个 较佳实施例的结构框图,其主要包括
微码模块,用于提取进入到网络处理器的异步传输模式ATM信元的属性,按照ATM 信元的属性通过查PW出口表确定每个ATM信元的PW出口并通过硬件锁锁住相应的PW出 口表项,在队列达到预设的发包条件时,解锁相应的PW出口表项,将队列中的ATM信元取出 组成ATM载荷后通过相应的PW出口转发出去;其中,预设的发包条件为队列中的ATM信元 数达到MNCP或者超时计时器达到MCPT的超时值。 缓存模块,用于将具有相同PW出口的ATM信元依次存放在相同队列中,在所述网 络处理器开辟一张哈希表作为缓存模块,缓存模块中的每一个表项存放一个ATM信元,将 若干条(X条)表项作为一个队列,对应一个PW出口,X的大小由客户需求而定。计数器模块,用于为缓存模块中缓存的队列分配对应的队列指针,指向当前队列 可用的位置(指针值范围0 X-1),同时为每个队列指针分配互斥信号量,防止多个引擎同 时操作队列指针带来的乱序。其中,微码模块将队列中的ATM信元取出组成ATM载荷的具体过程为微码模块 采用环回方式从所述缓存模块内的队列中依次取出ATM信元组成ATM载荷,取信元时申请 互斥信号量拒绝其他引擎访问该队列,信元取出后释放互斥信号量允许其他引擎访问该队 列,在所述ATM载荷内的ATM信元数量达到最小信元打包数或所述队列为空时,将所述ATM 载荷从所述出口顺序转发出去。为实现FIFO机制,本发明综合利用网络处理器软硬件资源保证ATM多信元的顺 序,具体包括软件资源的互斥信号量和硬件资源的锁硬件表机制,在此统称为保序锁。其 中,互斥信号量是为每一个队列分配一个互斥信号量,在当前引擎操作该队列时,能够锁住 当前队列防止被其他处理引擎使用,保证队列中的信元按顺序排列。互斥信号量的操作由 微码指令semTake (申请)和semGive (释放)操作实现。semTake指令将外部计数器的标 志值置为1,此时拒绝其他引擎的访问,当前引擎处理后,semGive指令将将外部计数器的 标志值清0,允许其他引擎操作。锁硬件表机制是查出口表时利用硬件锁将对应的出口表 项锁住,然后将ATM信元依次写入ATM缓存模块后将出口表项解锁。通过这种方式将从同 一条出口输出的ATM信元按照其进入网络处理器的顺序写入ATM缓存模块中,能够保证ATM 信元的不乱序。请参阅图4,该图为本发明实施例中将队列中的ATM信元取出组成ATM载荷的流程 图,主要实现过程如下当队列中的ATM信元数量达到MNCP值或者超时计时器达到MCPT的超时值T时, 启动发包;否则,继续将ATM信元写入缓存中。启动发包流程后,由于需要将具有相同PW出 口的多个ATM信元组成一个ATM载荷从同一个PW出口发出,本实施例中采用环回的方式 依次取ATM信元,每次环回的份数都为1。每环回一次从队列中取出一个ATM信元,取信元 时为确保以存放顺序依次取出,防止其它引擎操作该队列,需要申请互斥信号量,将该队列 semTake上锁,信元取出后,需要释放互斥信号量,将该队列semGive解锁,并将信元添加到 ATM载荷的尾部。如果ATM载荷内的信元数量达到MNCP值或队列为空则将ATM载荷从相应 的PW出口按照预定的顺序转发出去,否则则继续环回,将信元添加到ATM载荷的尾部,直到 满足上述发送条件后,将重组后的ATM载荷从PW出口发送出去。综上所述,应用本发明的方法及装置,可以在普通的网络处理器上实现复杂的多 信元缓存和组合的功能,从而实现多信元电路仿真技术,可以让整个系统设计的复杂度大大降低,同时降低系统成本,加之网络处理器本身的灵活、转发能力强的优点,可灵活的支 持多种AAL (ATM适配层)业务及QoS (质量服务)。 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种实现异步传输模式多信元封装电路仿真的方法,其特征在于,包括步骤A、提取进入到网络处理器的异步传输模式ATM信元的属性,确定每个ATM信元的出口并通过硬件锁锁住相应的出口;B、将具有相同出口的ATM信元依次缓存在相同队列中;C、在所述队列达到预设的发包条件时,解锁相应的出口,将所述队列中的ATM信元取出组成ATM载荷后通过所述出口转发出去。
2.如权利要求1所述的方法,其特征在于,所述步骤A中,按照ATM信元的属性通过查 出口表确定每个ATM信元的出口。
3.如权利要求1所述的方法,其特征在于,所述预设的发包条件为队列中的ATM信元 数达到最小信元打包数或者超时计时器达到最大信元打包计时器的超时值。
4.如权利要求1所述的方法,其特征在于,将所述队列中的ATM信元取出组成ATM载荷 的具体过程为采用环回方式从所述队列中依次取出ATM信元组成ATM载荷,取信元时拒绝其他引擎 访问该队列,信元取出后允许其他弓I擎访问该队列,在所述ATM载荷内的ATM信元数量达到 最小信元打包数或所述队列为空时,将所述ATM载荷从所述出口顺序发送出去。
5.如权利要求4所述的方法,其特征在于,所述取信元时,申请互斥信号量,将所述队 列上锁,此时拒绝其他引擎访问该队列;信元取出后,释放互斥信号量,将所述队列解锁,此 时允许其他引擎访问该队列。
6.一种实现异步传输模式多信元封装电路仿真的网络处理器,其特征在于,包括 微码模块,用于提取进入到网络处理器的异步传输模式ATM信元的属性,确定每个ATM信元的出口并通过硬件锁锁住相应的出口,在所述队列达到预设的发包条件时,解锁相应 的出口,将所述队列中的ATM信元取出组成ATM载荷后通过所述出口转发出去; 缓存模块,用于将具有相同出口的ATM信元依次缓存在相同队列中。
7.如权利要求6所述的网络处理器,其特征在于,还包括计数器模块,用于为缓存模块中缓存的队列分配对应的队列指针,并为每个队列指针分配互斥信号量。
8.如权利要求6或7所述的网络处理器,其特征在于,所述微码模块按照ATM信元的属 性通过查出口表确定每个ATM信元的出口。
9.如权利要求6所述的网络处理器,其特征在于,所述预设的发包条件为队列中的 ATM信元数达到最小信元打包数或者超时计时器达到最大信元打包计时器的超时值。
10.如权利要求7所述的网络处理器,其特征在于,所述微码模块采用环回方式从所述 缓存模块内的队列中依次取出ATM信元组成ATM载荷,取信元时申请互斥信号量拒绝其他 引擎访问该队列,信元取出后释放互斥信号量允许其他引擎访问该队列,在所述ATM载荷 内的ATM信元数量达到最小信元打包数或所述队列为空时,将所述ATM载荷从所述出口顺 序发送出去。
全文摘要
本发明公开了一种实现ATM多信元封装电路仿真的方法及网络处理器,用以解决现有技术中网络处理器没有FIFO机制无法实现对ATM多信元封装的问题。所述方法包括提取进入到网络处理器的异步传输模式ATM信元的属性,确定每个ATM信元的出口并通过硬件锁锁住相应的出口;将具有相同出口的ATM信元依次缓存在相同队列中;在所述队列达到预设的发包条件时,解锁相应的出口,将所述队列中的ATM信元取出组成ATM载荷后通过所述出口转发出去。所述网络处理器包括微码模块及缓存模块。采用本发明可以在普通的网络处理器上实现复杂的多信元缓存和组合的功能,可灵活的支持多种AAL业务及QoS。
文档编号H04L12/54GK101984609SQ20101055690
公开日2011年3月9日 申请日期2010年11月24日 优先权日2010年11月24日
发明者闫学涛, 黄治文 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1