骤S1004,在上述动作的触发下,通过上述函数计算功能针对进入交换机报文的某些字段进行函数计算,并返回函数计算结果给赋值动作。
[0077]图13是根据本发明优选实施例的OpenFlow网络中流标识封装的另一实现流程图,如图13所示,该流程包括:
[0078]步骤S1302,在OpenFlow控制器发往OpenFlow交换机的第一消息中添加管理信息,其中,上述管理信息用于对指定动作进行以下至少之一管理:增加、修改、删除,上述指定动作用于调用函数计算功能给流标识赋值。其中,上述第一消息包括但不限于:流表配置消息。
[0079]在现有技术中,OpenFlow控制器发往OpenFlow交换机的流表配置消息中已包含对外层标签赋值动作的增加、修改、删除的管理信息,但外层标签赋值动作的参数只能是显式的所赋数值,为了添加对于调用函数计算功能给流标识赋值动作的管理信息,可以利用已有外层标签赋值动作的管理信息中的一个保留比特来标识外层标签赋值动作的参数是显式的所赋数值,还是指向所调用函数计算功能的函数标识值,这样就最大限度地重用了现有技术。
[0080]为了进一步支持上述处理步骤,在OpenFlow控制器向OpenFlow交换机发送的消息中增加以下至少之一消息:对上述函数计算功能所属函数计算功能表的配置消息和读取消息,其中,上述配置消息用于对上述函数计算功能表及上述函数计算功能表中的条目进行以下至少之一管理:增加、修改、删除;上述读取消息用于读取上述函数计算功能表和上述条目。即OpenFlow控制器需要向OpenFlow交换机发送上述至少之一消息。如果OpenFlow交换机上的函数计算功能表是在OpenFlow交换机生产制造时就固化在交换机内部的,或者是由OpenFlow配置点通过扩展的OF-Config协议配置的,则OpenFlow控制器不需要向OpenFlow交换机发送上述配置消息以配置函数计算功能;否则,OpenFlow控制器需要向OpenFlow交换机发送上述配置消息以配置函数计算功能,这种情况下,为了确保OpenFlow控制器配置的函数计算功能是OpenFlow交换机所能够支持的功能,需要在OpenFlow控制器向OpenFlow交换机发送的消息中增加函数计算功能支持能力查询消息,OpenFlow控制器在向OpenFlow交换机发送上述配置消息之前先发送上述查询消息,用于OpenFlow控制器预先获知OpenFlow交换机是否具备函数计算功能支持能力以及能够支持哪些函数计算功能。
[0081]步骤S1304,向OpenFlow交换机发送上述第一消息。
[0082]为了使OpenFlow控制器及时获知OpenFlow交换机对于函数计算功能的支持状态,在OpenFlow交换机发往OpenFlow控制器的第二消息中添加函数计算功能表错误上报信息,其中,上述函数计算功能表错误上报信息用于在根据上述配置消息对上述函数计算功能表进行配置发生异常时和根据上述读取消息对上述函数计算功能表进行读取发生异常时向上述OpenFlow控制器上报。其中,上述第二消息包括但不限于:错误上报消息,即可以在现有的错误上报消息中增加上述函数计算功能表错误上报信息。
[0083]优选实施例一
[0084]在本优选实施例中,需要在OpenFlow交换机的以太端口 10 (In_Port=10)上对所有属于VLAN100 (VLAN_ID=100)的报文完成PW流标签的封装。
[0085]结合图4与图11所示,在本优选实施例中,OpenFlow网络中的OpenFlow控制器和OpenFlow交换机要执行如下步骤:
[0086]步骤I, OpenFlow控制器与OpenFlow交换机之间运行OF-Switch协议,由OpenFlow控制器向OpenFlow交换机下发流表和函数计算功能表。
[0087]图14是根据本发明优选实施例一的OpenFlow交换机中的流表的内容示意图,如图14所示,OpenFlow交换机中只有单级流表,流表中包含一个流表条目,流表条目中的匹配字段包含了“入端口 10”和“属于VLAN100”,流表条目中的指令字段包含了“执行添加PW流标签动作”和“执行调用函数计算功能101给PW流标签赋值动作”的指令。图15是根据本发明优选实施例一的OpenFlow交换机中的函数计算功能表的内容示意图,如图15所示,函数计算功能表中包含一个函数计算功能表条目,即包含一个函数计算功能,该功能完成根据进入交换机报文的MAC地址和IP五元组进行采用哈希算法I的哈希计算,函数的标识为101。
[0088]如果出现OpenFlow控制器向OpenFlow交换机下发的流表和函数计算功能表在OpenFlow交换机上配置失败的情况,OpenFlow交换机会向OpenFlow控制器发送相应的配置失败的错误上报消息。
[0089]步骤2,从入端口进入OpenFlow交换机的报文首先进行流表匹配,针对匹配入端口 K^pvlan10 dn_p0rt=1, vlan_id=10)成功的报文执行包含了“执行添加pw流标签动作”(Push MPLS Label)和“执行调用函数计算功能101给PW流标签赋值动作”(SetMPLSLabel IDlOl)的指令,其中后一个动作调用函数101根据进入交换机报文的MAC地址和IP五元组进行采用哈希算法I的哈希计算,并把计算结果(hash值)赋给PW流标签。
[0090]优选实施例二
[0091]在本优选实施例中,需要在OpenFlow交换机的以太端口 20 (In_Port=20)上对所有报文完成LSP熵标签的封装,在OpenFlow交换机的以太端口 30 (In_Port=30)上对所有报文完成PBB流过滤标签的封装。
[0092]结合图4与图11所示,在本优选实施例中,OpenFlow网络中的OpenFlow控制器和OpenFlow交换机要执行如下步骤:
[0093]步骤I, OpenFlow控制器与OpenFlow交换机之间运行OF-Switch协议,由OpenFlow控制器向OpenFlow交换机下发流表和函数计算功能表。
[0094]图16是根据本发明优选实施例二的OpenFlow交换机中的流表的内容示意图,如图16所示,OpenFlow交换机中只有单级流表,流表中包含两个流表条目,第一个流表条目中的匹配字段包含了“入端口 20”,指令字段包含了“执行添加LSP熵标签动作”和“执行调用函数计算功能102给LSP熵标签赋值动作”的指令,第二个流条目中的匹配字段包含了“入端口 30”,指令字段包含了 “执行添加PBB流过滤标签动作”和“执行调用函数计算功能103给PBB流过滤标签赋值动作”的指令。图17是根据本发明优选实施例二的OpenFlow交换机中的函数计算功能表的内容示意图,如图17所示,函数计算功能表中包含两个函数计算功能表条目,即包含两个函数计算功能,第一个函数计算功能完成根据进入交换机报文的IP五元组进行采用哈希算法2的哈希计算,函数的标识为102 ;第二个函数计算功能完成根据进入交换机报文的MAC地址和IP五元组进行采用哈希算法3的哈希计算,函数的标识为103。
[0095]如果出现OpenFlow控制器向OpenFlow交换机下发的流表和函数计算功能表在OpenFlow交换机上配置失败的情况,OpenFlow交换机会向OpenFlow控制器发送相应的配置失败的错误上报消息。
[0096]步骤2,从入端口进入OpenFlow交换机的报文首先进行流表匹配,针对匹配入端口 20(In_Port=20)成功的报文执行包含了“执行添加LSP熵标签动作”(Push MPLS Label)和“执行调用函数计算功能102给LSP熵标签赋值动作”(Set MPLS Label ID102)的指令,其中后一个动作调用函数102根据进入交换机报文的IP五元组进行采用哈希算法2的哈希计算,并把计算结果(hash值)赋给LSP熵标签;针对匹配入端口 30 (In_Port=30)成功的报文执行包含了“执行添加PBB流过滤标签动作”(Push Flow Filtering Tag)和“执行调用函数计算功能103给PBB流过滤标签赋值动作”(Set Flow Filtering Tag ID103)的指令,其中后一个动作调用函数103根据进入交换机报文的MAC地址和IP五元组进行采用哈希算法3的哈希计算,并把计算结果(hash值)赋给PBB流过滤标签。
[0097]需要说明的是,上述各个模块是可以通过硬件来实现的。例如:一种处理器,包括上述各个模块,或者,上述各个模块分别位于一个处理器中。
[0098]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0099]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0100]从以上的描述中,可以看出,本发明实现了如下技术效果:本发明实施例可以扩展ONF制定的OpenFlow交换机规范标准规定的给新封装的外层标签赋值的实现机制,在