OpenFlow标准中文版

上传人:痛*** 文档编号:68504632 上传时间:2022-04-02 格式:DOC 页数:87 大小:1.04MB
收藏 版权申诉 举报 下载
OpenFlow标准中文版_第1页
第1页 / 共87页
OpenFlow标准中文版_第2页
第2页 / 共87页
OpenFlow标准中文版_第3页
第3页 / 共87页
资源描述:

《OpenFlow标准中文版》由会员分享,可在线阅读,更多相关《OpenFlow标准中文版(87页珍藏版)》请在装配图网上搜索。

1、1目 录第1章概述第 1.1 节关于 OpenFlow1第1.2节关于本文2第 2 章 Openflow第2.1节概述3第2.2节交换机组成3第2.3节流表32.3.1 包头域42.3.2 计数器 (counter) 52.3.3 彳亍动 (action) 62.3.4 匹配8第2.4节安全通道92.4.1 of 协议92.4.2 连接建立102.4.3 连接中断102.4.4 加I 密102.4.5 生成树102.4.6 流表修改112.4.7 流超时12第2.5节of协议122.5.1 of 协议头122.5.2常用数据结构14232.5.3 Controller-to-Switch 消息

2、2.5.4 Asynchronous 消息352.5.5 Symmetric 消息40第2.6节 规范更新内容Error! Bookmark not defined.第 3 章 OpenvSwitch42第3.1节概述42第3.2节特性42第3.3节代码42第3.4节命令43第 4 章 NOX44第4.1节网络操作系统44第4.2节模型44第4.3节架构454.3.1 组件454.3.2 操作454.3.3 多粒度处理464.3.4 开发实现46第4.4节安装474.4.1 步骤474.4.2 依赖484.4.3 选项484.4.4 校验49第4.5节应用494.5.1 框架494.5.2 运

3、行与接口504.5.3 例程50第4.6节开发514.6.1 组件514.6.2 事件544.6.3 开发例程57第 4.7 节GUI584.7.1 运行 GUI584.7.2 扩展 GUI59第4.8节相关工作61第5章Mininet62第5.1节概述62第5.2节主要特性62第5.3节镜像获取和使用625.3.1 获取镜像625.3.2 使用镜像635.3.3 更新63第5.4节简单测试635.4.1 创建网络635.4.2 査看信息645.4.3 对节点进行单独操作64第5.5节常用操作655.5.1 快捷测试655.5.2 自定义拓扑655.5.3 使用友好的 mac 编号665.5.

4、4 使用 XTerm665.5.5 链路操作675.5.6 指定交换机跟控制器类型675.5.7 名字空间675.5.8 启动参数总结685.5.9 常用命令总结685.5.10 其他操作69第5.6节高级功能695.6.1 dpctl695.6.2 控制器705.63交换机与控制器交互705.6.4 使用 NOX715.6.5 多条配置命令72第5.7节代码分析725.7.1 bin 子目录725.7.2 mininet 子目录735.7.3 custom 子目录745.7.4 examples 子目录745.7.5 其他文件75第6章相关项目77第 6.1 节Openflow77第 6.2

5、 节OpenvSwitch77第 6.3 节NOX77第 6.4 节Mininet77III第1章概述坚持创新,我们的研究才有意思,才有意义。本段的目的是试图告诉大家,OpenFlow 为我们提供了更多更好的创新机会。第节关于OpenFlow最初,OpenFlow以交换机的形式出现在Stanford 一伙人的实验室里,后來又部署到了 他们计算机系的Gates Building里。OpenFlow使传统的二层和三层交换机具备了细粒度流 转发能力,即传统的基于MAC的网包转发,基于IP的路由转发,被拓展到了基于多域网 包包头描述的流转发。同时,传统的控制层而从转发设备中剥离出來,所有转发行为的决

