mpls ラベルをプッシュおよびポップする ryu アプリを作成しています。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 のバグですか?
ありがとう。