show_description でスイッチの情報を取得する
前回の flow_dumper に似たアプリとして show_description があります。さっそく起動してみましょう。
$ ./trema run -c ../apps/routing_switch/routing_switch.conf -d $ TREMA_HOME=`pwd` ../apps/show_description/show_description Manufacturer description: Nicira Networks, Inc. Hardware description: Open vSwitch Software description: 1.2.2 Serial number: None Human readable description of datapath: None Datapath ID: 0xe0 Port no: 2(0x2)(Port up) Hardware address: ce:b5:29:d7:71:b8 Port name: trema0-0 Port no: 65534(0xfffe:Local)(Port down) Hardware address: f6:41:af:e5:7f:bb Port name: vsw_0xe0 Port no: 1(0x1)(Port up) Hardware address: 92:73:bd:f9:76:bf Port name: trema1-0
routing_switch.conf ではネットワークエミュレーション機能により、openvswich 一台が起動するよう設定されています。ここで起動された openvswitch に関する description が show_description コマンドで取得できていることが確認できます。OpenFlow スイッチが複数接続している環境では、それぞれの description を表示することができます。
このアプリでは、stats_request メッセージの OFPST_DESC タイプで情報を取得しています。trema では create_desc_stats_request() 関数が用意されており、この関数で対応する OpenFlow メッセージを作成することができます。