dpid に基づいて simple_switch_13.py と hub.py をインスタンス化するカスタム コントローラー ファイルを作成しようとしています。スイッチまたはハブの作成時に dpid の割り当てを担当するクラスを見つけるのに苦労しています。誰かがこれに対する解決策を教えてもらえますか?
これは私が書いたコードです
import logging
import warnings
from ryu.base import app_manager
from ryu.app.simple_switch_13 import SimpleSwitch13
from ryu.lib.dpid import dpid_to_str
from ryu.controller import dpset
LOG = logging.getLogger('ryu.controller.dpset')
homeDir = '/home/click'
class Controller(object):
def __init__( self, name, *ryuArgs, **kwargs ):
ryuCoreDir = '%s/ryu/ryu/app/' % homeDir
if not ryuArgs:
print( 'warning: no Ryu modules specified; '
'running simple_switch only\n' )
#ryuArgs = [ ryuCoreDir + 'simple_switch.py' ]
ryuArgs = [' ']
elif type( ryuArgs ) not in ( list, tuple ):
ryuArgs = [ ryuArgs ]
Controller.__init__( self, name,
command='ryu-manager',
cargs='--ofp-tcp-listen-port %s ' +
' '.join( ryuArgs ),
cdir=ryuCoreDir,
**kwargs )
def switch_features_handler(self, ev):
data_path_id = dpid_to_str(ev.dpid)
if (data_path_id == "00-00-00-00-02-01" or data_path_id == "00-00-00-00-02-02" or data_path_id == "00-00-00-00-02-03" or data_path_id == "00-00-00-00-02-04" or data_path_id == "00-00-00-00-02-05"):
SimpleSwitch13(app_manager.RyuApp)