概要
ファームウェア管理では、一連のファームウェア イメージ ファイルの保守、および BAC システムから対応する顧客宅内装置(CPE)への配送を行います。ファームウェア ルール テンプレートにより、ファームウェア イメージ ファイルは、デバイス グループに関連付けられます。BAC は、関連付けられたファームウェア ルール テンプレート内のルールを使用して、デバイスにダウンロードするファームウェアを評価します。
ファームウェア管理機能を使用すると、デバイスのファームウェア情報を表示すること、ファームウェア イメージをデータベースに追加すること、およびイメージ ファイルを特定のデバイスに適用することができます。
BAC では、CPE ファームウェア管理用に、次の 2 つのメカニズムがサポートされています。
• ファームウェア ルール テンプレートを介したポリシーベースのファームウェア管理
• デバイス操作 API を介した直接的なファームウェア管理
詳細については、「ファームウェア ルール テンプレート」および 「直接的なファームウェア管理」を参照してください。
ファームウェア管理のプロセスでは、使用する管理方式に関係なく、デバイスは、ファイル サーバから新しいファームウェア イメージを取得するように指示されます。BAC は DPE にファイル サービスを提供します。ただし、CPE を他のファイル サーバに誘導することもできます。
ファームウェア ルールでは、事前プロビジョニングされた、または検出されたデバイス パラメータの一致に基づいて、ファームウェアをデバイスに適用できます。デバイス パラメータには、デバイス グループ メンバシップ、モデル、タイプ、現在の状態、および接続タイプなどがあります。DPE はファームウェアのダウンロードをトリガーするときに、ファイル サーバ上のファイルの場所と、認証の資格情報(ある場合)を使用して、Download RPC を実行します。BAC では、DPE サーバでのファイル ダウンロード用に、HTTP と HTTP over SSL(この章では SSL/TLS と呼ぶ)がサポートされています。
このダウンロードは、次のさまざまな方法で開始できます。
• ファームウェア ルール ベース。この方法では、デバイスが要求したファイルのダウンロードが、ファームウェア ルールによって許可または拒否されます。場合によっては、別のファイルがダウンロードされることもあります。ファームウェア ルールは、デバイスが DPE に接続するたびに実行されます。
• デバイスが、リブート後または特定のアクション後に定期的に DPE と交信する。特定のアクションには、デバイスのローカル ユーザ インターフェイスでユーザがボタンをクリックして開始するアップグレードなどがあります。デバイスが DPE と交信する方法に関係なく、ファームウェア ルールが実行され、特定のインタラクションの実行時にアップグレードが必要かどうか、および許可されるかどうかが判別されます。
• プロキシ。この方法では、外部アプリケーションが、特定のデバイス用に API ダウンロード操作を呼び出し、ファームウェア イメージ ファイルの場所を指定します。次に、DPE がデバイスに対して Download RPC を実行すると、デバイスが指定された場所からファイルをダウンロードします。
ダウンロードは、次のどちらかの方法で行われます。
–即時。この方法では、DPE がデバイスに接続し、デバイスに対してファームウェアのダウンロードを指示します。
–接続時。この方法では、DPE がデバイスと次に交信したときに、デバイスに対してファームウェアのダウンロードを指示します。
ファームウェア管理メカニズム
この項では、BAC の CPE ファームウェア管理メカニズムについて説明します。このメカニズムは、次の要素で構成されています。
• ファームウェア ルール テンプレートを介したポリシーベースのファームウェア管理詳細については、「ファームウェア ルール テンプレート」を参照してください。
• プロキシ操作を介した外部ファームウェア管理詳細については、「直接的なファームウェア管理」を参照してください。
ファームウェア ルール テンプレート
ポリシーベースのファームウェア管理を設定するには、ルール テンプレートを使用します。ファームウェア ルール テンプレートは、公開されているスキーマ ドキュメントに従って記述された XML ドキュメントです。各テンプレートは、ファイルに格納して BAC にアップロードする必要があります。
各ファームウェア ルール テンプレートには、特定の条件に基づいてファームウェア更新をトリガーするルールが 1 つ以上含まれます。このテンプレートは、いくつでも、管理者のユーザ インターフェイスまたは API を介して BAC に追加できます。テンプレートは、
COS_CWMP_FIRMWARE_RULES_FILE
プロパティを介して、サービス クラス オブジェクトに関連付けられます。次に、各デバイスがサービス クラスに割り当てられます(BAC オブジェクトの関連付けについては、「BAC デバイス オブジェクト モデル」を参照してください)。
このモデルでは、便利な方法でルールの定義を更新できます。ルールの定義は、多数のデバイスに適用されます。ルール テンプレートを更新すると、サービス クラスを介して間接的にテンプレートに関連付けられている CPE が、新しいポリシーに従って管理されます。
デバイスが BAC との接続を確立すると、デバイスのファームウェアと構成が、DPE にキャッシュされている構成およびファームウェア ルールに基づいて、自動的に同期されます。最初に、ファームウェア ルールが実行され、必要に応じてデバイスのファームウェアが更新されます。次に、デバイスの構成が同期されます。
BAC のファームウェア ルール処理は 2 段階に分かれています。最初に、RDU でテンプレートが処理され、条件や代入可能パラメータなどのテンプレート構成体が解釈されます(「ファームウェア ルール テンプレートに対するテンプレート構成体の使用方法」を参照)。この処理では、RDU で使用できるデータ(デバイス プロパティやグループ)に基づいて、デバイスのルールをカスタマイズできます。このデータを事前プロビジョニングする場合は、API を使用します。RDU で以前にデバイスから検出され、格納されたデータも、テンプレートの構成に使用できます。テンプレートが処理されると、結果のルールが、デバイスのプロビジョニング グループ内の DPE に送信されます。このルールに動的な一致基準を設定すると、ファームウェア ルール ポリシーをより細分化できます。
ファームウェアの更新が必要かどうかを判別するため、DPE のルール エンジンがファームウェア ルールを評価します。ファームウェア ルールでは、次の基準が一致したときにファームウェアの更新をトリガーできます。
• Inform のイベント タイプ
• デバイスの RequestDownloadRPC 引数
• Inform のパラメータ値
• それ以外のデバイス パラメータの値
• MaintenanceWindow 期間
(注) デバイスへのファームウェアのダウンロードをスケジュール設定するには、MaintenanceWindow オプションを使用します。詳細については、「MaintenanceWindow 期間のデバイス交信」を参照してください。
また、このルールには、ファームウェア管理用のポリシーを作成する強力なメカニズムがあります。たとえば、管理者は、現行のファームウェア バージョンを持つ特定モデルのデバイスすべてを、特定のサービス期間に別のファームウェアにアップグレードさせるルールを記述できます。
DPE は、ルールを使用したファームウェア選択のすべてのケースについて、エントリをログに記録します。また、ルールが一致しない場合も、エントリをログに記録します。このロギング メカニズムは、ファームウェア イメージ ファイルが関連付けられていないデバイスをトラッキングする場合や、単純にデバイス ファームウェアを最新状態にする場合に役立つことがあります。
BAC は、さまざまなファイルで定義されている XML スキーマを使用して、デバイス構成用の命令を生成します。 表6-1 は、これらのファイルとその場所を示しています。
表6-1 ファームウェア ルールのテンプレート処理で使用されるファイル
|
|
|
ファームウェア ルール テンプレートのサンプル |
デバイス構成を定義する |
サンプル テンプレート |
サンプル テンプレートは次の場所にあります。 BPR_HOME/rdu/samples/cwmp |
ファームウェア ルール テンプレート スキーマ |
ファームウェア ルール テンプレートの構文を検証する |
デフォルト テンプレート スキーマ |
デフォルト テンプレート スキーマは次の場所にあります。 • ファームウェア ルール テンプレート スキーマ BPR_HOME/rdu/templates/cwmp/schema/FirmwareTemplateSchema.xsd • 共通テンプレート スキーマ BPR_HOME/rdu/templates/cwmp/schema/CommonTemplateConstructs.xsd |
パラメータ辞書 |
ファームウェア ルール テンプレートの内容を検証する |
デフォルト辞書 |
デフォルト辞書は次の場所にあります。 • BPR_HOME/rdu/templates/cwmp/dictionary/tr069-cwmp-dictionary.xml • BPR_HOME/rdu/templates/cwmp/dictionary/tr098-cwmp-dictionary.xml • BPR_HOME/rdu/templates/cwmp/dictionary/tr104-cwmp-dictionary.xml • BPR_HOME/rdu/templates/cwmp/dictionary/tr106-cwmp-dictionary.xml • BPR_HOME/rdu/templates/cwmp/dictionary/basic-cwmp-dictionary.xml |
パラメータ辞書スキーマ |
パラメータ辞書の構文を検証する |
デフォルト辞書 |
パラメータ辞書スキーマは次の場所にあります。 TR-069、TR-098、TR-104、および TR-106 辞書のスキーマ BPR_HOME/rdu/templates/cwmp/schema/TemplateDictionarySchema.xsd |
直接的なファームウェア管理
BAC のデバイス操作 API を使用すると、OSS が個々のデバイスに対して操作を実行できるようになります。BAC では、特に、標準の CWMP RPC 操作を実行できます。
デバイス操作 API を介してファームウェアを管理する場合、OSS では、CPE に対して実行する操作を精密に制御できます。OSS は、CPE のファームウェア更新に必要なリモート プロシージャ コール(RPC)に対応する特定の API コールを実行します。
たとえば、デバイスに対して Download RPC を呼び出すときは、対応する API コールが使用されます。このコマンドには、デバイスでダウンロードするファームウェア イメージ ファイルの URL のほか、必要に応じて認証の資格情報が含まれます。
デバイス操作の詳細については、「CWMP デバイス操作」を参照してください。
ファイル サービス
ファームウェア管理のプロセスでは、使用する管理方式に関係なく、デバイスは、ファイル サーバから新しいファームウェア ファイルを取得するように指示されます。BAC は DPE サーバにファイル サービスを提供します。ただし、必要に応じて、CPE を他のファイル サーバに誘導することもできます。BAC でサポートされる各種の設定オプションについては、「CWMP サービスの設定値」を参照してください。
ファームウェア ファイルの管理
ファームウェア ファイルの管理では、ファームウェア イメージ ファイルとファームウェア ルール テンプレート ファイルを管理します。この機能を使用すると、管理者やアプリケーションが API を使用して、ファームウェア イメージ ファイルとファームウェア ルール テンプレート ファイルの追加、削除、または置換を行うことや、ファームウェア イメージ ファイルとファイル情報を表示および検索することができます。ファームウェアの管理は、管理者のユーザ インターフェイスまたは API から行います。管理者のユーザ インターフェイスでファームウェア イメージ ファイルとファームウェア ルール テンプレートを管理するには、 Configuration > Files の順に選択します。
ファームウェア ルール テンプレート ファイルは、デバイスのファームウェア イメージを特定します。このファイルは、 Firmware Rules Template
というファイル タイプで RDU データベースに格納されます。
ファームウェア イメージ ファイルは、 Firmware File
というファイル タイプで RDU データベースに格納されます。各ファームウェア イメージ ファイルには、 Firmware Version
属性によって指定されたファームウェア バージョンが含まれます。DPE は、このファームウェア バージョン情報を使用して、ファームウェア ルールを評価します。
(注) ファームウェア イメージを中央サーバ(RDU)から管理すると、そのイメージは適切な DPE から自動的に配送または削除されます。
ファームウェア ファイルの管理では、ファイル タイプごとに次の操作を実行できます。
表6-2 ファームウェア ファイルの管理操作
|
|
追加 |
追加
(注) ファームウェア ルール テンプレート ファイルをシステムに追加できるのは、このテンプレートが妥当な場合だけです。妥当でない場合、BAC は、テンプレートのエラー タイプを説明するエラー メッセージを表示します。
|
削除
(注) 既存のファームウェア イメージ ファイルがファームウェア ルール テンプレートで参照されている場合、そのファイルは削除できません。ファームウェア イメージ ファイルを正常に削除するには、ファームウェア ルール テンプレートから、そのファームウェア ファイルへの参照を削除してください。
|
削除
(注) ファームウェア ルール テンプレートがサービス クラスによって参照されている場合、そのテンプレートは削除できません。ファームウェア ルール テンプレートを正常に削除するには、そのサービス クラスへの参照を削除してください。
|
内容の取得 |
内容の取得 |
ファイル属性(サイズ、名前、プロパティなど)の取得 |
- |
内容の置換またはファイル属性/プロパティの変更(あるいは両方)
(注) 既存のファームウェア イメージ ファイルの置換は、そのファイルが API を介してファームウェア ファイル テンプレートに関連付けられていても実行できます。ただし、管理者のユーザ インターフェイスでは、ファームウェア イメージ ファイルを置換する前に、関連付けが存在することが通知されます。
ファームウェア イメージ ファイルの内容を置換すると、IGS によって、影響を受けるデバイスごとにファームウェア ルールが再生成され、そのルールがデバイスのプロビジョニング グループ内の DPE に配送されます。その後、デバイスが DPE と交信すると、新しいルールが実行されます。 |
ファイルの内容の置換またはファイルの属性およびプロパティの変更(あるいは両方) |
名前、サフィックス、またはファイル タイプによる検索 |
- |
- |
管理者のユーザ インターフェイスからの、表形式のテンプレートの表示
(注) テンプレートが表形式で表示されるのは、テンプレートに条件が含まれていない場合だけです。
|
ファームウェア ルール テンプレートのオーサリング
BAC のファームウェア ルール テンプレートは、XML スキーマ ファイルに基づいています。このスキーマ ファイルは、 BPR_HOME/rdu/templates/cwmp/schema/FirmwareTemplateSchema.xsd にあります。
ファームウェア ルールが実行されるのは、デバイスからの Inform が処理された後です。また、ルールの実行は、デバイスが RequestDownload RPC を実行した後にもトリガーされます。
ファームウェア ルール テンプレートは、次の要素で構成されます。
FirmwareTemplate :ルート要素。この要素には、1 つの Prerequisites タグと、1 つ以上の名前付き FirmwareRule 要素を含めることができます。
(注) ファームウェア ルールは順番に処理されます。ファームウェア ルールが一致した場合、それ以降のルールは処理されません。
• Prerequisites :ファームウェア ルール テンプレート内のルールを処理する前に満たされている必要がある条件が含まれます。前提条件には、0 個または 1 個の MaintenanceWindow、および 0 個以上の Expression を含めることができます。
(注) ファームウェア テンプレートに対して Expression と MaintenanceWindow をイネーブルにする方法は、設定テンプレートの場合と同じです。
–MaintenanceWindow:ファームウェア ルール テンプレートの処理が有効となる期間を表します。詳細については、「前提条件」を参照してください。
–Expression:このルールを評価するための 0 個以上の式。構文と定義は、 FirmwareRule 要素で指定されている Expression と同じです。詳細については、「Expression」を参照してください。
• FirmwareRule :各 FirmwareRule 要素には次の要素が含まれます。
–Expression:このルールを評価するための 0 個以上の式。特定のルールに含まれているすべての式が一致した場合、ルールがファームウェア更新をトリガーします。詳細については、「Expression」を参照してください。
–InternalFirmwareFile または ExternalFirmwareFile:このどちらかを指定する必要があります。
–InternalFirmwareFile を使用するのは、BAC ファイル サービスを使用し、API または管理者のユーザ インターフェイスを介してファームウェア イメージ ファイルをシステムに追加した場合です。
–ExternalFirmwareFile は、外部ファイル サーバ上にあるファームウェア イメージ ファイルの情報を表します。
詳細については、「内部ファームウェア ファイルと外部ファームウェア ファイルの比較」を参照してください。
Expression
Expression は、テスト条件を表します。各 Expression には、 ParameterName 、 InformParameterName または RpcArgumentName タグ、1 つ以上の Value タグ、および Operator タグを含める必要があります。BAC はこれらの要素を順番に処理し、ファームウェア イメージ ファイルの照合と割り当てを行います。
ParameterName
TR-069 パラメータの名前を指定します。 ParameterName は、TR-069 パラメータ辞書を使用して検証されます。
DPE では、このパラメータの値を、Inform から取得するか、または同じセッション内の先行する GetParameterValues RPC コールから取得するように設定できます。ルールを処理するときにセッションでパラメータ値を使用できない場合、DPE はデバイスに対して、欠落しているパラメータ値をクエリーし、値を取得してからルールの評価を続行します。
詳細については、「パラメータ」を参照してください。
InformParameterName
パラメータ辞書に示されていない Inform パラメータの名前を指定します。このエントリは検証されません。
たとえば、次の例の Expression は、デバイスの Inform.EventCode
に次の指定値のどちらかが含まれている場合に true と評価されます。
<InformParameter>Inform.EventCode</InformParameter>
<Value>3 SCHEDULED</Value>
<Operator>match</Operator>
BAC でサポートされている InformParameter タグのパラメータ名は次のとおりです。
• Inform.DeviceId.Manufacturer
• Inform.DeviceId.ManufacturerOUI
• Inform.DeviceId.ProductClass
• Inform.DeviceId.SerialNumber
• Inform.EventCode
Inform.EventCode の値については、DSL Forum の TR-069 に関する Technical Report を参照してください。
Value
パラメータのデータを指定します。特定のパラメータについて考えられる値を 1 つ以上示すことができます。値のデータ タイプは、辞書を使用して検証されます(使用可能な場合)。
RpcArgumentName
デバイスが報告するパラメータの名前を指定します。値は、RequestDownload.FileType と RequestDownload.FileTypeArg\* のどちらかです。
• RequestDownload.FileType は、デバイスがダウンロードを要求するファイルのタイプを示します。
• RequestDownload.FileTypeArg\* は、デバイスがダウンロード要求メッセージに含める可能性のある任意の引数を示します。アスタリスク(*)は、実際の引数名を表します。
例6-3を参照してください。
Operator
Parameter と Value を評価します。Expression を評価する場合、 Operator には、次のいずれかを指定します。
• match:大文字と小文字を区別する比較で、デバイス パラメータの値が少なくとも 1 つの値と一致する必要があることを指定します。
• matchIgnoreCase:大文字と小文字を区別しない比較で、デバイス パラメータの値が少なくとも 1 つの値と一致する必要があることを指定します。
• matchAll:大文字と小文字を区別する比較で、デバイス パラメータの値がすべての値と一致する必要があることを指定します。
• matchAllIgnoreCase:大文字と小文字を区別しない比較で、デバイス パラメータの値がすべての値と一致する必要があることを指定します。
• noMatch:大文字と小文字を区別する比較で、デバイス パラメータの値がどの値とも一致してはならないことを指定します。
• noMatchIgnoreCase:大文字と小文字を区別しない比較で、デバイス パラメータの値がどの値とも一致してはならないことを指定します。
例6-1 Expression:match InformParameterName
次のサンプルの Expression において、一致条件は、 InformParameter の Inform.EventCode
が 1 BOOT という値と完全に一致した場合に後続のルールが有効になることを示しています。デバイスは、自動構成サーバ(ACS)と交信するときに、この値を Inform メッセージで報告します。
<InformParameterName>Inform.EventCode</InformParameterName>
<Operator>match</Operator>
例6-2 Expression:match RpcArgumentName(RequestDownload.FileType)
次のサンプルの Expression では、一致条件は、RPCArgumentName の RequestDownload.FileType
が 1 Firmware Upgrade Image という値と完全に一致した場合に後続のルールが有効になることを示しています。
<RpcArgumentName>RequestDownload.FileType</RpcArgumentName>
<Value>1 Firmware Upgrade Image</Value>
<Operator>match</Operator>
例6-3 Expression:match RpcArgumentName(RequestDownload.FileTypeArg)
次のサンプルの Expression では、一致条件は、RPCArgumentName の RequestDownload.FileTypeArg.Version
が 1.1 という値と一致した場合に後続のルールが有効になることを示しています。
(注) CWMP 仕様では、Version
は、File Type が Web Content の場合に使用できる FileTypeArg となることが定義されています。
<RpcArgumentName>RequestDownload.FileType</RpcArgumentName>
<Value>2 Web Content</Value>
<Operator>match</Operator>
<RpcArgumentName>RequestDownload.FileTypeArg.Version</RpcArgumentName>
<Operator>match</Operator>
例6-4 Expression:noMatch ParameterName
次のサンプルの Expression では、一致条件は、 Parameter の InternetGatewayDevice.DeviceInfo.SoftwareVersion
が 1.02 というソフトウェア バージョンと一致しない場合に後続のルールが有効になることを示しています。
<ParameterName>InternetGatewayDevice.DeviceInfo.SoftwareVersion</ParameterName>
<Operator>noMatch</Operator>
内部ファームウェア ファイルと外部ファームウェア ファイルの比較
内部ファームウェア イメージ ファイル要素と外部ファームウェア イメージ ファイル要素は、ファームウェア イメージ ファイルが BAC ファイル サーバ内にあるか、リモート ファイル サーバにあるかを定義します。
InternalFirmwareFile
InternalFirmwareFile 要素は、RDU に追加されて DPE に自動的に配送されたファームウェア イメージのファイル名と、ファームウェア イメージをデバイスにダウンロードするときに使用される配送の転送方式を表します。次の要素で構成されます。
• FileName
:RDU データベース内のファイルの名前を指定します。
• DeliveryTransport
:HTTP または SSL/TLS 転送を指定します。
(注) 対応するファイル サービス(HTTP または SSL/TLS)を DPE に設定してください。設定の詳細については、『Cisco Broadband Access Center DPE CLI Reference, Release 3.0』を参照してください。
同じ転送を使用する複数のサービス(たとえば、2 つの HTTP)を DPE に定義した場合、DPE は最初のサービスを選択してデバイスに提供します。
例
<FileName>sample-firmware-image.bin</FileName>
<DeliveryTransport>HTTP</DeliveryTransport>
ExternalFirmwareFile
ExternalFirmwareFile 要素は、リモート サーバにあるファームウェア イメージ ファイルの名前を表します。次の要素で構成されます。
• FileURL :リモート ロケーションにあるファームウェア イメージ ファイルの URL を指定します。
• FileSize :ダウンロードするファームウェア イメージ ファイルのサイズを指定します。
• AuthenticationCredentials :ファイル サーバによって HTTP 認証が実行される場合に使用するユーザ名とパスワードを指定します。ユーザ名とパスワードは、Download RPC を介してデバイスに転送されます。
(注) パスワードがクリア テキストで転送されないようにするため、CWMP に SSL/TLS を使用していることを確認してください。
代入可能なパラメータを使用することで、RDU でファームウェア ルールを処理するときに、テンプレート処理エンジンがデバイス レコードからデバイス固有のユーザ名とパスワードを取得するように設定できます。
例
<FileURL>http://imageserver.isp.com/sample-firmware-image.bin</FileURL>
<FileSize>3449</FileSize>
<AuthenticationCredentials>
<HttpUserName>test</HttpUserName>
<HttpPassword>changeme</HttpPassword>
</AuthenticationCredentials>
サンプルのファームウェア ルール テンプレート
次の例は、ルールを含むファームウェア テンプレートを示しています。
<StartTime>01:00:00</StartTime>
<Duration>5:00</Duration>
<InformParameterName>InternetGatewayDevice.DeviceInfo.EventCode</InformParameterName>
<Operator>match</Operator>
<ParameterName>InternetGatewayDevice.DeviceInfo.Manufacturer</ParameterName>
<Operator>matchIgnoreCase</Operator>
<FirmwareRule name="AcmeInternalFileRule">
<InformParameterName>InternetGatewayDevice.DeviceInfo.SoftwareVersion
</InformPaameterNam>
<Operator>match</Operator>
<FileName>sample-firmware-image.bin</FileName>
<DeliveryTransport>HTTP</DeliveryTransport>
<FirmwareRule name="AcmeExternalFirmwareRule">
<InformParameterName>InternetGatewayDevice.DeviceInfo.SoftwareVersion
</InformParameterName>
<Operator>match</Operator>
<FileURL>http://10.10.10.10:889/sample-firmware-image.bin</FileURL>
<FileSize>3449</FileSize>
<AuthenticationCredentials>
<HttpUserName>test</HttpUserName>
<HttpPassword>changeme</HttpPassword>
</AuthenticationCredentials>
ファームウェア ルール テンプレートに対するテンプレート構成体の使用方法
BAC のテンプレート処理メカニズムを使用すると、少数のテンプレートで、多数の CPE 用にカスタマイズされた構成を生成できます。このメカニズムでは、必ず、テンプレート構成体が使用されます。
テンプレート構成体は、 tc:include 、 tc:if 、および tc:choose 条件文のいずれかです。条件文は BAC プロパティと一緒に使用されます。テンプレート プロセッサは、デバイス用の命令を生成するときに構成体を処理します。次に、命令が DPE に転送され、そこでキャッシュされます。
一方、FirmwareRule は、ファームウェア ルール テンプレート内のタグで、デバイスに送信するファームウェア イメージを表します。ファームウェア ルールには、デバイスが構成を取得するために BAC と交信したときに評価される Expression を含めることができます。Expression が true と評価された場合、デバイスは特定のファームウェア イメージ ファイルをダウンロードするように指示されます。
ファームウェア ルールでは、事前プロビジョニングされた、または検出されたデバイス パラメータの一致に基づいて、ファームウェアをデバイスに適用できます。デバイス パラメータには、デバイス グループ メンバシップ、モデル、タイプ、現在の状態、および接続タイプなどがあります。この処理は RDU で実行されます。実行時は、中央サーバで使用できる事前プロビジョニングされたデータまたは検出されたデータが使用されます。
このリリースでは、次の汎用クラスのテンプレート構成体がサポートされています。
• パラメータ代入:BAC データ モデル内のデバイス レコードまたはその他のオブジェクトに格納されているパラメータ値に基づいて、ルールの内容を挿入できます。
詳細については、「パラメータ代入の使用方法」を参照してください。
• インクルード:テンプレートに別のテンプレートを含めることができます。
詳細については、「インクルードの使用方法」を参照してください。
• 条件式:条件文の評価に基づいて、ルールの内容を挿入できます。
詳細については、「条件の使用方法」を参照してください。
これらのテンプレート構成体を指定するには、XML タグを tc プレフィックスと一緒に使用します。
(注) 先頭に tc が付いている要素は、ファームウェア ルール テンプレートと設定テンプレートに共通した汎用構成体です。
BAC ファームウェア ルール構成体は、次の場所にあるファイルで定義された XML スキーマに基づいています。
• BPR_HOME/rdu/templates/cwmp/schema/FirmwareTemplateSchema.xsd
• BPR_HOME/rdu/templates/cwmp/schema/CommonTemplateConstructs.xsd
(注) BAC Common Template 構成体の XML ネームスペースは、xmlns:tc='urn:com:cisco:bac:common-template'
として定義されます。
パラメータ代入の使用方法
特定のデバイスに固有のファームウェア ルールを作成するには、 VAR()
構成体を使用して、BAC プロパティ階層からテンプレートに値を代入します。 VAR()
構成体は、XML 要素値または要素属性の中に表示できます。また、この構成体を使用して、すべてまたは一部の値を代入することもできます。
次のリストは、BAC でサポートされている、パラメータ代入用の構成体を示しています。
• XML 要素内容に代入する BAC プロパティ値
• XML 要素属性に代入する BAC プロパティ値
• デフォルト値
• 部分的な XML 要素内容
• 特殊文字を含む値
構文と具体例については、「パラメータ代入の使用方法」を参照してください。
インクルードの使用方法
インクルード ファイルを使用すると、再利用可能なテンプレートの抜粋集を作成できます。このファイルを使用すると、多くのサービス クラスで共通のオプションを定義する場合に、複数のテンプレートでオプションを重複させる必要がなくなり、便利です。
特定のファイルの内容をテンプレートに含めるには、 tc:include 構成体を使用します。インクルードするファイルの内容をホスト テンプレートに挿入すると、ホスト テンプレートで指定されたパラメータ辞書によって、挿入後のテンプレートの内容が検証されます。
(注) インクルードするテンプレートで使用されているオブジェクトおよびパラメータが、ホスト テンプレートと同じ辞書で定義されていない場合は、命令の生成中にパラメータの検証が失敗します。
tc:Include 要素は href 属性を指定します。 href は、ホスト テンプレートにインクルードする BAC テンプレート ファイルの名前を示します。テンプレートでインクルード ディレクティブを使用する場合は、二重引用符(")を使用します。
(注) テンプレートを別のテンプレートにインクルードする場合、インクルードするテンプレートのパラメータ辞書および前提条件タグは無視されます。ファームウェア テンプレートのスキーマでは、ファームウェア テンプレート内のインクルード タグの場所が規定されています。
構文と具体例については、「インクルードの使用方法」を参照してください。
条件の使用方法
BAC では、テンプレート構成体の強力な条件式を使用して、構成の最終的なカスタマイズを行うことができます。
この条件式の構成体を使用すると、テンプレートの内部でテキスト ブロックを含めるか、または除外することができます。この構成体の要素は、 tc:if 、 tc:choose 、および tc:when です。条件の詳細と具体例については、「条件の使用方法」を参照してください。
条件を使用して、デバイスのファームウェア アップグレードをバイパスさせることもできます。デバイスが、ファームウェア ルール テンプレートで指定された必須条件と一致しない場合、デバイスはアップグレードをバイパスします。例6-5を参照してください。
例6-5 ファームウェア アップグレードのバイパス
次の例は、 if 構成体を使用したファームウェア アップグレードのバイパスを表すファームウェア ルール テンプレートを示しています。
checkVersion
が true に設定されている場合は、ルールによりデバイスのソフトウェア バージョンがチェックされ、バージョンが一致しない場合は、ファームウェア アップグレードがバイパスされます。 checkVersion
が false に設定されている場合、ソフトウェア バージョンはチェックされず、デバイスがファームウェアのダウンロードに関する命令を取得します。
<tc:Template xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tc="urn:com:cisco:bac:common-template" xmlns="urn:com:cisco:bac:firmware-template" xsi:schemaLocation="urn:com:cisco:bac:common-template CommonTemplateConstructs.xsd">
<ParameterDictionary>tr069-cwmp-dictionary.xml</ParameterDictionary>
<!-- Upgrade rule: if software version is 0.00.22, direct the device to download sample-firmware-image.bin -->
<!-- devices that do not have software version 0.00.22 , will bypass firmware upgrade. -->
- <FirmwareRule name="LinksysWAG54G2Rule">
<tc:if test="equals(VAR(name=/cpe/checkVersion,defaultValue=false), true)">
<ParameterName>InternetGatewayDevice.DeviceInfo.SoftwareVersion</ParameterName>
<Operator>matchIgnoreCase</Operator>
<FileName>sample-firmware-image.bin</FileName>
<DeliveryTransport>HTTP</DeliveryTransport>