CN101692647B - 路由器中采用IPv6头封装IPv4包的隧道转发*** - Google Patents
路由器中采用IPv6头封装IPv4包的隧道转发*** Download PDFInfo
- Publication number
- CN101692647B CN101692647B CN2009100935323A CN200910093532A CN101692647B CN 101692647 B CN101692647 B CN 101692647B CN 2009100935323 A CN2009100935323 A CN 2009100935323A CN 200910093532 A CN200910093532 A CN 200910093532A CN 101692647 B CN101692647 B CN 101692647B
- Authority
- CN
- China
- Prior art keywords
- output
- input
- circuit
- links
- bag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 334
- 238000012423 maintenance Methods 0.000 claims abstract description 24
- 230000003068 static effect Effects 0.000 claims abstract description 5
- 238000005538 encapsulation Methods 0.000 claims description 47
- 239000000284 extract Substances 0.000 claims description 23
- 230000009191 jumping Effects 0.000 claims description 22
- 238000001914 filtration Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 claims description 3
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 16
- 230000005641 tunneling Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 abstract description 7
- 230000009466 transformation Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000002203 pretreatment Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000288673 Chiroptera Species 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
路由器中采用IPv6头封装IPv4包的隧道转发***属于IPv6路由器技术领域,其特征在于,它由一片FPGA实现的隧道处理电路和两片级联的CAM、两片单端口SRAM和一片双端口SRAM及CPU控制单元构成,最大支持64K*288bits的V6路由表项,时钟频率为100MHZ时,保证3.2Gbit/s的线速转发。利用CAM构造路由查找表,支持表项条数的动态分配,同时还负责路由表读写及维护。***接收的IP数据包若是V4包,给V4包加一个V6包头成为V6隧道包;若是V6数据包,就不转换。然后提取包的查找信息,进行路由查找,根据返回的结果,对包进行处理:按照V4或V6转发、上交CPU处理、丢弃。
Description
技术领域
路由器中采用IPv6头封装IPv4包的隧道转发***属于下一代互联网IPv6高性能核心路由器技术领域。
背景技术
IPv6协议解决了IPv4协议地址枯竭、安全性不足以及移动性差等问题。从IPv4过渡到IPv6是一个渐进而漫长的过程,两者将共存相当长时间。随着IPv6的大规模发展,出现纯IPv6主干网络,IPv6上引入大量业务。因为IPv6与IPv4协议的不兼容性,已有的网络用户迁移到纯IPv6网络后,将无法与资源丰富的IPv4网络互联。这使得原IPv4网络的用户和资源迁移到IPv6网络的过程十分缓慢,导致已建成的纯IPv6网络使用率不高。为了推动IPv4-IPv6网络的过渡,急需一种可以实现IPv4和IPv6网络互访,IPv4数据包经IPv6网络传输的隧道技术或者协议转换技术。
目前采用IPv4协议封装IPv6报文的隧道技术应用较广,也较成熟,而IPv6协议封装IPv4报文的隧道技术则不够成熟,目前采用IPv6头封装IPv4报文的隧道技术还没有统一的国际标准,市场上一些采用IPv6头封装IPv4报文的隧道技术大部分是用软件实现的,封装的体系结构各不相同,速度低,不能满足高速网络的实际应用需要。
本发明实现路由器中采用IPv6头封装IPv4包的隧道转发,解决IPv4网络通过纯IPv6主干网络实现互联的问题,方法简单、高效,达到3.2Gbit/s的封装和转发速度。
FPGA(Field Programmable Gate Array)是上世纪80年代末开始使用的大规模可编程数字集成电路器件。它充分利用计算机辅助设计技术进行器件的开发与应用。用户借助于计算机不仅能自行设计专用集成电路芯片,还可在计算机上进行功能仿真和实时仿真,及时发现问题,调整电路,改进设计方案。这样,设计者不必动手搭接电路、调试验证,只须在计算机上操作很短的时间,即可设计出与实际***相差无几的理想电路。而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此,成为科研产品开发及其小型化的首选器件,其应用极为广泛。
CAM(Content Addressable Memory)是一种特殊的存储器,它将输入数据与CAM中存储的所有数据项同时进行并行比较,迅速判断输入数据是否与CAM中存储的数据项匹配,并给出数据项对应地址和匹配信息。CAM是目前使用最多的实现快速路由查找的器件,CAM能够在有限的几个硬件时钟周期内完成关键字的精确匹配查找,如果采用流水线操作,每个时钟周期输入一个查找的关键字,则CAM能在每个硬件时钟周期流水输出一个查找结果。
TCAM(Ternary Content Addressable Memory)也是一种CAM,但它的每个存储位有三种状态:0、1或X(不关心),每一个表项都包含数值比特串和掩码比特串,因此可以用来确定最长前缀匹配。
发明内容
本发明目的在于提供一种路由器中采用IPv6头封装IPv4包的隧道转发***,具体实现采用FPGA和CAM技术。采用本发明的路由器可以连接IPv6主干网和IPv4孤岛,实现IPv4孤岛之间通过IPv6主干网的透明传输。
本发明的特征:
含有:一个集成于FPGA芯片上的隧道处理电路、SRAM单端口存储器、SRAM双端口存储器、CAM内容可寻址存储器以及CPU控制单元,其中:
所述的隧道处理电路,含有:IP包输入接口电路、包过滤电路、包输入队列存储器FIFO、IPv6协议封装电路、IPv6包队列存储器FIFO、包相关信息提取电路、检索指令队列存储器FIFO、CAM控制电路、检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO、IPv6数据包存储器RAM、包发送电路、CAM维护指令队列存储器FIFO、第0个上交包队列存储器FIFO、第1个上交包队列存储器FIFO、上交包发送电路、以及CPU接口电路,其中:
IP包输入接口电路,输入端接收上级物理和数据链路层处理电路输出的数据就绪信号和数据总线信号,输出读信号给上级物理和数据链路层处理电路,所述IP包输入接口电路数据输出端和包过滤电路的输入端相连,对输入输出的IPv4和IPv6包头信号和包尾信号分别进行计数,将包头包尾计数输出信号发送给CPU接口电路,并接收CPU接口电路输入的复位信号和计数器清零信号;
包过滤电路,输入端和IP包输入接口电路相连,还分别和第0个上交包队列存储器FIFO、包输入队列存储器FIFO输出快满信号相连,输出端分别和第0个上交包队列存储器FIFO的输入端、包输入队列存储器FIFO的输入端相连,对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
包输入队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,输入端与上述包过滤电路的IP包输出端相连,读信号来自IPv6协议封装电路,复位信号来自CPU接口电路;
IPv6协议封装电路,输入端和所述包输入队列存储器FIFO相连,输出端和IPv6包队列存储器FIFO相连,此外输入端还接收IPv6包队列存储器FIFO输出的快满信号,IPv6协议封装电路对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
IPv6包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为40位,数据输入端与上述IPv6协议封装电路相连,读输入信号和包相关信息提取电路的读输出相连,输出端和包相关信息提取电路相连,复位信号来自CPU接口电路;
包相关信息提取电路,输入端和IPv6包队列存储器的输出端相连,输出端分别和检索指令队列存储FIFO、IPv6数据包存储器RAM、IPv6数据包相关信息队列存储器FIFO相连,对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
检索指令队列存储器FIFO,是一个先进先出队列存储器,数据宽度为100位,数据输入端与上述包相关信息提取电路相连,读输入信号和CAM控制电路的读输出相连,数据输出端和CAM控制电路相连;
CAM控制电路,输入端分别和检索指令队列存储器FIFO输出端、CAM维护指令队列存储器FIFO输出端相连,CAM控制电路输出的CAM存储器读写控制命令总线信号以及双向数据请求总线REQDATA信号和CAM存储器相连,CAM控制电路和SRAM单端口存储器的数据总线相连,CAM控制电路输入端还和CAM存储器输出的读确认信号、查找匹配信号、查找输出有效信号相连,CAM控制电路输出的检索信息输出端和检索结果队列存储器FIFO相连,此外CAM控制电路的读信号分别和检索指令队列存储器FIFO的读输入端、CAM维护指令队列存储器FIFO读输入端相连,CAM控制电路输出端和CPU接口电路相连,将路由表保存的表项发送给CPU接口电路,CAM控制电路对IPv6路由查询次数和查询命中的信息进行计数,将这些信息作为查询状态信息发送给CPU接口电路,并接收CPU接口电路输入的复位信号和计数器清零信号;
检索结果队列存储器FIFO,是一个先进先出队列存储器,数据宽度为148位,数据输入端与CAM控制电路的输出相连,读输入信号和包发送电路的读输出相连,数据输出端和包发送电路的输入端相连;
IPv6数据包相关信息队列存储器FIFO,是一个先进先出队列存储器,数据宽度为60位,数据输入端与上述包相关信息提取电路相连,读输入信号和包发送电路的读输出相连,数据输出端和包发送电路相连;
CAM维护指令队列存储器FIFO,是一个先进先出队列存储器,数据宽度为90位,数据输入端和CPU接口电路相连,读输入信号和CAM控制电路输出的读信号相连,数据输出端和CAM控制电路的数据输入端相连;
包发送电路,分别向检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO发出读信号,并和检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO的输出端相连,包发送电路输出的读信号、读地址和IPv6数据包存储器RAM相连,IPv6数据包存储器RAM的数据输出端和包发送电路相连,包发送电路的输出还和第1个上交包队列存储器FIFO以及FPGA片外的上行FIFO相连,包发送电路对输入输出的IPv4、IPv6包头信号和包尾信号分别进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
IPv6数据包存储器RAM是一个双端口的FPGA片内读写存储器,有一个数据写入端口和一个数据输出端口,数据写入端口和包相关信息提取电路的IPv6数据输出端相连,读端口的所有信号和包发送电路相连,IPv6数据包存储器RAM数据宽度为36位,读写端口分别有14根地址线;
第0个上交包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,数据输入端与上述包过滤电路相连,读输入信号和上交包发送电路的读输出相连,数据输出端和上交包发送电路相连;
第1个上交包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,数据输入端与包发送电路相连,读输入信号和上交包发送电路的读输出相连,数据输出端和上交包发送电路相连;
上交包发送电路,输入端和第0个上交包队列存储器FIFO、第1个上交包队列存储器FIFO相连,数据输出端和SRAM双端口存储器的数据输入端相连,上交包发送电路发送的CPU中断信号、SRAM双端口存储器数据起始地址和终止地址、SRAM双端口存储器中待传送数据的长度信号输出端和CPU接口电路相连,CPU接口电路将CPU响应信号输出给上交包发送电路的输入端,上交包发送电路对输入输出的IPv4、IPv6包头信号和包尾信号分别进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
CPU接口电路,和由FPGA实现的隧道处理电路内部各个电路相连,接收各个电路输入的IPv4、IPv6输入输出包头信号和包尾信号计数,以及CAM控制电路的查询状态计数,CPU接口电路与FPGA片外CPU控制单元的CPU地址总线、数据总线、读写控制信号相连,输出的中断信号和CPU控制单元的中断输入相连,CPU接口电路还和SRAM双端口存储器数据输出端口的地址总线、数据总线、读写控制信号相连,CPU接口电路接收CPU控制单元输入的复位信号,并将复位信号传送给FPGA内的其它各个电路,将清零信号传送给IP包输入接口电路、包过滤电路、IPv6协议封装电路、包相关信息提取电路、CAM控制电路、上交包发送电路、包发送电路,CPU接口电路还和CAM维护指令队列存储器FIFO的数据输入端相连,接收CAM控制电路输出的路由表表项数据,接收上交包发送电路输出的SRAM双端口存储器数据起始地址和终止地址、SRAM双端口存储器中待传送数据的长度以及中断请求信息,也向上交包发送电路发送CPU中断响应指示信号;
所述包过滤电路是一个电路组件,其中:输入IP包数据寄存器,输入端和IP包输入接口电路的输出端相连;输入IP包数据寄存器的输出端分别和IPv4数据包寄存器、IPv6数据包寄存器相连;IPv4数据包寄存器的输出端分别和IPv4数据包延迟寄存器组、IPv4包头校验和寄存器、生存时间寄存器、包类型寄存器、状态控制机的输入端相连,同时也接收状态控制机的输出;IPv4数据包延迟寄存器组的输出端和数据选择器A的输入端相连;IPv4数据包头校验和生成器的输入端分别和IPv4头校验和寄存器输出、生存时间更新寄存器输出相连;生存时间寄存器的输出端和减一减法器A的输入端以及状态控制机的输入端相连,减一减法器A的输出端和生存时间更新寄存器的输入端相连,生存时间更新寄存器的输出端分别和IPv4数据包头校验和生成器、状态控制机相连;数据选择器A的输入端又分别和IPv4数据包延迟寄存器组的输出端、IPv4数据包头校验和生成器的输出端以及状态控制机的输出端相连,数据选择器A的输出端和更新后的IPv4数据包寄存器输入端相连;
IPv6数据包寄存器的输出端分别和IPv6数据包延迟寄存器组、跳数寄存器、下一个头寄存器、IPv6目的地址寄存器、状态控制机的输入端相连,同时也接收状态控制机的输出;跳数寄存器的输出端和减一减法器B的输入端相连以及状态控制机相连,跳数更新寄存器的输出端还和状态控制机相连;减一减法器B的输出端和跳数更新寄存器的输入端相连;数据选择器B的输入端分别和IPv6数据包延迟寄存器组、跳数更新寄存器、状态控制机的输出端相连,数据选择器B的输出端和更新后的IPv6数据包寄存器输入端相连;下一个头寄存器的输入端和IPv6数据包寄存器的输出端相连,输出端和状态控制机相连;IPv6目的地址寄存器的输出端和比较器的输入端相连,比较器的另一个输入端和本路由器IPv6地址寄存器输出端相连;比较器的输出端和状态控制机的输入端相连;本路由器IPv6地址寄存器输入端和CPU接口电路的输出相连;
数据选择器C的输入端分别和更新后的IPv4数据包寄存器、更新后的IPv6数据包寄存器的输出端相连、状态控制机以及包输入队列存储器FIFO的快满信号相连,数据选择器C的输出端分别和第0个上交包队列存储器FIFO、包输入队列存储器FIFO相连,同时数据选择器C的包头信号和包尾信号输出端也和计数器的输入端相连;计数器接收CPU接口电路输出的计数器清零信号,并将包头包尾信号计数信号传送给CPU接口电路的输入端;
所述IPv6协议封装电路是一个电路组件,其中:包输入队列存储器FIFO接口电路,数据输入端和包输入队列存储器FIFO的数据输出端相连,输出的读信号和包输入队列存储器FIFO的读输入信号相连,控制输入输出端和状态控制机电路相连;IPv4包头数据寄存器,输入端和包输入队列存储器FIFO接口电路输出端以及状态控制机电路输出端相连,一个输出端和IPv4包头转IPv6隧道包头电路相连,另一个输出端和多路数据选择器电路输入端相连;IPv4负载数据寄存器,输入端和包输入队列存储器FIFO接口电路输出端相连,输出端和多路数据选择器电路输入端相连;IPv6数据寄存器,输入端和包输入队列存储器FIFO接口电路的输出端相连,输出端和多路数据选择器电路输入端相连;IPv6隧道包头数据寄存器,输入端和IPv4包头转IPv6隧道包头电路以及状态控制机电路相连,输出端和多路数据选择器电路相连;多路数据选择器电路的输出端和IPv6包队列存储器FIFO的输入端相连;包输入队列存储器FIFO接口电路将接收的数据包头信号和尾信号发送给计数器电路,多路数据选择器电路也把输出的数据包头、包尾信号传送给计数器电路,计数器电路输出的输入输出包头包尾信号计数和CPU接口电路的状态计数器值输入端相连,同时接收CPU接口电路输入的计数器清零信号;
所述包相关信息提取电路是一个电路组件,由一系列的电路组成:IPv6包队列存储器接口电路,所述数据输入端和IPv6包队列存储器FIFO相连,输出的读信号和IPv6包队列存储器FIFO的读输入信号相连,控制输入输出端和状态控制机电路相连,输出端和包上交标识寄存器、包优先级寄存器、包源端口编号寄存器、包起始地址寄存器、包终止地址寄存器、包序列号寄存器、包目的地址寄存器、隧道标识寄存器以及包写入RAM电路相连;IPv6包信息发送电路的输入端和所述包上交标识寄存器、包优先级寄存器、包起始地址寄存器、包源端口编号寄存器、包终止地址寄存器、包序列号寄存器相连,控制信息来自于状态控制机,输出端接IPv6数据包相关信息队列存储器FIFO;检索指令发送电路的输入端和包序列号寄存器、包目的地址寄存器、隧道标识寄存器相连,输出端和检索指令队列存储器FIFO相连,控制输入端和状态控制机相连;包写入RAM电路的输出端和IPv6数据包存储器RAM相连,它的控制输入端和状态控制机相连;计数器的输入端分别和IPv6包队列存储器FIFO接口电路的输入包头信号以及输入包尾信号相连,还和包写入RAM电路输出的包头信号和包尾信号相连,同时也和CPU接口电路输入的计数器清零信号相连,输出的包头尾信号计数和CPU接口电路相连;
所述CAM控制电路是一个电路组件,由一系列的电路组成:检索指令队列存储器FIFO接口电路的数据输入端和检索指令队列存储器FIFO输出端相连,输出的读信号和检索指令队列存储器FIFO的读信号相连,并且输出端也和状态控制机互连,接收状态控制机输出的控制信号;CAM写入数据寄存器的输入端和检索指令队列存储器FIFO接口电路、以及CAM维护指令队列存储器FIFO接口电路的输出端相连,输出端和CAM数据总线读写控制电路相连;CAM操作指令发送电路的输入端和检索指令队列存储器FIFO接口电路的输出端、CAM维护指令队列存储器FIFO接口电路的输出端相连,输出端直接和CAM存储器的命令总线INST、LTIN、SEGSEL、GMASK、CRB和请求选通信号REQSTB相连;SRAM写入数据寄存器的输入端和CAM维护指令队列存储器FIFO接口电路输出端,以及检索指令队列存储器FIFO接口电路的输出端相连,输出端和SRAM数据总线读写控制电路输入端相连;SRAM数据总线读写控制电路的输出端和SRAM读出数据寄存器、检索结果寄存器以及SRAM单端口存储器相连,控制信号输入端和状态机输出相连;CPU读出数据寄存器的输入端和CAM读出数据寄存器的输出端、SRAM读出数据寄存器的输出端相连,输出端和CPU接口电路相连;检索结果寄存器的输入端和数据包序列号寄存器的输出端相连,输出端和检索结果队列存储器FIFO相连;数据包序列号寄存器的输入端和检索指令队列存储器FIFO接口电路的输出端以及状态控制机的输出端相连;计数器的输入端和检索结果寄存器的输出端相连,还和CPU接口电路输入的计算器清零信号相连,它输出的查询状态计数输出和CPU接口电路相连;
所述包发送电路是一个电路组件,由一系列的电路组成:IPv6数据包相关信息队列存储器FIFO接口电路,数据输入端和IPv6数据包相关信息队列存储器FIFO的输出端相连,控制输入和输出端与状态机控制电路相连,输出的读信号和IPv6数据包相关信息队列存储器FIFO读输入端相连,输出端分别和包存储起始地址寄存器、包存储终止地址寄存器、包长度寄存器、包优先级寄存器、源端口编号寄存器、包序列号寄存器A的输入端相连;检索结果队列存储器FIFO接口电路,数据输入端和检索结果队列存储器FIFO的输出相连,控制输入和输出端与状态机控制电路相连,输出端分别和包序列号寄存器B、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的输入端相连;位宽为36位的附加数据寄存器组的输入端分别和包优先级寄存器、包长度寄存器、源端口编号寄存器、源线卡编号寄存器、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的数据输出端相连;源线卡编号寄存器的输入来自CPU接口电路;增10加法器,输入端和包存储起始地址的输出相连,输出端与地址寄存器A相连;地址寄存器B的输入端和包存储起始地址的输出相连;增1加法器的输出端分别和IPv6数据包存储器读地址寄存器的输出端、地址寄存器C的输入端相连;多路数据选择器A,输入端分别和地址寄存器A、地址寄存器B、地址寄存器C相连,控制输入端和状态机控制电路的输出相连,输出端和IPv6数据包存储器读地址寄存器的输入端相连;数据比较器A,输入端和包存储终止地址寄存器的输出端以及IPv6数据包存储器读地址寄存器的输出端相连,输出端和状态机控制电路的输入端相连;位宽为36位的IP数据寄存器,输入端和IPv6数据包存储器RAM的数据输出端相连,输出端和多路数据选择器B的输入端相连;多路数据选择器B,数据输入端分别和位宽为36位的附加数据寄存器组的输出端、位宽为36位的IP数据寄存器的输出端相连,输出端和上交数据包寄存器、带附加数据的IPv4或IPv6数据包寄存器的输入端相连;上交数据包寄存器的输出端和第1个上交包队列存储器FIFO的输入端相连;带附加数据的IPv4或IPv6包寄存器的输出端发往与FPGA相连的上行FIFO;带附加数据的IPv4或IPv6包寄存器的还将发送的数据包头信号和包尾信号分别传送给计数器,计数器还和CPU接口电路输入的计数器清零信号相连,计数器输出的包头包尾信号计数信号发送给CPU接口电路;
所述CAM存储器,是***的FPGA片外存储器,读写控制命令总线信号以及数据请求总线REQDATA信号来自CAM控制电路,输出的地址总线信号和读写信号分别与SRAM单端口存储器的地址总线和读写信号相连,输出的读确认信号、查找匹配信号、查找输出有效信号和CAM控制电路输入端相连;
所述SRAM单端口存储器,是***的FPGA片外静态SRAM存储器,读写输入信号和地址信号来自CAM存储器的输出,数据输入输出端和CAM控制电路相连;
所述SRAM双端口存储器,是***的FPGA片外静态双端口SRAM存储器,分为数据写入端口和数据输出端口,数据写入端口的双向数据总线和上交包发送电路相连,数据写入端口的读写信号线、地址总线和上交包发送电路的输出端相连,数据输出端口的双向数据总线和CPU接口电路相连,数据输出端口的读写信号线、地址总线和CPU接口电路的输出端相连。
通过上述方法构建的路由器中采用IPv6头封装IPv4包的隧道转发***,由一片FPGA芯片EP1S25F780、两片IDT75k62100(TCAM)、两片IDT71T75602(SRAM)、一片CY7C1300A(SRAM双端口存储器)芯片构成,FPGA和***芯片采用同一个时钟进行工作。
FPGA只有一个主时钟CLK,该时钟频率为100MHZ时,上述所有模块的复位信号来自于CPU接口电路,CPU接口电路的复位信号来自于CPU控制单元,上述所有模块的时钟都为CLK,但在上面为避免重复,没有提,路由器中采用IPv6头封装IPv4包的隧道转发***达到的性能指标为:
IDT75k62100和FPGA共用一个主时钟100MHZ CLK,两片IDT71T75602的工作频率为50MHZ,该50MHZ和主100MHZ的时钟源相同,是100MHZ CLK主时钟经二分频得到的;
通过利用CAM***构造的查找表,支持表项条数的动态分配,支持IPv6包的IPv6路由查找,***能保证以3.2Gbit/s线速收发数据包。
通过上述方法,使用一片EP1S25780和级联两片IDT75k62100构建的路由查找器最大支持64K*288bits的IPv6路由表项。
该隧道传输处理***可以处理IPv6隧道数据包、IPv4数据包和IPv6非隧道数据包,最大处理32k字节数据包。***能保证3.2Gbit/s线速收发数据包,如果超过3.2Gbit/s会丢包,但没有丢的包能正确传送,如果包速率又回到3.2Gbit/s,仍然不会丢包。
支持上交包整包缓存。
通过CPU对FPGA内的各电路模块及CAM***进行控制和维护。
附图说明
图1路由器中采用IPv6头封装IPv4包的隧道转发***在核心路由器线卡中的位置以及和周围器件的关系
图2路由器中采用IPv6头封装IPv4包的隧道转发***的芯片之间连接关系
图3路由器中采用IPv6头封装IPv4包的隧道转发***FPGA内部的各个子电路之间的关系
图4包过滤电路
图5IPv 6协议封装电路
图6包相关信息提取电路
图7CAM控制电路
图8包发送电路
图9CAM存储器存储的表项数据结构
说明:目的IPv6地址128位(127~0),隧道标识占1位,保留位置0。
图10SRAM单端口存储器存储的表项数据结构
说明:标识(bit71~69):000——IPv4转发;001——上交;010——丢弃,011——普通IPv6转发;100——IPv6隧道转发;
目的线卡编号:bit71~68;目的端口编号:bit67~64。
IPv6隧道目的地址共128位,由SRAM单端口存储器第三个和第四个表项的bit63~0构成。
保留位置0。
图11IP包输入接口电路接收的经过上级电路处理的PPP包数据结构
图12包输入队列存储器FIFO中的数据结构
说明:(1)bit35~34为包的头尾指示:10——数据包开始,00——数据包中间数据,01——数据包结束,11——数据包错误。bit33~32为MOD域,最后一个32位有效字节指示,只有在包尾时才有意义:00——最后四个字节都有效,01——最后四个字节中三个字节有效(bit31~8),10——最后四个字节中两个字节有效(bit31~16),11——最后四个字节中一个字节有效(bit31~24);无效位用0填充。bit31~31,数据包的具体内容。
图13IPv6数据包相关信息队列存储器FIFO中的数据结构
图14检索指令队列存储器FIFO中的数据结构
图15CAM维护指令队列存储器FIFO数据结构
图16检索结果队列存储器FIFO中的数据结构
图17发送给上行FIFO的数据结构
说明:(1)bit35~34为包的头尾指示:10——数据包开始,0o——数据包中间数据,01——数据包结束,11——数据包错误。bit33~32为MOD域,最后一个32位有效字节指示,只有在包尾时才有意义:00——最后四个字节都有效,01——最后四个字节中三个字节有效(bit31~8),10——最后四个字节中两个字节有效(bit31~16),11——最后四个字节中一个字节有效(bit31~24);无效位用0填充。bit31~31,数据包的具体内容。
(2)源位置编号:bit15~8,共8位,其中bit11~8标识源端口编号,bit15~12标识源线卡编号。
(3)目的端口编号:bit19~8,共12位,但目前只用了bit11~8,其它位置0,用来指明数据包到达目标线卡后的输出端口。
图18上交数据结构
说明:bit35~34为包的头尾指示:10——数据包开始,00——数据包中间数据,01——数据包结束,11——数据包错误。bit33~32为MOD域,最后一个32位有效字节指示,只有在包尾时才有意义:00——最后四个字节都有效,01——最后四个字节中三个字节有效(bit31~8),10——最后四个字节中两个字节有效(bit31~16),11——最后四个字节中一个字节有效(bit31~24);无效位用0填充。bit31~31,数据包的具体内容。
图19采用IPv6头封装IPv4报文的隧道数据包的数据结构
具体实施方式
路由器中采用IPv6头封装IPv4包的隧道转发***用在线路接口卡上,解决IPv4网络通过纯IPv6主干网络实现互联的问题,具体实现采用FPGA技术。它由隧道处理电路和外部SRAM双端口存储器芯片、SRAM单端口存储器芯片、CAM存储器芯片、CPU控制单元实现,隧道处理电路由一片FPGA实现。该***在高性能核心路由器中的位置见附图1,构成该***的芯片之间连接关系如图2所示。
由图可知,路由器中采用IPv6头封装IPv4包的隧道转发***从物理和数据链路层处理电路接收按照PPP协议封装的数据包,该数据包只含有协议域、信息域和填充域,隧道传输处理***根据协议域标识提取其中的纯IPv6数据报文和IPv4数据报文。对IPv4数据报文进行封装,加上IPv6数据包头,成为IPv6隧道数据包;对IPv6数据报文的目的地址和跳数进行检查,将目的地址为本路由器的IPv6数据包直接上交给CPU控制单元进行处理。对于目的地址不为本路由器的IPv6数据包,从中提取路由查找信息,并将查找信息提交给CAM查找***(CAM+SRAM)进行查找,由FPGA构成的隧道处理电路,根据查找返回的结果,决定对IPv6数据包是进行普通IPv6转发、采用IPv6头封装IPv4包的隧道转发、IPv4转发、丢弃还是上交给CPU进行处理。转发的包通过上行FIF0存储器发送给后续的交换结构协处理器和交换结构进行处理。
隧道传输处理***上电后,CPU控制单元通过CPU接口电路对整个***进行初始化,将CAM配置成288位查找模式,并配置SRAM表项。初始化完成后,***才可以正常工作。
***使用的CAM单个表项的存储位宽为72位,所以支持的表项长度是72bit的整数倍,由于IPv6包的目的地址是128位,因此至少需要2个CAM表项来存储IPv6包的目的地址。IPv4包进入路由器之后,离开路由器时,如果采用IPv6头封装IPv4包的隧道转发,***除了要提供隧道末端出口的IPv6地址外,还需要提供隧道包离开当前路由器后途经的下一跳路由器IPv6地址,这样提供查找结果的SRAM至少需要256位。***使用的SRAM单端口存储器支持的表项长度是72bit的整数倍,这样以来,实际上SRAM提供的存储容量为288位,对应SRAM有4个存储单元。288位SRAM必须要有288位CAM配对,才能在时序上匹配,所以***采用4个CAM表项共288位来表示一个路由表项。第一个表项的bit71~69位取100,说明是IPv6表项,bit68如果取1,说明查的是用IPv6封装的隧道包的路由,bit68如果取0,说明查的是普通IPv6包的路由,bit67~64位保留不用,bit63~0对应IPv6目的地址的高64位。第二个表项的bit71~64位保留不用,bit63~0对应IPv6目的地址的低64位。还有2个表项保留不用,置0,如图9所示。
***使用的SRAM单端口存储器支持的每个路由表项结构如图10所示:第一个表项的bit71~69构成路由查找结果的标识位,用于表示查找结果的类型:IPv4转发、普通IPv6转发、IPv6隧道转发、丢弃、数据上交给CPU控制单元;目的线卡编号由第二个表项的bit71~68构成,共4位,用于表示数据包通过交换结构将要到达的目的线卡;目的端口编号由bit67~64构成,共4位,用于表示转发的数据包经过交换结构到达目的线卡后,通过线卡的哪一个端口发送出去;第一个表项和第二个表项的bit63~0里存储的是下一跳目的地址,如果是普通IPv6转发,则下一跳的IP地址是128位,如果是IPv4转发,则下一跳的IP地址是32位,此时只有第二个表项的bit31~0位有效;标识位等于000时,数据包以IPv4转发,等于001时,数据包被丢弃,等于010时,数据包被上交给CPU控制单元,等于011时,数据包以普通IPv6转发,等于100时,数据包以IPv6隧道转发;SRAM第三和第四个表项的bit63~0里存储的是IPv4数据包以IPv6隧道方式转发时,IPv6隧道末端出口路由器的128位IPv6目的地址。
整个***的工作流程如下:
1)IP包输入接口电路从物理和数据链路层处理电路读取经过处理的PPP协议数据包和数据源端口编号,经过处理的PPP协议数据包只含有协议域、信息域和填充域,PPP数据包的其它部分已经在上级电路被剔除了。根据PPP包的16位协议编号,提取其中的纯IPv6或IPv4数据包,将去掉PPP 16位协议域和填充域的纯IPv6报文或IPv4报文发送到包过滤电路。
2)包过滤电路接收IPv4和IPv6数据包,如果接收的是单播IPv4数据包,则对IPv4包的生存时间TTL域进行检查,如果其TTL为0,则将该IPv4数据包丢弃;如果TTL大于1,则对IPv4数据包的TTL域进行减1操作,如果减1后,TTL等于0,则将该IPv4数据包发送给第0个上交包队列存储器FIFO;如果接收的IPv4数据包是多播数据,也发送给第0个上交包队列存储器FIFO;如果接收的单播IPv4包的TTL不为0,TTL进行减1操作后得到的TTL也不为0,则让该IPv4包完成TTL减1操作,重新生成新的首部校验和后让该包通过,发送给下一级包输入队列存储器FIFO。
包过滤电路接收的IPv6数据包分三种:单播、多播、任播。在后续的处理中,本***对任播的处理和单播一样,所有对单播的处理方式也同时应用于任播,但不再说明。
包过滤电路接收到IPv6包后,首先查看包的跳数限制,如果它的跳数限制为0,就将该IPv6包丢弃;如果它的跳数限制大于或等于1,则将跳数限制进行减1操作,如果减1后,跳数为0,则将该IPv6数据包发送给第0个上交包队列存储器FIFO;如果跳数减1后,跳数仍然不为0,包过滤电路就对该IPv6包目的地址进行检查;如果是多播包就发送给第0个上交包队列存储器FIFO。
如果接收的IPv6数据包的目的地址是本路由器,分两种情况,第一种是情况:该数据包不是IPv6隧道包,则发送给第0个上交包队列存储器FIFO;第二种是情况:该数据包是隧道包,那么小于61字节的包都丢弃,不小于61字节的就发送给下一级包输入队列存储器FIFO。
如果接收的IPv6数据包的目的地址不是本路由器,也分两种情况:第一种情况是该数据包是IPv6隧道包,那么小于61字节的包都丢弃,不小于61字节的就发送给下一级包输入队列存储器FIFO;第二种情况是该数据包不是IPv6隧道数据包,则对数据包的大小不进行检查直接发送给下一级包输入队列存储器FIFO。
3)IPv6协议封装电路通过包输入队列存储器FIFO接口电路读取数据包,根据IP数据的版本号,包输入队列存储器FIFO接口电路知道读入的数据是IPv4数据包还是IPv6数据包。
如果是IPv4数据,在状态控制机电路的控制下,包输入队列存储器FIFO接口电路读取IPv4包头数据,并将其保存在IPv4包头数据寄存器中,IPv4包头数据寄存器中的数据又输出给IPv4包头转IPv6隧道包头电路。IPv4包头转IPv6隧道包头电路对应每一个IPv4包头,生成一个IPv6封装包头:IPv6包头的源地址就是本路由器的IPv6地址,包头目的地址最高96位bit127~32置0,最低32位就是当前处理的IPv4数据包的目的地址,包头下一个首部域设置为十进制的101,跳数限制设为十进制的64,包的流量类别设置为0,流标号置0。生成的IPv6包头发送到IPv6隧道包头数据寄存器中。多路数据选择器将保存在IPv6隧道包头数据寄存器中的IPv6包头和保存在IPv4包头数据寄存器中的数据依次选通发送到下一级的IPv6包队列存储器FIFO中,与此同时包输入队列存储器FIFO接口电路继续读取IPv4数据包的负载部分,并将它们保存在IPv4负载数据寄存器中,在发送完IPv4包头数据寄存器中的数据后,多路数据选择器立即选通IPv4负载数据寄存器的输出,这样IPv6隧道包就像流水一样不断线地发送到下一级的IPv6包队列存储器FIFO中。
如果是IPv6隧道包,包输入队列存储器FIFO接口电路读取IPv6头,并将IPv6头丢弃,紧接着读取IPv6隧道包的IPv4包头数据,并将其保存在IPv4包头数据寄存器中,IPv4包头数据寄存器中的数据又输出给IPv4包头转IPv6隧道包头电路。在状态控制机电路的控制下,IPv4包头转IPv6隧道包头电路对应每一个IPv4包头,又生成一个IPv6封装包头:IPv6包头的源地址就是本路由器的IPv6地址,包头目的地址最高96位bit127~32置0,最低32位就是当前处理的IPv4数据包的目的地址,包头下一个首部域设置为十进制的101,跳数限制设为十进制的2,包的流量类别设置为0,流标号置0。生成的IPv6包头发送到IPv6隧道包头数据寄存器中。多路数据选择器将保存在IPv6隧道包头数据寄存器中的IPv6包头和保存在IPv4包头数据寄存器中的数据依次选通发送到下一级的IPv6包队列存储器FIFO中,与此同时包输入队列存储器FIFO接口电路继续读取IPv6隧道包的IPv4数据负载部分,并将它们保存在IPv4负载数据寄存器中,在发送完IPv4包头数据寄存器中的数据后,多路数据选择器立即选通IPv4负载数据寄存器的输出,这样已经更新的IPv6隧道包就像流水一样不断线地发送到下一级的IPv6包队列存储器FIFO中。
包输入队列存储器FIFO接口电路读取的IPv6数据包如果不是隧道包,则不对IPv6数据包进行任何处理,只将它暂存在IPv6数据寄存器中,通过多路数据选择器,直接将它传送到下一级的IPv6包队列存储器FIFO。
4)包相关信息提取电路通过IPv6包队列存储器FIFO接口电路从IPv6包队列存储器FIFO中读取IPv6数据包,每一个节拍读40位,其中8位是边带信息,32位是IP数据包。IPv6包队列存储器FIFO接口电路中有一个节拍计算器、一个包计算器,节拍计算器记录接收的数据包节拍数,每个节拍含32位IP数据,包计算器记录接收的数据包个数。***初始化时,节拍计算器和包计算器被清0。IPv6包队列存储器FIFO接口电路接收一个数据包时,该数据包第一节拍数据对应的节拍计算器值,就是该IPv6数据包在IPv6存储器RAM中保存的起始地址,数据包最后一节拍数据对应的计算器值,就是该数据包在IPv6存储器RAM中保存的终止地址。每接收一节拍数据后,计算器值加1。数据包的起始地址和终止地址被输出,分别保存在包起始地址寄存器、包终止地址寄存器中。相应地,接收一个数据包时,该数据包第一节拍数据对应的包计算器值,就是该数据包对应的序列号,该序列号被输出给包序列号寄存器保存。每接收完一个数据包,包计算器值加1,包计算器加1是在接收数据包的最后一个节拍之后发生的。
在状态控制机电路的作用下,IPv6包队列存储器FIFO接口电路通过包写入RAM电路,将接收的IPv6包发送到与包相关信息提取电路相连的IPv6数据包存储器RAM,IPv6数据包存储器RAM是一个读写与时钟同步的双端口RAM存储器,一个端口专门用来写数据,一个端口专门用来读数据。
在状态控制机电路的作用下,IPv6包队列存储器FIFO接口电路提取数据包的源端口编号,并将源端口编号发送到源端口编号寄存器。对于接收的IPv6数据包,如果它的下一个首部域是0,则置上交标识,并将该上交标识输出给包上交标识寄存器,在该寄存器中进行保存。
在状态控制机电路的作用下,IPv6包队列存储器FIFO接口电路提取包的流量类别保存在包优先级寄存器中。如果IPv6包是隧道包,就将隧道标识寄存器置1,否则置0。
包上交标识寄存器、包优先级寄存器、包源端口号寄存器、包终止地址寄存器、包起始地址寄存器、包序列号寄存器的值输出给IPv6包信息发送电路,IPv6信息发送电路在状态控制机电路控制下,将数据发送给与包相关信息提取电路相连的IPv6数据包相关信息队列存储器FIFO。
CAM工作受它的命令总线和请求数据总线控制,检索指令发送电路生成CAM命令总线控制数据:请求选通信号REQSTB、操作指令类型信号INST、查找类型信号LTIN、段选信号SEGSEL、掩码寄存器选择信号GMASK,CAM命令总线控制数据由检索指令发送电路发送到检索指令队列存储器FIFO。
包序列号寄存器、隧道标识寄存器和包目的地址寄存器经检索指令发送电路发送给与包相关信息提取电路相连的检索指令队列存储器FIFO,其中隧道标识寄存器和包目的地址寄存器保存的数据对应CAM数据总线输入的72位宽度REQDATA数据,用来进行CAM查找。
5)CAM控制电路内部的检索指令队列存储器FIFO接口电路从检索指令队列存储器FIFO中读取检索指令,并将REQDATA数据写入CAM写入数据寄存器。CAM存储器的操作受命令总线的控制,因此读取的总线控制命令REQSTB、INST、LTIN、SEGSEL、GMASK写入CAM操作指令发送电路。检索指令队列存储器FIFO接口电路还将检索指令对应的数据包序列号保存到数据包序列号存储器中。
CAM表项和SRAM表项初始化完成后,在CAM运行的过程中,操作***要不断地对CAM表项和SRAM表项进行删除、添加等操作,这些操作是CPU通过CPU接口电路向CAM维护指令队列存储器FIFO发送CAM维护指令来完成的。CAM控制电路通过CAM维护指令队列存储器FIFO接口电路读取CAM维护指令队列存储器FIFO的CAM维护指令,并将REQDATA数据写入CAM写入数据寄存器,读取的总线控制命令REQSTB、INST、LTIN、SEGSEL、GMASK写入CAM操作指令发送电路。CAM维护指令队列存储器FIFO接口电路还将需要写的SRAM表项保存在SRAM写入数据寄存器中。
在状态控制机电路的作用下,CAM数据总线读写控制电路和SRAM读写数据总线控制电路把对应的表项写入CAM和SRAM存储器中,或将查找的结果输出给CAM读出数据寄存器、SRAM读出数据寄存器。如果是对CAM进行维护操作,CPU读出数据寄存器将读取的CAM和SRAM数据发送给CPU接口电路,通过CPU接口电路上交CPU。如果对CAM进行操作的指令来自检索指令队列存储器FIFO接口电路,则将SRAM检索的结果以及数据包序列号寄存器保存的序列号输出到检索结果寄存器,通过检索结果寄存器发送到与CAM控制电路相连的检索结果队列存储器FIFO。
6)包发送电路通过IPv6数据包相关信息队列存储器FIFO接口电路,读取包在IPv6数据包存储器RAM中存储的起始地址、终止地址、上交标识以及数据包序列号,并将终止地址保存在终止地址寄存器中。检索结果队列存储器FIFO接口电路,读取检索结果队列存储器FIFO,根据标识位和IPv6数据包相关信息队列存储器FIFO接口电路得到的上交标识位,状态机控制电路知道包发送电路对数据包进行处理方式要么是按照IPv4转发,要么是将数据包上交,要么是将数据包丢弃,要么是按照普通IPv6转发该数据包,要么是按照IPv6隧道方式转发该数据包。此外如果经由IPv6数据包相关信息队列存储器FIFO接口电路和检索结果队列存储器FIFO接口电路得到的数据包序列号分别保存到4位的包序列号寄存器A和包序列号寄存器B,包序列号寄存器A和包序列号寄存器B中的数据输入到数据比较器B,如果比较的结果是两个数据不相等,说明***出现错误,数据比较器B向CPU接口电路发送指示信号,通过CPU接口电路对整个***进行复位。复位之后按照上面的方法对***进行初始化。
IPv6数据包相关信息队列存储器FIFO接口电路从IPv6数据包相关信息队列存储器FIFO读取数据包长度、包优先级、源端口编号,并将其分别保存在数据包长度寄存器、包优先级寄存器、源端口编号寄存器中。检索结果队列存储器FIFO接口电路读取目的端口编号、目的线卡编号、下一跳IPv6或IPv4地址、隧道IPv6目的地址,分别将它们保存在目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6寄存器或IPv4地址寄存器、隧道IPv6目的地址寄存器中。
如果数据按照IPv4转发,则将包长度寄存器、包优先级寄存器、源线卡编号寄存器、源端口编号寄存器、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv4寄存器输出的值,保存在3个位宽为36位的附加数据寄存器组中。在状态控制机的作用下,多路选择器B分3拍将3个位宽为36位的附加数据寄存器组中的数据发送出去,这些数据作为IPv4数据包的附加数据头,添加在IPv4数据包的前面,发送给上行FIFO。
紧接IPv4附加数据头的就是IPv4数据包,在状态控制机电路的作用下,增10加法器从输入端接收包存储起始地址,对该地址值实现加10操作,并将结果输出给地址寄存器A进行保存,多路数据选择器A选择地址寄存器A中的数据输出给IPv6数据包存储器RAM读地址寄存器,读地址寄存器将读地址发送给IPv6数据包存储器RAM读端口的读地址总线。IPv6数据包存储器RAM将读得的数据发送给位宽为36位的IP数据寄存器,多路选择器B选通位宽为36位的IP数据寄存器,这样IPv4数据包第一拍数据就紧随IPv4的附加数据头发送给上行FIFO。
在状态控制机电路的作用下,增1加法器读取IPv6数据包存储器RAM读地址寄存器的值,对该地址进行加1运算后提交给地址寄存器C。多路数据选择器A选通地址寄存器C中的数据,将该数据交给IPv6数据包存储器RAM读地址寄存器。此后***运行的过程和发送IPv4数据包第一拍数据时一样。
每个时钟周期,数据比较器A将输入的IPv6数据包存储器RAM读地址寄存器值和输入的包存储终止地址寄存器的值进行比较,如果两者相等,说明该数据包的数据已经全部输出。如果包存储器电路中还有别的数据,在状态控制机的作用下,包发送电路对后续的数据包也进行同样的处理。
如果数据按照普通IPv6转发,包发送电路的工作过程和转发IPv4数据包的工作过程总体相似,只有小部分不一样。不一样的部分是:
(1)如果数据按照普通IPv6转发,则将包长度寄存器、包优先级寄存器、源线卡编号寄存器、源端口编号寄存器、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6寄存器输出的值,保存在6个位宽为36位的附加数据寄存器组中。在状态控制机的作用下,多路选择器B分6拍将6个位宽为36位附加数据寄存器组中的东西发送出去,这些数据作为IPv6数据包的附加数据头,添加在IPv6数据包的前面,交给下一级上行FIFO。
(2)IPv6数据包的第一拍数据的地址是通过包存储起始地址发送给地址寄存器B,再通过多路数据选择器A发送给IPv6数据包存储器RAM读地址寄存器,不能通过增10加法器进行加10操作。
如果数据按照IPv6隧道转发,包发送电路的工作过程和转发IPv6数据包的工作过程总体相似,只有小部分不一样。不一样的部分是:如果数据按照IPv6转发,则将包长度寄存器、包优先级寄存器、源线卡编号寄存器、源端口编号寄存器、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6寄存器、隧道IPv6目的地址寄存器输出的值,保存在10个位宽为36位的附加数据寄存器组中;在状态控制机的作用下,在发送隧道IPv6数据包时,隧道包128位的IPv6目的地址,来自于IPv6协议封装电路,在这里要用位宽为36位附加数据寄存器组中保存的通过CAM查表得到的隧道IPv6目的地址取代。
如果数据不进行IPv4、普通IPv6转发、IPv6隧道转发,还是进行上交,包发送电路的工作过程和转发IPv6数据包的工作过程总体相似,只有小部分不一样。不一样的地方是:
(1)IPv6数据包的上交时,IPv6数据包的附加数据只有一拍,附加数据只含有源线卡编号和源端口编号。不足36位的其它数据用0来填充。
(2)通过多路数据选择器B选择的数据发送给上交数据包寄存器,通过上交数据包寄存器发送给第1个上交包队列存储器FIFO。
如果数据不进行IPv4、普通IPv6转发、IPv6隧道转发,也不需要上交,还是丢弃,在状态控制机电路的作用下,包发送电路不再对IPv6数据包存储器RAM进行任何操作。多路数据选择器A和多路数据选择器B也不进行任何操作。
跟在被丢弃数据包后面如果还有别的数据包,则状态控制机电路指示IPv6数据包相关信息队列存储器FIFO接口电路和检索结果队列存储器FIFO接口电路提取下一个数据包的转发信息,根据转发信息的标识按照上面所说的方式进行数据包的转发、上交、丢弃处理。
7)只要第0个上交包队列存储器FIFO或第1个上交包队列存储器FIFO不空,上交包发送电路就能轮流从不空的第0个上交包队列存储器FIFO和第1个上交包队列存储器FIFO中读取数据包发送给SRAM双端口存储器,当SRAM双端口存储器中存储的上交数据包字节数达到一定门槛值,或接收一个数据包后一段时间内没有收到新数据包时,上交包发送电路就向CPU接口电路发送中断信号,并将上交数据包在双端口存储器RAM中存储的起始地址、终止地址以及待传送数据的长度传送给CPU接口电路,CPU接口电路将中断信号传送给CPU,如果CPU不忙,就对中断请求进行相应,启动上交包数据传送,CPU接口电路将上交数据包从SRAM双端口存储器中读出来,再发送给CPU进行处理。
Claims (5)
1.路由器中采用IPv6头封装IPv4包的隧道转发***,其特征在于,含有:一个集成于FPGA芯片上的隧道处理电路、SRAM单端口存储器、SRAM双端口存储器、CAM内容可寻址存储器以及CPU控制单元,其中:
所述的隧道处理电路,含有:IP包输入接口电路、包过滤电路、包输入队列存储器FIFO、IPv6协议封装电路、IPv6包队列存储器FIFO、包相关信息提取电路、检索指令队列存储器FIFO、CAM控制电路、检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO、IPv6数据包存储器RAM、包发送电路、CAM维护指令队列存储器FIFO、第0个上交包队列存储器FIFO、第1个上交包队列存储器FIFO、上交包发送电路、以及CPU接口电路,其中:
IP包输入接口电路,输入端接收上级物理和数据链路层处理电路输出的数据就绪信号和数据总线信号,输出读信号给上级物理和数据链路层处理电路,所述IP包输入接口电路数据输出端和包过滤电路的输入端相连,对输入输出的IPv4和IPv6包头信号和包尾信号分别进行计数,将包头包尾计数输出信号发送给CPU接口电路,并接收CPU接口电路输入的复位信号和计数器清零信号;
包过滤电路,输入端和IP包输入接口电路相连,还分别和第0个上交包队列存储器FIFO、包输入队列存储器FIFO输出的快满信号相连,输出端分别和第0个上交包队列存储器FIFO的输入端、包输入队列存储器FIFO的输入端相连,对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
包输入队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,输入端与上述包过滤电路的IP包输出端相连,读信号来自IPv6协议封装电路,复位信号来自CPU接口电路;
IPv6协议封装电路,输入端和所述包输入队列存储器FIFO相连,输出端和IPv6包队列存储器FIFO相连,此外输入端还接收IPv6包队列存储器FIFO输出的快满信号,IPv6协议封装电路对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;IPv6包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为40位,数据输入端与上述IPv6协议封装电路相连,读输入信号和包相关信息提取电路的读输出相连,输出端和包相关信息提取电路相连,复位信号来自CPU接口电路;包相关信息提取电路,输入端和IPv6包队列存储器的输出端相连,输出端分别和检索指令队列存储FIFO、IPv6数据包存储器RAM、IPv6数据包相关信息队列存储器FIFO相连,对输入输出的包头信号和包尾信号进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;检索指令队列存储器FIFO,是一个先进先出队列存储器,数据宽度为100位,数据输入端与上述包相关信息提取电路相连,读输入信号和CAM控制电路的读输出相连,数据输出端和CAM控制电路相连;
CAM控制电路,输入端分别和检索指令队列存储器FIFO输出端、CAM维护指令队列存储器FIFO输出端相连,CAM控制电路输出的CAM内容可寻址存储器读写控制命令总线信号以及双向数据请求总线REQDATA信号和CAM内容可寻址存储器相连,CAM控制电路和SRAM单端口存储器的数据总线相连,CAM控制电路输入端还和CAM内容可寻址存储器输出的读确认信号、查找匹配信号、查找输出有效信号相连,CAM控制电路输出的检索信息输出端和检索结果队列存储器FIFO相连,此外CAM控制电路的读信号分别和检索指令队列存储器FIFO的读输入端、CAM维护指令队列存储器FIFO读输入端相连,CAM控制电路输出端和CPU接口电路相连,将路由表保存的表项发送给CPU接口电路,CAM控制电路对IPv6路由查询次数和查询命中的信息进行计数,将这些信息作为查询状态信息发送给CPU接口电路,并接收CPU接口电路输入的复位信号和计数器清零信号;
检索结果队列存储器FIFO,是一个先进先出队列存储器,数据宽度为148位,数据输入端与CAM控制电路的输出相连,读输入信号和包发送电路的读输出相连,数据输出端和包发送电路的输入端相连;
IPv6数据包相关信息队列存储器FIFO,是一个先进先出队列存储器,数据宽度为60位,数据输入端与上述包相关信息提取电路相连,读输入信号和包发送电路的读输出相连,数据输出端和包发送电路相连;
CAM维护指令队列存储器FIFO,是一个先进先出队列存储器,数据宽度为90位,数据输入端和CPU接口电路相连,读输入信号和CAM控制电路输出的读信号相连,数据输出端和CAM控制电路的数据输入端相连;
包发送电路,分别向检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO发出读信号,并和检索结果队列存储器FIFO、IPv6数据包相关信息队列存储器FIFO的输出端相连,包发送电路输出的读信号、读地址和IPv6数据包存储器RAM相连,IPv6数据包存储器RAM的数据输出端和包发送电路相连,包发送电路的输出还和第1个上交包队列存储器FIFO以及FPGA片外的上行FIFO相连,包发送电路对输入输出的IPv4、IPv6包头信号和包尾信号分别进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
IPv6数据包存储器RAM是一个双端口的FPGA片内读写存储器,有一个数据写入端口和一个数据输出端口,数据写入端口和包相关信息提取电路的IPv6数据输出端相连,读端口的所有信号和包发送电路相连,IPv6数据包存储器RAM数据宽度为36位,读写端口分别有14根地址线;
第0个上交包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,数据输入端与上述包过滤电路相连,读输入信号和上交包发送电路的读输出相连,数据输出端和上交包发送电路相连;
第1个上交包队列存储器FIFO,是一个先进先出队列存储器,数据宽度为36位,数据输入端与包发送电路相连,读输入信号和上交包发送电路的读输出相连,数据输出端和上交包发送电路相连;
上交包发送电路,输入端和第0个上交包队列存储器FIFO、第1个上交包队列存储器FIFO相连,数据输出端和SRAM双端口存储器的数据输入端相连,上交包发送电路发送的CPU中断信号、SRAM双端口存储器数据起始地址和终止地址、SRAM双端口存储器中待传送数据的长度信号输出端和CPU接口电路相连,CPU接口电路将CPU响应信号输出给上交包发送电路的输入端,上交包发送电路对输入输出的IPv4、IPv6包头信号和包尾信号分别进行计数,并发送给CPU接口电路,同时接收CPU接口电路输入的复位信号和计数器清零信号;
CPU接口电路,和由FPGA实现的隧道处理电路内部其它各个电路相连,接收其它各个电路输入的IPv4、IPv6输入输出包头信号和包尾信号计数,以及CAM控制电路的查询状态计数,CPU接口电路与FPGA片外CPU控制单元的CPU地址总线、数据总线、读写控制信号相连,输出的中断信号和CPU控制单元的中断输入相连,CPU接口电路还和SRAM双端口存储器数据输出端口的地址总线、数据总线、读写控制信号相连,CPU接口电路接收CPU控制单元输入的复位信号,并将复位信号传送给FPGA内的其它各个电路,将清零信号传送给IP包输入接口电路、包过滤电路、IPv6协议封装电路、包相关信息提取电路、CAM控制电路、上交包发送电路、包发送电路,CPU接口电路还和CAM维护指令队列存储器FIFO的数据输入端相连,接收CAM控制电路输出的路由表表项数据,接收上交包发送电路输出的SRAM双端口存储器数据起始地址和终止地址、SRAM双端口存储器中待传送数据的长度以及中断请求信息,也向上交包发送电路发送CPU中断响应指示信号;
所述包过滤电路是一个电路组件,由一系列电路组成:输入IP包数据寄存器,输入端和IP包输入接口电路的输出端相连;输入IP包数据寄存器的输出端分别和IPv4数据包寄存器、IPv6数据包寄存器相连;IPv4数据包寄存器的输出端分别和IPv4数据包延迟寄存器组、IPv4包头校验和寄存器、生存时间寄存器、包类型寄存器、状态控制机的输入端相连,同时也接收状态控制机的输出;IPv4数据包延迟寄存器组的输出端和数据选择器A的输入端相连;IPv4数据包头校验和生成器的输入端分别和IPv4包头校验和寄存器输出、生存时间更新寄存器输出相连;生存时间寄存器的输出端和减一减法器A的输入端以及状态控制机的输入端相连,减一减法器A的输出端和生存时间更新寄存器的输入端相连,生存时间更新寄存器的输出端分别和IPv4数据包头校验和生成器、状态控制机相连;数据选择器A的输入端又分别和IPv4数据包延迟寄存器组的输出端、IPv4数据包头校验和生成器的输出端以及状态控制机的输出端相连,数据选择器A的输出端和更新后的IPv4数据包寄存器输入端相连;
IPv6数据包寄存器的输出端分别和IPv6数据包延迟寄存器组、跳数寄存器、下一个头寄存器、IPv6目的地址寄存器、状态控制机的输入端相连,同时也接收状态控制机的输出;跳数寄存器的输出端和减一减法器B的输入端相连以及状态控制机相连,跳数更新寄存器的输出端还和状态控制机相连;减一减法器B的输出端和跳数更新寄存器的输入端相连;数据选择器B的输入端分别和IPv6数据包延迟寄存器组、跳数更新寄存器、状态控制机的输出端相连,数据选择器B的输出端和更新后的IPv6数据包寄存器输入端相连;下一个头寄存器的输入端和IPv6数据包寄存器的输出端相连,输出端和状态控制机相连;IPv6目的地址寄存器的输出端和比较器的输入端相连,比较器的另一个输入端和本路由器IPv6地址寄存器输出端相连;比较器的输出端和状态控制机的输入端相连;本路由器IPv6地址寄存器输入端和CPU接口电路的输出相连;
数据选择器C的输入端分别和更新后的IPv4数据包寄存器、更新后的IPv6数据包寄存器的输出端相连、状态控制机以及包输入队列存储器FIFO的快满信号相连,数据选择器C的输出端分别和第0个上交包队列存储器FIFO、包输入队列存储器FIFO相连,同时数据选择器C的包头信号和包尾信号输出端也和包过滤电路的包头、包尾计数器的输入端相连;计数器接收CPU接口电路输出的计数器清零信号,并将包头包尾信号计数信号传送给CPU接口电路的输入端;
所述IPv6协议封装电路是一个电路组件,由一系列电路组成:包输入队列存储器FIFO接口电路,数据输入端和包输入队列存储器FIFO的数据输出端相连,输出的读信号和包输入队列存储器FIFO的读输入信号相连,控制输入输出端和状态控制机电路相连;IPv4包头数据寄存器,输入端和包输入队列存储器FIFO接口电路输出端以及状态控制机电路输出端相连,一个输出端和IPv4包头转IPv6隧道包头电路相连,另一个输出端和多路数据选择器电路输入端相连;IPv4负载数据寄存器,输入端和包输入队列存储器FIFO接口电路输出端相连,输出端和多路数据选择器电路输入端相连;IPv6数据寄存器,输入端和包输入队列存储器FIFO接口电路的输出端相连,输出端和多路数据选择器电路输入端相连;
IPv6隧道包头数据寄存器,输入端和IPv4包头转IPv6隧道包头电路以及状态控制机电路相连,输出端和多路数据选择器电路相连;多路数据选择器电路的输出端和IPv6包队列存储器FIFO的输入端相连;包输入队列存储器FIFO接口电路将接收的数据包头信号和尾信号发送给IPV6协议封装电路的包头、包尾计数器电路,多路数据选择器电路也把输出的数据包头、包尾信号传送给包头、包尾计数器电路,计数器电路输出的输入输出包头包尾信号计数和CPU接口电路的状态计数器值输入端相连,同时接收CPU接口电路输入的计数器清零信号;
所述包相关信息提取电路是一个电路组件,由一系列的电路组成:IPv6包队列存储器接口电路,所述数据输入端和IPv6包队列存储器FIFO相连,输出的读信号和IPv6包队列存储器FIFO的读输入信号相连,控制输入输出端和状态控制机电路相连,输出端和包上交标识寄存器、包优先级寄存器、包源端口编号寄存器、包起始地址寄存器、包终止地址寄存器、包序列号寄存器、包目的地址寄存器、隧道标识寄存器以及包写入RAM电路相连;IPv6包信息发送电路的输入端和所述包上交标识寄存器、包优先级寄存器、包起始地址寄存器、包源端口编号寄存器、包终止地址寄存器、包序列号寄存器相连,控制信息来自于状态控制机,输出端接IPv6数据包相关信息队列存储器FIFO;检索指令发送电路的输入端和包序列号寄存器、包目的地址寄存器、隧道标识寄存器相连,输出端和检索指令队列存储器FIFO相连,控制输入端和状态控制机相连;包写入RAM电路的输出端和IPv6数据包存储器RAM相连,它的控制输入端和状态控制机相连;包相关信息提取电路的计数器的输入端分别和IPv6包队列存储器FIFO接口电路的输入包头信号以及输入包尾信号相连,还和包写入RAM电路输出的包头信号和包尾信号相连,同时也和CPU接口电路输入的计数器清零信号相连,输出的包头尾信号计数和CPU接口电路相连;
所述CAM控制电路是一个电路组件,由一系列的电路组成:检索指令队列存储器FIFO接口电路的数据输入端和检索指令队列存储器FIFO输出端相连,输出的读信号和检索指令队列存储器FIFO的读信号相连,并且输出端也和状态控制机互连,接收状态控制机输出的控制信号;CAM写入数据寄存器的输入端和检索指令队列存储器FIFO接口电路、以及CAM维护指令队列存储器FIFO接口电路的输出端相连,输出端和CAM数据总线读写控制电路相连;CAM操作指令发送电路的输入端和检索指令队列存储器FIFO接口电路的输出端、CAM维护指令队列存储器FIFO接口电路的输出端相连,输出端直接和CAM内容可寻址存储器的命令总线操作指令类型信号INST、查找类型信号LTIN、段选信号SEGSEL、掩码寄存器选择信号GMASK、CRB和请求选通信号REQSTB相连;
SRAM写入数据寄存器的输入端和CAM维护指令队列存储器FIFO接口电路输出端,以及检索指令队列存储器FIFO接口电路的输出端相连,输出端和SRAM数据总线读写控制电路输入端相连;SRAM数据总线读写控制电路的输出端和SRAM读出数据寄存器、检索结果寄存器以及SRAM单端口存储器相连,控制信号输入端和状态机输出相连;CPU读出数据寄存器的输入端和CAM读出数据寄存器的输出端、SRAM读出数据寄存器的输出端相连,输出端和CPU接口电路相连;检索结果寄存器的输入端和数据包序列号寄存器的输出端相连,输出端和检索结果队列存储器FIFO相连;数据包序列号寄存器的输入端和检索指令队列存储器FIFO接口电路的输出端以及状态控制机的输出端相连;CAM控制电路的计数器的输入端和检索结果寄存器的输出端相连,还和CPU接口电路输入的计算器清零信号相连,它输出的查询状态计数输出和CPU接口电路相连;
所述包发送电路是一个电路组件,由一系列的电路组成:IPv6数据包相关信息队列存储器FIFO接口电路,数据输入端和IPv6数据包相关信息队列存储器FIFO的输出端相连,控制输入和输出端与状态机控制电路相连,输出的读信号和IPv6数据包相关信息队列存储器FIFO读输入端相连,输出端分别和包存储起始地址寄存器、包存储终止地址寄存器、包长度寄存器、包优先级寄存器、源端口编号寄存器、包序列号寄存器A的输入端相连;检索结果队列存储器FIFO接口电路,数据输入端和检索结果队列存储器FIFO的输出相连,控制输入和输出端与状态机控制电路相连,输出端分别和包序列号寄存器B、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的输入端相连;位宽为36位的附加数据寄存器组的输入端分别和包优先级寄存器、包长度寄存器、源端口编号寄存器、源线卡编号寄存器、目的端口编号寄存器、目的线卡编号寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的数据输出端相连;源线卡编号寄存器的输入来自CPU接口电路;增10加法器,输入端和包存储起始地址的输出相连,输出端与地址寄存器A相连;地址寄存器B的输入端和包存储起始地址的输出相连;增1加法器的输入端和IPv6数据包存储器读地址寄存器的输出端相连,增1加法器的输出端和地址寄存器C的输入端相连;多路数据选择器A,输入端分别和地址寄存器A、地址寄存器B、地址寄存器C相连,控制输入端和状态机控制电路的输出相连,输出端和IPv6数据包存储器读地址寄存器的输入端相连;数据比较器A,输入端和包存储终止地址寄存器的输出端以及IPv6数据包存储器读地址寄存器的输出端相连,输出端和状态机控制电路的输入端相连;位宽为36位的IP数据寄存器,输入端和IPv6数据包存储器RAM的数据输出端相连,输出端和多路数据选择器B的输入端相连;多路数据选择器B,数据输入端分别和位宽为36位的附加数据寄存器组的输出端、位宽为36位的IP数据寄存器的输出端相连,输出端和上交数据包寄存器、带附加数据的IPv4或IPv6数据包寄存器的输入端相连;上交数据包寄存器的输出端和第1个上交包队列存储器FIFO的输入端相连;带附加数据的IPv4或IPv6包寄存器的输出端发往与FPGA相连的上行FIFO;带附加数据的IPv4或IPv6包寄存器的还将发送的数据包头信号和包尾信号分别传送给包发送电路的包头、包尾计数器,计数器还和CPU接口电路输入的计数器清零信号相连,计数器输出的包头包尾信号计数信号发送给CPU接口电路;
所述CAM内容可寻址存储器,是***的FPGA片外存储器,读写控制命令总线信号以及数据请求总线REQDATA信号来自CAM控制电路,输出的地址总线信号和读写信号分别与SRAM单端口存储器的地址总线和读写信号相连,输出的读确认信号、查找匹配信号、查找输出有效信号和CAM控制电路输入端相连;
所述SRAM单端口存储器,是***的FPGA片外静态SRAM存储器,读写输入信号和地址信号来自CAM内容可寻址存储器的输出,数据输入输出端和CAM控制电路相连;
所述SRAM双端口存储器,是***的FPGA片外静态双端口SRAM存储器,分为数据写入端口和数据输出端口,数据写入端口的双向数据总线和上交包发送电路相连,数据写入端口的读写信号线、地址总线和上交包发送电路的输出端相连,数据输出端口的双向数据总线和CPU接口电路相连,数据输出端口的读写信号线、地址总线和CPU接口电路的输出端相连。
2.根据权利要求1所述的路由器中采用IPv6头封装IPv4包的隧道转发***,其特征在于:所述的CAM内容可寻址存储器由两片IDT75k62100芯片构成,SRAM单端口存储器由两片IDT71T75602芯片构成。
3.根据权利要求1所述的路由器中采用IPv6头封装IPv4包的隧道转发***,其特征在于:FPGA和片外的CPU控制单元相连。
4.根据权利要求1所述的路由器中采用IPv6头封装IPv4包的隧道转发***,SRAM双端口存储器由一片CY7C1300A芯片构成。
5.根据权利要求2所述的路由器中采用IPv6头封装IPv4包的隧道转发***,FPGA和***芯片采用同一个主时钟CLK进行工作,IDT75k62100和FPGA共用一个主时钟CLK,两片IDT71T75602的工作频率为CLK/2,该CLK/2和主CLK的时钟源相同,是CLK主时钟经二分频得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100935323A CN101692647B (zh) | 2009-10-12 | 2009-10-12 | 路由器中采用IPv6头封装IPv4包的隧道转发*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100935323A CN101692647B (zh) | 2009-10-12 | 2009-10-12 | 路由器中采用IPv6头封装IPv4包的隧道转发*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101692647A CN101692647A (zh) | 2010-04-07 |
CN101692647B true CN101692647B (zh) | 2012-03-14 |
Family
ID=42081305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100935323A Expired - Fee Related CN101692647B (zh) | 2009-10-12 | 2009-10-12 | 路由器中采用IPv6头封装IPv4包的隧道转发*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101692647B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103329507A (zh) * | 2011-04-01 | 2013-09-25 | 西门子企业通讯有限责任两合公司 | 用于在计算机网络中寻址消息的方法 |
CN104011650B (zh) * | 2011-12-23 | 2017-09-19 | 英特尔公司 | 使用输入写掩码和立即数从源写掩码寄存器在目的地写掩码寄存器中设置输出掩码的***、装置和方法 |
CN103885850B (zh) * | 2013-03-01 | 2016-12-28 | 上海富欣智能交通控制有限公司 | 存储器在线检查***及方法 |
CN104794090A (zh) * | 2014-01-22 | 2015-07-22 | 北京浩正泰吉科技有限公司 | 一种远程终端模块 |
US9479475B1 (en) * | 2014-03-17 | 2016-10-25 | Michael E. Mazarick | System and method for IPv4 to IPv6 transition rather than an outage |
CN104917634B (zh) | 2015-04-27 | 2018-03-02 | 苏州大学 | 一种路由器卡时钟频率确定方法及装置 |
US10140027B1 (en) * | 2017-05-26 | 2018-11-27 | Seagate Technology Llc | Data transfers with adaptively adjusted polling times |
CN111124968A (zh) * | 2019-12-05 | 2020-05-08 | 山东浪潮人工智能研究院有限公司 | 一种基于fpga与risc-v的互联交换方法 |
CN112260896B (zh) * | 2020-10-16 | 2022-05-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种网络传输测试方法、装置、设备及可读存储介质 |
CN113377438B (zh) * | 2021-08-13 | 2021-11-30 | 沐曦集成电路(上海)有限公司 | 一种处理器及其数据读写方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564542A (zh) * | 2004-04-20 | 2005-01-12 | 清华大学 | 在IPv6网络上实现IPv4网络互联的隧道建立方法 |
CN1571360A (zh) * | 2003-07-18 | 2005-01-26 | 华为技术有限公司 | 站内自动隧道的实现方法 |
CN1604587A (zh) * | 2003-10-01 | 2005-04-06 | 华为技术有限公司 | 一种网络过渡接入的方法 |
WO2006053856A1 (en) * | 2004-11-18 | 2006-05-26 | International Business Machines Corporation | Tunneling ipv6 packets |
-
2009
- 2009-10-12 CN CN2009100935323A patent/CN101692647B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571360A (zh) * | 2003-07-18 | 2005-01-26 | 华为技术有限公司 | 站内自动隧道的实现方法 |
CN1604587A (zh) * | 2003-10-01 | 2005-04-06 | 华为技术有限公司 | 一种网络过渡接入的方法 |
CN1564542A (zh) * | 2004-04-20 | 2005-01-12 | 清华大学 | 在IPv6网络上实现IPv4网络互联的隧道建立方法 |
WO2006053856A1 (en) * | 2004-11-18 | 2006-05-26 | International Business Machines Corporation | Tunneling ipv6 packets |
Also Published As
Publication number | Publication date |
---|---|
CN101692647A (zh) | 2010-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101692647B (zh) | 路由器中采用IPv6头封装IPv4包的隧道转发*** | |
CN1327674C (zh) | 核心路由器上支持访问控制列表功能的双栈兼容路由查找器 | |
CN101291546B (zh) | 核心路由器交换结构协处理器 | |
US7069372B1 (en) | Processor having systolic array pipeline for processing data packets | |
US7418536B2 (en) | Processor having systolic array pipeline for processing data packets | |
US6794896B1 (en) | Method and apparatus for multithreading | |
CN101667451B (zh) | 高速数据交换接口的数据缓存器及其数据缓存控制方法 | |
CN100407701C (zh) | 一种网络处理器 | |
US7773599B1 (en) | Packet fragment handling | |
US7236501B1 (en) | Systems and methods for handling packet fragmentation | |
US7782857B2 (en) | Logical separation and accessing of descriptor memories | |
US7680116B1 (en) | Optimized buffer loading for packet header processing | |
CN107689931A (zh) | 一种基于国产fpga的实现以太网交换功能***及方法 | |
US20040151170A1 (en) | Management of received data within host device using linked lists | |
US6891397B1 (en) | Gigabit router on a single programmable logic device | |
CN106257434A (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
CN109086228A (zh) | 具有多个独立访问通道的高速存储器芯片 | |
CN101136841B (zh) | 基于现场可编程门阵列的隧道实现装置及方法 | |
CN105099957A (zh) | 一种基于软件查表的数据包转发方法 | |
Swaminathan et al. | High speed generic network interface for network on chip using ping pong buffers | |
US7239630B1 (en) | Dedicated processing resources for packet header generation | |
CN105872849A (zh) | 一种基于fpga的网络传输实时音视频纠错方法及*** | |
US7379451B1 (en) | Address lookup table | |
CN106406820A (zh) | 一种网络处理器微引擎的多发射指令并行处理方法及装置 | |
CN105516023A (zh) | 一种报文转发方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120314 |
|
CF01 | Termination of patent right due to non-payment of annual fee |