シリアルリレーサービス

この章は、次の項で構成されています。

シリアルリレーサービスの概要

IR1101 のシリアルリレーサービスは、IOx アプリケーションが非同期シリアルポート(IOS-XE では /dev/ttyS1)と通信できるようにします。シリアルリレーサービスの設定は、IR800 の設定と同様です。

データパス

IR1101 では、IOS-XE が非同期シリアルポートのデータパスと制御パスを完全に制御します。これは、PPP、raw ソケット、SCADA などの非同期ポートでサポートされている他のカプセル化にとっては不可欠です。IOx アプリケーションは、デバイスを完全に制御することはできません。すべてのデータと設定は、IOS-XE を介してデバイスに渡されます。実際のシリアルポートを IOx アプリケーションに公開する代わりに、シリアルリレーサービスは、/dev/ttyTun0 として列挙されるソフトウェアによってエミュレートされたシリアル tty デバイスを作成します(以下を参照)。

デバイスのペア /dev/ttyTun0 と /dev/ttyTun1 はデータトンネルを表し、データ転送中にパススルーゲートウェイとして機能します。/dev/ ttyTun1 は IOS-XE によって開かれ、IOS からアプリケーションへのすべての入出力データはデータ転送中にこのデバイスを使用します。回線 0/0/0 は、/dev/ttyTun1 との通信に使用されます。シリアルリレーサービスは、2 本の回線間の接続を許可するように事前に設定しておく必要があります。

図 1. データパス

データパス:

  1. IOx アプリケーションが /dev/ttyTun0 に文字を送信すると、トンネルドライバは自動的にデータを /dev/ttyTun1 にプッシュします。

  2. IOS はデータを読み取り、シリアルリレーサービスに渡します。

  3. シリアルリレーサービスは、リレーサービスのもう一方の端(この場合は回線 0/2/0)に関する情報を取得し、回線のバッファにデータを転送します。

  4. ラインドライバは、バッファにデータがあると、実際のシリアルデバイス(/dev/ ttyS1)にデータをアクティブにプッシュします。

  5. リバースパスは、/dev/ttyS1 と /dev/tun0 の役割を入れ替えても同様に機能します。

制御パス:

  1. IOx アプリケーションが /dev/ttyTun0 で TCGETS ioctl コールを実行すると、トンネルドライバは /dev/cttyTun を使用して、IOS で実行されている CTTY ハンドラサービスに要求を送信します。

  2. CTTY ハンドラサービスとカーネルドライバは、クライアント/サーバアーキテクチャを使用して設定オブジェクトと通信します。

  3. TCGETS に関する要求を /dev/cttyTun から受信すると、CTTY ハンドラは要求を調べ、必要なデータを制御データ構造に入力するようにラインドライバに要求します。

  4. 制御データ構造を受信すると、CTTY ハンドラは /dev/cttyTun に応答を送信し、最終的に /dev/ttyTun0 に戻ります。

  5. /dev/ttyTun0 は要求どおりに IOx アプリケーションに制御データを渡します。

  6. 同様のパスを TCSETS に当てはめると、CTTY ハンドラが下部の /dev/ttyS1 ドライバの設定を更新するようにラインドライバに要求します。

  7. 回線 0/2/0 のラインドライバと /dev/ttyTun0 のドライバ設定は、常に相互に同期しています。ボーレートの変更などの設定変更は、設定のオーバーヘッドを増加させずにラインドライバに透過的に伝達されます。これは、仮想シリアルポートが実際のシリアルポートのパラメータを設定できる IR800 シリーズのシリアルリレーの伝達機能をエミュレートしています。

コンフィギュレーション コマンド


IR1101#configure terminal
IR1101(config)#interface async 0/2/0
IR1101(config-if)#encapsulation relay-line
IR1101(config-if)#exit
IR1101(config)#relay line 0/2/0 0/0/0
IR1101(config)#exit
IR1101#