SCATS の HDLC サポート

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

SCATS の HDLC サポートの概要

Sydney Coordinated Adaptive Traffic System(SCATS)は、交通信号における信号位相の動的な(オンラインでリアルタイムの)タイミングを管理する高度道路交通システムです。つまり、交通状況(個々の交差点および交通網全体)に応じて最適な位相整合(周期、時間配分、オフセットなど)の検出を試みます。SCATS は、ループ検出器やその他の道路交通センサーから取得されたデータに応じて、ライブラリから自動的にプランを選びます。SCATS は、各交通信号のセンサーを使用して、各車線の車両の存在と、ローカルサイトの横断待ちの歩行者を検出します。車両センサーは、一般に、道路の舗装内に設置される誘導ループです。歩行者センサーは通常、プッシュボタンです。同様の一貫した出力が得られれば、他のさまざまなタイプのセンサーを車両の存在検出に使用できます。車両センサーから収集された情報により、SCATS はネットワーク内の交通信号のタイミングを計算して適応させることができます。

High-Level Data Link Control(HDLC)は、ポイントツーポイントノード間で同期データパケットを伝送するための、データリンク(レイヤー 2)プロトコルのグループです。データは、アドレス可能なフレームに構築されます。この形式は、他のマルチポイントツーマルチポイント プロトコルにも採用され、RFC 1662 に規定された HDLC 類似のフレーミング プロトコルに影響を与えました。HDLC は、ゼロ挿入/削除プロセス(ビット スタッフィング)を使用して、区切りフラグのビット パターンが、フラグ間のフィールドで発生しないようにします。HDLC フレームは同期を取ります。このため、クロッキング方式の提供と、フレームの送受信の同期を取るために物理層(レイヤ 1)に依存します。

この機能は、IOS XE ベースの IoT ルータで使用可能な既存の仮想化レイヤーと統合する IOx アプリケーションとして開発されています。シリアルケーブルを介して SCATS コントローラをルータに接続することを目的としています。アプリケーションが順守する SCATs プロトコルについては、仕様 TSI-SP-068 で説明されています。

次の図は、典型的な SCATS 交通制御ネットワークアプリケーションの例です。

上の図では、IR1101 が DSL ルータの役割を果たし、Traffic Signal Controller(TSC; 交通信号制御機)がシリアルインターフェイスを介して接続されています。TSC に接続すると、ルータはコントローラからサイト ID を取得し、SCAT 認証サーバーに転送します。認証サーバーは、IP とポートを含む JSON ファイルを介して IOx アプリケーションに提供され、IOx アプリケーションが循環できる最大 3 つの認証サーバーを設定できます。

認証サーバーは、サイト ID を受信すると、そのサイト ID に一致する対応する SCATs 地域のコンピュータ IP とポートをルータに応答します。それ以降のすべての通信は、TSC から地域コンピュータへ透過的に行われます。

ルータは、2 つのモード(HDLC と非 HDLC)を使用して TSC と通信します。4 つのシリアル設定が使用可能で、ユーザーは、アプリケーションに提供される 2 番目の JSON ファイルを介して設定を有効または無効にすることで、使用する設定を選択できます。

これは IOx アプリケーションであるため、アプリケーションを停止、非アクティブ化、またはアンインストールすることで、その機能を無効にできます。アプリケーションは、主にローカルマネージャを使用して展開されます。アプリケーションのサイズは約 50 MB、CPU は 400 ユニット、メモリは 128 MB です。

IOx アプリケーションの設定

IOx Local Manager へのアクセスを有効にするには、次の作業を実行します。IOx Local Manager を使用することで、ホスト システム上のアプリケーションの管理、制御、モニタ、トラブルシューティング、および関連するさまざまなアクティビティを実行できます。


重要


SCATs IOX アプリケーションは、接続用 VPN の設定および有効化は行いません。動作に VPN が必要な場合は、アプリケーション外部の IR1101 で IOS XE を介して VPN を設定してください。

(注)  


次の手順では、IP HTTP コマンドは IOx を有効にしませんが、ユーザーは WebUI にアクセスして IOx Local Manager に接続できるようになります。

IOx の有効化

次の操作を行ってください。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device>enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device#configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

iox

例:

Device(config)#iox

IOx を有効にします

ステップ 4

ip http server

例:

Device(config)#ip http server

IP または IPv6 システム上の HTTP サーバーを有効化します。

ステップ 5

ip http secure-server

例:

Device(config)#ip http secure-server

セキュア HTTP(HTTPS)サーバーをイネーブルにします。

ステップ 6

username name privilege level password {0 | 7 | user-password }encrypted-password

例:

username admin privilege 15 password 0 admin

ユーザー名ベースの認証システムとユーザーの権限レベルを確立します。

ユーザー名の特権レベルは 15 に設定する必要があります。

