MBIMEx 2.0 – Prise en charge de la NSA 5G
Étant donné que la spécification errata MBIM 1.0 ne dispose pas d’un mécanisme permettant de modifier les CID existants avec des charges utiles nouvelles ou modifiées, Windows 10, la version 1903 introduit l’extension 2.0 MBIM 1.0 pour étendre l’interface pour prendre en charge la 5G.
Schéma de gestion de version
Notes
Dans cette section, le terme version MBIMEx fait référence au numéro de version des extensions MBIM.
L’hôte apprend la version MBIMEx d’un appareil de deux manières :
- DESCRIPTOR FONCTIONNEL ÉTENDU MBIM.
- Message MBM_CID_VERSION facultatif, si l’appareil le prend en charge et déclare sa prise en charge.
Si ces deux éléments sont différents, la version supérieure dicte la version MBIMEx pendant la durée pendant laquelle l’appareil reste énuméré sur l’hôte. La version de MBIMEx supérieure est appelée version MBIMEx annoncée de l’appareil. La version de MBIMEx annoncée d’un appareil peut être inférieure à sa version native de MBIMEx, qui est la version MBIMEx la plus élevée prise en charge par l’appareil. Les appareils peuvent apprendre explicitement la version MBIMEx de l’hôte uniquement via le message MBIM_CID_VERSION.
Dans n’importe quelle version, l’hôte interroge toujours l’appareil pour les services et les CID pris en charge à l’aide de MBIM_CID_DEVICE_SERVICES au début de la séquence d’initialisation de l’appareil.
Si un appareil prend en charge MBIM_CID_VERSION et publie sa prise en charge dans la réponse de requête MBIM_CID_DEVICE_SERVICES, un hôte qui ne comprend pas MBIM_CID_VERSION ou qui a une version MBIMEx inférieure à 2.0 l’ignore. Pendant ce temps, un hôte qui comprend MBIM_CID_VERSION et qui dispose d’une version NATIVE DE MBIMEx 2.0 ou ultérieure envoie un message MBIM_CID_VERSION à l’appareil avec la version MBIMEx native de l’hôte, et le CID est le premier CID envoyé à l’appareil après avoir reçu la réponse MBIM_CID_DEVICE_SERVICES.
Si le premier CID que l’appareil reçoit de l’hôte après avoir répondu à la requête MBIM_CID_DEVICE_SERVICES est MBIM_CID_VERSION, l’appareil connaît la version MBIMEx de l’hôte.
Si le premier CID que l’appareil reçoit de l’hôte après avoir répondu à la requête MBIM_CID_DEVICE_SERVICES est un autre CID, l’appareil suppose que la version native de MBIMEx de l’hôte est 1.0.
Si l’appareil ne prend pas en charge MBIM_CID_VERSION, il ne répond pas à la requête MBIM_CID_DEVICE_SERVICES avec MBIM_CID_VERSION. Par conséquent, l’hôte n’envoie pas de message MBIM_CID_VERSION et suppose que la version native de MBIMEx de l’appareil est 1.0.
En ce qui concerne les fonctionnalités, une version MBIMEx supérieure est un sur-ensemble de toutes les versions inférieures de MBIMEx. Un hôte prend en charge tous les appareils avec une version MBIMEx annoncée au niveau ou au-dessous de la version NATIVE DE MBIMEx de l’hôte. Si la version annoncée de MBIMEx d’un appareil est supérieure à la version native de MBIMEx d’un hôte, l’hôte n’est pas censé prendre en charge l’appareil et le comportement exact de l’hôte dans ce cas n’est pas défini.
Un appareil qui a l’intention de fonctionner avec des hôtes plus anciens doit initialement publier MBIMEx version 1.0 ou la version la plus basse de l’hôte MBIMEx avec laquelle l’appareil est destiné à fonctionner dans un descripteur fonctionnel étendu MBIM.
Si l’hôte envoie MBIM_CID_VERSION avec une version MBIMEx supérieure à celle de l’appareil initialement annoncé, l’appareil doit indiquer une version de MBIMEx supérieure dans la réponse MBIM_CID_VERSION jusqu’à la version MBIMEx native de l’hôte et à la version NATIVE DE MBIMEx de l’appareil.
Notes
Par exemple, un appareil prend en charge MBIMEx version 2.0, mais est destiné à fonctionner avec des versions antérieures du système d’exploitation qui ne prennent pas en charge MBIMEx 2.0. L’appareil publie initialement MBIMEx version 1.0 dans les descripteurs USB et publie la prise en charge des MBIM_CID_VERSION facultatifs. Lorsqu’il est inséré dans un hôte exécutant Windows 10 version 1803, l’hôte ne comprend pas MBIM_CID_VERSION et n’envoie pas de MBIM_CID_VERSION à l’appareil. Pour l’hôte, la version MBIMEx de l’appareil est 1.0. L’hôte continue d’envoyer d’autres CID dans la séquence d’initialisation. Lors de la réception de CID autres que MBIM_CID_VERSION, l’appareil sait que l’hôte prend en charge MBIMEx version 1.0. Les deux parties se conforment à MBIMEx version 1.0. Plus tard, lorsque le même appareil est inséré dans un hôte exécutant Windows 10, version 1903 avec une version native de MBIMEx 2.0, l’hôte envoie MBIM_CID_VERSION à l’appareil pour l’informer que la version native de MBIMEx de l’hôte est 2.0. L’appareil envoie MBIM_CID_VERSION en réponse avec le MBIMEx 2.0 annoncé de l’appareil. À partir de là, les deux parties se conforment à MBIMEx version 2.0.
Le tableau suivant montre une matrice de compatibilité avec trois hôtes hypothétiques et trois appareils hypothétiques, chacun avec sa version MBIMEx native indiquée. Les appareils publient initialement MBIMEx version 1.0 dans le descripteur USB. La matrice montre comment chacun des appareils se comporte avec chacun des hôtes.
Appareil (ci-dessous) / Hôte (à droite) | Windows 10, version 1809 ou une version antérieure (version native DE MBIMEx 1.0) | Windows 10, version 1903 et ultérieure (MBIMEx version 2.0) |
---|---|---|
Appareil 4G MBIMEx natif version 1.0 |
L’appareil publie initialement MBIMEx 1.0. Aucun échange MBIM_CID_VERSION. Appareil et hôte compatibles. Fonctionne par défaut avec MBIMEx version 1.0. | L’appareil publie initialement MBIMEx 1.0. Aucun échange MBIM_CID_VERSION. L’hôte fonctionne avec l’appareil à l’aide de MBIMEx 1.0. |
Appareil NSA 5G MBIMEx natif version 2.0 |
L’appareil publie initialement MBIMEx 1.0. Aucun échange MBIM_CID_VERSION. L’appareil sait que l’hôte a MBIMEx 1.0 et continue avec MBIMEx 1.0. | L’appareil publie initialement MBIMEx 1.0. Host envoie MBIM_CID_VERSION pour informer l’appareil que l’hôte prend en charge MBIMEx 2.0. L’appareil répond avec MBIMEx 2.0. Les deux parties continuent avec MBIMEx 2.0. |
Le tableau suivant répertorie tous les CID existants qui sont modifiés dans MBIMEx version 2.0, ainsi que leurs charges utiles modifiées. Toutes les charges utiles non mentionnées dans ces CID et tous les autres CID non mentionnés dans le tableau sont transférées de MBIMEx version 1.0 et restent inchangées.
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 |
Service MBIM
Nom du service | UUID | Valeur UUID |
---|---|---|
Extensions de connectivité IP de base Microsoft | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
MBIM_CID_VERSION
Pour les pilotes MBB qui prennent en charge l’extension Microsoft MBIM 2.0 ou ultérieure, MBIM_CID_VERSION est une commande obligatoire pour l’échange d’informations de version MBIM entre l’hôte et l’appareil. Pour les appareils sur le marché avec des pilotes qui ne reconnaissent pas ce CID, l’hôte suppose et assure la compatibilité descendante.
L’hôte envoie cette commande en tant que requête si elle est prise en charge par l’appareil. La requête contient le numéro de version MBIM et le numéro de version des extensions MBIM que l’hôte prend actuellement en charge.
Du côté de l’appareil, l’appareil ajuste son numéro de publication MBIM annoncé et son numéro de publication des extensions MBIM en fonction des règles définies dans le schéma de contrôle de version, puis les envoie dans la réponse à l’hôte.
Cette commande est définie sous le service Extensions de connexion de base .
CID | Code de commande | UUID |
---|---|---|
MBIM_CID_VERSION | 15 | 3d01dcc5-fef5-4d05-0d3abef7058e9aaf |
Paramètres
Opération | Set | Requête | Notification |
---|---|---|---|
Commande | Non applicable | MBIM_VERSION_INFO | Non applicable |
response | Non applicable | MBIM_VERSION_INFO | Non applicable |
Requête
Informe l’appareil du numéro de publication MBIM natif de l’hôte et du numéro de publication des extensions MBIM. InformationBuffer contient la structure MBIM_VERSION_INFO suivante.
Offset | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 2 | bcdMBIMVersion | UINT16 | Numéro de publication MBIM de l’expéditeur en BCD, avec une virgule décimale implicite comprise entre les bits 7 et 8. Par exemple : 0x0100 == 1.00 == 1.0 . Il s’agit d’une constante little endian, de sorte que les octets sont 0x00, puis 0x01. |
2 | 2 | bcdMBIMExtendedVersion | UINT16 | Les extensions MBIM libèrent le numéro de l’expéditeur en BCD, avec une virgule décimale implicite comprise entre les bits 7 et 8. Par exemple : 0x0100 == 1.00 == 1.0 . Il s’agit d’une constante little endian, de sorte que les octets sont 0x00, puis 0x01. |
Set
Non applicable.
response
InformationBuffer dans MBIM_COMMAND_DONE contient une structure MBIM_VERSION_INFO.
Événements non sollicités
Non applicable.
Codes d’état
Ce CID utilise uniquement des codes de status génériques définis dans la section 9.4.5 de la révision de la spécification MBIM 1.0.
MBIM_CID_MS_DEVICE_CAPS_V2
Ce CID est identique à celui défini sur les opérations Mo Multi-SIM, qui est lui-même une extension de MBIM_CID_MS_DEVICE_CAPS comme défini dans la section 10.5.1 de la révision de la spécification MBIM 1.0. Pour les extensions MBIM version 2.0, il existe de nouvelles classes de données définies dans la table MBIM_DATA_CLASS qui permettent à l’appareil de signaler ses fonctionnalités 5G. MBIMDataClass5G_NSA indique que l’appareil prend en charge la 5G non autonome (NSA), définie dans 3GPP TS 37.340, et MBIMDataClass5G_SA indique que l’appareil prend en charge la 5G autonome (SA), également définie dans 3GPP TS 37.340.
Si l’appareil prend en charge les deux nouvelles classes de données, les deux bits doivent être définis.
MBIM_DATA_CLASS
Types | Mask |
---|---|
MBIMDataClassNone | 0h |
MBIMDataClassGPRS | 1h |
MBIMDataClassEDGE | 2 h |
MBIMDataClassUMTS | 4h |
MBIMDataClassHSDPA | 8h |
MBIMDataClassHSUPA | 10h |
MBIMDataClassLTE | 20h |
MBIMDataClass5G_NSA | 40h |
MBIMDataClass5G_SA | 80h |
Réservé | 100h-8000h |
MBIMDataClass1XRTT | 10000h |
MBIMDataClass1XEVDO | 20000h |
MBIMDataClass1XEVDORevA | 40000h |
MBIMDataClass1XEVDV | 80000h |
MBIMDataClass3XRTT | 100000h |
MBIMDataClass1XEVDORevB | 200000h |
MBIMDataClassUMB | 400000h |
Réservé | 8000000-4000000h |
MBIMDataClassCustom | 80000000h |
MBIM_CID_REGISTER_STATE
Cette commande est une extension pour le MBIM_CID_REGISTER_STATE CID déjà défini dans la version 1.0 de la spécification MBIM. Cette extension ajoute un nouveau membre appelé PreferredDataClasses pour la structure de réponse.
Paramètres
Opération | Set | Requête | Notification |
---|---|---|---|
Commande | MBIM_SET_REGISTRATION_STATE | Vide | Non applicable |
response | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 |
Requête
InformationBuffer a la valeur null et InformationBufferLength est égal à zéro.
Set
Définit l’état d’inscription. Les informations sont les mêmes que celles décrites dans la version 1.0 de la spécification MBIM.
response
InformationBuffer dans MBIM_COMMAND_DONE contient la structure MBIM_REGISTRATION_STATE_INFO_V2 suivante. Par rapport à la structure MBIM_REGISTRATION_STATE_INFO définie dans la section 10.5.10.6 de la révision de la spécification MBIM 1.0, la structure suivante a un nouveau champ PreferredDataClasses . Sauf indication contraire, les descriptions de champ dans le tableau 10-55 de la révision 1.0 de la spécification MBIM s’appliquent à cette structure.
MBIM_REGISTRATION_STATE_INFO_V2
Offset | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Erreur spécifique au réseau. Le tableau 10-44 de la révision de la spécification MBIM 1.0 documente les codes de cause pour NwError. |
4 | 4 | RegisterState | MBIM_REGISTER_STATE | Consultez le tableau 10-46 de la version 1.0 de la spécification MBIM. |
8 | 4 | RegisterMode | MBIM_REGISTER_MODE | Consultez le tableau 10-47 de la révision 1.0 de la spécification MBIM. |
12 | 4 | AvailableDataClass | UINT32 | Bitmap des valeurs dans MBIM_DATA_CLASS qui représente les classes de données prises en charge sur le réseau inscrit, pour la cellule dans laquelle l’appareil est inscrit. Cette valeur est définie sur MBIMDataClassNone si registerState n’est pas MBIMRegisterStateHome, MBIMRegisterStateRoaming ou MBIMRegisterStatePartner. |
16 | 4 | CurrentCellulaireClass | MBIM_CELLULAR_CLASS | Indique la classe cellulaire actuelle en cours d’utilisation pour une fonction multimode. Pour plus d’informations, consultez le tableau 10-8 de la révision de la spécification MBIM 1.0 . Pour une fonction monomode, il s’agit de la même chose que la classe cellulaire signalée dans MBIM_CID_DEVICE_CAPS. Pour les fonctions multimodes, une transition de CDMA vers GSM ou vice versa est indiquée avec une classe CurrentCellularClass mise à jour. |
20 | 4 | ProviderIdOffset | OFFSET | Décalage en octets, calculé à partir du début de cette structure, vers une chaîne numérique (0-9) appelée ProviderId qui représente l’identité du fournisseur réseau. Pour les réseaux gsm, cette chaîne est une concaténation d’un code de pays mobile (MCC) à trois chiffres et d’un code de réseau mobile (MNC) à deux ou trois chiffres. Les opérateurs gsm peuvent avoir plusieurs MNC, et donc plusieurs ProviderId. Pour les réseaux basés sur CDMA, cette chaîne est un ID système (SID) à cinq chiffres. En règle générale, un transporteur basé sur CDMA a plusieurs SID. En règle générale, un transporteur a un SID pour chaque marché qui est généralement divisé géographiquement au sein d’un pays par des réglementations, telles que les zones statistiques métropolitaines (MSA) dans le États-Unis. Les appareils CDMA doivent spécifier MBIM_CDMA_DEFAULT_PROVIDER_ID si ces informations ne sont pas disponibles. Lors du traitement d’une requête et que l’état d’inscription est en mode d’inscription automatique, ce membre contient l’ID de fournisseur auquel l’appareil est actuellement associé (le cas échéant). Lorsque l’état d’inscription est en mode d’inscription manuelle, ce membre contient l’ID de fournisseur auquel l’appareil est invité à s’inscrire (même si le fournisseur n’est pas disponible). Lorsque vous traitez une demande définie et que l’état d’inscription est en mode manuel, cela contient l’ID de fournisseur sélectionné par l’hôte avec lequel inscrire l’appareil. Lorsque l’état d’inscription est en mode d’inscription automatique, ce paramètre est ignoré. Les fournisseurs CDMA 1xRTT doivent être définis sur MBIM_CDMA_DEFAULT_PROVIDER_ID si l’ID de fournisseur n’est pas disponible. |
24 | 4 | ProviderIdSize | SIZE(0..12) | Taille, en octets, pour ProviderId. |
28 | 4 | ProviderNameOffset | OFFSET | Décalage en octets, calculé à partir du début de cette structure, vers une chaîne appelée ProviderName qui représente le nom du fournisseur réseau. Ce membre est limité à MBIM_PROVIDERNAME_LEN caractères au maximum. Pour les réseaux GSM, si la présentation préférée des initiales de pays et du nom de réseau mobile (PCCI&N) est supérieure à vingt caractères, l’appareil doit abréger le nom du réseau. Ce membre est ignoré lorsque l’hôte définit la liste des fournisseurs préférés. Les appareils doivent spécifier une chaîne NULL pour les appareils qui ne disposent pas de ces informations. |
32 | 4 | ProviderNameSize | SIZE(0..40) | Taille, en octets, pour ProviderName. |
36 | 4 | RoamingTextOffset | OFFSET | Décalage en octets, calculé à partir du début de cette structure, sur une chaîne appelée RoamingText pour informer un utilisateur que l’appareil est en itinérance. Ce membre est limité à, au maximum, 63 caractères. Ce texte doit fournir des informations supplémentaires à l’utilisateur lorsque l’état d’inscription est MBIMRegisterStatePartner ou MBIMRegisterStateRoaming. Ce membre est facultatif. |
40 | 4 | RoamingTextSize | SIZE(0..126) | Taille, en octets, pour RoamingText. |
44 | 4 | RegistrationFlag | MBIM_REGISTRATION_FLAGS | Indicateurs définis par le tableau 10-48 dans la révision de la spécification MBIM 1.0. |
48 | 4 | PreferredDataClass | UINT32 | Bitmap des valeurs dans MBIM_DATA_CLASS qui représentent les classes de données activées sur l’appareil. L’appareil ne peut fonctionner qu’à l’aide des classes de données activées. |
Dynamique | 4 | DataBuffer | DATABUFFER | Mémoire tampon de données qui contient ProviderId, ProviderName et RoamingText. |
Événements non sollicités
Les notifications contiennent une structure MBIM_REGISTRATION_STATE_INFO_V2.
Codes d’état
Ce CID utilise uniquement des codes de status génériques définis dans la section 9.4.5 de la révision de la spécification MBIM 1.0.
MBIM_CID_PACKET_SERVICE
Cette commande est une extension pour le MBIM_CID_PACKET_SERVICE existant défini dans la version 1.0 de la spécification MBIM.
Cette extension ajoute un nouveau membre appelé FrequencyRange pour la structure de réponse et a renommé le membre HighestAvailableDataClass en CurrentDataClass pour clarifier son objectif.
CurrentDataClass indique la technologie d’accès radio (RAT) auprès de laquelle l’appareil est actuellement inscrit. Il contient une seule valeur de MBIM_DATA_CLASS.
FrequencyRange indique la plage de fréquences que l’appareil utilise actuellement. Cette option n’est valide que si le champ CurrentDataClass indique que le bit MBIMDataClass5G_NSA ou MBIMDataClass5G_SA est défini.
Paramètres
Opération | Set | Requête | Notification |
---|---|---|---|
Commande | MBIM_SET_PACKET_SERVICE | Vide | Non applicable |
response | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 |
Requête
InformationBuffer a la valeur null et InformationBufferLength est égal à zéro.
Set
Les informations relatives aux commandes set sont décrites dans la version 1.0 de la spécification MBIM.
response
InformationBuffer dans MBIM_COMMAND_DONE contient une structure de MBIM_PACKET_SERVICE_INFO_V2. Par rapport à la structure MBIM_PACKET_SERVICE_INFO définie dans la section 10.5.10.6 de la révision de spécification MBIM 1.0, cette nouvelle structure a les champs CurrentDataClass et FrequencyRange . Sauf indication contraire ici, les descriptions de champs du tableau 10-55 de la révision de la spécification MBIM 1.0 s’appliquent ici.
MBIM_PACKET_SERVICE_INFO_V2
Offset | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Erreur spécifique au réseau. Le tableau 10-44 de la révision de la spécification MBIM 1.0 documente les codes de cause pour NwError. |
4 | 4 | PacketServiceState | MBIM_PACKET_SERVICE_STATE | Consultez le tableau 10-53 de la révision de la spécification MBIM 1.0. |
8 | 4 | CurrentDataClass | MBIM_DATA_CLASS | Classe de données en cours dans la cellule active, spécifiée en fonction de MBIM_DATA_CLASS. Les fonctions doivent définir ce membre sur MBIMDataClassNone si la fonction n’est pas à l’état du service de paquets attaché. À l’exception de HSPA (en d’autres termes, HSUPA et HSDPA) et du contrôleur de domaine 5G, la fonction définit ce membre sur une seule valeur MBIM_DATA_CLASS. Pour les services de données HSPA, les fonctions spécifient un OR au niveau du bit de MBIMDataClass HSDPA et MBIMDataClassHSUPA. Pour les cellules qui prennent en charge HSDPA mais pas HSUPA, seul HSDPA est indiqué (ce qui implique la classe de données UMTS pour les données de liaison montante). Chaque fois que la classe de données actuelle change, les fonctions envoient une notification indiquant la nouvelle valeur de CurrentDataClass. |
12 | 8 | UplinkSpeed | UINT64 | Contient le débit de la liaison montante, en bits par seconde. |
20 | 8 | DownlinkSpeed | UINT64 | Contient le débit de liaison descendante, en bits par seconde. |
38 | 4 | FrequencyRange | MBIM_FREQUENCY_RANGE | Masque de bits de valeurs dans MBIM_FREQUENCY_RANGE qui représente les plages de fréquences que l’appareil utilise actuellement. Cela n’est valide que si CurrentDataClass est MBIMDataClass5G_NSA ou MBIMDataClass5G_SA. |
MBIM_FREQUENCY_RANGE
L’énumération suivante est utilisée comme valeur dans la structure MBIM_PACKET_SERVICE_INFO_V2 précédente.
Type | Valeur | Description |
---|---|---|
MBIMFrequencyRangeUnknown | 0 | Si le type de système n’est pas 5G. |
MBIMFrequencyRange1 | 1 | Plage de fréquences 1 (FR1) dans 3GPP TS 38.101-1 (Sub-6G). |
MBIMFrequencyRange2 | 2 | FR2 en 3GPP TS 38.101-2 (mmWave). |
MBIMFrequencyRange1AndRange2 | 3 | Si les opérateurs FR1 et FR2 sont connectés. |
Événements non sollicités
Les notifications contiennent une structure MBIM_PACKET_SERVICE_INFO_V2.
Codes d’état
Ce CID utilise uniquement des codes de status génériques définis dans la section 9.4.5 de la révision 1.0 de la spécification MBIM.
MBIM_CID_SIGNAL_STATE
Ce CID est une extension de MBIM_CID_SIGNAL_STATE, qui introduit RSRP et SNR pour les critères d’état du signal. Cette nouvelle extension est valide uniquement si l’appareil indique la prise en charge des extensions MBIM version 2.0. Cette extension est obligatoire si le modem prend en charge les classes de données MBIMDataClass5G_(N)SA.
Les champs RSRP et SNR ne sont valides que si le SystemType correspondant est MGBIMDataClassLTE ou MBIMDataClass5G_(N)SA. Si le modem indique RSRP et/ou SNR, le champ RSSI doit avoir la valeur 99.
Si le SystemType correspondant est MBIMDataClass5G_(N)SA, le champ RSRP est obligatoire et le champ SNR est facultatif. Si le SystemType correspondant est MBIMDataClassLTE, les champs RSRP et SNR sont facultatifs et le champ RSSI peut être utilisé à la place. Dans ce cas, les champs RSRP et SNR peuvent être omis en définissant une valeur zéro (0) pour les membres RsrpSnrOffset et RsrpSnrSize .
Paramètres
Opération | Set | Requête | Notification |
---|---|---|---|
Commande | MBIM_SET_SIGNAL_STATE | Vide | Non applicable |
response | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 |
Requête
InformationBuffer est null et InformationBufferLength est égal à zéro.
Set
Les informations relatives aux commandes set sont décrites dans la révision de la spécification MBIM 1.0.
response
L’objet InformationBuffer dans MBIM_COMMAND_DONE contient la structure MBIM_SIGNAL_STATE_INFO_V2 suivante.
MBIM_SIGNAL_STATE_INFO_V2
Offset | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | Rssi | UINT32 | Consultez le tableau 10.58 dans la révision de la spécification MBIM 1.0. |
4 | 4 | ErrorRate | UINT32 | Consultez le tableau 10.58 dans la révision de la spécification MBIM 1.0. |
8 | 4 | SignalStrengthInterval | UINT32 | Intervalle de création de rapports, en secondes. |
12 | 4 | RssiThreshold | UINT32 | Différence dans les valeurs codées RSSI qui déclenche un rapport. Utilisez 0xFFFFFFFF si cela n’a pas d’importance. |
16 | 4 | ErrorRateThreshold | UINT32 | Différence dans les valeurs codées ErrorRate qui déclenchent un rapport. Utilisez 0xFFFFFFFF si cela n’a pas d’importance. |
20 | 4 | RsrpSnrOffset | OFFSET | Décalage en octets, calculé à partir du début de cette structure, vers la mémoire tampon contenant les informations de signalisation RSRP et SNR. Ce membre peut avoir la valeur NULL quand aucune information de signalisation RSRP et SNR n’est disponible. |
24 | 4 | RsrpSnrSize | SIZE | Taille, en octets, de la mémoire tampon contenant les informations de signalisation RSRP et SNR au format d’une structure de MBIM_RSRP_SNR_INFO. |
4 | DataBuffer | DATABUFFER | Structure MBIM_RSRP_SNR. |
MBIM_RSRP_SNR
La structure MBIM_RSRP_SNR suivante est utilisée dans le DataBuffer d’une structure MBIM_SIGNAL_STATE_INFO_V2.
Offset | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Nombre d’entrées RSRP_SNR qui suivent cet élément. |
4 | 4 | DataBuffer | DATABUFFER | Tableau d’enregistrements RSRP_SNR, chacun spécifié en tant que structure MBIM_RSRP_SNR_INFO. |
MBIM_RSRP_SNR_INFO
Un tableau des structures MBIM_RSRP_SNR_INFO suivantes est utilisé dans le DataBuffer d’une structure MBIM_RSRP_SNR.
Offset | Taille> | Champ | Type | Description | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4 | RSRP | UINT32 |
|
||||||||||||||||||||||
4 | 4 | SNR | UINT32 |
|
||||||||||||||||||||||
8 | 4 | RSRPThreshold | UINT32 | Définit le seuil entre l’ancienne valeur RSRP (mise en cache) et la valeur RSRP nouvellement calculée. Si la différence absolue est supérieure à la valeur de seuil, l’appareil déclenche un événement non sollicité. L’unité est 1 dBm. Si la valeur est égale à zéro, utilisez le comportement par défaut dans la fonction d’appareil. Si la valeur est 0xFFFFFFFF, ne l’utilisez pas pour déclencher l’événement. Si la valeur de seuil donnée n’est pas prise en charge par l’appareil, il retourne la valeur de seuil maximale qu’il prend en charge. | ||||||||||||||||||||||
12 | 4 | SNRThreshold | UINT32 | Définit le seuil entre l’ancienne valeur SNR (mise en cache) et la valeur SNR nouvellement calculée. Si la différence absolue est supérieure à la valeur de seuil, l’appareil déclenche un événement non sollicité. L’unité est de 1 dB. Si la valeur est égale à zéro, utilisez le comportement par défaut dans la fonction d’appareil. Si la valeur est 0xFFFFFFFF, ne l’utilisez pas pour déclencher l’événement. Si le seuil donné n’est pas pris en charge par l’appareil, il retourne la valeur de seuil maximale qu’il prend en charge. | ||||||||||||||||||||||
16 | 4 | SystemType | MBIM_DATA_CLASS | Indique le type de système pour lequel les informations d’état du signal sont valides. Ce membre est un masque de bits d’un type défini dans MBIM_DATA_CLASS. |
Événements non sollicités
Les notifications contiennent une structure MBIM_SIGNAL_STATE_INFO_V2.
Codes d’état
Ce CID utilise uniquement des codes de status génériques définis dans la section 9.4.5 de la révision de la spécification MBIM 1.0.
Calcul de barre de signal LTE
Le système d’exploitation doit traiter les paramètres du Registre pour les calculs de l’intensité du signal dans l’ordre suivant :
Dataclass est CDMA (ou sa variante) ou TDSCDMA
- Si une table de mappage de barre de signal héritée existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal héritée existe sous « per_device », utilisez ce paramètre.
- Sinon, utilisez la table de mappage de barre de signal par défaut dans le code.
Dataclass est GSM ou WCDMA
- Si une table de mappage de barre de signal spécifique à la technologie GSM ou WCDMA existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal spécifique à la technologie GSM ou WCDMA existe sous « per_device », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal héritée existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal héritée existe sous « per_device », utilisez ce paramètre.
- Sinon, utilisez la table de mappage de barre de signal par défaut dans le code.
- RSSI >= 17 ; 5 barres
- RSSI >= 12 ; 4 barres
- RSSI >= 7 ; 3 barres
- RSSI >= 4 ; 2 barres
- RSSI >= 2 ; 1 barres
- Autre; 0 barres
Dataclass est LTE et RSRP est signalé par le modem
- Si une table de mappage de barre de signal spécifique à la technologie LTE pour RSRP existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal spécifique à la technologie LTE pour RSRP existe sous « per_device », utilisez ce paramètre.
- Sinon, utilisez la table de mappage de barre de signal RSRP LTE par défaut dans le code.
Notes
Si EnableLTESnrReporting est activé, mais qu’il n’existe aucune table SNR pour les rapports LTE ou SNR par le modem, seul RSRP est utilisé. Sinon, le meilleur de RSRP ou de SNR est converti en barres de signal.
Dataclass est LTE et RSSI est signalé par le modem
- Si une table de mappage de barre de signal spécifique à la technologie LTE existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal spécifique à la technologie LTE existe sous « per_device », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal héritée existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal héritée existe sous « per_device », utilisez ce paramètre.
- Sinon, utilisez la table de mappage de barre de signal par défaut dans le code.
Dataclass est NR
- Si une table de mappage de barre de signal spécifique à la technologie NR pour RSRP existe sous « per_iccid », utilisez ce paramètre.
- Sinon, si une table de mappage de barre de signal spécifique à la technologie NR pour RSRP existe sous « per_device », utilisez ce paramètre.
- Sinon, utilisez la table de mappage de barre de signal RSRP PAR défaut dans le code.
Notes
Si EnableNRSnrReporting est activé, mais qu’il n’existe aucune table SNR pour les rapports NR ou SNR par le modem, seul RSRP est utilisé. Sinon, le meilleur de RSRP ou de SNR est converti en barres de signal.
Dataclass est NSA
- Si EnableLTEReportingOnNSA n’est pas défini ou a la valeur 0 :
- Suivez le flux Dataclass NR.
- Si EnableLTEReportingOnNSA a la valeur 1 :
- Suivez les flux LTE Dataclass (RSRP ou RSSI).
- Si EnableLTEReportingOnNSA a la valeur 2 :
- Si FrequencyRange a la valeur FR1, suivez les flux LTE dataclass (RSRP ou RSSI).
- Si FrequencyRange a la valeur <> FR1, suivez le flux Dataclass NR.
- Si EnableLTEReportingOnNSA a la valeur 3 :
- Si FrequencyRange a la valeur FR2, suivez les flux LTE dataclass (RSRP ou RSSI).
- Si FrequencyRange a la valeur <> FR2, suivez le flux Dataclass NR.
- Si EnableLTEReportingOnNSA a la valeur 4 :
- Calculez la barre de signal à l’aide des flux LTE et NR.
- Sélectionnez le plus fort.
Notes
Si le signal LTE n’est pas signalé par le modem dans 1 à 5, le signal NR est utilisé. Si le signal NR n’est pas utilisé, le signal LTE est appliqué.
Personnalisations COSA pour le calcul SignalBar
EnableLTEReportingOnNSA :
0 = « Utiliser le signal 5G »
1 = « Utiliser le signal LTE »
2 = « Utiliser le signal LTE si campé sur la plage de fréquences 5G 1 »
3 = « Utiliser le signal LTE si campé sur la plage de fréquences 5G 2 »
4 = « Utiliser le signal le plus fort de LTE et de 5G »
EnableNRSnrReporting :
0 = « Utiliser uniquement RSRP »
1 = « Utiliser À la fois RSRP et SNR »
EnableLTESnrReporting :
0 = « Utiliser uniquement RSRP »
1 = « Utiliser À la fois RSRP et SNR »
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>
Modifiez la valeur minimale de la force du signal correspondant au nombre de barres à afficher. Les paramètres spécifiques à la technologie sont prioritaires. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>
Modifiez la valeur de force minimale du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur GSM. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>
Modifiez la valeur de force minimale du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur WCDMA. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>
Modifiez la valeur minimale de la force du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur LTE. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>
Modifiez la valeur minimale de la force du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur LTE. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>
Modifiez la valeur minimale de la force du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur LTE. Utilisé lorsque EnableLTESnrReporting a la valeur 1. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>
Modifiez la valeur minimale de force du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur la 5G. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>
Modifiez la valeur minimale de force du signal correspondant au nombre de barres à afficher lorsque l’appareil est campé sur la 5G. Utilisé lorsque EnableNRSnrReporting est défini sur 1. Chaque nombre de barres doit avoir un mappage de la force du signal valide pour que ce paramètre prenne effet.
<SignalBar> peut être de 1 à 5 valeurs.
Si l’OEM/MO ne parvient pas à configurer correctement la table de mappage pour RSSI ou si elle est incomplète, utilisez le mappage par défaut :
RSSI | Barres affichées |
---|---|
[0,1] | 0 |
[2,3] | 1 |
[4,6] | 2 |
[7,11] | 3 |
[12,16] | 4 |
[17,31] | 5 |
Si l’OEM/MO ne parvient pas à configurer correctement la table de mappage pour RSRP ou si elle est incomplète, utilisez le mappage par défaut :
RSRP | Barres affichées |
---|---|
[0,16] | 0 |
[17,41] | 1 |
[42,51] | 2 |
[52,61] | 3 |
[62,71] | 4 |
[72,126] | 5 |
Si l’OEM/MO ne parvient pas à configurer correctement la table de mappage pour SNR ou si elle est incomplète, utilisez le mappage par défaut :
SNR | Barres affichées |
---|---|
[0,18] | 0 |
[19,38] | 1 |
[39,46] | 2 |
[47,53] | 3 |
[54,72] | 4 |
[73,127] | 5 |