CN101964759B - 支持多用户的高速报文分流方法 - Google Patents

支持多用户的高速报文分流方法 Download PDF

Info

Publication number
CN101964759B
CN101964759B CN2010105388142A CN201010538814A CN101964759B CN 101964759 B CN101964759 B CN 101964759B CN 2010105388142 A CN2010105388142 A CN 2010105388142A CN 201010538814 A CN201010538814 A CN 201010538814A CN 101964759 B CN101964759 B CN 101964759B
Authority
CN
China
Prior art keywords
card
output
message
port
switching
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
Application number
CN2010105388142A
Other languages
English (en)
Other versions
CN101964759A (zh
Inventor
陈曙晖
赵国鸿
唐勇
喻波
陆华彪
苏金树
李韬
宣蕾
卢泽新
陈一骄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2010105388142A priority Critical patent/CN101964759B/zh
Publication of CN101964759A publication Critical patent/CN101964759A/zh
Application granted granted Critical
Publication of CN101964759B publication Critical patent/CN101964759B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种支持多用户的高速报文分流方法,目的是为支持多用户模式的高速大容量分流设备提供一种高速、低延迟的数据报文从单块输入卡到多块输出卡的组播分流方法。技术方案是先修改输入卡、输出卡,使输入卡支持多用户模式,使输出卡支持指定端口分流,构建由输入卡、交换卡和输出卡组成的两级交换结构;然后初始化两级交换结构并采用两级交换结构进行分流。采用本发明可保证整个交换结构的流量均衡,提高了输入卡中报文的处理速度,且只是输出卡而不是整套分流设备供一个用户独占使用,解决了交换容量带来的瓶颈问题,系统稳定性好。

Description

支持多用户的高速报文分流方法
技术领域
本发明涉及骨干网络高速大容量分流设备的分流方法,尤其涉及支持多用户的高速报文分流方法,可以应用于40G骨干网络的分流设备中。
背景技术
目前,我国运营商数据骨干线路和城域网的技术标准已经朝着40G及更高的速度在发展,在以40Gbps极高的速率流动的数据中,是否潜伏着某些对国家安全、公共安全、网络安全的威胁,是运营商和安全部门关心的一个问题。然而基于CPU的服务器处理能力的提升远远达不到带宽提升的速度,IP报文内容分析设备的处理能力远远达不到40Gbps的要求。将骨干网络上高速的报文转化为较低速率的报文,让低速的设备完成后续的分析处理工作,是高速网络分流设备需要解决的问题。
如图1所示,典型的网络分流设备由输入卡、交换网络和输出卡组成,输入卡和输出卡又称为线卡。输入卡根据用户定义的过滤规则对报文进行过滤,并根据均衡分流算法计算输出端口号,然后将报文通过交换网络转发给输出卡,输出卡完成输出功能。这种网络分流设备只能工作在单用户模式,即整个分流设备只能有一套报文过滤规则,如果有多个用户或部门要对同一流量做不同的处理,则只能通过使用多套设备同时工作来完成任务。单用户模式下的输入卡只支持单个用户规则的报文过滤,如图5所示,输入卡单规则过滤模块内部的五元组存储器即五元组TCAM(Ternary Content AddressableMemory,称为三态内容寻址存储器)的数据单元只包含五元组信息。单用户模式下的输出卡只完成报文缓冲和输出功能。
在多用户组播分流的情况下,输入卡接收到的一个报文要对多个用户的过滤规则进行匹配,根据匹配的结果将报文转发到每个用户指定的输出卡。在这种组播分流模式下,分流设备在均衡分流的同时,需要解决将同一报文转发给多个输出卡的问题。传统的分流设备存在一系列问题:
首先,现有的报文分流策略大多数基于五元组对报文进行过滤,根据五元组产生的Hash值(哈希值)进行分流,这种分流策略不能支持一块输入卡到多块输出卡的多用户模式,更不能支持多块输入卡的报文同时分流到多块输出卡的多用户模式,基于这种分流策略的分流设备只能提供给一个用户使用,这使得一个用户必须独占这样的分流设备。只能通过多台这样的分流设备组合来支持多用户过滤模式,这无疑带来了设备管理上的难度,增加了用户的成本。
其次,部分分流设备通过在输入卡进行报文复制的策略支持多用户模式,即输入卡对匹配多个用户过滤规则的报文进行复制,并通过交换网络,将报文复制到多块输出卡。在接口速率较低的情况下,这种根据用户的需求在输入卡中进行报文复制的方式可以满足多用户分流的需求。但是面向高速网络,最坏的情况下一个报文可能需要达到所有的输出卡,复制后报文的数量将变成原来的数倍,这将大大增加原本就拥挤的交换网络的负担,对分流设备的内部数据交换能力和存储器的带宽和时延都提出了极高的要求。从而加大了设备的复杂性和成本,降低了设备的可靠性。
发明内容
本发明要解决的技术问题是为支持多用户模式的高速大容量分流设备提供一种高速、低延迟的数据报文从单块输入卡到多块输出卡的组播分流方法。
为解决上述具体技术问题,技术方案包括以下步骤:
第一步,构建由输入卡、交换卡和输出卡组成的两级交换结构。
1.1修改输入卡,使输入卡支持多用户模式。
修改后的输入卡由多规则过滤模块、报文头部修改模块和报文分流模块组成。修改步骤如下:
1.1.1将输入卡中的单规则过滤模块(如Stratix EP2SGX130系列芯片)修改为多规则过滤模块,方法是:
1.1.1.1修改输入卡中的五元组TCAM中的数据单元格式,每项数据单元的内容添加用户号。
1.1.1.2在输入卡的多规则过滤模块中添加一个外部SRAM(Static Random AccessMemory,静态随机访问存储器),该SRAM的每个存储单元包含三项内容:对应五元组数据单元的地址、输出卡号和输出卡端口号。
1.1.1.3修改五元组匹配过滤逻辑,使五元组匹配过滤逻辑与五元组TCAM和外部STAM相连接,五元组匹配过滤逻辑根据报文的五元组数据和用户号来查找五元组TCAM,并根据查找结果从SRAM中提取出输出卡号和输出卡端口号。
1.1.1.4在多规则过滤模块中添加S个匹配结果缓冲器(S表示分流设备支持的最大用户数),S个匹配结果缓冲器与五元组匹配过滤逻辑和报文头部修改模块相连,用来缓存每个用户过滤规则的匹配结果。
1.1.2去掉输入卡中的报文复制模块,添加报文头部修改模块:
报文头部修改模块与多规则过滤模块、报文分流模块相连。报文头部修改模块由输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器、新报文缓冲器、过滤结果提取逻辑和报文头部修改逻辑组成。过滤结果提取逻辑与多规则过滤模块的S个匹配结果缓冲器相连,过滤结果提取逻辑的输出连接输出卡组信息缓冲器、输出卡号掩码缓冲器;过滤结果提取逻辑提取S个匹配结果缓冲器的匹配结果,形成输出卡组信息,并根据输出卡组信息计算输出卡号掩码,分别传送给输出卡组信息缓冲器和输出卡号掩码缓冲器。报文头部修改逻辑与输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器和新报文缓冲器相连。报文头部修改逻辑从报文缓冲器中提取原始报文,并在报文头部添加从输出卡组信息缓冲器和输出卡号缓冲器读取的输出卡组信息和输出卡号掩码,并将新报文传送给新报文缓冲器。
1.1.3
报文分流模块与报文头部修改模块的新报文缓冲器相连接,从新报文缓冲器中提取报文,并进行均衡分流。报文分流模块有P(P为分流级数,表示输入带宽与输出带宽的比例,P为大于1的整数)个输出端口。
1.2采用交换卡代替交换网络。
交换卡采用具备多端口报文复制功能的可编程交换芯片,要求带转发表(称为MODPORT_MAP表),如Broadcom公司的StrataXGS BCM56820系列交换芯片。要求交换卡内部具备输入口到输出口的全连接关系,支持多输出堆叠技术(即具备识别报文头部携带的输出卡号掩码的功能),并具备根据输出卡号掩码查找交换卡内部的MODPORT_MAP表将同一报文在多个输出口上复制输出的功能。
MODPORT_MAP表是交换卡内部一个A行*2B列(其中A表示交换卡的输入端口数量,B为交换卡支持的最大输出卡数量,一般取8)的缓存区,MODPORT_MAP表中每一个元素MODPORT_MAP[i][j]称为bitmap值(i的取值为1到A的整数,j的取值为0到2B-1的整数),其中每个bitmap是一个C位的二进制串(C为bitmap的位数,表示交换卡的输出端口数量,交换卡的每个输出端口对应1位,C一般取12)。元素MODPORT_MAP[i][j]的值表示从交换卡的第i个输入端口接收的报文,当报文头部携带的输出卡号掩码为j(输出卡号掩码为该报文需要达到的多个输出卡的卡号掩码值)时,该交换卡需要输出该报文的输出端口组合值,bitmap中每一位对应一个输出端口的输出标记。例如,bitmap的第k位为1,表示需要将该报文转发到该交换卡的第k号输出端口。
交换卡的块数根据输入卡和输出卡端口数量决定,具体表示如下:
Figure GDA0000103810630000041
其中[]表示向上取整,N所有输入卡的输出端口是指所有输入卡的输出端口的数量,N所有输出卡的输入端口是指所有输出卡的输入端口数量,N每块交换卡的总端口是指每块交换卡的总端口数量。
1.3修改输出卡,使输出卡支持指定端口分流。
修改后的输出卡由报文头部分析模块和报文指定端口输出模块组成。修改步骤如下:
1.3.1在输出卡中添加报文头部分析模块
报文头部分析模块由P个报文接收缓冲器、报文头部分析逻辑和输出端口缓冲器组成,P个报文接收缓冲器接收来自交换卡的报文,报文头部分析逻辑连接P个报文接收缓冲器和输出端口缓冲器。报文头部分析逻辑依次从每个报文接收缓冲器中提取报文,分析报文头部的输出卡组信息,从其中提取出输出卡端口号,并将输出卡端口号送输出端口缓冲器,将接收到的报文传送给报文指定端口输出模块。
1.3.2修改报文单端口输出模块为报文指定端口输出模块
报文指定端口输出模块由报文指定端口输出逻辑和P个输出报文缓冲器组成,报文指定端口输出逻辑连接P个接收报文缓冲器、输出端口缓冲器和P个输出报文缓冲器。报文指定端口输出模块从接收报文缓冲器中提取报文,并从输出端口缓冲器中提取出输出卡端口号,然后将报文按照该输出卡端口号送相应的输出报文缓冲器。
1.4将N块输入卡、交换卡、M块输出卡连接,形成两级交换结构(N、M均为正整数,N的数目由该交换结构支持的最大骨干链路数目决定,M的数目由该交换结构支持的最大用户数目决定)
输入卡的输出端口与交换卡的输入端口相连,形成第一级分流网络,交换卡的输出端口与输出卡的输入端口相连,形成第二级转发网络。输入卡逻辑编号为1到N,输出卡逻辑编号为1到M。每块输入卡拥有P个输出端口,这P个输出端口与交换卡的P个输入端口相连接,因此,每块输入卡能通过P个输出端口将报文分流到交换卡。每块输出卡有P个输入端口与交换卡的P个输出端口相连。
输入卡共有N*P个输出端口连接交换卡,输出卡共有M*P个输入端口与交换卡相连,因此,要求交换卡的输入端口数量大于N*P,交换卡的输出端口数量大于M*P,交换卡的端口总数量L>N*P+M*P。交换卡内部的N*P个输入端口到M*P个输出端口有全连接关系。
每块输出卡有P个输出端口,这P个端口连接到同一个用户处理机,M块输出卡分配给S个用户处理机,S≤M,每块输出卡分配给一个用户使用,输出卡支持将报文在其P个输出端口上灵活地指定输出。
第二步,初始化两级交换结构。
2.1初始化输入卡多规则过滤模块
本步骤需要根据S个用户的过滤规则初始化过规则过滤模块的五元组TCAM和外部SRAM。
初始化方法如下:
2.1.1多规则过滤模块清空五元组TCAM和SRAM存储内容;
2.1.2用户号u=1;
2.1.3多规则过滤模块获取用户u的过滤规则,内容包括:五元组、匹配该五元组的报文转发到的输出卡卡号(从1到P,由每个用户从其分配到的输出卡中指定)和输出卡端口号(从0到P-1,由每个用户从选定的输出卡的输出端口中指定);
2.1.4多规则过滤模块将用户u过滤规则的五元组部分和用户号u写入TCAM的一个存储单元,并记录该存储单元的地址;
2.1.5多规则过滤模块将2.1.4步记录的地址和用户u过滤规则的输出卡号和输出卡端口号部分写入外部SRAM;
2.1.6u=u+1;
2.1.7判定u是否大于S,如果是,则转2.1.8,否则转2.1.3;
2.1.8初始化完成。
2.2初始化交换卡的MODPORT_MAP表,
初始化过程如下:
2.2.1输入端口号q=1;
2.2.2输出卡号掩码m=1;
2.2.3bitmap=0;
2.2.4输出卡号r=1;
2.2.5判定输出卡号掩码m的第r位是否位1,如果是,转2.2.6,否则转2.2.7;
2.2.6查询与输入端口q相连接的输入卡的输出端口p(从0到P-1),再查询与输出卡r的第p号端口相连接的交换卡的输出端口号d,修改bitmap,将bitmap的第d位置1;
2.2.7r=r+1;
2.2.8判定r是否大于M,如果是,转2.2.9,否则转2.2.5;
2.2.9将bitmap写在MODPORT_MAP表第2B*q+m表项上;
2.2.10m=m+1;
2.2.11判定m是否大于2B,如果是,转2.2.12,否则转2.2.3;
2.2.12q=q+1;
2.2.13判定q是否大于A,如果是,转2.2.14,否则转2.2.2;
2.2.14初始化完成。
第三步,采用两级交换结构进行分流。
3.1输入卡的多规则过滤模块采用以下方法对接收到的报文进行过滤(S表示最大用户数量):
3.1.1五元组匹配过滤逻辑读取报文的五元组;
3.1.2用户号u=1;
3.1.3五元组匹配过滤逻辑将五元组和用户号u送五元组TCAM;
3.1.4五元组TCAM对五元组和用户号u进行查询,存在则输出存储该五元组和用户号的地址,否则输出0;
3.1.5五元组匹配过滤逻辑判定五元组TCAM的输出地址,如果输出地址为0,执行3.1.6步,否则五元组匹配过滤逻辑根据该输出地址从外部SRAM读取地址单元内容为该输出地址的存储单元,并将该存储单元的内容即二元组(输出卡卡号、输出卡端口号)送用户u匹配结果缓冲器;转3.1.7步;
3.1.6将(0,0)送用户u匹配结果缓冲器;
3.1.7u=u+1;
3.1.8判定u是否大于S,如果是,执行3.1.9,否则转3.1.3步;
3.1.9完成该报文的多规则过滤。
3.2输入卡的报文头部修改模块根据多规则过滤模块的匹配结果,对报文进行修改,方法为:
3.2.1报文头部修改模块的过滤结果提取逻辑从S个用户匹配结果缓冲器中提取出S个输出卡信息,将每个输出卡信息(输出卡卡号,输出卡端口号)串接起来形成输出卡组信息,并将输出卡组信息送输出卡组信息缓冲器;
3.2.2过滤结果提取逻辑将所有的输出卡信息中的输出卡卡号进行位或计算,形成的二进制串为输出卡号掩码ModID值,如果ModID中第m位为1,则表示需要将该报文转发到卡号为m的输出卡。过滤结果提取逻辑将ModID传送给输出卡卡号掩码缓冲器。
3.2.3报文头部修改模块的报文头部修改逻辑从输出卡组信息缓冲器中提取输出卡组信息,从输出卡卡号掩码缓冲器中提取ModID,从报文缓冲器中提取原始报文,将原始报文中的目的MAC地址域的内容替换为输出卡组信息;在报文的头部添加一个新的单元,其内容为ModID值;重新计算该报文的校验和。报文头部修改逻辑将修改后的新报文送新报文缓冲器。
3.3输入卡的报文分流模块从新报文缓冲器获得新报文,对新报文采用常用的均衡分流方法(如基于源、目IP地址的Hash值进行均衡分流),在输入卡的P个输出端口上进行分流,将新报文转发给交换卡。
3.4交换卡根据接收该报文的端口q和新报文头部携带的ModID,从MODPORT_MAP表中查询该新报文的输出端口掩码bitmap,根据bitmap值获取报文转发到每个输出卡的输出端口,并在该输出端口上转发报文,采用的方法如下:
3.4.1交换卡获取接收该报文的端口q;
3.4.2交换卡提取该报文头部携带的ModID值;
3.4.3交换卡从MODPORT_MAP中查询第q行、第ModID列的bitmap值;
3.4.4c=1;
3.4.5交换卡判定bitmap的第c位是否为1,如果是,转3.4.6,否则转3.4.7;
3.4.6交换卡将该报文传送输出端口c;
3.4.7c=c+1;
3.4.8判定c是否大于C,如果是,转3.4.9,否则转3.4.5;
3.4.9转发结束,完成该报文的转发。
3.5输出卡的报文头部分析逻辑按以下方法对从交换卡接收的新报文进行报文头部分析:
3.5.1输出卡报文头部分析逻辑获取该输出卡所属的用户号和本输出卡卡号;
3.5.2根据用户号从报文头部提取出对应本卡的输出卡信息(输出卡卡号,输出卡端口号);
3.5.3判定输出卡信息中的输出卡卡号是否等于本输出卡卡号,是则执行3.5.4,否则丢弃报文;
3.5.4将输出卡端口号送输出端口缓冲器;
3.6输出卡的报文指定端口输出模块的报文指定端口输出逻辑从接收报文缓冲器中提取出待转发的报文,从输出端口缓冲器中提取出输出卡端口号,将报文传送给该输出卡端口号对应的输出报文缓冲器。用户处理机从输出报文缓冲器获得匹配其过滤规则的报文。
采用本发明可以达到以下有益效果:
1,由于采用交换卡代替原来的交换网络,交换卡的引入保证了整个交换结构的流量均衡,保证了报文能同时复制到多块输出卡,同时利用交换卡的高速交换保证了整个分流结构的交换容量;解决了交换容量带来的瓶颈问题,系统稳定性好;
2,在输入卡中去掉了报文复制模块,设计了报文头部修改模块,通过在报文头部添加输出卡组信息和输出卡号掩码的形式,将报文的复制延迟到交换卡中,大大提高了输入卡中报文的处理速度。
3、本发明构建的两级交换结构中每块输出卡供一个用户独占使用,支持用户按需指定报文从该输出卡的任意一个端口输出,各用户可以在自己管理的端口内灵活设置分流策略;保证了用户过滤规则的配置隔离,一个用户过滤配置不会影响其它用户过滤效果和整体性能;而传统的分流设备只能供给一个用户使用,即用户独占一整套分流设备。
4、基于该分流结构的分流设备上,要添加一个用户对整个流量进行监管,只需要简单的增加一块输出卡,用户的增加不会引起报文流量的成倍增加。
附图说明
图1传统分流设备的结构图;
图2本发明两级交换结构的结构图;
图3输入卡修改前后对比图;
图4输入卡中多规则过滤模块结构图;
图5五元组TCAM中的数据单元格式修改前后对比图;
图6输入卡中报文头部修改模块结构图;
图7输出卡修改前后对比图;
图8输出卡详细结构图;
图9采用本发明进行多用户模式分流的一种实例。
具体实施方式
下面结合附图,详细地描述本发明的具体实施方式。本实施方式针对骨干网络40Gbps的高速报文,分流到4个10Gbps的较低速率的出口,重点阐述本方法如何支持多用户模式。
图2为本发明两级交换结构的结构图,用交换卡代替交换网络,输入卡接收来自骨干网络的高速报文,对报文进行多规则过滤,在报文头部添加报文的输出卡组信息后在其P个输出端口上进行均衡分流,将报文分流给交换卡;交换卡具备从输入端口到输出端口的全连接关系,还具备多端口复制输出功能;交换卡将报文头部携带的输出卡组信息转化成输出端口组,将报文同时通过多个端口转发给多块输出卡;输出卡具备报文指定端口输出功能,每块输出卡给一个用户使用,输出卡通过分析报文头部携带的输出卡信息,通过指定的端口将报文转发给用户处理机。图2中的N块输入卡表示该交换结构可以支持同时监控N条骨干网络链路,M块输出卡表示最多可以支持M个用户同时监控N条骨干网络链路。用户数S不能大于输出卡数M。
图3为输入卡修改前后对比图,修改后的输入卡由多规则过滤模块、报文头部修改模块和报文分流模块组成,报文分流模块使用公知的分流策略(如基于源、目IP地址的均衡分流方法),而多规则过滤模块将报文匹配每个用户的过滤规则,过滤后的匹配结果包括两部分,一部分是所有用户过滤规则的匹配结果形成的输出卡组信息,另一部分是输出卡组信息中每个输出卡号位或形成的掩码ModID。报文头部修改模块将匹配结果标签添加到报文头部,并将新报文传送给报文分流模块。
图4为多规则过滤模块结构图,多规则过滤模块由五元组匹配过滤逻辑、五元组TCAM、外部SRAM和S个用户匹配结果缓冲器组成。五元组匹配过滤逻辑按照3.1步描述的匹配流程,把接收的报文五元组和每个用户号送五元组TCAM进行匹配,并根据匹配结果查询每个用户指定的输出卡信息(输出卡卡号,输出卡端口号),并将输出卡信息送相应的匹配结果缓冲器。
图5为五元组TCAM中的数据单元格式修改前后对比图,图的上半部分为传统分流设备的五元组TCAM中数据单元结构内容,包括五元组信息;而修改后的五元组TCAM单元结构内容添加了用户号一项,多规则过滤模块在对报文和每个用户的过滤规则匹配时,将根据报文的五元组和每个用户号查询五元组TCAM进行匹配。
图6为报文头部修改模块结构图,报文头部修改模块由过滤结果提取逻辑、输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器、报文头部修改逻辑和新报文缓冲器组成。过滤结果提取逻辑提取S个用户匹配结果缓冲器中的输出卡信息,形成输出卡组信息,并根据输出卡组信息计算输出卡号掩码ModID,将输出卡组信息送输出卡组信息缓冲器,将输出卡卡号掩码ModID送输出卡卡号掩码缓冲器;报文头部修改逻辑提取输出卡组信息缓冲器中的输出卡组信息,输出卡卡号掩码缓冲器中的ModID和报文数据缓冲器中的报文数据,将原始报文中的目的MAC地址域的内容替换为输出卡组信息,在报文的头部添加ModID值;重新计算该报文的校验和。报文头部修改逻辑将修改后的新报文送新报文缓冲器。
图7给出了修改前后的输出卡对比图。修改前输出卡的报文单端口输出模块缓冲报文并将报文在唯一的端口上进行输出。修改后输出卡的报文头部分析模块通过分析报文头部的输出卡组信息,提取出属于本卡卡号的输出卡信息(输出卡卡号,输出卡端口号);报文指定端口输出模块将报文从该输出卡端口号上进行输出。
图8为输出卡详细结构图,输出卡由报文头部分析模块和报文指定端口输出模块组成,报文头部分析模块由P个接收报文缓冲器、报文头部分析逻辑和输出端口缓冲器组成,报文头部分析逻辑从接收报文缓冲器中提取报文,从报文头部读取属于本输出卡的输出卡组信息(输出卡卡号,输出卡端口号),按照3.5步中的方法对报文进行分析,得到输出卡端口号,将输出卡端口号送输出端口缓冲器;指定端口输出模块由指定端口输出逻辑和P个输出报文缓冲器组成。指定端口输出逻辑从报文接收缓冲器中提取报文,从输出端口缓冲器中读取出输出卡端口号,根据输出卡端口号将报文传送给相应的输出报文缓冲器。
图9为采用本发明进行多用户模式分流的一种实例。采用4块40G POS输入卡,每块POS输入卡有1个40Gbps的输入端口和4个10Gbps的输出端口;采用6块10G POS输出卡,每块POS输出卡有4个10Gbps的输入端口和4个10Gbps的输出端口,最大支持用户数量S为6;采用2块可编程的BCM56820芯片作为交换卡,每块交换卡有20个10Gbps端口,其中8个端口作为输入端口与输入卡相连接,12个端口作为输出端口与输出卡相连接;每块40G输入卡的前两个端口(P0和P1)与第一块交换卡相连,后两个端口(P2和P3)与第二块交换卡相连;每块10G输出卡的前两个端口(P0和P1)与第一块交换卡相连,后两个端口(P2和P3)与第二块交换卡相连(如果由于交换卡端口数量的限制而需要采用多块交换卡,则交换卡与输入卡和输出卡相连接时,需要保证每块交换卡与每块输入卡输出卡都有连接关系,同时应尽量使多块交换卡的连接数量均匀,从而保证各交换卡流量负载均衡,交换卡的数量不影响MODPORT_PORT表的初始化和交换卡的交换策略)。同时确定4块40G输入卡的逻辑编号为1-4,6块10G输出卡的逻辑编号为1-6,交换卡的编号为1-2,每块输出卡给一个用户使用。
具体实施过程如下:
第一步,构建由输入卡、交换卡和输出卡组成的两级交换结构。
1.1修改40G输入卡,使40G输入卡支持多用户模式。
修改后的40G输入卡由多规则过滤模块、报文头部修改模块和报文分流模块组成。修改步骤如下:
1.1.1将40G输入卡中的单规则过滤模块(如Stratix EP2SGX130系列芯片)修改为多规则过滤模块,方法是:
1.1.1.1修改40G输入卡中的五元组TCAM中的数据单元格式,每项数据单元的内容添加用户号。
1.1.1.2在40G输入卡的多规则过滤模块中添加一个外部SRAM(Static RandomAccess Memory,静态随机访问存储器),该SRAM的每个存储单元包含三项内容:五元组数据单元地址、输出卡号和输出卡端口号。
1.1.1.3修改五元组匹配过滤逻辑,使五元组匹配过滤逻辑与五元组TCAM和外部STAM相连接,五元组匹配过滤逻辑根据报文的五元组数据和用户号来查找五元组TCAM,并根据查找结果从SRAM中提取出输出卡号和输出卡端口号。
1.1.1.4在多规则过滤模块中添加6个匹配结果缓冲器(S=6,表示分流设备最大支持6个用户),6个匹配结果缓冲器与五元组匹配过滤逻辑和报文头部修改模块相连,用来缓存每个用户过滤规则的匹配结果,同时将匹配结果传输到报文头部修改模块。
1.1.2去掉40G输入卡中的报文复制模块,添加报文头部修改模块:
在40G输入卡中添加报文头部修改模块,报文头部修改模块与多规则过滤模块、报文分流模块相连。报文头部修改模块由输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器、新报文缓冲器、过滤结果提取逻辑和报文头部修改逻辑组成。过滤结果提取逻辑与多规则过滤模块的6个匹配结果缓冲器相连,过滤结果提取逻辑的输出连接输出卡组信息缓冲器、输出卡号掩码缓冲器;过滤结果提取逻辑提取6个匹配结果缓冲器的匹配结果,形成输出卡组信息,并根据输出卡组信息计算输出卡号掩码,分别传送给输出卡组信息缓冲器和输出卡号掩码缓冲器。报文头部修改逻辑与输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器和新报文缓冲器相连。报文头部修改逻辑从报文缓冲器中提取原始报文,并在报文头部添加从输出卡组信息缓冲器和输出卡号缓冲器读取的输出卡组信息和输出卡号掩码,并将新报文传送给新报文缓冲器。
1.1.3
报文分流模块与报文头部修改模块的新报文缓冲器相连接,从新报文缓冲器中提取报文,并采用源、目IP地址的Hash值进行均衡分流。报文分流模块有4个分流出口(P=4,表示分流级数为4,即将40Gbps的报文分流成4个10Gbps的报文)。
1.2采用交换卡代替交换网络。
交换卡采用2块Broadcom公司的StrataXGS BCM56820交换芯片,每块交换芯片有20个端口。每块交换芯片的8个端口作为输入端口,12个端口作为输出端口。
1.3修改输出卡,使输出卡支持指定端口分流。
修改后的输出卡由报文头部分析模块和报文指定端口输出模块组成。修改步骤如下:
1.3.1在输出卡中添加报文头部分析模块
报文头部分析模块由P个报文接收缓冲器、报文头部分析逻辑和输出端口缓冲器组成,P个报文接收缓冲器接收来自交换卡的报文,报文头部分析逻辑连接P个报文接收缓冲器和输出端口缓冲器。报文头部分析逻辑依次从每个报文接收缓冲器中提取报文,分析报文头部的输出卡组信息,从其中提取出输出卡端口号,并将输出卡端口号送输出端口缓冲器,将接收到的报文传送给报文指定端口输出模块。
1.3.2修改报文单端口输出模块为报文指定端口输出模块
报文指定端口输出模块由报文指定端口输出逻辑和P个输出报文缓冲器组成,报文指定端口输出逻辑连接P个接收报文缓冲器、输出端口缓冲器和P个输出报文缓冲器。报文指定端口输出模块从接收报文缓冲器中提取报文,并从输出端口缓冲器中提取出输出卡端口号,然后将报文按照该输出卡端口号送相应的输出报文缓冲器。
1.4将输入卡、交换卡、输出卡连接,形成两级交换结构。
输入卡的输出端口与交换卡的输入端口相连接形成第一级分流网络,交换卡的输出端口与输出卡的输入端口相连接形成第二级转发网络。输入卡数量为4,逻辑编号为1到4,输出卡数量为6,逻辑编号为1到6。每块输入卡拥有4个输出端口,这4个输出端口的前两个端口与交换卡1相连接,后两个端口与交换卡2相连接,因此,输入卡能通过4个输出端口将报文分流到2块交换卡。每块输出卡有4个输入端口与交换卡的4个输出端口相连接,每块交换卡的前2个端口与交换卡1相连接,后2个端口与交换卡2相连接。
输入卡共有16个输出端口连接交换卡,输出卡共有24个输入端口与交换卡相连接,交换卡的输入端口数量为16,交换卡的输出端口数量为24,2块交换卡的端口总数量40。每块交换卡内部的8个输入端口到12个输出端口有全连接关系。
在该两级交换结构中,共有6个用户使用6块输出卡,需要预先将6块输出卡分配给6个用户,每块输出卡对应一个用户。每块输出卡有4个输出端口,这4个端口连接到用户处理机。输出卡支持用户将报文在其4个输出端口上灵活地指定输出。第二步,初始化两级交换结构。
2.1初始化输入卡多规则过滤模块
本步骤需要根据6个用户的过滤规则初始化过规则过滤模块的外部TCAM和外部SRAM。本交换结构支持的用户配置过滤规则的命令为:五元组、匹配该五元组的报文转发到的输出卡卡号(从1到4,由每个用户从其分配到的输出卡中指定)和输出卡端口号(从0到3,由每个用户从选定的输出卡的输出端口中指定)。交换结构需要根据每个用户配置的过滤规则初始化外部TCAM和外部SRAM。
初始化方法如下:
2.1.1多规则过滤模块清空五元组TCAM和SRAM存储内容
2.1.2用户号u=1;
2.1.3多规则过滤模块获取用户u的过滤规则;
2.1.4多规则过滤模块将用户u过滤规则的五元组部分和用户号u写入TCAM的一个存储单元,并记录该存储单元的地址;
2.1.5多规则过滤模块将2.1.4步记录的地址和用户u过滤规则的输出卡号和输出卡端口号部分写入外部SRAM的一个存储单元;
2.1.6u=u+1;
2.1.7判定u是否大于6,如果是,则转2.1.8,否则转2.1.3
2.1.8初始化完成
2.2初始化交换卡的MODPORT_MAP表
本步骤根据1.4步中的交换结构,初始化交换卡的MODPORT_MAP表。初始化过程如下:
2.2.1输入端口号q=1;
2.2.2输出卡号掩码m=1;
2.2.3bitmap=0;
2.2.4输出卡号r=1;
2.2.5判定输出卡号掩码m的第r位是否位1,如果是,转2.2.6,否则转2.2.7;
2.2.6查询与输入端口q相连接的输入卡的输出卡端口p,再查询与输出卡r的第p号端口相连接的交换卡的输出端口d,修改bitmap,将bitmap的第d位置1;
2.2.7r=r+1;
2.2.8判定r是否大于6,如果是,转2.2.9,否则转2.2.5;
2.2.9将bitmap写在MODPORT_MAP表第64*q+m表项上;
2.2.10m=m+1;
2.2.11判定m是否大于64,如果是,转2.2.12,否则转2.2.3;
2.2.12q=q+1;
2.2.13判定q是否大于8(每块交换卡的输入端口数为8),如果是,转2.2.14,否则转2.2.2;
2.2.14初始化完成。
第三步,采用两级交换结构进行分流。
3.1输入卡的多规则过滤模块采用以下方法对接收到的报文进行过滤(最大用户数量为6):
3.1.1五元组匹配过滤逻辑读取报文的五元组;
3.1.2用户号u=1;
3.1.3五元组匹配过滤逻辑将五元组和用户号u送五元组TCAM;
3.1.4五元组TCAM对五元组和用户号u进行查询,存在则输出存储该五元组和用户号的地址,否则输出0;
3.1.5五元组匹配过滤逻辑判定五元组TCAM的输出地址,如果输出地址为0,执行3.1.6步,否则五元组匹配过滤逻辑根据该输出地址从外部SRAM读取地址单元内容为该输出地址的存储单元,并将该存储单元的内容(输出卡卡号、输出卡端口号)送用户u匹配结果缓冲器;转3.1.7步;
3.1.6将(0,0)送用户u匹配结果缓冲器;
3.1.7u=u+1;
3.1.8判定u是否大于6,如果是,执行3.1.9,否则转3.1.3步;
3.1.9完成该报文的多规则过滤。
3.2输入卡的报文头部修改模块根据多规则过滤模块的匹配结果,对报文进行修改,方法为:
3.2.1报文头部修改模块的过滤结果提取逻辑从6个用户匹配结果缓冲器中提取出6个输出卡信息,将每个输出卡信息(输出卡卡号,输出卡端口号)串接起来形成输出卡组信息,并将输出卡组信息送输出卡组信息缓冲器;
3.2.2过滤结果提取逻辑将所有的输出卡信息中的输出卡卡号进行位或计算,形成的二进制串为输出卡号掩码ModID值,如果ModID中第m位为1,则表示需要将该报文转发到卡号为m的输出卡。过滤结果提取逻辑将ModID传送给输出卡卡号掩码缓冲器。
3.2.3报文头部修改模块的报文头部修改逻辑从输出卡组信息缓冲器中提取输出卡组信息,从输出卡卡号掩码缓冲器中提取ModID,从报文缓冲器中提取原始报文,将原始报文中的目的MAC地址域的内容替换为输出卡组信息;在报文的头部添加一个新的单元,其内容为ModID值;重新计算该报文的校验和。报文头部修改逻辑将修改后的新报文送新报文缓冲器。
3.3输入卡的报文分流模块从新报文缓冲器获得新报文,对新报文采用常用基于源、目IP地址的Hash值的均衡分流算法,在输入卡的4个分流出口上进行分流,将新报文转发给交换卡。
3.4交换卡根据接收该报文的端口q和新报文头部携带的ModID,从MODPORT_MAP表中查询该新报文的输出端口掩码bitmap,根据bitmap值获取报文转发到每个输出卡的输出端口,并在该输出端口上转发报文,采用的方法如下:
3.4.1交换卡获取接收该报文的端口q;
3.4.2交换卡提取该报文头部携带的ModID值;
3.4.3交换卡从MODPORT_MAP中查询第q行、第ModID列的bitmap值;
3.4.4c=1;
3.4.5交换卡判定bitmap的第c位是否为1,如果是,转3.4.6,否则转3.4.7;
3.4.6交换卡将该报文传送输出端口c;
3.4.7c=c+1;
3.4.8判定c是否大于12,如果是,转3.4.9,否则转3.4.5;
3.4.9转发结束,完成该报文的转发。
3.5输出卡的报文头部分析逻辑按以下方法对从交换卡获得的新报文进行报文头部分析:
3.5.1获取该输出卡对应的用户号和本输出卡编卡号;
3.5.2根据用户号从报文头部提取出对应本卡的输出卡信息<输出卡卡号,输出卡端口号>;
3.5.3判定输出卡信息中的输出卡卡号是否等于本输出卡卡号,是则执行3.5.4,否则丢弃报文;
3.5.4将输出卡端口号送报文输出端口缓冲器;
3.6输出卡的报文指定端口输出逻辑从接收报文缓冲器中提取出待转发的报文,从输出端口缓冲器中提取出输出卡端口号,将报文传送给该输出卡端口号对应的输出报文缓冲器。通过输出报文缓冲器将报文转发给用户处理机。

Claims (5)

1.一种支持多用户的高速报文分流方法,其特征在于包括以下步骤:
第一步,构建由输入卡、交换卡和输出卡组成的两级交换结构:
1.1修改输入卡,使输入卡支持多用户模式,修改后的输入卡由多规则过滤模块、报文头部修改模块和报文分流模块组成;修改输入卡的步骤如下:
1.1.1将输入卡中的单规则过滤模块修改为多规则过滤模块,方法是:
1.1.1.1修改输入卡中的五元组TCAM中的数据单元格式,每项数据单元的内容添加用户号;
1.1.1.2在输入卡的多规则过滤模块中添加一个外部SRAM即静态随机访问存储器,该SRAM的每个存储单元包含三项内容:五元组数据单元地址、输出卡号和输出卡端口号;
1.1.1.3修改五元组匹配过滤逻辑,使五元组匹配过滤逻辑与五元组TCAM和外部STAM相连接,五元组匹配过滤逻辑根据报文的五元组数据和用户号来查找五元组TCAM,并根据查找结果从SRAM中提取出输出卡号和输出卡端口号;
1.1.1.4在多规则过滤模块中添加S个匹配结果缓冲器,S个匹配结果缓冲器与五元组匹配过滤逻辑和报文头部修改模块相连,用来缓存每个用户过滤规则的匹配结果,同时将匹配结果传输到报文头部修改模块,S表示分流设备支持的最大用户数;
1.1.2去掉输入卡中的报文复制模块,添加报文头部修改模块:
报文头部修改模块与多规则过滤模块、报文分流模块相连,报文头部修改模块由输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器、新报文缓冲器、过滤结果提取逻辑和报文头部修改逻辑组成;过滤结果提取逻辑与多规则过滤模块的S个匹配结果缓冲器相连,过滤结果提取逻辑的输出连接输出卡组信息缓冲器、输出卡号掩码缓冲器;过滤结果提取逻辑提取S个匹配结果缓冲器的匹配结果,形成输出卡组信息,并根据输出卡组信息计算输出卡号掩码,分别传送给输出卡组信息缓冲器和输出卡号掩码缓冲器;报文头部修改逻辑与输出卡组信息缓冲器、输出卡号掩码缓冲器、报文缓冲器和新报文缓冲器相连;报文头部修改逻辑从报文缓冲器中提取原始报文,并在 报文头部添加从输出卡组信息缓冲器和输出卡号缓冲器读取的输出卡组信息和输出卡号掩码,并将新报文传送给新报文缓冲器;
1.1.3报文分流模块与报文头部修改模块的新报文缓冲器相连接,从新报文缓冲器中提取报文,并进行均衡分流,报文分流模块有P个输出口,P为分流级数,表示输入带宽与输出带宽的比例,P为大于1的整数;
1.2采用交换卡代替交换网络,交换卡采用具备多端口报文复制功能的可编程交换芯片,要求带转发表即MODPORT_MAP表;要求交换卡内部具备输入口到输出口的全连接关系,支持多输出堆叠技术即具备识别报文头部携带的输出卡号掩码的功能,并具备根据输出卡号掩码查找交换卡内部的MODPORT_MAP表将同一报文在多个输出口上复制输出的功能;MODPORT_MAP表是交换卡内部一个A行*2B列的缓存区,A表示交换卡的输入端口数量,B为交换卡支持的最大输出卡数量,MODPORT_MAP表中每一个元素MODPORT_MAP[i][j]称为bitmap值,i的取值为1到A的整数,j的取值为0到2B-1的整数,其中每个bitmap是一个C位的二进制串,C为bitmap的位数,表示交换卡的输出端口数量,交换卡的每个输出端口对应1位;元素MODPORT_MAP[i][j]的值表示从交换卡的第i个输入端口接收的报文,当报文头部携带的输出卡号掩码为j时,该交换卡需要输出该报文的输出端口组合值,bitmap中每一位对应一个输出端口的输出标记;交换卡的块数根据输入卡和输出卡端口数量决定,具体表示如下:
其中[]表示向上取整,N所有输入卡的输出端口是指所有输入卡的输出端口的数量,N所有输出卡的输入端口是指所有输出卡的输入端口数量,N每块交换卡的总端口是指每块交换卡的总端口数量;
1.3修改输出卡,使输出卡支持指定端口分流,修改后的输出卡由报文头部分析模块和报文指定端口输出模块组成;修改输出卡的步骤如下:
1.3.1在输出卡中添加报文头部分析模块,报文头部分析模块由P个报文接收缓冲器、报文头部分析逻辑和输出端口缓冲器组成,P个报文接收缓冲器接收来自交换卡的报文,报文头部分析逻辑连接P个报文接收缓冲器和输 出端口缓冲器;报文头部分析逻辑依次从每个报文接收缓冲器中提取报文,分析报文头部的输出卡组信息,从其中提取出输出卡端口号,并将输出卡端口号送输出端口缓冲器,将接收到的报文传送给报文指定端口输出模块;
1.3.2修改报文单端口输出模块为报文指定端口输出模块,报文指定端口输出模块由报文指定端口输出逻辑和P个输出报文缓冲器组成,报文指定端口输出逻辑连接P个接收报文缓冲器、输出端口缓冲器和P个输出报文缓冲器;报文指定端口输出模块从接收报文缓冲器中提取报文,并从输出端口缓冲器中提取出输出卡端口号,然后将报文按照该输出卡端口号送相应的输出报文缓冲器;
1.4将N个输入卡、交换卡、M个输出卡连接,形成两级交换结构,N、M均为正整数,N的数目由该交换结构支持的最大骨干链路数目决定,M的数目由该交换结构支持的最大用户数目决定;输入卡的输出端口与交换卡的输入端口相连,形成第一级分流网络,交换卡的输出端口与输出卡的输入端口相连,形成第二级转发网络;输入卡逻辑编号为1到N,输出卡逻辑编号为1到M;每块输入卡拥有P个输出端口,这P个输出端口与交换卡的P个输入端口相连接,每块输出卡有P个输入端口与交换卡的P个输出端口相连;
每块输出卡有P个输出端口,这P个端口连接到同一个用户处理机,M块输出卡分配给S个用户处理机,S≤M;
第二步,初始化两级交换结构:
2.1初始化输入卡多规则过滤模块,即根据S个用户的过滤规则初始化过规则过滤模块的五元组TCAM和外部SRAM;
2.2初始化交换卡的MODPORT_MAP表;
第三步,采用两级交换结构进行分流;
3.1输入卡的多规则过滤模块采用以下方法对接收到的报文进行过滤:
3.1.1五元组匹配过滤逻辑读取报文的五元组;
3.1.2用户号u=1;
3.1.3五元组匹配过滤逻辑将五元组和用户号u送五元组TCAM;
3.1.4五元组TCAM对五元组和用户号u进行查询,存在则输出存储该 五元组和用户号的地址,否则输出0;
3.1.5五元组匹配过滤逻辑判定五元组TCAM的输出地址,如果输出地址为0,执行3.1.6步,否则五元组匹配过滤逻辑根据该输出地址从外部SRAM读取地址单元内容为该输出地址的存储单元,并将该存储单元的内容即二元组(输出卡卡号,输出卡端口号)送用户u匹配结果缓冲器;转3.1.7步;
3.1.6将(0,0)送用户u匹配结果缓冲器;
3.1.7u=u+1;
3.1.8判定u是否大于S,如果是,执行3.1.9,否则转3.1.3步;
3.1.9完成该报文的多规则过滤;
3.2输入卡的报文头部修改模块根据多规则过滤模块的匹配结果,对报文进行修改,方法为:
3.2.1报文头部修改模块的过滤结果提取逻辑从S个用户匹配结果缓冲器中提取出S个输出卡信息,将每个输出卡信息(输出卡卡号,输出卡端口号)串接起来形成输出卡组信息,并将输出卡组信息送输出卡组信息缓冲器;
3.2.2过滤结果提取逻辑将所有的输出卡信息中的输出卡卡号进行位或计算,形成的二进制串为输出卡号掩码ModID值,如果ModID中第m位为1,则表示需要将该报文转发到卡号为m的输出卡,过滤结果提取逻辑将ModID传送给输出卡卡号掩码缓冲器;
3.2.3报文头部修改模块的报文头部修改逻辑从输出卡组信息缓冲器中提取输出卡组信息,从输出卡卡号掩码缓冲器中提取ModID,从报文缓冲器中提取原始报文,将原始报文中的目的MAC地址域的内容替换为输出卡组信息;在报文的头部添加一个新的单元,其内容为ModID值;重新计算该报文的校验和;报文头部修改逻辑将修改后的新报文送新报文缓冲器;
3.3输入卡的报文分流模块从新报文缓冲器获得新报文,对新报文采用常用的均衡分流方法,在输入卡的P个输出端口上进行分流,将新报文转发给交换卡;
3.4交换卡根据接收该报文的端口q和新报文头部携带的ModID,从MODPORT_MAP表中查询该新报文的输出端口掩码bitmap,根据bitmap值 获取报文转发到每个输出卡的输出端口,并在该输出端口上转发报文,采用的方法如下:
3.4.1交换卡获取接收该报文的端口q;
3.4.2交换卡提取该报文头部携带的ModID值;
3.4.3交换卡从MODPORT_MAP中查询第q行、第ModID列的bitmap值;
3.4.4c=1;
3.4.5交换卡判定bitmap的第c位是否为1,如果是,转3.4.6,否则转
3.4.7步;
3.4.6交换卡将该报文传送输出端口c;
3.4.7c=c+1;
3.4.8判定c是否大于C,如果是,转3.4.9,否则转3.4.5;
3.4.9转发结束,完成该报文的转发;
3.5输出卡的报文头部分析逻辑按以下方法对从交换卡接收的新报文进行报文头部分析:
3.5.1输出卡报文头部分析逻辑获取该输出卡所属的用户号和本输出卡卡号;
3.5.2根据用户号从报文头部提取出对应本卡的输出卡信息(输出卡卡号,输出卡端口号);
3.5.3判定输出卡信息中的输出卡卡号是否等于本输出卡卡号,是则执行
3.5.4,否则丢弃报文;
3.5.4将输出卡端口号送输出端口缓冲器;
3.6输出卡的报文指定端口输出模块的报文指定端口输出逻辑从接收报文缓冲器中提取出待转发的报文,从输出端口缓冲器中提取出输出卡端口号,将报文传送给该输出卡端口号对应的输出报文缓冲器,用户处理机从输出报文缓冲器获得匹配其过滤规则的报文。
2.如权利要求1所述的支持多用户的高速报文分流方法,其特征在于交换卡的输入端口数量大于N*P,交换卡的输出端口数量大于M*P,交换卡的端口总数量L>N*P+M*P;交换卡内部的N*P个输入端口到M*P个输出端 口有全连接关系。
3.如权利要求1所述的支持多用户的高速报文分流方法,其特征在于初始化输入卡多规则过滤模块的方法是:
2.1.1多规则过滤模块清空五元组TCAM和SRAM存储内容;
2.1.2用户号u=1;
2.1.3多规则过滤模块获取用户u的过滤规则,内容包括:五元组、匹配该五元组的报文转发到的输出卡卡号和输出卡端口号;所述输出卡卡号为1到P,由每个用户从其分配到的输出卡中指定,输出卡端口号为0到P-1,由每个用户从选定的输出卡的输出端口中指定;
2.1.4多规则过滤模块将用户u过滤规则的五元组部分和用户号u写入TCAM的一个存储单元,并记录该存储单元的地址;
2.1.5多规则过滤模块将2.1.4步记录的地址和用户u过滤规则的输出卡号和输出卡端口号部分写入外部SRAM;
2.1.6u=u+1;
2.1.7判定u是否大于S,如果是,则转2.1.8,否则转2.1.3;
2.1.8初始化完成。
4.如权利要求1所述的支持多用户的高速报文分流方法,其特征在于初始化交换卡的MODPORT_MAP表的过程如下:
2.2.1输入端口号q=1;
2.2.2输出卡号掩码m=1;
2.2.3bitmap=0;
2.2.4输出卡号r=1;
2.2.5判定输出卡号掩码m的第r位是否位1,如果是,转2.2.6,否则转2.2.7;
2.2.6查询与输入端口q相连接的输入卡的输出端口p,p的范围为从0到P-1,再查询与输出卡r的第p号端口相连接的交换卡的输出端口号d,修改bitmap,将bitmap的第d位置1;
2.2.7r=r+1;
2.2.8判定r是否大于M,如果是,转2.2.9,否则转2.2.5; 
2.2.9将bitmap写在MODPORT_MAP表第2B*q+m表项上;
2.2.10m=m+1;
2.2.11判定m是否大于2B,如果是,转2.2.12,否则转2.2.3;
2.2.12q=q+1;
2.2.13判定q是否大于A,如果是,转2.2.14,否则转2.2.2;
2.2.14初始化完成。
5.如权利要求1所述的支持多用户的高速报文分流方法,其特征在于交换卡支持的最大输出卡数量B为8,bitmap的位数C为12。 
CN2010105388142A 2010-11-10 2010-11-10 支持多用户的高速报文分流方法 Expired - Fee Related CN101964759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105388142A CN101964759B (zh) 2010-11-10 2010-11-10 支持多用户的高速报文分流方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105388142A CN101964759B (zh) 2010-11-10 2010-11-10 支持多用户的高速报文分流方法

Publications (2)

Publication Number Publication Date
CN101964759A CN101964759A (zh) 2011-02-02
CN101964759B true CN101964759B (zh) 2012-03-28

Family

ID=43517500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105388142A Expired - Fee Related CN101964759B (zh) 2010-11-10 2010-11-10 支持多用户的高速报文分流方法

Country Status (1)

Country Link
CN (1) CN101964759B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104270319B (zh) * 2014-09-18 2017-11-17 赛尔网络有限公司 一种多端口流量采集自动切换的分流系统与方法
CN105516008B (zh) * 2015-12-04 2019-05-21 北京锐安科技有限公司 数据分流设备及其多用户处理的实现方法
CN105959161B (zh) * 2016-07-08 2019-04-26 中国人民解放军国防科学技术大学 一种高速数据包构造和分发控制方法及设备
CN114124822B (zh) * 2021-11-29 2024-04-26 杭州迪普信息技术有限公司 报文匹配处理装置及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675221B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Method and apparatus for customizing and fowarding parameters in a network processor
CN1972240A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 快速包过滤处理方法及其装置
CN100446508C (zh) * 2005-12-30 2008-12-24 华为技术有限公司 一种实现报文转发的装置及方法

Also Published As

Publication number Publication date
CN101964759A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
CN100417142C (zh) 将接口流量在多个网络处理器引擎中均担的方法
CN101151851B (zh) 用于服务器环境中的联网卸载的主机以太网适配器
US5060228A (en) Bridge communication system
CN103428094B (zh) 开放流OpenFlow系统中的报文转发方法及装置
CN100558089C (zh) 一种基于网络过滤器的内容过滤网关实现方法
US9154324B2 (en) Method and filter system for filtering messages received via a serial data bus of a communication network by a user of the network
CN108173982B (zh) 跨板报文的nat处理方法及装置
CN103618733B (zh) 一种应用于移动互联网的数据过滤系统及方法
US20030135691A1 (en) Input data selection for content addressable memory
GB2371705A (en) Network switch with mutually coupled look-up engine and network processor
CN101964759B (zh) 支持多用户的高速报文分流方法
CN104426909A (zh) 为具有高级特征的正则表达式图样生成非确定有限自动机(nfa)图形
EP2648374B1 (en) Method and device for processing data cell
JPH10178442A (ja) ネットワーク中継器
JP5772568B2 (ja) 通信装置及び通信方法
CN101115010B (zh) 扩展安全系统的方法、安全系统及安全处理设备
CN102904730A (zh) 根据协议、端口和ip地过滤挑选流量的智能加速网卡
CN101171802B (zh) 网络节点,网络,产生在网络中传送信息的对应关系产生方法
RU2007111857A (ru) Кольцевая сеть, устройство связи и способ оперативного управления, используемый для кольцевой сети и устройства связи
CN106341338A (zh) 一种报文的转发方法及装置
CN109474641A (zh) 一种可破坏硬件木马的可重构交换机转发引擎解析器
CN109067585A (zh) 一种查询acl表项下发方法及装置
CN104243348A (zh) 一种数据处理方法和装置
CN103179109B (zh) 基于二级会话查询功能的过滤分流装置及其方法
CN103780460A (zh) 一种通过fpga实现tap设备硬件过滤的系统

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120328

Termination date: 20121110