Dsl系统中对以太网数据包进行分段处理的装置的制作方法

文档序号:7593762阅读:213来源:国知局
专利名称:Dsl系统中对以太网数据包进行分段处理的装置的制作方法
技术领域
本发明涉及一种异步传输模式(Asynchronous Transfer Mode,ATM)网络系统和以太网(Ethernet)系统需要互联的通信系统中,比如DSL系统,对数据包进行分段处理的装置,尤其涉及一种对以太网数据包进行分段处理的装置。
背景技术
现有的ADSL Modem主要都是以ATM接口(UTOPIA接口)与上层设备相联,因此要实现IPDSLAM的混插(ADSL和VDSL)设备,最大的问题是要实现ATM和以太网网络间的桥接及实现大量的协议,如图1所示的,ATM与以太网互联示意框图。
较好的方式是在线卡上实现ATM到以太网的桥接,以便实现分段和重组(Segment and Reassembly,SAR)处理的分担并降低接入成本。
ATM是一种基于信元的传输模式,不同长度的用户数据(包)信息可以分割成固定长度(53个字节)的信元,反之,固定长度的信元可以重组成不同长度的用户数据。
ATM适配层5(Adaptation Layer type 5,AAL5)可以在同一个网络系统中提供点到点之间的虚连接,这些虚连接可以提供包数据的传输服务。AAL5是一个高效的数据业务传输适配协议,它的SAR子层可以将来自通用会聚子层协议数据单元(CPCS-PDU)的信息分成48字节的单位,装入SAR的数据单元(SAR-PDU),而不增加任何开销。同时利用ATM信头中的PTI域来指示SAR-PDU的开始、中间和结束。AAL5的通用会聚子层协议数据单元(CPCS-PDU)的格式如图2所示,其中CPCS-PDU是由一个一个长度为48字节的SAR-PDU组成的。AAL5协议的CPCS子层按照图2,实现将数据包封装成AAL5的通用会聚子层协议数据单元(CPCS-PDU)的过程,AAL5的SAR子层的分段部分将通用会聚(CPCS)子层生成的通用会聚子层协议数据单元(CPCS-PDU)拆装成一个一个的信元。信元为ATM网络数据传输的单位,一般为53个字节,前面5个字节为含有路由标志以及其他标志的信元头。以上实现方式可以参考协议I.363.5和I.361。
RFC2684协议介绍了两种封装方法来实现基于AAL5来承载网络互连业务。可以在一个AAL5的虚连接电路(Virtual Circuits,VC)上面承载不同的协议,也可以在一个AAL5的虚连接上承载一种特定的协议。本发明的系统采用第一种方法。
由于DSL系统中,ATM的每条链路速率很低,ADSL的每条线路的速率为上行1Mbps下行8Mbps,常用的实现方法是多条ADSL线路复用一个SAR处理器。
现有技术包括以往的专利有对多路ADSL线路复用一个SAR处理器整个框架的介绍,有对分段算法的介绍,有对封装协议的介绍,但是具体实现并没有给出硬件电路的实现方法,而且也没有对于封装以太网包进行多播的实现技术的公开。
由此,现有技术还有待于改进和发展,同时本发明所涉及的缩略语如下AALATM Adaptation Layer的缩写,是ATM的适配层,包括拆装子层SAR和会聚子层CS。有AAL1-AAL5几种类型。
SARSegmentation and Reassembly的缩写,为ATM的分段和重组子层。
AAL5AAL type 5,是AAL的一种类型,为高效数据业务传输适配协议。
ATM-SDUATM Service Data Unit的缩写,ATM的服务数据单元,一般为48字节。
CPCSCommon Part Convergence Sublayer,通用会聚子层,为AAL的SAR上面一子层。
CPCS-PDUCPCS Protocol Data Unit,CPCS协议数据单元。
CPCS-SDUCPCS Service Data Unit,CPCS服务数据单元。

