当前位置: 代码迷 >> 综合 >> OpenFLow学习与go语言实现
  详细解决方案

OpenFLow学习与go语言实现

热度:9   发布时间:2024-02-09 03:42:31.0

控制器与交换机之间的通道建立与初始设置

  1. 由交换机对控制器建立TCP连接或者TLS连接
  2. 协商版本
  3. 发送Hello消息
  4. 握手:发送Features请求信息、Feature响应
  5. 交换其他信息

OpenFlow头的go语言实现:

type Header struct {Version uint8    //1.0:0x01 1.1:0x02  1.2:0x03 Type    uint8    //消息类型Length  uint16   //该头中的八位字节数Xid     uint32   //分配的事物id,用于响应的匹配
}

消息类型的go语言实现

const (// Identifiers from group ofp_typeOFPTHello                 = 0  // OFPT_HELLOOFPTError                 = 1  // OFPT_ERROROFPTEchoRequest           = 2  // OFPT_ECHO_REQUESTOFPTEchoReply             = 3  // OFPT_ECHO_REPLYOFPTExperimenter          = 4  // OFPT_EXPERIMENTEROFPTFeaturesRequest       = 5  // OFPT_FEATURES_REQUESTOFPTFeaturesReply         = 6  // OFPT_FEATURES_REPLYOFPTGetConfigRequest      = 7  // OFPT_GET_CONFIG_REQUESTOFPTGetConfigReply        = 8  // OFPT_GET_CONFIG_REPLYOFPTSetConfig             = 9  // OFPT_SET_CONFIGOFPTPacketIn              = 10 // OFPT_PACKET_INOFPTFlowRemoved           = 11 // OFPT_FLOW_REMOVEDOFPTPortStatus            = 12 // OFPT_PORT_STATUSOFPTPacketOut             = 13 // OFPT_PACKET_OUTOFPTFlowMod               = 14 // OFPT_FLOW_MODOFPTGroupMod              = 15 // OFPT_GROUP_MODOFPTPortMod               = 16 // OFPT_PORT_MODOFPTTableMod              = 17 // OFPT_TABLE_MODOFPTStatsRequest          = 18 // OFPT_STATS_REQUESTOFPTStatsReply            = 19 // OFPT_STATS_REPLYOFPTBarrierRequest        = 20 // OFPT_BARRIER_REQUESTOFPTBarrierReply          = 21 // OFPT_BARRIER_REPLYOFPTQueueGetConfigRequest = 22 // OFPT_QUEUE_GET_CONFIG_REQUESTOFPTQueueGetConfigReply   = 23 // OFPT_QUEUE_GET_CONFIG_REPLYOFPTRoleRequest           = 24 // OFPT_ROLE_REQUESTOFPTRoleReply             = 25 // OFPT_ROLE_REPLYOFPTGetAsyncRequest       = 26 // OFPT_GET_ASYNC_REQUESTOFPTGetAsyncReply         = 27 // OFPT_GET_ASYNC_REPLYOFPTSetAsync              = 28 // OFPT_SET_ASYNCOFPTMeterMod              = 29 // OFPT_METER_MOD
)

 

  相关解决方案