Ryuを利用した、パッチパネルの実装

提供:TuntunkunMediaWiki

移動: 案内, 検索

パッチパネルとは

パッチパネル(英: patch panel)またはパッチ盤、パッチボード(英: patch board)は、ケーブル群を収納し接続するためのパネルであり、通常19インチラックにマウント可能になっている。一般に機器からのケーブル(パッチケーブル)をパネル前面のジャックに接続し、その背後に恒久的なケーブルが延びている。配置を工夫することで、通信回線などの保守性を向上させる。パッチベイ(英: patch bay)とも呼称される。

パッチパネルは、専用のスイッチ装置を使わずに簡便に信号の経路を選択できる。この手法は初期の電話交換機にさかのぼり、多数の交換手がパッチパネル(交換台)の前に座り、手でパッチパネル上の配線を変更することで交換業務を行っていた。

配線盤はパッチパネルよりも安価だが、扱いに技量が必要である。Wikipediaより(http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%83%E3%83%81%E3%83%91%E3%83%8D%E3%83%AB)

要約すると、どことどこの配線を繋げるかを決める事ができる機器です。これをOpen Flowスイッチを使用して実装を行います。

パッチパネルのソースコード

このコードでは、接続を行ってきたスイッチに対して、ポート2番、ポート3番の結線を行うという単純な動作をおこなっているだけです。

# -*- coding: utf-8 -*-
from ryu.base import app_manager
from ryu.controller.handler import CONFIG_DISPATCHER
from ryu.controller.handler import set_ev_cls
from ryu.controller import ofp_event
from ryu.ofproto import ofproto_v1_3
from ryu.lib import ofctl_v1_3
 
class SwitchingHub(app_manager.RyuApp):
    OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
 
    def __init__(self, *args, **kwargs):
        super(SwitchingHub, self).__init__(*args, **kwargs)
 
    @set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
    def switch_features_handler(self, ev):
        print('Switch is joined!')
 
        datapath    = ev.msg.datapath
        ofproto     = datapath.ofproto
        parser      = datapath.ofproto_parser
 
        port_a = 2
        port_b = 3
 
        match_a = parser.OFPMatch(in_port=port_a)
        match_b = parser.OFPMatch(in_port=port_b)
 
        inst_a = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, [parser.OFPActionOutput(port_b)])]
        inst_b = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, [parser.OFPActionOutput(port_a)])]
 
        mod_a = parser.OFPFlowMod(datapath=datapath, priority=0, match=match_a, instructions=inst_a)
        mod_b = parser.OFPFlowMod(datapath=datapath, priority=0, match=match_b, instructions=inst_b)
 
        datapath.send_msg(mod_a)
        datapath.send_msg(mod_b)
個人用ツール
名前空間
変種
操作
案内
ツールボックス