Category Archives: SDN

为什么 Flow Mod 消息需要使用 out_port 字段

如何灵活操纵 Flow Mod 消息,对掌握 OpenFlow 协议至关重要。在实验中使用最多是通过 flow_add 消息用来添加一条流表。在使用的时候很容易产生疑惑,为何需要填写 out_port 字段。

我第一次产生这样的疑问是在使用 Floodlight 的 J-Loxigen 操作生成流表的时候,当时的代码如下所示

OFFlowMod flowMod = sw.getOFFactory().buildFlowAdd()
.setIdleTimeout(0) //ForwardingBase.FLOWMOD_DEFAULT_IDLE_TIMEOUT)
.setHardTimeout(ForwardingBase.FLOWMOD_DEFAULT_HARD_TIMEOUT)
.setPriority(ForwardingBase.FLOWMOD_DEFAULT_PRIORITY + 1)
.setMatch(match)
.setActions(actionList)
//.setOutPort(outport)
.build();

为了生成一条流表,需要填写的 Time, Priority,Match,Actions 这些参数都很好理解,但是为何独独需要一个 OutPort 参数。如果这个参数指的是 packet 转发的 port 的话,那么和 Actions 里面的setOutPort 字段是什么关系?

Continue reading