6、策从交换机自身“迁移”到了某个集中控制器上。随着OpenFlow的部署和应用,支持OF的交换设备的性能瓶颈相继出现。于是有了基 于NetFPGA的实现,提供多千兆的OF交换。工业界如HP, Jumper, NEC等也相继提供 了支持OF协议的交换机设备。值得注意的是,在交换机吞吐不是问题的情况下,新建连 接速度(受controller限制)和流表大小(受TCAM限制)始终困扰OpenFlow发展。稍后,流表大小的问题通过两个思路解决,一是使用multi-table (OF 1.1支持),通 过pipeline的流表查找來解决指数及增长的流表项数:二是使用Proactive+Reactive的双

7、重 流表建立方法,通过分布查找+动态加载减少流表项数(DIFANE) o虽然这两种方案一定 程度上减轻了流表大小的问题,但离问题最终解决还早。OpenFlow是否支持大规模网络, 需要进一步研究。与此同时,集中控制端的网络操作系统的发展也在不断推进。最早的Controler仅用于 校园内大楼里的,之后的Ethane/ox拓展到了企业网和数据中心的范畴。近期提出的Omx 完成了一套Internet-scale的OpenFlow部署方案。Omx的管控粒度在不同scale下而有所不 同:在数据中心汇聚层以Internet核心层的OF功能越來越接近现有路由设备,而在设备 接入层(服务器,用户)和网络接

8、入(网关)层则保留基于OF的细粒度控制。从OF的演进可以看出,创新与妥协的trade-off贯穿始终。一方面,OF创新性地将路 由和网关设备的数据平面推向网络,并将管理平面迁移整合到集中控制器,从而以分布式 处理和集中式控制简化网络管理的难度,增强网络的可用性。另一方面,由于受到软硬件 技术的约束和产业模式的不成熟,OF的发展始终对现有网络进行各种各样的妥协。随着学 界和业界越來越多的接受OF理念,这种trade-off越來越可能得到收敛,进而推动产业的 成熟。事实上,在Cisco和HP大张旗鼓的争斗VN-TAG和VEPA之际,基于0penFlow的 虚拟交换产品OvS己丁斜刺里杀出。这种So

9、fhvare-Defmed Network.无论功能和成本均有 口己独特的优势。至于是否能对传统网络技术产生乜大的冲击则需耍包括我们在内的所有 人,继续创新。第1章概述第1.2节关于本文斯坦福大学OpenFlow团队近十年來一贯坚持的开放和创新的态度,使得基于OF的开 源项目不断増加,一个个精彩的demo不断呈现,最终促成了学术界和工业界的集体参与 热情。由于OpenFlow创新的目标是简化网络管理,即OpenFlow自身的创新实际是在驱动网 络业务的创新。因此,从事OpenFlow的相关研究,不应仅停留在OF网络的部署上,更重 耍的是如何利用OF网络去进行业务创新。我们相信只有合理的产业化方

10、向,出色的业务 和应用,才能最终推动OpenFlow的发展,最终让软件掌控网络。撰写本文的目的,一方面是收集、整理.分享OpenFlow的相关技术资料,另一方面 则是希望籍此推进国内的OpenFlow研究发展。本文的技术内容均來口公开发表的学术文 章和相关论坛、网站等,附带了本团队的一些理解和体会。我们期望通过自己的一点点努 力,促进国内团队的OpenFlow研究与开发,以及广泛的和开放的交流与创新。第2章 Openflow第21节概述官 方 网 站:http:/OpenFlowSwitch.OTg。本部分内容按照Openflow规范1.0版本撰写。1.0之前版本都是草案,从1.0版本开始 是

11、正式版本,生产商们理论上应该都参照这个版本。1.0版本的下载地址为 http:/Avwwopenflowsvitchorg,documents/openflowspecvl00pdfQ目前最新规范版本为l.lo在本章最后一节将说明规范1.1的修改内容。第22节交换机组成每个of交换机(switch)都有一张流表,进行包查找和转发。交换机可以通过of协议 经一个安全通道连接到外部控制器(controUer),对流表进行查询和管理。图表2-1展示 了这一过程。OpenFlow Switch图表2-1 of交换机通过安全通道连接到控制器流表包括包头域(header fileds,匹配包头多个域)、活

