这玩意我还是再开一篇
OpenFlow协议通信流程解读
OpenFlow 通信流程
OFPT_HELLO
创建socket之后,sw跟controller会彼此发送hello数据包。
目的:协议协商。
内容:本方支持的最高版本的协议
成果:使用双方都支持的最低版本协议。
成功:建立连接
失败:OFPT_ERROR (TYPE:OFPT_HELLO_FAILED,CODE =0),终止连接。
OFPT_ERROR
ofp_error_type = { 0: "OFPET_HELLO_FAILED",
1: "OFPET_BAD_REQUEST",
2: "OFPET_BAD_ACTION",
3: "OFPET_FLOW_MOD_FAILED",
4: "OFPET_PORT_MOD_FAILED",
5: "OFPET_QUEUE_OP_FAILED"}
OFPT_FEATURES
当sw跟controller完成连接之后,控制器会向交换机下发OFPT_FEATYRES_REQUEST的数据包,目的是请求交换机的信息。
发送时间:连接建立完成之后
发送数据:OFPT_FEATURES_REQUEST
对称数据:OFPT_FEATURES_REPLY
目的:获取交换机的信息
OFPT_FEATURES_REQUEST
TYPE=5
Without data
OFPT_FEATURES_REPLY
TYPE =6
[0:8]为header
[8:32]长度24byte为sw的features
[32:]长度与端口数成正比,存放port的信息。每一个port信息长度为48byte。