猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

Ryuのソースコードリーディング  その4 Ryuの起動プロセス

下書き

TODO

コンテクストとかサービスとかの概念がまだよくわかっていないのが問題だ。

ryu-manager実行時の処理

 ryu.cmd.managerのmain関数が実行されます。

ryu.cmd.managerでのmain関数の処理

from oslo.config import cfg

CONF = cfg.CONF
CONF.register_cli_opts([
    cfg.ListOpt('app-lists', default=[],
                help='application module name to run'),
    cfg.MultiStrOpt('app', positional=True, default=[],
                    help='application module name to run')
])

 ryu-managerの引数および設定ファイルの解析をolso.configを用いて行っています。oslo.configに関してはこちらを参照。

 65     # keep old behaivor, run ofp if no application is specified.
 66     if not app_lists:
 67         app_lists = ['ryu.controller.ofp_handler']

からryu-managerに引数を指定しない場合は、ryu.controller.ofp_handller.pyが実行されます。

 70     app_mgr.load_apps(app_lists)

から以下のように複数のアプリケーションを同時に起動させることにも対応しています。

ryu-manager foo.py bar.py