12、动计数器(counters) 0个或 多个执行行动(actions) o对每一个包进行查找,如果匹配则执行相关策略,否则通过安 全通道将包转发到控制器,控制器來决策相关行为。流表项可以将包转发到一个或者多个 接口。第2.3节流表流表是交换机进行转发策略控制的核心数据结构。交换芯片通过查找流表表项來决策对进入交换机的网络流量采取合适的行为。每个表项包括三个域,包头域(header field) 计数器(counters),行动(actions) o 如表格2-1所示。表格2-1流表项结构Head Fileds CounterActi ons23.1包头域包头域包括12个域,如表格22所示,包括:

13、进入接口,Ethernet源地址.目标地址. 类型,vlanidt vlan优先级,IP源地址、目标地址、协议、IPToS位,TCP/UDP目标端口、 源端口。每一个域包括一个确定值或者所有值Guy),更准确的匹配可以通过掩码实现。表格2-2流表项的包头域Ingress PortEtherSourceEtherDstEtherTypeVian idVianPriorityIPsrcIP dstIP protoIPToS bitsTCP/UDP Src PortTCP/UDP Dst Port更具体的各个域的解释参见表格2-3o表格2-3包头域详细含义FieldBitsWhen applicab

14、leNotesIngress Port(Implementati on dependent)All packetsNumerical representation of incoming port, starting at 1Ethernet source address48All packets on enabled portsEthernet destination address48All packets on enabled portsEther net type16All packets on enabled portsAn OpenFlow switch is required t

15、o match the type in both standard Ethernet and 802.2 with a SNAP header and OUI of 0x000000. The special value of0x05FF is used to match all 802.3 packetswithoutSNAPheaders VLAN id12All packets of Ether net type 0x8100VLAN priority3All packets of Ether net type 0x8100VLAN PCP fieldIP source address3

16、2All IP and ARP packetsCan be subnetmaskedIP destination address32All IP and ARPpacketsCan be subnetmaskedIP protocol8All IP and IP over Ethernet, ARP packetsOnly the lower 8 bits of the ARP opcode are usedIPToS bits6All IP packetsSpecify as 8-bitvalue and place ToS in upper 6 bitsTran sport sourcep

17、ort / ICMP Type16All TCP, UDPZ andICMP packetsOnly lower 8 bitsused for ICMP TypeTran sport destination port / ICMP Code16All TCP, UDPZ andICMP packetsOnly lower 8 bits used for ICMP Code2.3.2 计数器(counter)计数器可以针对每张表、每个流、每个端口.每个队列來维护。用来统计流量的一些 信息,例如活动表项、查找次数、发送包数等。统计信息所需耍的计数器在表格2-4中给 出。表格2-4统计信息需要的计数

18、器CounterBitsPer TableActive Entries32Packet Lookups64Packet Matches64Per FlowReceived Packets64Received Bytes64Duration (seconds)32Duration (nanoseconds)32Per PortReceived Packets64Transmitted Packets64Received Bytes64Transmitted Bytes64Receive Drops64Transmit Drops64Receive Errors64Transmit Errors6

