SDN

您所在的位置:网站首页 flow动作 SDN

SDN

2024-02-28 14:00| 来源: 网络整理| 查看: 265

目录

OpenFlow1.0代码

OpenFlow交换机流表

包头域

计数器

行动

流表匹配

OpenFlow消息

OpenFlow消息格式

对称消息

建立OpenFlow连接(OFPT_HELLO消息)

报告错误(OFPT_ERROR消息)

获取交换机特性信息(Features消息)

异步消息

交换机接收数据包(Packet-in消息)

控制器-交换机消息

控制器配置流表(Flow-Mod消息)

交换机转发数据包(Packet-Out消息)

OpenFlow1.0代码

文中所有数据结构请查看openflow1.0源代码

提取码:g3nq

在include->openflow->openflow.h中

白皮书openflow-spec-v1.0.0.pdf也在里面

OpenFlow交换机流表

OpenFlow交换机中的转发表称为流表(Flow Table),列表中的每个条目称为表项,每个表项包括三个域,包头域(header field),计数器(counters),行动(actions)。

包头域

数据包匹配特征:

一层:交换机入端口(Ingress Port)二层:源MAC地址(Ether source)、目的MAC地址(Ether dst)、以太网类型(Ether Type)、VLAN标签(VLAN id)、VLAN优先级(VLAN priority)三层:源IP(IP src)、目的IP(IP dst)、IP协议字段(IP proto)、IP服务类型(IPToS bits)四层:TCP/UDP源端口号(TCP/UDP src port)、TCP/UDP目的端口号(TCP/UDP dst port) 包头域/匹配字段 Ingress PortEther SourceEther stEther typeVLAN idVLAN priorityIP srcIP dstIP protoIP ToS bitsTCP/UDP src portTCP/UDP dst port

对数据包匹配特征的描述

/ *与流量匹配的字段* / struct ofp_match { uint32_t wildcards; / *通配符字段。 * / uint16_t in_port; / *输入开关端口。 * / uint8_t dl_src [OFP_ETH_ALEN]; / *以太网源地址。 * / uint8_t dl_dst [OFP_ETH_ALEN]; / *以太网目标地址。 * / uint16_t dl_vlan; / *输入VLAN ID。 * / uint8_t dl_vlan_pcp; / *输入VLAN优先级。 * / uint8_t pad1 [1]; / *对齐64位* / uint16_t dl_type; / *以太网帧类型。 * / uint8_t nw_tos; / * IP ToS(实际上是DSCP字段,6位)。 * / uint8_t nw_proto; / * IP协议或以下的低8位 * ARP操作码。 * / uint8_t pad2 [2]; / *对齐64位* / uint32_t nw_src; / * IP源地址。 * / uint32_t nw_dst; / * IP目标地址。 * / uint16_t tp_src; / * TCP / UDP源端口。 * / uint16_t tp_dst; / * TCP / UDP目标端口。 * / };

 相对于前面所说,多了三个字段,分别是wildcards、pad1[1]、pad2[2],作用如翻译所写。

wildcards字段

/ *流通配符。 * / enum of_p_flow_wildcards{ OFPFW_IN_PORT = 1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3