Chinaunix首页 | 论坛 | 博客
  • 博客访问: 527160
  • 博文数量: 118
  • 博客积分: 2575
  • 博客等级: 大尉
  • 技术积分: 1263
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-27 09:37
文章分类

全部博文(118)

文章存档

2017年(11)

2016年(8)

2015年(1)

2014年(9)

2013年(7)

2012年(38)

2011年(14)

2010年(18)

2009年(12)

分类:

2012-12-25 14:43:28

为了让SDN switch工作,必须至少有一个SDN controller与它建立OpenFlow Connection。但是也可以多个controller与一个SDN switch建立连接;一个controller与一个switch之间也可以建立多个OpenFlow Connection。

Multiple Controller:
与switch建立连接的controller可以master, equal或者slaver三种状态之一,并且最多只能有一个处于master状态。除此唯一性之外,master controller与equal controller在功能上没有区别,equal controller的个数不受限制。当一个controller通过命令转换成master之后,原来的master不会得到任何通知地转入slaver状态。

master controller与equal controller都对switch具有完全权限,而slaver controller只能读取switch的状态,它不能修改switch的状态与配置,也不能给switch发送packet-out数据包。

三种状态的controller都通过asynchronous configuration message配置switch的asynchronous message上报设置。

controller使用generation_id对master/slaver状态转换进行同步。generation_id是一个64位不停增长的序列号,当switch接收到比较老的序列号时要丢弃,并向controller报告错误信息。

Auxiliary connection:
main connection建立之后,switch可以再建立到controller的auxiliary connection。main connection断开时,所有关联的auxiliary connection都要断开。auxiliary connection可以使用任何可用的协议,而不仅仅只限于TCP/TLS。
controller与switch之间的连接由datapath ID与auxiliary ID标识,main connection的auxiliary ID为0,auxiliary connection的auxiliary ID非0。
各个connection单独同步,barrier message只作用于一个connection。

使用main connection与auxiliary connection原则上的建议:
1,controller message:
  非packet-out message在main connection上发送;
  由于packet-in导致的packet-out最好通过原来的packet-in message使用的connection发送;
  属于同一个flow的packet-out message在同一个connection发送;
  废话一句:auxiliary connection不可用时,使用main connection
2,  switch-to-controller message
  非packet-in message最好在main connection发送;
  同属于一个flow的packet-in message在同一个connection发送

不可靠传输协议上的auxiliary connection的使用具有额外的限制:只有hello, error, echo, feature, packe-in, packet-out消息才可以上面发送。

阅读(1574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~