19、4ReceiveFrameAlignment Errors64Receive Orermn Errors64Receive CRC Errors64Collisions64Per QueueTransmit Packets64Transmit Bytes64Transmit Chrermn Errors642.33 行动(action)每个表项对应到o个或者多个行动,如果没有转发行动,则默认丢弃。多个行动的执 行需耍依照优先级顺序依次进行。但对包的发送不保证顺序。另外交换机可以对不支持的 行动返回错误(unspported flow error )。行动可以分为两种类型:必备行动(Requir

20、ed Actions)和可选行动(Optional Actions), 必备行动是默认支持的,交换机需要通知控制器它支持的可选行动。2.3.3.1 必备行动必备行动转发(Fowanl) ALL转发到所有出口(不包括入口) CONTROLLER封装并转发给控制器 LOCAL转发给本地网络栈 TABLE对耍发出的包执行流表中的行动 IN_PORT从入口发出必备行动至弃(Drop)没有明确指明处理行动的表项,所匹配的所有网包默认丢弃。2332可选行动可选行动转发 NORMAL按照传统交换机的2层或3层进行转发处理。 FLOOD通过最小生成树从出口泛洪发出,注意不包括入口。 可选行动入队(Enqueu

21、e)将包转发到绑定到某个端口的队列中。可选行动修改域(Modifyfield)修改包头内容。具体的行为见表格25。表格2-5修改域行为ActionAssociated DataDescriptionSet VLAN ID12 bitsIf no VLAN is present a new header is added with the specified VLAN ID and priority of zero. If a VLAN header already exists, the VLAN ID is re- placed with the specified valueSet VLA

22、N priority3 bitsIf no VLAN is present a new header is added with the specified priority and a VLAN ID of zer o.If a VLAN header already exists, the priority field is replaced with the specified value.Strip VLAN header-Strip VLAN header lfpresent Modify Ethernet source MAC address48 bits: Value with

23、which to replace existing source MAC addressReplace the existing Ethernet source MAC address with the new valueModify Ethernet destination MAC address48 bits: Value with which to replace existing destination MAC addressReplace the existing Ether net desti nation MAC dress with the new valueModify IP

24、v4 source address32 bits: Value with which to replace existing IPv4 source addressReplace the existing IP source address with new value and update the IP checksum (and TCP/UDP checksum if applicable). This action is only applica- ble to IPv4 packetsModify IPv4 destination address32 bits: Value with

25、which to replace existing IPv4 desti- nation addressReplace the existing IP destination address with new value and update the IP checksum (and TCP/UDP checksum if applicable). This action is only applied to IPv4 packetsModify IPv4 ToS bits6 bits: Value with whichto replace existing IPv4 ToS fieldRep

26、lace the existing IP ToS field. This action is only ap- plied to IPv4 packetsModify tran sport source port16 bits: Value with which to replace existing TCP or UDP source portReplace the existing TCP/UDP source port with new value and update the TCP/UDP checksum This action is only applica- ble to TC

27、P and UDP pack- ets.Modify tran sport destination port16 bits: Value with which to replace existing TCP or UDP destination portReplace the existing TCP/UDP destination port with new value and update the TCP/UDP checksumThis action is only applied to TCP and UDP packets 2.3.3.3交换机类型通过支持的行为类型不同,兼容of的交

28、换机分为两类,一类是“纯of交换机(of-only), 一类是“支持of交换机(of-enable)o前者仅需要支持必备行动,后者还可以支持NORMAL 行动,同时,双方都可己支持泛洪行动(Flood Action) o表格2-6各种类型of交换机的支持行动of-onlyof-enableRequired ActionsYESYESNORMALNOCANFLOODCANCAN第 2 章 Openflow2.3.4匹配图表2-2整体匹配流程每个包按照优先级依次去匹配流表中表项,匹配包的优先级最高的表项即为匹配结果。 一旦匹配成功,对应的计数器将更新;如果没能找到匹配的表项,则转发给控制器。整体

29、流程参见图表22,具体包头解析匹配过程见图表23o图表2-3包头解析的匹配流程-# -第24节安全通道安全通道用來连接交换机和控制器,所有安全通道必须遵守of协议。控制器可以配置、 管理交换机、接收交换机的事件信息,并通过交换机发岀网包等。2.4.1 of 协议of 协议支持三种消息类型:controller-to-switch, asynchronous (异步)和 symmetric (对 称),每一类消息又有多个子消息类型。controller-to-switch消息由控制器发起,用來管理 或获取switch状态:asynchronous消息由switch发起,用來将网络事件或交换机状态