发明内容
发明的目的在于提供一种DSL系统中对以太网数据包进行分段处理的装置,通过集成64条连接的ATM适配层5的用硬件实现I.363.5协议中分段(Segment)的方法,同时通过添加RFC2684头实现RFC2684网桥功能,配合实现以太网协议的多播/广播的功能。
本发明的技术方案如下一种DSL系统中对以太网数据包进行分段处理的装置,其由硬件电路实现,该硬件电路包括包消息处理和存储模块、端口循环优先级的分段调度模块、分段参数存储区模块、分段核心处理模块;所述包消息处理和存储模块按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储;所述分段核心处理模块将以太网帧封装成带有RFC2684头的ATM的数据包,然后拆分成一个个的信元送给UTOPIA接口,每个端口送出去一个信元就处理下一个端口,每次只处理一个信元,直到符合条件的端口全部处理完一个信元后,才开始下一轮处理,并将参数存在一个双口的RAM的分段参数存储区模块中;所述分段调度模块根据UTOPIA一侧端口FIFO的占用情况以及以太网侧送来的包消息的存储FIFO情况,来轮询调度出下一个要分段的端口号,发给所述分段核心处理模块处理。
所述装置,其中,所述装置的分段核心处理模块调度采用循环优先级的策略,上电复位正常工作以后,从端口0开始,判断UTOPIA接口各个端口的信元FIFO是否可以接收信元标志,和消息处理模块送来的每个端口的消息FIFO是否为“空”标志,如果是,那么将要调度出来的下一个端口就为0,否则判断1端口,依次类推,如果到最后一个端口依然都没准备好,那么就回到第0个端口开始,继续判断直到得到一个准备好的端口,发给分段核心处理模块,进行分段处理。
所述的装置,其中,所述端口判断实现的时候,以4个端口为1组,64个端口共分为16组,对应一个状态机的16个状态,根据当前的端口号选择进入状态机的哪个状态,本状态的4端口全部判断完以后,跳入下一个状态,直到到达最后一个状态,然后跳到初始的状态。
所述的装置,其中,所述装置还包括一分段超时检测模块,以及为每个端口设置有一个超时检测定时器,如果ATM侧的物理端口长时间不能接收信元,超过了所述超时检测定时器设定的阈值,则该端口对应的缓冲区里面待发的包全部丢弃,以释放缓冲区。
所述的装置,其中,所述装置在实现I363.5协议所列分段算法的基础上,同时在以太网的数据前添加十个字节的数据,以实现RFC2684协议的封装。
所述的装置,其中,所述装置还设置有一多播表模块,用来存放多播包的发送信息,当多播包全部发往所有的目的端口后,释放这个包占用的缓冲区;所述多播表由包消息处理和存储模块根据外面送来的要发往的端口号来初始配置,同时,所述分段核心处理模块每处理发送完一个数据包也要更新相应的该多播表的表项内容,对应缓冲区索引号这个表项,对表项存储的发送次数减去1。
所述的装置,其中,所述装置包括64个端口,每个端口可存储64条消息,以处理最大64个包的突发业务。
所述的装置,其中,所述包消息处理和存储模块按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储,用FIFO实现。
本发明所提供的一种DSL系统中对以太网数据包进行分段处理的装置,与现有技术相比,因为是用硬件电路实现,一个处理器同时处理64条连接,在分段处理效率上有了显著的提高;同时,用硬件实现了RFC2684协议的封装,以及以太网多播和广播包的实现,大大提高了效率;采用了超时检测技术,提高共享缓冲区的利用效率。


