我正在创建 ryu 应用程序来推送和弹出 mpls 标签。这是 ovs(2.3.1 版)交换机 s1 上的流条目:
root@ubuntu:~# sudo ovs-ofctl -O OpenFlow14 dump-flows s1
OFPST_FLOW reply (OF1.4) (xid=0x2):
cookie=0x0, duration=190.991s, table=0, n_packets=123, n_bytes=21852, priority=0 actions=CONTROLLER:65535
cookie=0x0, duration=190.991s, table=0, n_packets=0, n_bytes=0, priority=10,mpls,in_port=2,mpls_label=80 actions=pop_mpls:0x0800,output:1
cookie=0x0, duration=190.991s, table=0, n_packets=152, n_bytes=14896, priority=10,ip,in_port=1 actions=push_mpls:0x8847,set_field:80->mpls_label,output:2
任何人都知道为什么即使流条目匹配也不转发数据包。因为如果我打开 Wireshark 并查看 s1-eth2 以检查 mpls 标头,则没有检测到具有 mpls 标头或 ethertype = 0x8847 的数据包。
我在 s1-eth2 看到的只有数据包是 ICMPv6(路由器请求消息)、DHCP 和 MDNS。它们中的任何一个都与我从主机 1 发送到 h2 的 ping 无关。我的拓扑:h1-s1-s2-h2
我的代码有错误还是 ovs 或 openflow_v1.4 ryu 中的错误?
谢谢。