30、变化 更新到控制器:symmetric消息可由交换机或控制器发起。2.4.1.1 controller-to-switch 消息由控制器(controller)发起,可能需耍或不需耍來口交换机的应答消息。包括Features.Configuration Modify-state Read-state Send-packet BarrierFeatures在建立传输层安全会话(Transport Laver Secunty Session)的时候,控制器发送feature 请求消息给交换机,交换机需要应答自身支持的功能。Configuration控制器设置或查询交换机上的配置信息。交换机仅需耍应

31、答查询消息。Modifv-state控制器管理交换机流表项和端口状态等。Read-state控制器向交换机请求一些诸如流.网包等统计信息。Send-packet控制器通过交换机指定端口发出网包。Barrier控制器确保消息依赖满足,或接收完成操作的通知2.4.1.2 asynchronous 消息asynchronous不需耍控制器请求发起,主耍用于交换机向控制器通知状态变化等事件 信息。主耍消息包括 Packetm、Flow-removedPort-statusEitot 等Packet-in交换机收到一个网包,在流表中没有匹配项,则发送Packet-m消息给控制器。如果交 换机缓存足够多,

32、网包被临时放在缓存中,网包的部分内容(默认128字节)和在交换机 缓存中的的序号也一同发给控制器;如果交换机缓存不足以存储网包,则将整个网包作为 消息的附带内容发给控制器。Flow-removed交换机中的流表项因为超时或修改等原因被删除掉,会触发Flow-removed消息。Port-status交换机端口状态发生变化时(例如down掉),触发Port-status消息。Error交换机通过Error消息來通知控制器发生的问题。2.4.1.3 symmetric 消息symmetric消息也不必通过请求建立,包括Hello、Echo、Vendor等。Hello交换机和控制器用來建立连接。Ec

33、ho交换机和控制器均可以向对方发出Echo消息,接收者则需耍回复Echo replyo该消息 用來测量延迟、是否连接保持等。Vendor交换机提供额外的附加信息功能。为未来版本预留。2.4.2连接建立通过安全通道建立连接,所有流量都不经过交换机流表检查。因此交换机必须将安全 通道认为是本地链接。今后版本中将介绍动态发现控制器的协议。当of连接建立起來后,两边必须先发送OFPTHELLO消息给对方,该消息携带支持 的最高协议版本号,接受方将采用双方都支持的最低协议版本进行通信。一旦发现两者拥 有共同支持的协议版本,则连接建立,否则发送OFPT_ERROR消息(类型为 OFPET_HELLO_FA

34、ILED,代码为OFPHFC_COMPATIBLE),描述失败原因,并终止连 接。2.4.3连接中断当连接发生异常时,交换机应尝试连接备份的控制器。当多次尝试均失败后,交换机 将进入紧急模式,并重昼所有的TCP连接。此时,所有包将匹配指定的紧急模式表项,其 他所有正常表项将从流表中删除。此外,当交换机刚启动时,默认进入紧急模式。2.4.4加密安全通道采用TLS (Transport Layer Security)连接加密。当交换机启动时,尝试连接 到控制器的6633 TCP端口。双方通过交换证书进行认证。因此,每个交换机至少需配置两 个证书,一个是用來认证控制器,一个用来向控制器发出认证。2.

35、4.5生成树交换机可以选择支持802.1D生成树协议。如果支持,所有相关包在查找流表之前应该 先在本地进行传统处理。支持生成树协议的交换机在OFPT_FEATURES_REPLY消息的 compabilities域需耍设置OFPC.STP位,并11需要在所有的物理端口均支持生成树协议, 但无需在虚拟端口支持。生成树协议会设置端口状态,來限制发到OFP_FLOOD的网包仅被转发到生成树指定 的端口。需耍注意指定出口的转发或0FP.ALL的网包会忽略生成树指定的端口状态,按 照规则设置端口转发。如果交换机不支持802.1D生成树协议,则必须允许控制器指定泛洪时的端口状态。2.4.6流表修改流表修改

