猫型エンジニアのブログ

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

アプリケーションモジュール

 Ryuのアプリケーションの実体はPythonのモジュール。
モジュール中にryu.base.app_manager.RyuAppを継承したサブクラスが、最低一つは必要になる。

RyuAppの

class RestAPI(app_manager.RyuApp):
    _CONTEXTS = {
        'network': network.Network,
        'wsgi': WSGIApplication
    }

    def __init__(self, *args, **kwargs):
        super(RestAPI, self).__init__(*args, **kwargs)
        self.nw = kwargs['network']
        wsgi = kwargs['wsgi']

_CONTEXTS = {}
クラスメソッドのcontext_iteritems()を用いて取り出します。

_EVENTS = []

OpenFlowのセキュアチャネルのネゴシエーションを行うofp_handler.pyも(ユーザが明示的に指定することなく起動する)Ryuのアプリケーションになります。