MBIMEx 2.0 – 5G NSA サポート
MBIM 1.0 の正誤表仕様には、新しいペイロードまたは変更されたペイロードで既存の CID を変更するメカニズムがないため、Windows 10 バージョン 1903 では、インターフェイスを拡張して 5G をサポートできるように MBIM 1.0 拡張 2.0 が導入されています。
バージョン管理スキーム
Note
このセクションでは、MBIMEx バージョンという用語は、MBIM 拡張リリース番号を指します。
ホストは、次の 2 つの方法でデバイスの MBIMEx バージョンを学習します。
- MBIM EXTENDED FUNCTIONAL DESCRIPTOR。
- オプションの MBM_CID_VERSION メッセージ (デバイスでサポートされており、デバイスがサポートを宣言している場合)。
これら 2 つが異なる場合、デバイスがホストに列挙されている間に、上位のバージョンによって MBIMEx バージョンが決まります。 上位の MBIMEx バージョンは、デバイスの発表された MBIMEx バージョンと呼ばれます。 デバイスの発表された MBIMEx バージョンは、ネイティブ MBIMEx バージョン (デバイスでサポートされる最上位の MBIMEx バージョン) よりも低い場合があります。 デバイスは、ホストの MBIMEx バージョンを、MBIM_CID_VERSION メッセージを介してのみ明示的に学習できます。
どのリリースでも、ホストは必ずデバイス初期化シーケンスの開始時に MBIM_CID_DEVICE_SERVICES を使用して、サポートされているサービスと CID をデバイスについてデバイスにクエリを実行します。
デバイスが MBIM_CID_VERSION をサポートしており、MBIM_CID_DEVICE_SERVICES クエリ応答でそのサポートをアドバタイズする場合、MBIM_CID_VERSION を理解していないホスト、または 2.0 より前のバージョンの MBIMEx を持つホストでは、それは無視されます。 一方、MBIM_CID_VERSION を理解し、ネイティブ MBIMEx バージョン 2.0 以降を持つホストは、ホストのネイティブ MBIMEx バージョンを使用してデバイスに MBIM_CID_VERSION メッセージを送信します。この CID は、MBIM_CID_DEVICE_SERVICES 応答を受信した後にデバイスに送信される最初の CID です。
デバイスが、MBIM_CID_DEVICE_SERVICES クエリに応答した後にホストから受け取る最初の CID が MBIM_CID_VERSION 場合、デバイスはホストの MBIMEx バージョンを認識しています。
デバイスが、MBIM_CID_DEVICE_SERVICES クエリに応答した後にホストから受信した最初の CID が他の CID の場合、デバイスはホストのネイティブ MBIMEx バージョンが 1.0 であると推測します。
デバイスは MBIM_CID_VERSION をサポートしていない場合、MBIM_CID_VERSION を使用した MBIM_CID_DEVICE_SERVICES クエリには応答しません。 そのため、ホストは MBIM_CID_VERSION メッセージを送信せず、デバイスのネイティブ MBIMEx バージョンは 1.0 であると推測します。
機能的に上位の MBIMEx バージョンは、すべての下位 MBIMEx バージョンの上位集合になります。 ホストは、発表された MBIMEx バージョンがホストのネイティブ MBIMEx バージョン以下であるすべてのデバイスをサポートします。 デバイスの発表された MBIMEx バージョンがホストのネイティブ MBIMEx バージョンよりも上位の場合、ホストはデバイスをサポートする必要はなく、この状況におけるホストの正確な動作は未定義です。
以前のホストで動作することを意図しているデバイスは、最初に MBIMEx バージョン 1.0 をアドバタイズするか、デバイスが MBIM 拡張記述子で動作することが意図されている MBIMEx バージョンの最下位のホスト MBIMEx バージョンをアドバタイズする必要があります。
ホストが、最初にアドバタイズされたデバイスよりも上位の MBIMEx バージョンで MBIM_CID_VERSION を送信する場合、デバイスは、ホストのネイティブ MBIMEx バージョンとデバイスのネイティブ MBIMEx バージョンのうちの小さいほうに至るまで、MBIM_CID_VERSION 応答で上位の MBIMEx バージョンを示す必要があります。
Note
たとえば、デバイスでは MBIMEx バージョン 2.0 がサポートされているものの、MBIMEx 2.0 をサポートしていない前のバージョンの OS で動作することが意図されていないとします。 デバイスは、最初に USB 記述子で MBIMEx バージョン 1.0 をアドバタイズし、オプションの MBIM_CID_VERSION のサポートをアドバタイズします。 Windows 10 バージョン 1803 を実行しているホストに挿入すると、ホストでは MBIM_CID_VERSION が理解されないため、MBIM_CID_VERSION はデバイスに送信されません。 ホストでは、このデバイスの MBIMEx バージョンは 1.0 です。 ホストは、初期化シーケンスで他の CID の送信を続けます。 MBIM_CID_VERSION 以外の CID を受信すると、デバイスはホストが MBIMEx バージョン 1.0 をサポートしていることを認識します。 どちらの側も、MBIMEx バージョン 1.0 に準拠するために続行します。 その後、ネイティブ MBIMEx バージョン 2.0 を使用して Windows 10 バージョン 1903 を実行しているホストに同じデバイスが挿入されると、ホストはデバイスに MBIM_CID_VERSION を送信して、ホストのネイティブ MBIMEx バージョンが 2.0 であることを通知します。 デバイスは、デバイスの発表された MBIMEx バージョン 2.0 に応答して MBIM_CID_VERSION を返送します。 そこから、どちらの側も MBIMEx バージョン 2.0 に準拠するために続行します。
次の表は、3 つの仮想ホストおよび 3 つの仮想デバイスとの互換性マトリックスを示しています。各デバイスにはネイティブ MBIMEx バージョンが記載されています。 デバイスは、最初に USB 記述子で MBIMEx バージョン 1.0 をアドバタイズします。 このマトリックスは、各デバイスが各ホストでどのように動作するかを示しています。
デバイス (下) / ホスト (右) | Windows 10 バージョン 1809 以前 (ネイティブ MBIMEx バージョン 1.0) | Windows 10 バージョン 1903 以降 (MBIMEx バージョン2.0) |
---|---|---|
4G デバイス ネイティブ MBIMEx バージョン 1.0 |
デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 互換性のあるデバイスとホスト。 既定では、MBIMEx バージョン 1.0 で動作します。 | デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 ホストは、MBIMEx 1.0 を使用してデバイスと連携します。 |
5G NSA デバイス ネイティブ MBIMEx バージョン 2.0 |
デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 MBIM_CID_VERSION の交換はありません。 デバイスは、ホストに MBIMEx 1.0 があることを認識し、MBIMEx 1.0 で続行します。 | デバイスは、最初に MBIMEx 1.0 をアドバタイズします。 ホストは、MBIM_CID_VERSION を送信して、ホストが MBIMEx 2.0 をサポートしていることをデバイスに通知します。 デバイスは、MBIMEx 2.0 で応答します。 どちらの側も、MBIMEx 2.0 で続行します。 |
次の表に、MBIMEx バージョン 2.0 で変更されたすべての既存の CID とその変更されたペイロードを一覧表示します。 これらの CID 内でメンションされていないペイロードと、表でメンションされていない他のすべての CID は、MBIMEx バージョン 1.0 から引き継がれ、変更はありません。
CID | Payload |
---|---|
MBIM_CID_REGISTER_STATE | MBIM_REGISTRATION_STATE_INFO_V2 |
MBIM_CID_PACKET_SERVICE | MBIM_PACKET_SERVICE_INFO_V2 |
MBIM_CID_SIGNAL_STATE | MBIM_SIGNAL_STATE_INFO_V2 |
MBIM サービス
[サービス名] | UUID | UUID 値 |
---|---|---|
Microsoft Basic IP Connectivity Extensions | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
MBIM_CID_VERSION
MBIM Microsoft 拡張 2.0 以降をサポートする MBB ドライバーの場合、MBIM_CID_VERSION はホストとデバイス間で MBIM バージョン情報を交換するための必須コマンドです。 この CID を認識しないドライバーを搭載した市場内デバイスの場合、ホストは下位互換性を想定して提供します。
ホストは、このコマンドがデバイスでサポートされている場合はクエリとしてコマンドを送信します。 クエリには、ホストが現在サポートしている MBIM リリース番号と MBIM 拡張リリース番号が含まれています。
デバイス側では、デバイスがバージョン管理スキームで定義されている規則に基づいて、デバイスの発表された MBIM リリース番号と MBIM 拡張リリース番号を調整し、ホストへの応答で送信します。
このコマンドは、基本的な接続拡張機能サービスで定義されています。
CID | コマンド コード | UUID |
---|---|---|
MBIM_CID_VERSION | 15 | 3d01dcc5-fef5-4d05-0d3abef7058e9aaf |
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | 適用なし | MBIM_VERSION_INFO | 適用なし |
回答 | 適用なし | MBIM_VERSION_INFO | 適用なし |
クエリ
ホストのネイティブ MBIM リリース番号と MBIM 拡張リリース番号をデバイスに通知します。 InformationBuffer には、次のMBIM_VERSION_INFO 構造体が含まれています。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 2 | bcdMBIMVersion | UINT16 | BCD の送信者の MBIM リリース番号。ビット 7 から 8 の間に暗黙的な小数点が付きます。 たとえば、0x0100 == 1.00 == 1.0 のようにします。 これはリトルエンディアン定数であるため、バイトは 0x00、そして 0x01 です。 |
2 | 2 | bcdMBIMExtendedVersion | UINT16 | BCD の送信者の MBIM 拡張リリース番号。ビット 7 から 8 の間に暗黙的な小数点が付きます。 たとえば、0x0100 == 1.00 == 1.0 のようにします。 これはリトルエンディアン定数であるため、バイトは 0x00、そして 0x01 です。 |
Set
該当なし。
回答
MBIM_COMMAND_DONE の InformationBuffer には、MBIM_VERSION_INFO 構造体が含まれています。
要求されていないイベント
該当なし。
状態コード
この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。
MBIM_CID_MS_DEVICE_CAPS_V2
この CID は、MBIM 仕様リビジョン 1.0 のセクション 10.5.1 で定義されている MBIM_CID_MS_DEVICE_CAPS 拡張機能である、MB マルチ SIM 操作で定義されているものと同じです。 MBIM 拡張リリース 2.0 では、デバイスで 5G 機能を報告できるようにする新しいデータ クラスが MBIM_DATA_CLASS テーブルに定義されています。 MBIMDataClass5G_NSA は、3GPP TS 37.340 で定義されている 5G 非スタンドアロン (NSA) がデバイスでサポートされていることを示し、MBIMDataClass5G_SA は、3GPP TS 37.340 でも定義されている 5G スタンドアロン (SA) がデバイスでサポートされていることを示します。
デバイスが新しいデータ クラスを両方ともサポートしている場合は、両方のビットを設定する必要があります。
MBIM_DATA_CLASS
型 | マスク |
---|---|
MBIMDataClassNone | 0h |
MBIMDataClassGPRS | 1 時間 |
MBIMDataClassEDGE | 2h |
MBIMDataClassUMTS | 4 時間 |
MBIMDataClassHSDPA | 8h |
MBIMDataClassHSUPA | 10h |
MBIMDataClassLTE | 20h |
MBIMDataClass5G_NSA | 40h |
MBIMDataClass5G_SA | 80h |
予約されています。 | 100h-8000h |
MBIMDataClass1XRTT | 10000h |
MBIMDataClass1XEVDO | 20000h |
MBIMDataClass1XEVDORevA | 40000h |
MBIMDataClass1XEVDV | 80000h |
MBIMDataClass3XRTT | 100000h |
MBIMDataClass1XEVDORevB | 200000h |
MBIMDataClassUMB | 400000h |
予約されています。 | 800000-40000000h |
MBIMDataClassCustom | 80000000h |
MBIM_CID_REGISTER_STATE
このコマンドは、MBIM 仕様リビジョン 1.0 で既に定義されているMBIM_CID_REGISTER_STATE CID の拡張機能です。 この拡張機能は、応答構造体に PreferredDataClasses という名前の新しいメンバーを追加します。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | MBIM_SET_REGISTRATION_STATE | Empty | 適用なし |
回答 | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 |
クエリ
InformationBuffer が null で、InformationBufferLength が 0 です。
Set
登録状態を設定します。 情報は、MBIM 仕様リビジョン 1.0 で説明されているものと同じです。
回答
MBIM_COMMAND_DONE の InformationBuffer には、次の MBIM_REGISTRATION_STATE_INFO_V2 構造体が含まれています。 MBIM 仕様リビジョン 1.0 のセクション 10.5.10.6 で定義されている MBIM_REGISTRATION_STATE_INFO 構造体と比較すると、次の構造体には新しい PreferredDataClasses フィールドがあります。 ここに記載されていない限り、MBIM 仕様リビジョン 1.0 の表 10-55 のフィールドの説明がこの構造体に適用されます。
MBIM_REGISTRATION_STATE_INFO_V2
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | ネットワーク固有のエラー。 MBIM 仕様リビジョン 1.0 の表 10-44 には、NwError の原因コードが示されています。 |
4 | 4 | RegisterState | MBIM_REGISTER_STATE | MBIM 仕様リビジョン 1.0 の表 10-46 を参照してください。 |
8 | 4 | RegisterMode | MBIM_REGISTER_MODE | MBIM 仕様リビジョン 1.0 の表 10-47 を参照してください。 |
12 | 4 | AvailableDataClass | UINT32 | デバイスが登録されているセルに対して、登録済みネットワークでサポートされているデータ クラスを表す MBIM_DATA_CLASS の値のビットマップ。 RegisterState が MBIMRegisterStateHome、MBIMRegisterStateRoaming、または MBIMRegisterStatePartner でない場合、この値は MBIMDataClassNone に設定されます。 |
16 | 4 | CurrentCellularClass | MBIM_CELLULAR_CLASS | マルチモード関数で使用されている現在の携帯ネットワーク クラスを示します。 詳細については、MBIM 仕様リビジョン 1.0 の表 10-8 を参照してください。 単一モード関数の場合、これは、MBIM_CID_DEVICE_CAPS で報告された携帯ネットワーク クラスと同じです。 マルチモード関数の場合、CDMA から GSM への移行、またはその逆の移行は、更新された CurrentCellularClass で示されます。 |
20 | 4 | ProviderIdOffset | OFFSET | この構造体の先頭から計算された、ネットワーク プロバイダー ID を表す ProviderId という数値 (0 から 9) の文字列に対するオフセット (バイト単位)。 GSM ベースのネットワークの場合、この文字列は、3 桁のモバイル国コード (MCC) と 2 桁または 3 桁のモバイル ネットワーク コード (MNC) を連結したものです。 GSM ベースの通信事業者は、複数の MNC を持つ可能性があるため、複数の ProviderId を持っている場合があります。 CDMA ベースのネットワークの場合、この文字列は 5 桁のシステム ID (SID) です。 一般に、CDMA ベースの通信事業者は複数の SID を持っています。 通常、通信事業者は市場ごとに 1 つの SID を持ちます。市場とは、米国の大都市統計圏 (MSA) など、規制によって 1 つの国の中で地理的に通常は分割されたものをいいます。 この情報が使用できない場合、CDMA ベースのデバイスでは MBIM_CDMA_DEFAULT_PROVIDER_ID を指定する必要があります。 クエリ要求を処理し、登録状態が自動登録モードの場合、このメンバーには、デバイスが現在関連付けられているプロバイダー ID が含まれます (該当する場合)。 登録状態が手動登録モードの場合、このメンバーには、(プロバイダーが使用できない場合でも) デバイスの登録が要求されるプロバイダー ID が含まれます。 セット要求を処理し、登録状態が手動モードの場合、これには、デバイスの登録に使用するホストによって選択されたプロバイダー ID が含まれます。 登録状態が自動登録モードの場合、このパラメーターは無視されます。 プロバイダー ID が使用できない場合、CDMA 1xRTT プロバイダーは MBIM_CDMA_DEFAULT_PROVIDER_ID に設定する必要があります。 |
24 | 4 | ProviderIdSize | SIZE(0..12) | ProviderId のサイズ (バイト単位)。 |
28 | 4 | ProviderNameOffset | OFFSET | この構造体の先頭から計算された、ネットワーク プロバイダーの名前を表す ProviderName という文字列に対するオフセット (バイト単位)。 このメンバーは、最大で MBIM_PROVIDERNAME_LEN 文字に制限されます。 GSM ベースのネットワークの場合、PCCI&N (Preferred Presentation of Country Initials and Mobile Network Name) が 20 文字を超える場合、デバイスではネットワーク名を省略する必要があります。 ホストで優先プロバイダー リストを設定する場合、このメンバーは無視されます。 デバイスでは、この情報を持たないデバイスに対して NULL 文字列を指定する必要があります。 |
32 | 4 | ProviderNameSize | SIZE(0..40) | ProviderName のサイズ (バイト単位)。 |
36 | 4 | RoamingTextOffset | OFFSET | デバイスがローミング中であることをユーザーに通知するために、この構造体の先頭から計算された、RoamingText という文字列に対するオフセット (バイト単位)。 このメンバーは、最大 63 文字に制限されます。 このテキストは、登録状態が MBIMRegisterStatePartner または MBIMRegisterStateRoaming である場合に、ユーザーに追加情報を提供する必要があります。 このメンバーは省略可能です。 |
40 | 4 | RoamingTextSize | SIZE(0..126) | RoamingText のサイズ (バイト単位)。 |
44 | 4 | RegistrationFlag | MBIM_REGISTRATION_FLAGS | MBIM 仕様リビジョン 1.0 の表 10-48 に従って設定されたフラグ。 |
48 | 4 | PreferredDataClass | UINT32 | デバイスで有効なデータ クラスを表す MBIM_DATA_CLASS の値のビットマップ。 デバイスは、有効になっているデータ クラスのみを使用して動作できます。 |
動的 | 4 | DataBuffer | DATABUFFER | ProviderId、ProviderName、RoamingText を含むデータ バッファー。 |
要求されていないイベント
通知には、MBIM_REGISTRATION_STATE_INFO_V2 構造体が含まれています。
状態コード
この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。
MBIM_CID_PACKET_SERVICE
このコマンドは、MBIM 仕様リビジョン 1.0 で定義されている既存の MBIM_CID_PACKET_SERVICE の拡張機能です。
この拡張機能は、応答構造体の FrequencyRange という新しいメンバーを追加し、その目的を明確にするために HighestAvailableDataClass メンバーの名前を CurrentDataClass に変更しました。
CurrentDataClass は、デバイスが現在登録されている無線アクセス技術 (RAT) を示します。 MBIM_DATA_CLASS からの 1 つの値が含まれています。
FrequencyRange は、デバイスが現在使用している周波数範囲を示します。 これは、CurrentDataClass フィールドが MBIMDataClass5G_NSA または MBIMDataClass5G_SA ビットが設定されていることを示す場合にのみ有効です。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | MBIM_SET_PACKET_SERVICE | Empty | 適用なし |
回答 | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 |
クエリ
InformationBuffer が null で、InformationBufferLength が 0 です。
Set
set コマンドの情報は、MBIM 仕様リビジョン 1.0 で説明されています。
回答
MBIM_COMMAND_DONE の InformationBuffer には、MBIM_PACKET_SERVICE_INFO_V2 構造体が含まれています。 MBIM 仕様リビジョン 1.0 のセクション 10.5.10.6 で定義されている MBIM_PACKET_SERVICE_INFO 構造体と比較すると、この新しい構造体には CurrentDataClass フィールドと FrequencyRange フィールドがあります。 ここに記載されていない限り、MBIM 仕様リビジョン 1.0 の表 10-55 のフィールドの説明がここで適用されます。
MBIM_PACKET_SERVICE_INFO_V2
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | ネットワーク固有のエラー。 MBIM 仕様リビジョン 1.0 の表 10-44 には、NwError の原因コードが示されています。 |
4 | 4 | PacketServiceState | MBIM_PACKET_SERVICE_STATE | MBIM 仕様リビジョン 1.0 の表 10-53 を参照してください。 |
8 | 4 | CurrentDataClass | MBIM_DATA_CLASS | MBIM_DATA_CLASS に従って指定された、現在のセル内の現在のデータ クラス。 関数がアタッチされたパケット サービス状態にない場合、関数でこのメンバーを MBIMDataClassNone に設定する必要があります。 HSPA (つまり、HSUPA と HSDPA) と 5G DC を除き、この関数で、1 つのMBIM_DATA_CLASS 値にこのメンバーを設定します。 HSPA データ・サービスの場合、関数は、MBIMDataClass HSDPA および MBIMDataClassHSUPA のビットごとの OR を指定します。 HSDPA をサポートしているが HSUPA をサポートしていないセルの場合は、HSDPA のみが示されます (アップリンク データの UMTS データ クラスを示唆します)。 現在のデータ クラスが変更されるたびに、関数は CurrentDataClass の 新しい値を示す通知を送信します。 |
12 | 8 | UplinkSpeed | UINT64 | アップリンク ビット レートを 1 秒あたりのビット数で格納します。 |
20 | 8 | DownlinkSpeed | UINT64 | ダウンリンク ビット レートを 1 秒あたりのビット数で格納します。 |
38 | 4 | FrequencyRange | MBIM_FREQUENCY_RANGE | デバイスが現在使用している周波数範囲を表す MBIM_FREQUENCY_RANGE の値のビットマスク。 これは、CurrentDataClass がMBIMDataClass5G_NSA または MBIMDataClass5G_SA の場合にのみ有効です。 |
MBIM_FREQUENCY_RANGE
次の列挙は、前のMBIM_PACKET_SERVICE_INFO_V2 構造体の値として使用されます。
Type | 値 | 説明 |
---|---|---|
MBIMFrequencyRangeUnknown | 0 | システムの種類が 5G でない場合。 |
MBIMFrequencyRange1 | 1 | 3GPP TS 38.101-1 (サブ 6G) の周波数範囲 1 (FR1)。 |
MBIMFrequencyRange2 | 2 | 3GPP TS 38.101-2 (mmWave) の FR2。 |
MBIMFrequencyRange1AndRange2 | 3 | FR1 と FR2 の両方の通信事業者が接続されている場合。 |
要求されていないイベント
通知には、MBIM_PACKET_SERVICE_INFO_V2 構造体が含まれています。
状態コード
この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。
MBIM_CID_SIGNAL_STATE
この CID は MBIM_CID_SIGNAL_STATE の拡張機能であり、信号状態基準として RSRP と SNR を導入しています。 この新しい拡張機能は、デバイスが MBIM 拡張バージョン 2.0 のサポートを示している場合にのみ有効です。 この拡張機能は、モデムが MBIMDataClass5G_(N)SA データ クラスをサポートしている場合は必須です。
RSRP フィールドと SNR フィールドは、対応する SystemType が MGBIMDataClassLTE または MBIMDataClass5G_(N)SA である場合にのみ有効です。 モデムが RSRP や SNR を報告する場合は、RSSI フィールドの値を 99 に設定する必要があります。
対応する SystemType が MBIMDataClass5G_(N)SA の場合、RSRP フィールドは必須であり、SNR フィールドは省略可能です。 対応する SystemType が MBIMDataClassLTE の場合、RSRP フィールドと SNR フィールドは省略可能であり、代わりに RSSI フィールドを使用できます。 この場合、RsrpSnrOffset メンバーと RsrpSnrSize メンバーの両方にゼロ (0) 値を設定すると、RSRP フィールドと SNR フィールドを省略できます。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
コマンド | MBIM_SET_SIGNAL_STATE | Empty | 適用なし |
回答 | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 |
クエリ
InformationBuffer が null で、InformationBufferLength が 0 です。
Set
set コマンドの情報は、MBIM 仕様リビジョン 1.0 で説明されています。
回答
MBIM_COMMAND_DONE の InformationBuffer には、次の MBIM_SIGNAL_STATE_INFO_V2 構造体が含まれています。
MBIM_SIGNAL_STATE_INFO_V2
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | Rssi | UINT32 | MBIM 仕様リビジョン 1.0 の表 10.58 を参照してください。 |
4 | 4 | ErrorRate | UINT32 | MBIM 仕様リビジョン 1.0 の表 10.58 を参照してください。 |
8 | 4 | SignalStrengthInterval | UINT32 | レポートの間隔 (秒)。 |
12 | 4 | RssiThreshold | UINT32 | レポートをトリガーする RSSI コード化値の違い。 これが重要でない場合は、0xFFFFFFFF を使用します。 |
16 | 4 | ErrorRateThreshold | UINT32 | レポートをトリガーする ErrorRate コード化値の違い。 これが重要でない場合は、0xFFFFFFFF を使用します。 |
20 | 4 | RsrpSnrOffset | OFFSET | この構造体の先頭から計算された、RSRP と SNR のシグナル情報を含むバッファーに対するオフセット (バイト単位)。 RSRP と SNR のシグナル情報が使用できない場合、このメンバーを NULL にすることができます。 |
24 | 4 | RsrpSnrSize | SIZE | MBIM_RSRP_SNR_INFO 構造体の形式で RSRP と SNR のシグナル情報を含むバッファーのサイズ (バイト単位)。 |
4 | DataBuffer | DATABUFFER | MBIM_RSRP_SNR 構造体。 |
MBIM_RSRP_SNR
次の MBIM_RSRP_SNR 構造体は、MBIM_SIGNAL_STATE_INFO_V2 構造体の DataBuffer で使用されます。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | この要素の後に続く RSRP_SNR エントリの数。 |
4 | 4 | DataBuffer | DATABUFFER | MBIM_RSRP_SNR_INFO 構造体としてそれぞれ指定される RSRP_SNR レコードの配列。 |
MBIM_RSRP_SNR_INFO
次の MBIM_RSRP_SNR_INFO 構造体の配列は、MBIM_RSRP_SNR 構造体の DataBuffer で使用されます。
オフセット | サイズ> | フィールド | タイプ | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4 | RSRP | UINT32 |
|
||||||||||||||||||||||
4 | 4 | SNR | UINT32 |
|
||||||||||||||||||||||
8 | 4 | RSRPThreshold | UINT32 | 古い (キャッシュされた) RSRP 値と新たに計算された RSRP 値の間のしきい値を定義します。 絶対差がしきい値より大きい場合、デバイスは要求されていないイベントをトリガーします。 ユニットは 1 dBm です。 0 に設定した場合は、デバイス関数の既定の動作を使用します。 0xFFFFFFFF に設定されている場合は、これを使用してイベントをトリガーしないでください。 指定されたしきい値がデバイスでサポートされていない場合は、サポートされている最大しきい値が返されます。 | ||||||||||||||||||||||
12 | 4 | SNRThreshold | UINT32 | 古い (キャッシュされた) SNR 値と新たに計算された SNR 値の間のしきい値を定義します。 絶対差がしきい値より大きい場合、デバイスは要求されていないイベントをトリガーします。 ユニットは 1 dB です。 0 に設定した場合は、デバイス関数の既定の動作を使用します。 0xFFFFFFFF に設定されている場合は、これを使用してイベントをトリガーしないでください。 指定されたしきい値がデバイスでサポートされていない場合は、サポートされている最大しきい値が返されます。 | ||||||||||||||||||||||
16 | 4 | SystemType | MBIM_DATA_CLASS | シグナル状態情報が有効なシステムの種類を示します。 このメンバーは、MBIM_DATA_CLASS で定義されている 1 つの型のビットマスクです。 |
要求されていないイベント
通知には、MBIM_SIGNAL_STATE_INFO_V2 構造体が含まれています。
状態コード
この CID は、MBIM 仕様リビジョン 1.0 のセクション 9.4.5 で定義されている汎用状態コードのみを使用します。
LTE 信号バーの計算
OS は、信号強度計算のレジストリ設定を次の順序で処理します。
データクラスが CDMA (またはそのバリアント) または TDSCDMA である
- レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。
データクラスが GSM または WCDMA である
- GSM または WCDMA のテクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、GSM または WCDMA のテクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外に、レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。
- RSSI >= 17; 5 bars
- RSSI >= 12; 4 bars
- RSSI >= 7; 3 bars
- RSSI >= 4; 2 bars
- RSSI >= 2; 1 bars
- else; 0 bars
データクラスが LTE で、RSRP がモデムによって報告される
- RSRP の LTE テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、RSRP の LTE テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外の場合は、コードの既定のLTE RSRP 信号バー マッピング テーブルを使用します。
Note
EnableLTESnrReporting が有効になっていても、モデムによる LTE または SNR のレポート用の SNR テーブルがない場合は、RSRP のみが使用されます。 それ以外の場合は、RSRP または SNR のうち最適なほうが信号バーに変換されます。
データクラスが LTE で、RSSI がモデムによって報告される
- LTE テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、LTE テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外に、レガシ信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、レガシ信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外の場合は、コードの既定の信号バー マッピング テーブルを使用します。
データクラスは NR です
- RSRP の NR テクノロジ固有の信号バー マッピング テーブルが "per_iccid" の下に存在する場合は、この設定を使用します。
- それ以外に、RSRP の NR テクノロジ固有の信号バー マッピング テーブルが "per_device" の下に存在する場合は、この設定を使用します。
- それ以外の場合は、コードの既定の NR RSPR 信号バー マッピング テーブルを使用します。
Note
EnableNRSnrReporting が有効になっていても、モデムによる NR または SNR のレポート用の SRP テーブルがない場合は、RSRP のみが使用されます。 それ以外の場合は、RSRP または SNR のうち最適なほうが信号バーに変換されます。
データクラスは NSA です
- EnableLTEReportingOnNSA が設定されていないか、0 に設定されている場合:
- データクラス NR フローに従います。
- EnableLTEReportingOnNSA が 1 に設定されている場合:
- データクラス LTE フロー (RSRP または RSSI) に従います。
- EnableLTEReportingOnNSA が 2 に設定されている場合:
- FrequencyRange が FR1 の場合は、データクラス LTE フロー (RSRP または RSSI) に従います。
- FrequencyRange が <> FR1 の場合は、データクラス NR フローに従います。
- EnableLTEReportingOnNSA が 3 に設定されている場合:
- FrequencyRange が FR2 の場合は、データクラス LTE フロー (RSRP または RSSI) に従います。
- FrequencyRange が <> FR2 の場合は、データクラス NR フローに従います。
- EnableLTEReportingOnNSA が 4 に設定されている場合:
- LTE フローと NR フローを使用して信号バーを計算します。
- 最も強い値を選択します。
Note
1 から 5 で、LTE 信号がモデムで報告されない場合は NR 信号が使用されます。 NR 信号を使用しない場合は、LTE 信号が適用されます。
SignalBar 計算用の COSA カスタマイズ
EnableLTEReportingOnNSA:
0 = "5G 信号を使用する"
1 = "LTE 信号を使用する"
2 = "5G 周波数範囲 1 でキャンプされている場合は LTE 信号を使用する"
3 = "5G 周波数範囲 2 でキャンプされている場合は LTE 信号を使用する"
4 = "LTE と 5G のうち強いほうの信号を使用する"
EnableNRSnrReporting:
0 = "RSRP のみを使用する"
1 = "RSRP と SNR の両方を使用する"
EnableLTESnrReporting:
0 = "RSRP のみを使用する"
1 = "RSRP と SNR の両方を使用する"
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>
表示するバーの数に対応する最小の信号強度値を変更します。 テクノロジ固有の設定が優先されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>
デバイスが GSM にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>
デバイスが WCDMA にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>
デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>
デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>
デバイスが LTE にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 EnableLTESnrReporting が 1 に設定されている場合に使用されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>
デバイスが 5G にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>
デバイスが 5G にキャンプされるときに表示されるバーの数に対応する最小の信号強度値を変更します。 EnableNRSnrReporting が 1 に設定されている場合に使用されます。 この設定を有効にするには、バーの数ごとに有効な信号強度マッピングが必要です。
<SignalBar> には 1 から 5 の値を指定できます。
OEM/MO が RSSI のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。
RSSI | 表示されるバー |
---|---|
[0,1] | 0 |
[2,3] | 1 |
[4,6] | 2 |
[7,11] | 3 |
[12,16] | 4 |
[17,31] | 5 |
OEM/MO が RSRP のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。
RSRP | 表示されるバー |
---|---|
[0,16] | 0 |
[17,41] | 1 |
[42,51] | 2 |
[52,61] | 3 |
[62,71] | 4 |
[72,126] | 5 |
OEM/MO が SNR のマッピング テーブルを正しく構成できない場合、または不完全な場合は、既定のマッピングを使用します。
SNR | 表示されるバー |
---|---|
[0,18] | 0 |
[19,38] | 1 |
[39,46] | 2 |
[47,53] | 3 |
[54,72] | 4 |
[73,127] | 5 |