36、消息可以有以下类型::enum ofp_flow_mod_command :OFPFCADD, /* New flow. /:OFPFC_MODIFY, /* Modify all matching flows. */:OFPFC_MODIFY_STRICTZ /* Modify entry strictly matching wildcards /;OFPFC_DELETE, /* Delete all matching flows. */;OFPFC_DELETE_STRICT /* Strictly match wildcards and priority *7:;2.4.6.1 ADD

37、对于带有OFPFF.CHECK.OVERLAP标志的添加(ADD),肖息,交换机将先检查新表 项是否跟现有表项冲突(包头范1 overlap, 11有相同的优先级),如果发现冲突,将拒绝 添加,并返回 o_enor_msg ,并 1L 指明 OFPET_FLOW_MOD_FAILED 类型和 OFPFMFC.OVERLAP 代码。对于合法无冲突的添加,或不带OFPFF_CHECK_OVERLAP标志的添加,新表项将被 添加到最低编号表中,优先级在匹配过程中获取。如果任何表中己经存在与新表项相同头 部域和优先级的旧表项,该项将被新表项替代,同时计数器清零。如果交换机无法找到耍 添加的表,则返回o

38、幼_eiror_msg ,并11指明OFPET_FLOW_MOD_FAILED类型和 OFPFMFC_ALL_TABLES_FULL 代码。如果添加表项使用了交换机不合法的端口,则交换机返回ofp_error_msg消息,同时带 有 OFPET_BAD_ACTION 类型和 OFPBAC_BAD_OUT_PORT 代码。2A.6.2 MODIFY对于修改,如果所有己有表中没有与要修改表项同样头部域的表项,则等同于ADD 消息,计数器置0;否则更新现有表项的行为域,同时保持计数器、空闲时间均不变。2.4.6.3 DELETE对于删除,如果没有找到耍删除表项,不发出任何消息:如果存在,则进行删除操

39、作。 如果被删除的表项带有OFPFF_SEND.FLOW.REM标志,则触发一条流删除的消息。删除 紧急表项不触发消息。-11-此外,修改和删除还存在另一个.STRICT版本。对于非.STRICT版本,通配流表项是 激活的,因此,所有匹配消息描述的流表项均受影响(包括包头范圉被包含在消息表项中 的流表项)。例如,一条所有域都是通配符的非.STRICT版本删除消息会清空流表,因为 所有表项均包含在该表项中。在.STRICT版本情况下,表项头跟优先级等都必须严格匹配才执行,即只有同一条表 项会受影响。例如,一条所有域都是通配符的DELETE_STRICT消息仅删除指定优先级的 某条规则。此外删除消

40、息还支持指定额外的outsort域。如果交换机不能处理流操作消息指定的行为,则返回OFPET_FLOV_MOD_FAILED : OFPFMFC.UNSUPPORTED,并拒绝该表项。2.4.7流超时每个表项均有一个idle_timeout和一个hard_timeout, |jij者计算没有流量匹配的时间 (单位都是秒),后者计算被插入表中的时间。一旦到达时间期限,则交换机口动删除该 表项,同时发出一个流删除的消息。第2.5节of协议包括of协议相关消息的数据结构等。2.5.1 of协议头数据结构如下。:/* Header on all OpenFlow packets. */:struct

41、ofp_header :uint8_t version;/* OFP_VERSION. /;uint8_t type; /* One of the OFPT_ constants. */:uintl6_t length; /* Length including this ofp_header. */:uint32_t xid;;/* Transaction id associated with this packet:Replies use the same id as was in the request:to facilitate pairing/3;OFP_ASSERT(sizeof(s

42、truct ofp header) = 8);Version用來标明of协议版本。当前of协议中 version最重耍的位用來标明实验版本, 其他位标明修订版本。目前的版本是0x01,最终的Type 0交换机应该是0x00。Length用來标明消息长度。Type用來标明消息类型。可能的消息类型包括enum ofp_type :/* Immutable messages/:OFPT_HELLO, /* Symmetric message */:OFPTERROR, /* Symmetric message */:OFPT_ECHO_REQUES / Symmetric message /:OFP

