コンフィグ
===========

libarms は、LS/RS との通信を行うため、状況に応じていくつかのコンフィグを切り替えて利用する。
ここでは各コンフィグの役割と内容について解説する。

Initial-Config
--------------

.. note::

    このセクションの内容は、オープンソース版libarmsを利用する場合必要ありません。

最初にLS に対してPull を行うために用いるコンフィグを、Initial-Config と呼ぶ。
このコンフィグは、IIJ から暗号化形式のファイルとして提供される。
コンフィグに定義されている内容は

* LS のURL
* 回線接続用匿名アカウント
* LS 接続のリトライ回数、インターバル

といった内容である。この内容はlibarms の内部で処理され、LS アクセスの際に自動的に利用される。実際の設定値は以下のようになっている。

===================   =======  ==================================================================
項目                  設定値   備考
===================   =======  ==================================================================
LS のURL              非公開   IIJ で運用するサーバ
匿名アカウント        非公開   PPPoE 環境/モバイル環境等で匿名アカウントが必要な場合に利用される
LS 接続リトライ回数   1500 回
LS 接続インターバル   60 秒
===================   =======  ==================================================================

なお、オープンソース版libarmsを利用する場合、LSのURLや接続パラメータはデフォルト値がlibarms自体に埋め込まれているため、Initial-Configを用意する必要はない。ただし、パラメータの変更や匿名アカウントの利用は不可となる。

Location-Config
----------------

.. note::

    Location-Config は、SMF SDKを用いて独自RSを構築している事業者のみ設定可能です。SACMなどのサービスを直接利用する場合には本セクションの内容は無視してください。

LS から取得し、RS へのPull を行うために用いるコンフィグを、Location-Config と呼ぶ。
このコンフィグは、LS システムで用意されるWebUI を用いて設定を行う。
Location-Config で提供される情報は、以下の通りである。

* RS のURL
* RS 接続リトライ回数
* RS 接続インターバル
* RS-Info
* RS へアクセスするための回線情報
* RS の証明書を検証するためのRootCA 証明書

このうち、RS-Info(回線情報と、RootCA 証明書) は、LS システム上に以下の書式で記述する必要がある::

  --------------------------------
  line-<line_type> {
          <回線パラメータ>
  };
  rs-certificate {
          <証明書情報(PEM)>
  };
  --------------------------------

回線情報は、以下の4種類のうちいずれか1つとなる。

PPPoE::

  line-pppoe {
      ifindex <n>;
      account <account>;
      password <password>;
  };

DHCP::

  line-dhcp {
      ifindex <n>;
  };

モバイル::

  line-mobile {
      ifindex <n>;
      cid <cid>;
      apn <apn>;
      pdp-type <type>;
      telno <telno>;
      ipaddress <ipaddress>;
      account <account>;
      password <password>;
  };

RA::

  line-ra {
      ifindex: 0;
  };

静的IPアドレス割当::

  line-static {
      ifindex <n>;
      ipaddress <ipaddress>;
  };

ifindex はSA のインタフェースを識別するために利用する。
これはSA の機種依存部にそのまま渡され、libarms は内容には関与しない。
範囲は機種ごとのint で表現可能な範囲である。
account およびpassword はPPPoE のアカウント情報となる表示可能文字列である。
最大36 文字までをサポートする。“;” は利用できない。
モバイルにおいて、cid, apn, pdp-type は3G 端末における接続のための情報となる表示可能文字列である。
pdp-type については”ip” あるいは”ppp” のいずれかを指定する。telno は接続先電話番号である。
モバイル端末のタイプによって、cid, apn, pdp-type とtelno は使い分けができ、
不要なパラメータについては指定行を省略できる。
モバイルおよび静的IP アドレスにおけるipaddress は、
直接IP アドレスの割当が可能となる際に指定するIP アドレス文字列である。
不要な場合については指定行を省略できる。

Service-Config
--------------

libarms がRS に接続して取得し、最終的にSA に反映される設定情報となるコンフィグを、Service-Config と呼ぶ。
libarms は、Service-Config の内容には一切関知せず、コンフィグ反映コールバック関数でSA に反映するだけである。
Service-Config の内容は機種依存となるため、特に定められた書式は無い。

