【问题标题】:Why do my OpenFlow matches not match the first packet?为什么我的 OpenFlow 匹配与第一个数据包不匹配?
【发布时间】:2019-02-14 13:57:30
【问题描述】:

我正在使用 Ryu simple_switch_13.py(稍作修改)和 Mininet 来模拟软件定义的网络。

例如,如果我 ping:

h1 ping h2

流匹配已创建,但第一个数据包未在流的数据包计数中注册。

这在 Openflow 中正常吗?交换机/控制器是否必须首先接收不匹配的数据包,创建匹配,然后再匹配任何其他数据包?

【问题讨论】:

    标签: sdn openflow


    【解决方案1】:

    OpenFlow 的正常行为是接收流的第一个数据包,然后使用默认流条目将其发送到控制器,该默认流条目大致如下(取决于控制器类型):

    cookie=0x0, duration=10.97s, table=0, n_packets=0, n_bytes=0, priority=0, action=CONTROLLER:65535
    

    当第一个数据包到来时,它将由交换机发送给控制器,然后,控制器决定流表项并通过OpenFlow消息(flowAdd)将其发送给交换机。第一个数据包不会与创建的流规则匹配。

    这是一个简单的例子,希望对你有用。

    【讨论】:

    • 啊,好吧,所以第一个数据包与最终创建的流不匹配?
    • @HCF3301 是的,就是
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多