SDN中基于多级流表的功能组合方法
定义:
功能:在SDN控制器上运行的程序模块,通过控制器的北向接口下发流表。
功能并行组合:将功能生成的表项合并,达到多个功能同时作用于数据包的效果,用A|B表示A与B并行组合;
功能串行组合:将功能生成的表项合并,达到多个功能相继作用于数据包的效果,用A>>B表示A与B串行组合;
组合策略:指定需要对特定的数据包进行的组合处理,用组合策略P=match(sricp=p)[A|B]表示对源IP对p的数据流执行并行组合;
功能组合算法
放置匹配字段和动作字段算法如下:
功能并行组合时,并行Map(A)和Map(B);
串行需要另外考虑一个问题: A的动作对B的匹配产生影响;若产生影响,则先对受到影响的匹配字段进行操作,然后进行表项放置。比如Load-Balabce和Route的串行组合,Load-Balance会修改数据包的目的IP,对Route的匹配产生影响;
实现
通过在控制平面增加功能组合模块实现。
- 下达组合策略;
- 数据流到达后,与流表进行匹配。若成功则执行相应的处理,若失败则上传至控制器;
- 数据包上传至控制器后交由功能组合模块处理;
- 模块根据策略将数据包发送至相应的功能模块;
- 功能模块收到数据包后通过计算得到相应表项,下发至控制器;
- 控制器将接受到的功能表项组合为功能组合表项并下发至交换机;
- 同一个流的后续数据包根据流表进行处理。