43、T_ECHO_REPLY, /* Symmetric message /:OFPT_VENDORZ /* Symmetric message */:IIIIII:/* Switch configuration messages. */ OFPT_FEATURES_REQUEST, /*;Controller/switch message */ OFPT_FEATURES_REPLYZ /* Controller/switch message : :*/ OFPT_GET_CONFIG_REQUES/ Controller/switch message / ::OFPT_GET_CONFIG_R

44、EPLY/ / Controller/switch message / OFPT_SET_CONFIGZ : :/* Controller/switch message */:IIIIIIII:/* Asynchronous messages */:OFPT_PACKET_IN, /* Asyncmessage /:OFPT_FLOW_REMOVED,/ Asyncmessage /:OFPT_PORT_STATUS, / Async message /:IIIIIIII:/* Controller command messages */:OFPT_PACKET_OU/*Controller/

45、switch message */;:OFPT_FLOW_MOD, /*Controller/switch message */:;OFPT_PORT_MOD, /*Controller/switch message */!IIIIII:/* Statistics messages. */:OFPT_STATS_REQUES/ Controller/switch message /:OFPT_STATS_REPLY” /*Controller/switch message */:IIIIIIII:/* Barrier messages. */:OFPT_BARRIER_REQUES / Con

46、troller/switch message /:OFPT_BARRIER_REPLY,/* Controller/switch message /:IIIIII:/* Queue Configuration messages. / OFPT_QUEUE_GET_CONFlG_REQUEST, /* : :Controller/switch message */ OFPT QUEUE GET CONFIG REPLY/* Controller/switch : :message */;:;-13 -2.5.2常用数据结构包括端II、队列、匹配、行动等。2.5.2.1 端口2.5.2.1.1 端

47、口结构/* Description of a physical port */:struct ofp_phy_port I:uintl6_t port_no;:uint8_t hw_addrOFP_ETH_ALEN;:char nameOFP_MAX_PORT_NAME_LEN; /* Null-terminated */IIIe:uint32_t config; /* Bitmap of OFPPC_* flags. */:uint32_t state; /* Bitmap of OFPPS_* flags. */IIIII:/* Bitmaps of OFPPF_* that descri

48、be featuresAll bits zeroed ifI:* unsupported or unavailable */Ii uint32_t curr; /* Current features */I:uint32_t advertised; /* Features being advertised by the port */I uint32_t supported; /* Features supported by the port */i:uint32_t peer; /* Features advert:ised by peer. */i ;OFP_ASSERT(sizeof(s

49、truct ofp_phy_port) = 48);port_no标明绑定到物理接I I的datapath值。 hw_addr是该物理接I I的mac地址。OFP_MAX_ETH_ALEN 值为 6。name是该接I 1的名称字符串,以null结尾。 OFP_MAX_PORT_NAME_LEN 为 16。2.5.2.1.2 Configconfig描述了生成树和管理设置,数据结构为:/* Flags to indicate behavior of the physical port These flags are:* used in ofp_phy_port to describe the c

50、urrent configuration. They are :* used in the ofp_port_mod message to con figure the port s behavior.:*/Ienum ofp_port_config OFPPC_PORT_DOWN = 1 0,/* Port is administratively down. */IIIIII:OFPPC_NO_STP = 1 1,/* Disable 802.ID spanning tree on port. */ :0I:OFPPC_NO_RECV= 1 2, /* Drop all packets ex

51、cept 802.ID spanning:I:tree packets */:OFPPC_NO_RECV_STP = 1 3Z /* Drop received 802.1D STP packets. /:I:OFPPC_NO_FLOOD = 1 4Z /* Do not include this port when flooding. */:II:OFPPC_NO_FWD = 1 5,/* Drop packets forwarded to portII:OFPPC_NO_PACKETN = 1 6/* Do not send packet-in msgs for port. */:;:2.

