LMP
読み:エルエムピー
外語:LMP: Link Manager Protocol

 Bluetoothリンクマネージャー層通信プロトコルGAPの一部。
目次

概要
 ACL論理トランスポートで接続された二つのデバイス間における、リンクマネージャー(LM)間の通信に使われるプロトコルである。リンクマネージャーはベースバンド層リンクコントローラーの上にあり、ペアリングや暗号化はこのプロトコルで行なわれている。
 二つのデバイス間における、接続やネゴシエーションなどあらゆる動作で使用されており、論理リンクの設定と制御、および物理リンクの制御が含まれている。全てのLMPメッセージは、送信側と受信側のデバイス間における、物理リンク、および関連付けられている論理リンクと論理トランスポートにのみ適用される。
 二つのデバイス間での、デフォルトACL論理トランスポート上のACL-C論理リンク(ACL CONTROL LOGICAL LINK)を介して転送する際の一連のメッセージで構成されている。LMPメッセージが解釈された際にはLMに対して作用し、直接より高いプロトコル層に伝播しない。

特徴

パケット
 LMPメッセージは、ベースバンド層のDM1パケット(ACLリンク)を使用して送信する。
 ただし、HV1 SCOリンクが使用され、ペイロード長が9バイトに満たない場合、DVパケットが使用されることもある。DVパケットについては、Bluetooth 3.0/4.0仕様書では共に6.5.2.4に説明がある。

パケット構造
 7ビットオペコード時
 OpCodeの値が特殊なエスケープ値124から127までの場合は、OpCodeが15ビットとなる。

オペコード(OpCode)
 次の4つは拡張用。
 以下、PDU一覧(LMP PDU名ABC順)。番号はすべて10進数。ペイロードの構造については仕様書を参照のこと。

フィーチャーマスク
 LMP_features_req PDUを送信すると、相手のLMはLMP_features_res PDUを返す。reqはOpCode=39、resはOpCode=40、長さは共に9である。
 フィーチャーは、LMPメッセージで転送されるビットマスクで表わされる。各ビットごとに、フィーチャーをサポートする場合は1、さもなくば0をセットする。
 長さは常に8オクテット(64ビット)である。

拡張フィーチャーマスク
 8オクテットのフィーチャーマスクで不足したため拡張された情報。フィーチャーマスク63(7オクテット目7ビット目)が1の場合、この機能がある。
 LMP_features_req_ext PDUを送信すると、相手のLMはLMP_features_res_ext PDUを返す(対応している場合のみ)。reqはOpCode=127/03、resはOpCode=127/04、長さは共に12である。2オクテット目(0から数えた場合、以下同)がfeatures page、3オクテット目がmax supported page、4から11オクテット目がextended featuresである。
 ページ0から255までがあり、各ページは64ビットであるため、都合16384ビットもあり拡張性は充分である。未実装のページを要求すれば、相手は全64ビットが0の結果を返すことになり、実装していないことを通知することになる。
 なお、ページ0は従来のフィーチャーマスクを意味する。拡張された情報はページ1以降に存在する。

再検索