OpenFlow1.3.3 学习记录(持续更新)

时间:2023-06-03 16:23:14

OpenFlow1.3.3 学习记录(持续更新)

正在学习OpenFlow1.3,该篇笔记将日常更新,主要内容大致为官方文档的总结与翻译。

交换机组件

按照优先级顺序进行包匹配,如果匹配到流表项,则执行流表项中绑定的Instructions;如果没有匹配到流表项,将根据table-miss的配置进行操作,转发到controller,drop,next flow table。Instruction包括:actions或者修改流水线配置。

OpenFlow Ports

  • Standard Ports
  • Physical Ports
  • Reserved Ports
    • ALL
      • 除了输入端口和设置OFPPC_NO_FWD端口
      • 只能作为out_port
    • CONTROLLER
      • out_port时:被封装packet-in
    • TABLE
      • 仅在作为packet_out中的output action中有效
    • IN_PORT
      • only: out_port
    • ANY
      • 没有指定端口时代表特殊含义;
      • 不能作为in_port, out_port
    • NORMAL
    • FLOOD

      端口改变

      Packet转发到不存在的端口,将执行drop操作;对于组表同样,但组表的表现可能会受liveness checking影响。

当端口状态改变时,最好删除相关的流表项。

OpenFlow流表

Pipeline Processing

交换机分两类:

  • OpenFlow-only
  • OpenFlow-hybrid 支持传统交换机和OpenFlow交换机操作

流表至少有一个,从0开始,流水线从第一个流表开始处理。当匹配到流表项,则开始执行instruction设置的操作。流表项可以将一个包指向到另外一个流表项(GotoTable),但只能向前不能回退。最后一个流表项,不能被指向到其他流表项。

如果没有匹配到流表项,根据table-miss流表项进行操作。如果没有table-miss设置,默认drop。

OpenFlow1.3.3 学习记录(持续更新)

Flow Table

Match Fields Piority Counters Instructions Timeouts Cookie Flags
  • couters: 当匹配到包进行更新

未完,待续