1

mininet 環境で simple_switch_14.py アプリケーションを実行すると、ホストの ping が正常に機能します。

次に、次のコード文字列を変更します。

1) 「from ryu.ofproto import ofproto_v1_4」から「from ryu.ofproto import ofproto_v1_5」

2) 「OFP_VERSIONS = [ofproto_v1_4.OFP_VERSION]」から「OFP_VERSIONS = [ofproto_v1_5.OFP_VERSION]」

3) 「out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id, in_port=in_port, actions=actions, data=data)」を「out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id, match=parser.OFPMatch(in_port=in_port), アクション=アクション, データ=データ)"

これは、このアプリケーションを openflow 1.5 バージョンの環境で実行しようとしていることを意味します。

次のエラーが表示されます。

EVENT ofp_event->SimpleSwitch14 EventOFPPacketIn パケット 1 00:00:00:00:00:01 ff:ff:ff:ff:ff:ff 1 EventOFPErrorMsg を受信しました。version=0x6, msg_type=0x1, msg_len=0x44, xid=0x703a0cc -- msg_type: OFPT_ERROR(1) OFPErrorMsg(type=0x2, code=0x4, data=b'\x06\x0d\x00\x38\x07\x03\xa0\xcc\x00\x00\x01\x00\x00\x10\x00\x00\x00\x01\x00\x16\x80\x00\x00\x04\x00\x00\x00\x01\x80\x00\x06\x06\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x10\xff\xff\xff\xfb\xff\xe5\x00\x00\x00\x00\x00\x00') |-- type: OFPET_BAD_ACTION(2) |-- code: OFPBAC_BAD_OUT_PORT(4) -- データ: version=0x6, msg_type=0xd, msg_len=0x38, xid=0x703a0cc `-- msg_type: OFPT_PACKET_OUT(13)

では、なぜ「bad out port」エラーが生成されるのか、openflow プロトコルの v1.4 と v1.5 の間で「out ポート」または「アクション」で何が変更されたのでしょうか?

ありがとう

4

0 に答える 0