1

我有一个使用 mininet 的网络拓扑。拓扑连接到 RYU simple_switch.py​​ 程序。我的网络上有 6 台交换机和 6 台主机。

下面给出 6 个开关上的 Flow Table 内容。

TABLE FOR s1
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.97s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s2
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.947s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s3
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.921s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s4
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.893s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s5
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.86s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s6
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.834s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51

是什么action=CONTROLLER:51意思?这是否意味着将所有数据包发送PACKET_IN到控制器?

4

2 回答 2

2

这意味着交换机应该只将数据包的前 51 个字节发送到控制器。查看 ofp_output_action 中的 max_len 字段以了解详细信息。

于 2014-06-29T07:05:45.013 回答
0

是的。当操作设置为“CONTROLLER”时,当数据包不匹配任何流表条目时,数据包将被发送到控制器。

我在控制器中使用 POX 和以下代码,将默认条目安装为“将所有数据包转发到控制器”

 def insertDefaultFlow(self,connection):
        """ method to insert default flow of send to controller , called in connectionup handler"""
    msg = of.ofp_flow_mod()
    msg.actions.append(of.ofp_action_output(port=of.OFPP_CONTROLLER))
    connection.send(msg)


dpctl dump-flows output as below:

s3 ------------------------------------------------- ----------------------

in_port(2),eth(src=de:37:0c:3b:64:cf,dst=33:33:00:00:00:02),
eth_type(0x86dd),
         ipv6(src=fe80::dc37:cff:fe3b:64cf,dst=ff02::2,label=0,proto=58,tclass=0,hlimit=255,frag=no,icmpv6(type=133,code=0), 
    packets:2, 
    bytes:140, 
    used:1.516s, 
    **actions**:userspace(pid=4294960954,**controller**,length=4294901762)

可以看出,已经安装了指示所有数据包转发到控制器的流条目。

于 2014-06-26T13:18:03.493 回答