最近工业界的控制器已经聚焦在 ONOS 和 ODL 上,这两个项目文件数都近200,000,功能丰富但代码量巨大。所以从研究角度可以考虑用Ryu或Floodlight控制器(文件数20,000 - 37,000),其文件数相比小一个数量级,会更容易理解修改代码。 尤其是Ryu,基于Python编写,已支持Openflow 1.5协议。
但是对于开源软件交换机选型,没有太清晰的思路。考虑列表 1 3中的开源软件交换机,去掉已经死亡或接近死亡的项目(一年以上未更新),综合主要开发语言(C、Erlang等),Github 点赞数(截止2016.6.1)等信息,作为交换机选型参考。
名称|开发语言|Github点赞数|备注
-----------|-------|-------
openvswitch(ovs) | C | 637 |最广泛使用, linux默认支持,不支持meter
CPqD/ofsoftswitch13|C | 138 |user-space交换, 支持meter
lagopus| C | 125 |支持meter
Contrail vrouter| C | 110 | 来自juniper, 用于openstack中
LINC | Erlang | 180 | 支持 1.2-1.4
Indigo | C | 24 | 它家的控制器Floodlight更有名
整理之后,从这个表格来看,以流行度考虑应选择ovs,以QoS meter为考虑可以尝试lagopus。对性能没有要求(user-space)可以用CPqD。