ステップ 7

end

例:

Device(config-if)#end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

レイヤ 3 データポートへの VirtualPortGroup の設定

複数のレイヤ 3 データポートを 1 つ以上の VirtualPortGroup またはコンテナにルーティングできます。VirutalPortGroups とレイヤ 3 のデータポートは、異なるサブネット上にある必要があります。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device>enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device#configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface type number

例:

Device(config)#interface virtualportgroup 0

インターフェイスを設定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 4

ip address ip-address mask

例:

Device(config-if)#ip address 192.168.0.1 255.255.255.0

インターフェイスに IP アドレスを設定します。

ステップ 5

end

例:

Device(config-if)#end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

IOx 通信用のシリアルポートの設定

シリアルポートを設定するには、次の手順を実行します。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device>enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device#configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface async number

例:

Device(config)#interface async 0/3/0

非同期インターフェイスを設定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 4

encapsulation relay-line

例:

Device(config-if)#encapsulation relay-line

非同期インターフェイスをリレー回線として設定します。

ステップ 5

end

例:

Device(config-if)#end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 6

relay-line slot/subslot/port for modems

例:

Device(config)#relay-line 0/0/1 0/3/0

非同期インターフェイスと IOx アプリケーション間のリレー回線を設定します。

ステップ 7

end

例:

Device(config)#end

インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

SCATs アプリケーションの展開

IR1101 に SCATs アプリケーションを展開するには、2 つの方法があります。ローカルマネージャ(グラフィカル UI)または IOS-XE(オンデバイス CLI)のいずれかを使用します。

ローカルマネージャによる SCATs アプリケーションの展開

Web サーバーを有効にしてユーザーを追加する手順を実行した場合は、SVI IP アドレスを使用して IR1101 Web インターフェイスにアクセスできます。https://<svi ip>/(例:https://192.168.0.30/)を使用し、以前に作成したユーザーを使用してログインします。

手順


ステップ 1

https://<svi ip>/

WebUI ログインが表示されます。

ステップ 2

[Configuration] > [Services] > [IOx] から [IOx] ページに移動します。次の画像を参照してください。

ステップ 3