52、5.2.1.3 Statesta描述生成树状态和某个物理接I I是否存在,数据结构为:/* Current state of the physical port. These are not configurable fromII:* the controller.:1*/1II;enum ofp_port_state ;:OFPPS_LINK_DOWN= 1 0,/*No physical link present. */:IIIIIIIIII:/* The OFPPS_STP_* bits have no effect on switch operation. The:* controll

53、er must adjust OFPPC_NO_RECV, OFPPC_NO_FWD, and:II:* OFPPC_NO_PACKET_IN appropriately to fully implement an 802.ID spanning :* tree. */:II:OFPPS_STP_LISTEN= 0 &/* Not learning or relaying frames. */:OFPPS_STP_LEARN= 1 &/*Learning but not relaying frames. */:I:OFPPS_STP_FORWARD = 2 &/* Learning and r

54、elaying frames. */:II:OFPPS_STP_BLOCK= 3 v&/Not part of spanning tree. */!II:OFPPS_STP_MASK =38/* Bit mask for OFPPS_STP_* values. */:1 ; ;2.5.2.1.4 端口号端11号采用如下的数据结构。/* Port numbering Physical ports are numbered starting from 2 */i:enum ofp_port I:/* Maximum number of physical switch ports */:OFPPMA

55、X = OxffOO,IIII:/* Fake output “ports”.-15第 2 章 OpenflowOFPPJN_PORT = 0xfff8, /* Send the packet out the input port. This virtual:port must be explicitly usedin order to send back out of the input port */IIIII:OFPP_TABLE = 0xfff9, /* Perform actions in flow table.I:NB: This can only be the destinati

56、on:port for packet-out messages */:OFPP_NORMAL = Oxfffa, /* Process with normal L2/L3 switching. */I:OFPP_FLOOD = Oxfffb, /* All physical ports except input port andI:those disabled by STP. */I:OFPP_ALL = Oxfffcz /* All physical ports except input port. */:OFPP_CONTROLLER = Oxfffd, /* Send to contro

57、ller. /:OFPP_LOCAL = Oxfffe, /* Local openflow port11. */i OFPP_NONE= Oxffff /* Not associated with a physical port. */;j;cum advertised, supported和peer域 标明 链路模式(10M到10G,全双工、 半双工),链路类型(铜线/光线)和链路特性(自动协商和暂停)。链路特性(Port features) 数据结构如下,多个标识可以同时设置。:/* Features of physical ports available in a datapath *

58、/:OFPPF.:OFPPFe:OFPPFI:OFPPFI:OFPPFI:OFPPFI:OFPPFI:OFPPFi:OFPPFI! OFPPFI:OFPPFI:OFPPFenum ofp_port_features 10MB_HD= 1 0, /* 10 Mb half-duplex rate support. */10MB_FD= 1 1, /* 10 Mb full-duplex rate support. */100MB_HD= 1 2,/* 100 Mb half-duplex rate support. */100MB_FD = 1 3,/* 100 Mb full-duplex r

59、ate support. */1GB_HD=1 4,/*1 Gb half-duplex ratesupport.*/1GB_FD=1 5Z/*1 Gb full-duplex ratesupport.*/10GB_FD = 1 6,/* 10 Gb full-duplex rate support. */COPPER=1 7Z/*Copper medium. */FIBER=1 8,/*Fiber medium */AUTONEG = 1 9,/* Auto-negotiation. */PAUSE = 1 10, /* Pause. */PAUSE_ASYM = 1 11/* Asymme

60、tric pause. */;2522 队列2.5.2.2.1队列结构队列被绑定到某个端11,实现有限的流量控制操作。数据结构为-#/* Full description for a queue */:struct ofp_packet_queue I:uint32_t queuejd; /* id for the specific queue */I:uintl6_t len; /* Length in bytes of this queue desc. */I:uint8_t pad2; /* 6牛bit alignment. */:struct ofp_queue_prop_header properties0; /* List of properties */:;:OFP_ASSERT(sizeof(struct ofp_packet

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!