图1为现有技术的ATM到以太网连接装置的系统示意图,示出了在ATM网络和以太网网络中封装一个RFC2684协议同时进行互联,实现网桥功能;图2为ATM适配层5的通用会聚子层协议数据单元(CPCS-PDU)的数据格式示意图,其中示出了CPCS-PDU的净荷即通用会聚子层协议服务单元(CPCS-SDU)为封装了10个字节RFC2684头的以太网数据包,为了符合信元的数据长度,填充一定长度的PAD,为了完成CPCS-PDU的封装格式,在尾部填充8个字节,其中,有意义的是长度域和循环冗余校验码CRC;图3为本发明的DSL系统中对以太网数据包进行分段处理的装置的结构框图,其中包含了所有的模块以及模块之间的数据流;图4示出了本发明的DSL系统中对以太网数据包进行分段处理的装置的分段核心处理模块存储参数RAM的格式示意图,其中包含了处理中需要暂时保存的数据;图5为本发明的64端口循环优先级调度示意图;图6为本发明的DSL系统中对以太网数据包进行分段处理的装置中多播表的格式示意图。
具体实施例方式
本发明所述的DSL系统中对以太网数据包进行分段处理的装置,是完全由硬件电路实现的,其包括包消息处理和存储模块、64端口循环优先级调度模块、分段参数存储区模块、分段超时检测模块、分段核心处理模块以及多播表模块等几个模块组成。
其实现的过程详细描述如下1、上层的以太网模块将希望本装置发送的以太网数据帧在缓冲区中的存储位置以及要发往那个端口(如果是多播,则是哪些端口)的信息送给消息处理模块,消息处理模块再根据端口号存到相应的缓冲区(用FIFO来实现)中。
2、轮询调度模块根据消息处理模块送来的每个端口对应的消息FIFO的空满标志,以及ATM的物理(PHY)接口一侧送来的是否可以发送数据的标志,采用循环优先级的算法,从0端口开始,调度出第一个端口。将这个端口送给分段核心处理模块。
3、分段核心处理模块接到轮询调度模块送来的处理端口号,去消息处理模块对应端口的消息FIFO中将第一个等待处理的数据包的缓冲区索引index读出来,然后向外部发出读缓冲区的申请,一次申请的字节数可以灵活。分段核心处理模块同时完成信元头的生成工作,读此端口的配置VPI和VCI,然后将生成的信元头发给PHY接口UTOPIA模块。信元头以后的数据先发送10个字节的RFC2684头,然后再将从DMA读出的数据发给UTOPIA模块,不断发送,直到整个信元结束。这是CPCS-PDU的第一个信元。
4、分段核心处理模块将上面处理的包的缓冲区index、长度以及已经发送的字节数存到参数RAM里面。等待下一个端口的处理。
5、同时,轮询调度模块在调度出一个端口后,继续根据条件满足情况调度下一个端口,采用循环优先的算法。再将下一个满足的端口发送给分段核心模块,这样按照方法3的处理,分段核心模块继续从DMA里面取数据,继续生成下一个信元发给UTOPIA接口。
6、在一个数据包快结束的那个信元里面,分段核心处理模块将生成CPCS-PDU的尾部8个字节,填入信元数据的后8个字节,同时信元头的UU域为1,显示CPCS-PDU的结束标志。
7、本发明在分段数据处理模块设一个多播表,以太网包在缓冲区的索引为索引用来记录这个缓冲区里面存储的包需要发送的次数,发往各个端口的信息存储在消息FIFO里面。每发送一次这个包,多播表里面的值减1,如果发现这个值减为0,那么说明这个包已经按照要求发往所有需要的端口。
本发明可以广泛地应用于DSL系统中需要ATM和以太网互联的通信设备中。另外,如果封装其他的通信协议,也可以在CDMA和3G等更广泛的通信领域中进行应用。
本发明装置的原理框图如图3所示。
在图3中,本发明的实现装置可以划分为包消息处理和存储模块、64端口循环优先级调度模块、分段参数存储区模块、分段超时检测模块、分段核心处理模块以及多播表模块。
由于以太网送来的MAC包可能不能及时处理,所以必须按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储,用FIFO实现。本发明按照端口来存储消息,64个端口,每个端口可以存储64条消息,这样就可以处理最大64个包的突发业务。包消息处理和存储模块实现这个功能。
分段核心处理子模块负责将以太网帧封装成带有RFC2684头的ATM的数据包,然后拆分成一个个的信元送给UTOPIA接口。按照协议I.363.5,本模块实现AAL5的分段。为了提高效率,本发明的分段模块同时处理64个端口。每个端口送出去1个信元就处理下一个端口,每次只处理1个信元,直到符合条件的端口全部处理完1个信元后,才开始下一轮处理。
这种实现方式要相对公平,一个PHY不响应,不会影响分段模块的工作。缺点是要存储很多参数,参数的提取也要时间,在处理单个端口的情况时效率可能相对较低。
由于端口很多,又是交错进行分段,这样必须要保存很多中间变量。将参数存在一个双口的RAM里面,这样读写可以同时进行,提高效率。参数RAM的格式见图4所示。
本发明的分段调度子模块完成的功能是根据UTOPIA一侧端口FIFO的占用情况以及以太网侧送来的包消息的存储FIFO情况,来轮询调度出下一个要分段的端口号,发给分段数据处理子模块处理。
调度采用循环优先级的策略,上电复位正常工作以后,从端口0开始,判断uto_tx_fifo_ready(UTOPIA接口各个端口的信元FIFO是否可以接收信元标志,共64位,每一位对应一个端口)是否为1和que_fifo_empty(消息处理模块送来的每个端口的消息FIFO是否为“空”标志,共64位,每一位对应一个端口)是否为0,如果是,那么将要调度出来的下一个端口next_port就为0,否则判断1端口,依次类推,如果到最后一个端口依然都没准备好,那么就回到第0个端口开始,继续判断直到得到一个准备好的端口,发给分段核心处理模块,进行分段处理。
实现的时候,本发明以4个端口为1组,64个端口共分为16组,对应一个状态机的16个状态,根据当前的端口号选择进入状态机的哪个状态,本状态的4端口全部判断完以后,跳入下一个状态,直到到达最后一个状态,然后跳到初始的状态。具体实现如图5所示。假设当前端口是5,那么状态跳到2,从5以后的6端口开始比较,看看UTOPIA一侧的信元FIFO是否可用,同时消息队列里是不是有消息,如果没有,比较端口7,如果7端口也不符合条件,跳到状态3,比较8,9,10,11,依次类推,直到找到下一个要处理的端口为止。这样可以大大提高效率,同时节省硬件资源。
本发明也包含分段超时检测模块。本发明为每个端口设一个超时检测定时器,如果ATM侧的物理端口长时间不能接收信元,超过了超时检测定时器设定的阈值,那么将这个端口对应的缓冲区里面待发的包全部丢弃,以释放缓冲区。这在多个端口共用包存储缓冲区时,可以提高缓冲区的利用率。
本发明在实现了I363.5协议所列分段算法的基础上,同时在以太网的数据以前添加了AA-AA-03-00-80-C2-00-01(或者00-07)-00-00十个字节的数据,实现了RFC2684协议的封装。
多播的实现假设外面有1k个数据包的共享缓冲区,每个2048字节空间,那么需要一个1024×4bit的表,用来存放多播包的发送信息,当多播包全部发往所有的目的端口后,将释放这个包占用的缓冲区。这个表可以用Block_Ram来实现,容量是512bytes。表的格式见图6所示。包消息处理和存储模块根据外面送来的要发往的端口号(可以为多个)来初始配置这个多播表,同时,分段核心处理模块每处理发送完一个数据包也要更新相应的表项内容,对应缓冲区索引号这个表项,对表项存储的发送次数减去1。如果分段核心模块读出这个缓冲区索引号对应的表项内容为1,那么就申请释放相应的缓冲区,完成多播。
权利要求
1.一种DSL系统中对以太网数据包进行分段处理的装置,其由硬件电路实现,该硬件电路包括包消息处理和存储模块、端口循环优先级的分段调度模块、分段参数存储区模块、分段核心处理模块;所述包消息处理和存储模块按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储;所述分段核心处理模块将以太网帧封装成带有RFC2684头的ATM的数据包,然后拆分成一个个的信元送给UTOPIA接口,每个端口送出去一个信元就处理下一个端口,每次只处理一个信元,直到符合条件的端口全部处理完一个信元后,才开始下一轮处理,并将参数存在一个双口的RAM的分段参数存储区模块中;所述分段调度模块根据UTOPIA一侧端口FIFO的占用情况以及以太网侧送来的包消息的存储FIFO情况,来轮询调度出下一个要分段的端口号,发给所述分段核心处理模块处理。
2.根据权利要求1所述装置,其特征在于,所述装置的分段核心处理模块调度采用循环优先级的策略,上电复位正常工作以后,从端口0开始,判断UTOPIA接口各个端口的信元FIFO是否可以接收信元标志,和消息处理模块送来的每个端口的消息FIFO是否为“空”标志,如果是,那么将要调度出来的下一个端口就为0,否则判断1端口,依次类推,如果到最后一个端口依然都没准备好,那么就回到第0个端口开始,继续判断直到得到一个准备好的端口,发给分段核心处理模块,进行分段处理。
3.根据权利要求2所述的装置,其特征在于,所述端口判断实现的时候,以4个端口为1组,64个端口共分为16组,对应一个状态机的16个状态,根据当前的端口号选择进入状态机的哪个状态,本状态的4端口全部判断完以后,跳入下一个状态,直到到达最后一个状态,然后跳到初始的状态。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括一分段超时检测模块,以及为每个端口设置有一个超时检测定时器,如果ATM侧的物理端口长时间不能接收信元,超过了所述超时检测定时器设定的阈值,则该端口对应的缓冲区里面待发的包全部丢弃,以释放缓冲区。
5.根据权利要求4所述的装置,其特征在于,所述装置在实现I363.5协议所列分段算法的基础上,同时在以太网的数据前添加十个字节的数据,以实现RFC2684协议的封装。
6.根据权利要求5所述的装置,其特征在于,所述装置还设置有一多播表模块,用来存放多播包的发送信息,当多播包全部发往所有的目的端口后,释放这个包占用的缓冲区;所述多播表由包消息处理和存储模块根据外面送来的要发往的端口号来初始配置,同时,所述分段核心处理模块每处理发送完一个数据包也要更新相应的该多播表的表项内容,对应缓冲区索引号这个表项,对表项存储的发送次数减去1。
7.根据权利要求6所述的装置,其特征在于,所述装置包括64个端口,每个端口可存储64条消息,以处理最大64个包的突发业务。
8.根据权利要求7所述的装置,其特征在于,所述包消息处理和存储模块按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储,用FIFO实现。
全文摘要
本发明的一种DSL系统中对以太网数据包进行分段处理的装置,涉及一种异步传输模式网络系统和以太网系统需要互联的通信系统中对数据包进行分段处理的装置,该装置由硬件电路实现,该硬件电路包括包消息处理和存储模块、端口循环优先级的分段调度模块、分段参数存储区模块、分段核心处理模块;所述包消息处理和存储模块按照每个端口把以太网包的存储缓冲区索引号以及包的长度信息进行存储。本发明装置在分段处理效率上有了显著的提高;同时,用硬件实现了RFC2684协议的封装,以及以太网多播和广播包的实现,大大提高了效率;采用了超时检测技术,提高了共享缓冲区的利用效率。
文档编号H04L12/66GK1764147SQ200410051930
公开日2006年4月26日 申请日期2004年10月22日 优先权日2004年10月22日
发明者张艳红, 史洪波, 娄本刚, 黄智 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1