同じユーザーログイン情報を使用して、Cisco IOx ローカルマネージャを開始します(直接アクセスするには、次の URL を使用します:https://<svi ip> /iox/login)。

ステップ 4

[Add New] をクリックして、アプリケーションを展開します。アプリケーション ID に名前を割り当て、アプリケーションアーカイブの SCATs アプリケーションパッケージを選択します。

ステップ 5

[OK] を選択すると、アプリケーションがアップロードされ、IR1101 にインストールされます。

ステップ 6

[Activate] をクリックします。

ステップ 7

[Network Configuration] セクションで、上記の VirtualPortGroup0 設定を確認できます。[edit] をクリックし、[Interface Setting] をクリックします。

ステップ 8

インターフェイスに IP アドレスを設定します。

ステップ 9

両方のウィンドウで [OK] をクリックして、ネットワーク設定を完了します。

ステップ 10

[Peripheral Configuration] セクションで、[Device Type] に [serial] を選択します。

ステップ 11

[Device Name] で、シリアルリレー回線がマッピングされた非同期インターフェイスを選択します。周辺機器にラベルを付け、[OK] をクリックします。

ステップ 12

[Status] には、周辺機器について [Present] と表示されます。右上隅の [Activate App] をクリックし、上部のバーの [Applications] を選択してメインページに戻ります。

ステップ 13

これで、アプリケーションがアクティブ化されます。[Manage] をクリックすると、[Resources] ページに戻ります。

ステップ 14

[Resources] タブで、[App-DataDir] をクリックします。

SCATs を動作させるには、authserver.json と serialconfig.json の 2 つのファイルが必要です。これにより、使用可能な認証サーバーと、SCAT の 4 つのシリアル設定のどれを有効にするかをアプリケーションに通知します。

Example of authserver.json file (1-3 auth servers allowed)
{
    "auth_servers":[
        {"ip":"10.0.1.13", "port":2012},
        {"ip":"10.0.1.1", "port":2012}
    ]
}

Example of serialconfig.json file
{
    "serial_configurations":[
        {"serial_config":"enabled"},
        {"serial_config":"disabled"},
        {"serial_config":"disabled"},
        {"serial_config":"disabled"}
    ]
}

ステップ 15

[Upload] をクリックし、App-DataDir にアップロードするファイルを選択します。

(注)  

 
パスは、authserver.json および serialconfig.json である必要があります。

ステップ 16

選択するには、[OK] をクリックします。

ステップ 17

2 つの json ファイルが存在することを確認し、[Upload] をクリックします。

ステップ 18

[Applications] を選択して、メイン アプリケーション ページに戻ります。[Start] をクリックして、アプリケーションを開始します。[running now] と表示されます。

ステップ 19

[Start] をクリックして、アプリケーションを開始します。

ステータスには、アプリケーションがアクティブ化されていることが示され、メモリと CPU の詳細が表示されます。

ステップ 20

問題をトラブルシュートするには、[Manage] をクリックし、[Logs] タブをクリックします。

ステップ 21

アプリケーションからのログは SCATS.log* に保存され、ローカルマネージャからダウンロードできます。

アプリケーションを停止して削除するには、[Stop] をクリックし、[Deactivate] および [Delete] をクリックします。


IOS-XE CLI を使用した SCATs アプリケーションの展開

次のステップを実行します。

手順

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device>enable

特権 EXEC モードを有効にします。

パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device#configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

app-hosting appid app-name

例:

Device(config)#app-hosting appid scats

SCATS アプリケーションを設定し、アプリケーション コンフィギュレーション モードを開始します。

ステップ 4

app-vnic gateway-number virtualportgroup number guest-interface number

例:

Device(config-app-hosting)#app-vnic gateway0 virtualportgroup 0 guest-interface 0

アプリケーション インターフェイスとアプリケーションのゲートウェイを設定します。

ステップ 5

guest-ipaddress ip-address netmask mask

例:

Device(config-app-hosting-gateway0)#guest-ipaddress 192.168.0.6 netmask 255.255.255.0

アプリケーション イーサネット インターフェイスで IP アドレスを設定します。

ステップ 6

app-default-gateway ip-address guest-interface number

例:

Device(config-app-hosting-gateway0)#app-default-gateway 192.168.0.1 guest-interface 0

アプリケーションのデフォルトゲートウェイの IP アドレスを設定します。

ステップ 7

app-hosting docker

例:

Device(config-app-hosting)#app-hosting docker

docker オプションのコンフィギュレーション モードを開始します。

ステップ 8

run-opts option-number “-- device host-serial:container-serial

例:

Device (config-app-hosting-docker)#run-opts 1 “--device /dev/ttySerial1:/dev/ttySerial1”

非同期インターフェイスをコンテナインターフェイスに一致させます。

(注)  

 
シリアルポートは、リレー回線が設定されたポートと一致する必要があります。この例では、async 0/3/0 が async 1 に設定されているため、対応するシリアルは /dev/ttySerial1 です。

ステップ 9

end

例:

Device(config-app-hosting-docker)#end

docker オプション コンフィギュレーション モードを終了し、特権 EXEC コンフィギュレーション モードに戻ります。

ステップ 10

app-hosting install appid application-name package package-path

例:

Device#app-hosting install appid scats package flash:SCATS_HDLC_signed_05_09.tar

指定された場所から SCATS アプリケーションをインストールします。

アプリケーションは、flash、bootflash、usbflash0 などの任意のローカル ストレージの場所からインストールできます。

ステップ 11

app-hosting activate appid application-name

例:

Device#app-hosting activate appid scats

SCATS アプリケーションをアクティブ化します。

SCATS アプリケーションをアクティブ化します。このコマンドは、すべてのアプリケーション リソース要求を検証し、すべてのリソースが使用可能な場合はアプリケーションがアクティブになります。それ以外の場合は、アクティベーションが失敗します。

ステップ 12

app-hosting data appid application-name copy authserver.json-path

例:

Device#app-hosting data appid scats copy flash:authserver.json

authserver.json ファイルを IOx App-Data ディレクトリにコピーします。

ステップ 13

app-hosting data appid application-name copy serialconfig.json-path

例:

Device# app-hosting data appid scats copy flash:serialconfig.json

serialconfig.json ファイルを IOx App-Data ディレクトリにコピーします。

ステップ 14

app-hosting start appid application-name

例:

Device#app-hosting start appid scats

SCATs アプリケーションを起動します。

アプリケーションの起動スクリプトがアクティブ化されます。

トラブルシューティング

アプリケーションをトラブルシュートするには、次の手順を実行します。

IOx アプリケーション内でセッションを開始します。例:

app-hosting connect appid application-name session

For example:

Device#app-hosting connect appid scats session

ログは、SCATS.log* の /iox_data/logs で表示できます。

アプリケーションの停止および削除

アプリケーションを停止および削除するには、次の手順を実行します。

ステップ

コマンド

目的

1

app-hosting stop appid application-name

Device#app-hosting stop appid scats

アプリケーションを停止します。

2

app-hosting deactivate appid application-name

Device#app-hosting deactivate appid scats

アプリケーションに割り当てられているすべてのリソースを無効にします。

3

app-hosting uninstall appid application-name

Device#app-hosting uninstall appid scats

アプリケーションをアンインストールします。

保存されているすべてのパッケージとイメージをアンインストールします。

アプリケーションに対するすべての変更と更新も削除されます。