摘 要: 针对广电运营商为实现三网融合业务提出的电缆数据业务接口规范(C⁃DOCSIS),其系统头端分类转发模块的交换芯片规则条目有限的问题,通过介绍交换芯片的二层业务流的分类转发和过滤器处理的原理,提出了基于交换芯片上过滤处理器分层过滤的方法,能够满足更多用户数目,节约成本的分类转发器的设计方法,最后通过实验测试证明了这种方法的可行性和稳定性。
关键词: C⁃DOCSIS; 分类转发; 分层过滤; 业务流
中图分类号: TN915.05⁃34 文献标识码: A 文章编号: 1004⁃373X(2015)03⁃0075⁃04
Implementation of classification forwarder of service
flow in C⁃DOCSIS system′s head⁃end
MA Yuan⁃xue, HUANG Ting⁃xi
(Wuhan Fiberhome Network Limited Liability Company, Wuhan Research Institute of Posts and Telecommunications, Wuhan 430074, China)
Abstract: According to the C⁃DOCSIS which is proposed by broadcast television network operators to realize the fusion of three networks, in allusion to the limit of rules of exchanging chip in the classification retransmission module at the system’s front⁃end, the principle of classification retransmission and filtration processing of exchanging chip’s two⁃layer service flow is introduced, and a method based on the hierarchical filtering of filtration processor on the exchanging chip is proposed, which can satisfy more users and reduce cost. The experiment testing results proved the feasibility and stability of this means.
Keywords: C⁃DOCSIS; classification retransmission; hierarchy filtering; service flow
0 引 言
随着信息时代的到来,网络在人们的生活中显得越来越重要。广电双向改造NGB(下一代广播电视网)建设、三网融合和宽带接入技术驱动着新一代网络技术发展,创新性地提出了C⁃DOCSIS技术。在此将C⁃DOCSIS系统头端中靠近HFC(混合光纤同轴电缆网)网络的光节点处的设备定义为CMC。本文介绍的CMC集成了系统控制模块、包分类转发模块和射频接口模块。
在C⁃DOCSIS系统中,上、下行静态业务流的创建都是在配置文件中定义的[1], CM(电缆调制解调器)在上线过程中会把配置文件从服务器下载并解析,然后发送注册请求消息给CMC。CMC会将业务流、QOS参数信息以及分类器规则转发给主控CPU,主控CPU会在交换芯片上完成分类转发功能。对于交换芯片来说,二层转发是一个最基本的功能,其中业务流的分类是通过CAP(内容过滤)实现。CAP包含VCAP(VLAN内容过滤处理),ICAP(入口过滤处理),ECAP(出口过滤处理)三种过滤查询,由一些硬件表项存储规则,硬件表由若干片组成,虽然过滤的规则数很多,但是过滤规则资源申请和释放是按照片为单位来进行的,并且片的数目一般都不是很多。所以考虑到芯片的硬件成本和支持的规则条目的限制,C⁃DOCSIS系统又是一对多的系统架构,本文提出了一种基于终端MAC地址的业务流分类转发器的实现方法。
1 交换芯片的二层流的分类转发原理
一般数据包进入交换芯片之后[2],首先进行包头字段匹配,为流分类做准备;然后经过一个安全引擎进行包过滤;符合安全的包进行二层交换或者三层路由,并经过流分类处理器对匹配的包做相关动作(比如丢弃、限速、修改VLAN等);对于可以转发的包根据IEEE 802.1P或DSCP(区分业务服务)放到不同COS(业务分类)队列的缓存中,调度器会根据优先级或者WRR(加权平均轮询)等算法进行队列调度,在端口发出该包之前执行流分类修改动作,最终从相应端口发送出去。具体转发流程如交换芯片的流分类是通过CAP实现的[3]。CAP本质来说是一组相互之间有关联的表,一起通过查找、匹配等来决定对报文施加的动作,具有很强的处理能力。流分类分为智能协议识别选择器、查找引擎、策略引擎、限速和统计、执行动作引擎5个阶段。用户可以根据包的前128 B设置KEY(关键字),每个KEY由若干字段组成对应一个执行策略。按照执行动作的优先级执行策略依次为丢包、替换、重定向、阻塞和复制到CPU。
2 CMC上分类转发器的实现方法
2.1 系统介绍
在C⁃DOCSIS系统中,运营商通过配置文件或通过呼叫管理系统直接或间接地配置分类器,分类器是一组通过报文的TCP,UDP,IP,LLC或IEEE 802.1P/Q字段进行匹配的规则集合,每个分类器都通过SFR(业务流参考)字段来对应一条业务流。CMC使用下行分类器将报文归类到一条业务流;CM使用上行分类器将报文归类到一条上行业务流[4]。这就保证了一个服务流将只包含所需业务的数据帧。如图2所示为一个C⁃DOCSIS系统简图,CMC的射频接口模块会在每个来自CM的数据包加上CDT(C⁃DOCSIS数据格式)格式的VLAN标签,来标识承载改数据包的业务流。同一个CM,无论数据流向,CMC的控制模块会在业务流创建或激活时,分配同一个VID,不同的COS决定不同的业务流,每一个VID+COS代表了一个指定方向的惟一的业务流。CMC头端要完成上行业务流到VLAN ID的映射,优先级到汇聚网支持的IEEE 802.1优先级的映射,因为上行业务流的COS字段和IEEE 802.1优先级字段都是三个bit位,可以直接映射。对于下行方向业务流,需要剥离业务VLAN,根据包分类规则对单播包头打上对应的CDT,完成QOS调度。
2.2 基于业务流分类转发器的实现
在上行方向的分类和流量整形由CM完成,因此只需要实现上行业务流的[N][∶]1的VLAN替换就可以满足需求。由图1业务流的转发流程,可以知道对于流入的数据包,首先进行数据包标签的检查,可以根据VCAP、VLAN_XLATE table、PORT_BASED table分配或修改VLANID,这样提高了客户应用的灵活性。如图3所示,上行方向我们通过VLAN_XLATE、EGR_VLAN_XLATE、SOURCE_VP/DVP规则,VLAN_XLATE表项支持8K资源条目,可以满足上下行业务流的映射。将相同COS值不同VLANID替换为相同的VLANID,上行的数据包都带有CDT标签,对交换芯片来讲,一个标签就代表一种用户业务。因此,交换芯片会根据上行数据包带的CDT不同,分配不同的SVP(源虚拟端口),通过建立VLAN_XLATE表项,VLAN_XLTATE表项根据不同的SVP,将C⁃VLANID替换为S⁃VLANID。设置端口到端口的配置位VXLT_ENABLE=1使能VLAN翻译,配置VLAN_XLATE表项的KEY类型(PORT.VT_KEY_TYPE=IVID、PORT.VT_KEY_ TYPE_USE_GLP=0),设置查询KEY为{SVP,C⁃VID},这个KEY是用来查询VLAN_XLATE表项的。若是在翻译表项里匹配,S⁃VID和TAG动作可以从VLAN_XLATE表项中获得,设置SIT_OTAG_ACTION是添加和删除,C⁃VID会被S⁃VID替换。S⁃VID作为学习和转发的VLANID,数据包会通过二三层数据包的转发处理,这样就实现了上行[N][∶]1的VLAN转换。
下行方向,可以与上行方向进行相反的操作,通过建立EGR_VLAN_XLATE表项,查询的KEY为{DMAC,DVP},将S⁃VLANID还原为对应的不同C⁃VLANID,实现1[∶][N]的VLAN映射。这样虽然不受规则条目的限制,但没有依据配置文件定义的分类器信息,对数据包进行分类,没有完全实现分类转发器的功能。因此既可以在交换芯片上实现分类转发功能,又要考虑规则条目有限的问题,上行方向的业务流的处理方法和上面提到的一样,主要解决下行方向业务流的分类转发问题。
根据前面介绍的CAP的原理[5],可知CAP是交换芯片里最灵活的分类处理器,它包含VCAP(VLAN内容过滤处理),ICAP(入口过滤处理),ECAP(出口过滤处理)三种过滤查询,用于支持ACL(接入控制列表),DSCP(差分服务代码点)和QOS(服务质量)功能。CMC在CM上线时,把CM的MAC地址填充进DHCP请求Option82字段,这样就可以学习到CM的MAC地址,并解析TLV文件里的业务流信息、分类器参数和QOS参数等,这些参数都是存储在全局配置的结构体里的。如图3所示的处理流程,根据交换芯片的执行逻辑先利用VFP规则,VFP表项支持1K的条目,分配分类号用于IFP的规则压缩,匹配的KEY是CM或CPE的MAC,相同MAC的数据包分配一个VLAN 分类号,然后经过二层学习转发,再利用IFP分类规则,IFP表项支持2K条目,在交换芯片上使能EGR_CONFIG_1.ENABLE_VT_IF_IFP_ CHANGE_VLAN,匹配KEY是配置文件里的每个分类号对应的分类器信息,设置对应的COS值,按照IEEE 802.1p的包格式将{SVLAN ID+PRIORITY}修改为{CVLAN ID+COS},完成数据包的分类,策略动作为将修改后的数据包重定向到用户端口。数据包在出交换芯片时以太网帧的头部插入了相应的CDT标签,标识该数据包传送时用到的业务流,完成下行数据包的分类,具体如下:
假设配置文件分类器定义为源IP地址为10.15.10.x的下行数据包属于语音服务流;源IP地址为61.35.120.x且UDP源端口号为5100的下行数据包属于视频点播服务流;目的端口号800的下行数据包属于信令业务流;对于没有设置分类器的数据业务,会走默认的分类器,交换芯片的实现:
首先将软件传下来的变量pFilterEntry的值赋给当前所操作的变量oGeneralFiterAcl,当iOperation的值为1或者3时,分别进行像匹配的条目的增加或删除工作,根据iFilterDirection的值(2,0,1)的分别对VFP、IFP、EFP三个阶段的端口的字段过滤模式进行判断;接着设置CAP,调用函数UspBcmCAPConfig(),根据条目是否存在,选择新建模块或创建条目,若是创建不成功,则销毁条目,UspBcmCAPActionHandler()函数,分别对VFP、IFP、EFP阶段中,对行为字段action进行设置,确定对包的处理行为。如果以上都成功,最后利用Bcm_field_ entry_install()函数将新条目安装到硬件表项中;如果安装成功,将条目id值赋给当前CAP配置的条目id。
3 系统测试
3.1 测试步骤
如图5所示搭建测试环境,分路器1[∶]96,下挂96台CM终端,用TEST CENTER测试系统上下行吞吐率,系统工作正常;仪表向获取配置文件1,基于TCP/UDP端口号为1234限速10 Mb/s, 配置文件2源IP=1.1.1.1,优先级7的CM发送满足匹配规则和不满足条件的流,检验分类器是否生效;向所有CM发送64~1 518 B的数据流1 000 s,测试吞吐量;测试速率设为64~1 518 B上下吞吐量的90%,所有CM发送64~1 518 B的数据流,测试时间4 min,并记录时延和丢包率的数据。
3.2 测试结果与分析
测试结果:TCP=1 234的数据流速率被限制为10 Mb/s,TCP=1 000的流速率为50 Mb/s,IP=1.1.1.1的流速率为40 Mb/s,没有分类规则的流速率只有10 Mb/s。测试结果和预期结果一致,证明了分类功能已实现。基于该方法的系统性能统计如表1所示。
由表1可以得出,基于CM在交换芯片上实现的业务流的分类转发的方法,所有终端均能正常上线,并且吞吐量符合业务要求,并且无丢包。随着测试帧长的增加,系统时延稍有增加,这是正常的,但是都没有超过标准规定的最大时延,并且下行时延基本维持在1.2 ms以内,证明了系统处理速度也较快。
4 结 语
C⁃DOCSIS系统提供基于每个业务流的服务质量保障,在有区别地处理流量之前,首先需要对其进行分类,以保证特定的数据包得到特定服务。本文基于CMC设备内置分类转发模块的方案,CDT作为CMC设备的内部通信协议,实现DOCSIS业务流到业务VLAN的映射。本方法利用较低成本的交换芯片,基于分层过滤机制,将软件表项转换为硬件表项存储到芯片上,当流量通过时,芯片会按照规则硬件表来过滤报文,且该方法是基于终端在CMC设备上完全实现业务流的分类转发功能,通过实验证明这种方法是可行的,且节约了成本。
表1 性能统计
参考文献
[1] 国家广播电影电视总局.GY/T 266⁃2012 NGB宽带接入系统C⁃DOCSIS技术规范[S].北京:国家广播电影电视总局,2012.
[2]董育宁,王再见,房曙光.多媒体通信业务流识别与分类方法综述[J].南京邮电大学学报,2013,33(3):41⁃43.
[3] Broadcom Corporation. BCM56134 data sheet [EB/OL]. [2014⁃06⁃01]. http://www.broadcom. com.
[4] 曾海清,段和华.DOCSIS协议中的业务流管理[J].光通信技术,2003(10):53⁃56.
[5] 马涛,卢军,张成.基于Content Aware 的负载均衡实现机制[J].无线通信技术,2013(6):59⁃61.
[6] ETSI. ETSI EN 302 878⁃4 V1.1.1 [EB/OL]. [2013⁃03⁃22]. http:// www.docin.com.
[7] ITU. ITU⁃T J112 data⁃over⁃cable service interface specifications [S]. [S.l.]: ITU, 2013.