MBIMEx 2.0 – Supporto NSA 5G
Poiché la specifica errata MBIM 1.0 manca un meccanismo per modificare i CID esistenti con payload nuovi o modificati, Windows 10 versione 1903 introduce MBIM 1.0 Extension 2.0 per estendere l'interfaccia per supportare 5G.
Schema di controllo delle versioni
Nota
In questa sezione il termine MBIMEx versione fa riferimento al numero di versione delle estensioni MBIM.
L'host apprende la versione MBIMEx di un dispositivo tramite due modi:
- DESCRITTORE FUNZIONALE ESTESO MBIM.
- Messaggio facoltativo MBM_CID_VERSION, se il dispositivo lo supporta e dichiara il supporto.
Se questi due sono diversi, la versione superiore determina la versione MBIMEx per la durata in cui il dispositivo rimane enumerato nell'host. La versione MBIMEx più alta viene definita la versione di MBIMEx annunciata dal dispositivo. La versione MBIMEx annunciata di un dispositivo può essere inferiore alla versione MBIMEx nativa, ovvero la versione MBIMEx più elevata supportata dal dispositivo. I dispositivi possono apprendere la versione MBIMEx dell'host solo tramite il messaggio MBIM_CID_VERSION.
In qualsiasi versione, l'host esegue sempre una query sul dispositivo per i servizi e i CID supportati usando MBIM_CID_DEVICE_SERVICES all'inizio della sequenza di inizializzazione del dispositivo.
Se un dispositivo supporta MBIM_CID_VERSION e annuncia il supporto nella risposta di query MBIM_CID_DEVICE_SERVICES, un host che non riconosce MBIM_CID_VERSION o ha una versione MBIMEx inferiore a 2.0 lo ignora. Nel frattempo, un host che comprende MBIM_CID_VERSION e ha una versione MBIMEx nativa di 2.0 o versione successiva invia un messaggio MBIM_CID_VERSION al dispositivo con la versione MBIMEx nativa dell'host e il CID è il primo CID inviato al dispositivo dopo aver ricevuto la risposta MBIM_CID_DEVICE_SERVICES.
Se il primo CID ricevuto dal dispositivo dall'host dopo che risponde alla query di MBIM_CID_DEVICE_SERVICES è MBIM_CID_VERSION, il dispositivo conosce la versione MBIMEx dell'host.
Se il primo CID ricevuto dal dispositivo dall'host dopo che risponde alla query di MBIM_CID_DEVICE_SERVICES è qualsiasi altro CID, il dispositivo presuppone che la versione di MBIMEx dell'host sia 1.0.
Se il dispositivo non supporta MBIM_CID_VERSION, non risponderà alla query MBIM_CID_DEVICE_SERVICES con MBIM_CID_VERSION. Pertanto l'host non invierà un messaggio MBIM_CID_VERSION e presuppone che la versione mbIMEx nativa del dispositivo sia 1.0.
Una versione MBIMEx superiore è un superset di tutte le versioni MBIMEx inferiori. Un host supporta tutti i dispositivi con una versione MBIMEx annunciata in o sotto la versione MBIMEx nativa dell'host. Se la versione MBIMEx annunciata di un dispositivo è superiore alla versione MBIMEx nativa di un host, l'host non deve supportare il dispositivo e il comportamento esatto dell'host in questa situazione non è definito.
Un dispositivo che intende lavorare con gli host meno recenti deve inizialmente annunciare MBIMEx versione 1.0 o la versione MBIMEx host più bassa con cui il dispositivo è destinato a funzionare in un descrittore funzionale esteso MBIM.
Se l'host invia MBIM_CID_VERSION con una versione MBIMEx superiore rispetto al dispositivo inizialmente annunciato, il dispositivo deve indicare una versione MBIMEx superiore nella risposta MBIM_CID_VERSION fino alla versione MBIMEx nativa dell'host e alla versione MBIMEx nativa del dispositivo.
Nota
Ad esempio, un dispositivo supporta MBIMEx versione 2.0, ma è destinato a funzionare con le versioni precedenti del sistema operativo che non supportano MBIMEx 2.0. Il dispositivo annuncia inizialmente MBIMEx versione 1.0 nei descrittori USB e annuncia il supporto per il MBIM_CID_VERSION facoltativo. Quando inserito in un host che esegue Windows 10, versione 1803, l'host non comprende MBIM_CID_VERSION e non invia MBIM_CID_VERSION al dispositivo. Per l'host, la versione MBIMEx del dispositivo è 1.0. L'host continua a inviare altri CID nella sequenza di inizializzazione. Al momento della ricezione di CID diversi da MBIM_CID_VERSION, il dispositivo sa che l'host supporta MBIMEx versione 1.0. Entrambi i lati passano alla versione MBIMEx 1.0. Successivamente, quando lo stesso dispositivo viene inserito in un host che esegue Windows 10, versione 1903 con una versione MBIMEx nativa di 2.0, l'host invia MBIM_CID_VERSION al dispositivo per informarlo che la versione MBIMEx nativa dell'host è 2.0. Il dispositivo invia MBIM_CID_VERSION di nuovo in risposta con l'annunciato MBIMEx versione 2.0 del dispositivo. Da qui, entrambi i lati procedeno per essere conformi a MBIMEx versione 2.0.
La tabella seguente mostra una matrice di compatibilità con tre host ipotetici e tre dispositivi ipotetici, ognuno con la relativa versione MBIMEx nativa. I dispositivi annunciano MBIMEx versione 1.0 inizialmente nel descrittore USB. La matrice mostra il comportamento di ognuno dei dispositivi con ognuno degli host.
Dispositivo (sotto) / Host (a destra) | Windows 10, versione 1809 o versioni precedenti (MBIMEx versione 1.0 nativa) | Windows 10, versione 1903 e successiva (MBIMEx versione 2.0) |
---|---|---|
Dispositivo 4G Native MBIMEx versione 1.0 |
Il dispositivo annuncia inizialmente MBIMEx 1.0. Nessun MBIM_CID_VERSION scambio. Dispositivo e host compatibili. Funziona per impostazione predefinita con MBIMEx versione 1.0. | Il dispositivo annuncia inizialmente MBIMEx 1.0. Nessun MBIM_CID_VERSION scambio. L'host funziona con il dispositivo usando MBIMEx 1.0. |
Dispositivo NSA 5G Native MBIMEx versione 2.0 |
Il dispositivo annuncia inizialmente MBIMEx 1.0. Nessun MBIM_CID_VERSION scambio. Il dispositivo sa che l'host ha MBIMEx 1.0 e procede con MBIMEx 1.0. | Il dispositivo annuncia inizialmente MBIMEx 1.0. L'host invia MBIM_CID_VERSION per informare il dispositivo che l'host supporta MBIMEx 2.0. Il dispositivo risponde con MBIMEx 2.0. Entrambi i lati procedono con MBIMEx 2.0. |
La tabella seguente elenca tutti i CID esistenti modificati in MBIMEx versione 2.0 e i payload modificati. Tutti i payload non menzionati in questi CID e tutti gli altri CID non menzionati nella tabella riportano da MBIMEx versione 1.0 e rimangono invariati.
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 |
Servizio MBIM
Nome del servizio | UUID | Valore UUID |
---|---|---|
Estensioni di connettività IP di base microsoft | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
MBIM_CID_VERSION
Per i driver MBB che supportano l'estensione Microsoft MBIM 2.0 o successiva, MBIM_CID_VERSION è un comando obbligatorio per lo scambio di informazioni sulla versione MBIM tra l'host e il dispositivo. Per i dispositivi in-market con driver che non riconoscono questo CID, l'host presuppone e fornisce compatibilità con le versioni precedenti.
L'host invia questo comando come query se è supportato dal dispositivo. La query contiene il numero di versione MBIM e il numero di versione delle estensioni MBIM attualmente supportati dall'host.
Sul lato dispositivo il dispositivo modifica il numero di versione MBIM annunciato e il numero di rilascio delle estensioni MBIM in base alle regole definite nello schema di controllo delle versioni, quindi li invia nella risposta all'host.
Questo comando viene definito nel servizio Basic Connect Extensions .
CID | Codice comando | UUID |
---|---|---|
MBIM_CID_VERSION | 15 | 3d01dcc5-fef5-4d05-0d3abef7058e9aaf |
Parametri
Operazione | Set | Query | Notifica |
---|---|---|---|
Comando | Non applicabile | MBIM_VERSION_INFO | Non applicabile |
Risposta | Non applicabile | MBIM_VERSION_INFO | Non applicabile |
Query
Informa il dispositivo del numero di versione MBIM nativo dell'host e il numero di versione delle estensioni MBIM. InformationBuffer contiene la struttura di MBIM_VERSION_INFO seguente.
Offset | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 2 | bcdMBIMVersion | UINT16 | Numero di rilascio MBIM del mittente in BCD, con un punto decimale implicito compreso tra bit 7 e 8. Ad esempio: 0x0100 == 1.00 == 1.0 . Si tratta di una costante little-endian, quindi i byte sono 0x00, quindi 0x01. |
2 | 2 | bcdMBIMExtendedVersion | UINT16 | Numero di rilascio dell'estensione MBIM del mittente in BCD, con un punto decimale implicito compreso tra bit 7 e 8. Ad esempio: 0x0100 == 1.00 == 1.0 . Si tratta di una costante little-endian, quindi i byte sono 0x00, quindi 0x01. |
Set
Non applicabile.
Risposta
InformationBuffer in MBIM_COMMAND_DONE contiene una struttura MBIM_VERSION_INFO.
Eventi non richiesti
Non applicabile.
Codici di stato
Questo CID usa solo codici di stato generici definiti nella sezione 9.4.5 della revisione della specifica MBIM 1.0.
MBIM_CID_MS_DEVICE_CAPS_V2
Questo CID è lo stesso definito nelle operazioni multi-SIM MB, che si tratta di un'estensione di MBIM_CID_MS_DEVICE_CAPS come definito nella sezione 10.5.1 della revisione della specifica MBIM 1.0. Per le estensioni MBIM versione 2.0, sono disponibili nuove classi di dati definite nella tabella MBIM_DATA_CLASS che consentono al dispositivo di segnalare le funzionalità 5G. MBIMDataClass5G_NSA indica che il dispositivo supporta 5G non autonomo (NSA), definito in 3GPP TS 37.340 e MBIMDataClass5G_SA indica che il dispositivo supporta 5G Standalone (SA), definito anche in 3GPP TS 37.340.
Se il dispositivo supporta entrambe le nuove classi di dati, entrambi i bit devono essere impostati.
MBIM_DATA_CLASS
Tipi | Mask |
---|---|
MBIMDataClassNone | 0h |
MBIMDataClassGPRS | 1h |
MBIMDataClassEDGE | 2 h |
MBIMDataClassUMTS | 4h |
MBIMDataClassHSDPA | 8h |
MBIMDataClassHSUPA | 10h |
MBIMDataClassLTE | 20h |
MBIMDataClass5G_NSA | 40h |
MBIMDataClass5G_SA | 80h |
Riservato | 100h-8000h |
MBIMDataClass1XRTT | 10000h |
MBIMDataClass1XEVDO | 20000h |
MBIMDataClass1XEVDORevA | 40000h |
MBIMDataClass1XEVDV | 80000h |
MBIMDataClass3XRTT | 100000h |
MBIMDataClass1XEVDORevB | 200000h |
MBIMDataClassUMB | 400000h |
Riservato | 8000000-400000000h |
MBIMDataClassCustom | 800000000h |
MBIM_CID_REGISTER_STATE
Questo comando è un'estensione per il CID di MBIM_CID_REGISTER_STATE già definito nella revisione della specifica MBIM 1.0. Questa estensione aggiunge un nuovo membro denominato PreferredDataClasses per la struttura di risposta.
Parametri
Operazione | Set | Query | Notifica |
---|---|---|---|
Comando | MBIM_SET_REGISTRATION_STATE | Empty | Non applicabile |
Risposta | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 |
Query
InformationBuffer è null e InformationBufferLength è zero.
Set
Imposta lo stato di registrazione. Le informazioni sono le stesse descritte nella revisione 1.0 della specifica MBIM.
Risposta
InformationBuffer in MBIM_COMMAND_DONE contiene la struttura di MBIM_REGISTRATION_STATE_INFO_V2 seguente. Rispetto alla struttura MBIM_REGISTRATION_STATE_INFO definita nella sezione 10.5.10.6 della revisione 1.0 della specifica MBIM, la struttura seguente include un nuovo campo PreferredDataClasses . Se non indicato qui, le descrizioni dei campi nella tabella 10-55 della revisione della specifica MBIM 1.0 si applicano a questa struttura.
MBIM_REGISTRATION_STATE_INFO_V2
Offset | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Errore specifico della rete. La tabella 10-44 nella revisione della specifica MBIM 1.0 documenta i codici di causa per NwError. |
4 | 4 | RegisterState | MBIM_REGISTER_STATE | Vedere la tabella 10-46 nella revisione della specifica MBIM 1.0. |
8 | 4 | RegisterMode | MBIM_REGISTER_MODE | Vedere la tabella 10-47 nella revisione della specifica MBIM 1.0. |
12 | 4 | AvailableDataClass | UINT32 | Bitmap dei valori in MBIM_DATA_CLASS che rappresenta le classi di dati supportate nella rete registrata, per la cella in cui è registrato il dispositivo. Questo valore è impostato su MBIMDataClassNone se RegisterState non è MBIMRegisterStateHome, MBIMRegisterStateRoaming o MBIMRegisterStatePartner. |
16 | 4 | CurrentCellClass | MBIM_CELLULAR_CLASS | Indica la classe cellulare corrente in uso per una funzione in modalità multipla. Per altre informazioni, vedere la tabella 10-8 nella revisione della specifica MBIM 1.0 . Per una funzione in modalità singola, si tratta della classe cellulare segnalata in MBIM_CID_DEVICE_CAPS. Per le funzioni in modalità multipla, viene indicata una transizione da CDMA a GSM o viceversa con un CurrentMultidimensionalClass aggiornato. |
20 | 4 | ProviderIdOffset | OFFSET | Offset in byte, calcolato dall'inizio di questa struttura, a una stringa numerica (0-9) denominata ProviderId che rappresenta l'identità del provider di rete. Per le reti basate su GSM, questa stringa è una concatenazione di un codice paese per dispositivi mobili (MCC) a tre cifre e un codice di rete mobile (MNC) a due o tre cifre. I vettori basati su GSM potrebbero avere più di un MNC e quindi più providerId. Per le reti basate su CDMA, questa stringa è un SID (System ID) a cinque cifre. In genere, un vettore basato su CDMA ha più di un SID. In genere, un vettore ha un SID per ogni mercato che è solitamente diviso geograficamente all'interno di una nazione in base a normative, ad esempio aree statistiche metropolitane (MSA) nel Stati Uniti. I dispositivi basati su CDMA devono specificare MBIM_CDMA_DEFAULT_PROVIDER_ID se queste informazioni non sono disponibili. Quando si elabora una richiesta di query e lo stato di registrazione è in modalità di registrazione automatica, questo membro contiene l'ID provider con cui il dispositivo è attualmente associato (se applicabile). Quando lo stato di registrazione è in modalità di registrazione manuale, questo membro contiene l'ID provider a cui il dispositivo viene richiesto di registrare (anche se il provider non è disponibile). Quando si elabora una richiesta set e lo stato di registrazione è in modalità manuale, questo contiene l'ID provider selezionato dall'host con cui registrare il dispositivo. Quando lo stato di registrazione è in modalità di registrazione automatica, questo parametro viene ignorato. I provider CDMA 1xRTT devono essere impostati su MBIM_CDMA_DEFAULT_PROVIDER_ID se l'ID del provider non è disponibile. |
24 | 4 | ProviderIdSize | SIZE(0..12) | Dimensione, in byte, per ProviderId. |
28 | 4 | ProviderNameOffset | OFFSET | Offset in byte, calcolato dall'inizio di questa struttura, a una stringa denominata ProviderName che rappresenta il nome del provider di rete. Questo membro è limitato al massimo ai caratteri MBIM_PROVIDERNAME_LEN. Per le reti basate su GSM, se la presentazione preferita delle iniziali paese e del nome della rete mobile (PCCI&N) è più lunga di venti caratteri, il dispositivo deve abbreviare il nome della rete. Questo membro viene ignorato quando l'host imposta l'elenco di provider preferito. I dispositivi devono specificare una stringa NULL per i dispositivi che non dispongono di queste informazioni. |
32 | 4 | ProviderNameSize | SIZE(0..40) | Dimensione, in byte, per ProviderName. |
36 | 4 | RoamingTextOffset | OFFSET | Offset in byte, calcolato dall'inizio di questa struttura, a una stringa denominata RoamingText per informare un utente che il dispositivo è in roaming. Questo membro è limitato al massimo a 63 caratteri. Questo testo deve fornire informazioni aggiuntive all'utente quando lo stato di registrazione è MBIMRegisterStatePartner o MBIMRegisterStateRoaming. Questo membro è facoltativo. |
40 | 4 | RoamingTextSize | SIZE(0..126) | Dimensioni, in byte, per RoamingText. |
44 | 4 | RegistrationFlag | MBIM_REGISTRATION_FLAGS | Flag impostati per tabella 10-48 nella revisione 1.0 della specifica MBIM. |
48 | 4 | PreferredDataClass | UINT32 | Bitmap dei valori in MBIM_DATA_CLASS che rappresentano le classi di dati abilitate nel dispositivo. Il dispositivo può funzionare solo usando le classi di dati abilitate. |
Dynamic | 4 | DataBuffer | DATABUFFER | Buffer di dati contenente ProviderId, ProviderName e RoamingText. |
Eventi non richiesti
Le notifiche contengono una struttura MBIM_REGISTRATION_STATE_INFO_V2.
Codici di stato
Questo CID usa solo codici di stato generici definiti nella sezione 9.4.5 della revisione 1.0 della specifica MBIM.
MBIM_CID_PACKET_SERVICE
Questo comando è un'estensione per il MBIM_CID_PACKET_SERVICE esistente definito nella revisione 1.0 della specifica MBIM.
Questa estensione aggiunge un nuovo membro denominato FrequencyRange per la struttura di risposta e ha rinominato il membro HighestAvailableDataClass in CurrentDataClass per chiarire lo scopo.
CurrentDataClass indica la tecnologia di accesso radio (RAT) con cui il dispositivo è attualmente registrato. Contiene un singolo valore da MBIM_DATA_CLASS.
FrequencyRange indica l'intervallo di frequenza attualmente utilizzato dal dispositivo. Questo valore è valido solo se il campo CurrentDataClass indica che è impostato il bit MBIMDataClass5G_NSA o MBIMDataClass5G_SA.
Parametri
Operazione | Set | Query | Notifica |
---|---|---|---|
Comando | MBIM_SET_PACKET_SERVICE | Empty | Non applicabile |
Risposta | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 |
Query
InformationBuffer è null e InformationBufferLength è zero.
Set
Le informazioni per i comandi set sono descritte nella revisione 1.0 della specifica MBIM.
Risposta
InformationBuffer in MBIM_COMMAND_DONE contiene una struttura MBIM_PACKET_SERVICE_INFO_V2. Rispetto alla struttura MBIM_PACKET_SERVICE_INFO definita nella sezione 10.5.10.6 della revisione 1.0 della specifica MBIM, questa nuova struttura include i campi CurrentDataClass e FrequencyRange . A meno che non sia indicato qui, le descrizioni dei campi nella tabella 10-55 della revisione della specifica MBIM 1.0 si applicano qui.
MBIM_PACKET_SERVICE_INFO_V2
Offset | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Errore specifico della rete. La tabella 10-44 nella revisione della specifica MBIM 1.0 documenta i codici di causa per NwError. |
4 | 4 | PacketServiceState | MBIM_PACKET_SERVICE_STATE | Vedere la tabella 10-53 nella revisione della specifica MBIM 1.0. |
8 | 4 | CurrentDataClass | MBIM_DATA_CLASS | Classe di dati corrente nella cella corrente, specificata in base MBIM_DATA_CLASS. Le funzioni devono impostare questo membro su MBIMDataClassNone se la funzione non è nello stato del servizio pacchetti collegato. Ad eccezione di HSPA (in altre parole, HSUPA e HSDPA) e controller di dominio 5G, la funzione imposta questo membro su un singolo valore MBIM_DATA_CLASS. Per i servizi dati HSPA, le funzioni specificano un OR bit per bit di MBIMDataClass HSDPA e MBIMDataClassHSUPA. Per le celle che supportano HSDPA ma non HSUPA, viene indicato solo HSDPA (implicando la classe di dati UMTS per i dati uplink). Ogni volta che cambia la classe di dati corrente, le funzioni inviano una notifica che indica il nuovo valore di CurrentDataClass. |
12 | 8 | UplinkSpeed | UINT64 | Contiene la velocità di bit uplink, espressa in bit al secondo. |
20 | 8 | DownlinkSpeed | UINT64 | Contiene la velocità di bit downlink, espressa in bit al secondo. |
38 | 4 | FrequencyRange | MBIM_FREQUENCY_RANGE | Maschera di bit dei valori in MBIM_FREQUENCY_RANGE che rappresenta gli intervalli di frequenza attualmente usati dal dispositivo. Questa opzione è valida solo se CurrentDataClass è MBIMDataClass5G_NSA o MBIMDataClass5G_SA. |
MBIM_FREQUENCY_RANGE
L'enumerazione seguente viene utilizzata come valore nella struttura MBIM_PACKET_SERVICE_INFO_V2 precedente.
Type | Value | Descrizione |
---|---|---|
MBIMFrequencyRangeUnknown | 0 | Se il tipo di sistema non è 5G. |
MBIMFrequencyRange1 | 1 | Intervallo di frequenza 1 (FR1) in 3GPP TS 38.101-1 (sub-6G). |
MBIMFrequencyRange2 | 2 | FR2 in 3GPP TS 38.101-2 (mmWave). |
MBIMFrequencyRange1AndRange2 | 3 | Se entrambi i vettori FR1 e FR2 sono connessi. |
Eventi non richiesti
Le notifiche contengono una struttura di MBIM_PACKET_SERVICE_INFO_V2.
Codici di stato
Questo CID usa solo codici di stato generici definiti nella sezione 9.4.5 della revisione della specifica MBIM 1.0.
MBIM_CID_SIGNAL_STATE
Questo CID è un'estensione per MBIM_CID_SIGNAL_STATE, introducendo RSRP e SNR per i criteri di stato del segnale. Questa nuova estensione è valida solo se il dispositivo indica il supporto delle estensioni MBIM versione 2.0. Questa estensione è obbligatoria se il modem supporta le classi di dati MBIMDataClass5G_(N)SA.
I campi RSRP e SNR sono validi solo se SystemType corrispondente è MGBIMDataClassLTE o MBIMDataClass5G_(N)SA. SE il modem segnala RSRP e/o SNR, il campo RSSI deve essere impostato su un valore pari a 99.
Se systemType corrispondente è MBIMDataClass5G_(N)SA, il campo RSRP è obbligatorio e il campo SNR è facoltativo. Se systemType corrispondente è MBIMDataClassLTE, i campi RSRP e SNR sono facoltativi e il campo RSSI può essere usato. In questo caso, i campi RSRP e SNR possono essere omessi impostando un valore zero (0) per entrambi i membri RsrpSnrOffset e RsrpSnrSize .
Parametri
Operazione | Set | Query | Notifica |
---|---|---|---|
Comando | MBIM_SET_SIGNAL_STATE | Empty | Non applicabile |
Risposta | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 |
Query
InformationBuffer è null e InformationBufferLength è zero.
Set
Le informazioni per i comandi set sono descritte nella revisione della specifica MBIM 1.0.
Risposta
InformationBuffer in MBIM_COMMAND_DONE contiene la struttura di MBIM_SIGNAL_STATE_INFO_V2 seguente.
MBIM_SIGNAL_STATE_INFO_V2
Offset | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 4 | Rssi | UINT32 | Vedere Tabella 10.58 nella revisione della specifica MBIM 1.0. |
4 | 4 | ErrorRate | UINT32 | Vedere Tabella 10.58 nella revisione della specifica MBIM 1.0. |
8 | 4 | SignalStrengthInterval | UINT32 | Intervallo di report, in secondi. |
12 | 4 | RssiThreshold | UINT32 | Differenza nei valori codificati RSSI che attivano un report. Usare 0xFFFFFFFF se non importa. |
16 | 4 | ErrorRateThreshold | UINT32 | Differenza nei valori codificati di ErrorRate che attivano un report. Usare 0xFFFFFFFF se non importa. |
20 | 4 | RsrpSnrOffset | OFFSET | Offset in byte, calcolato dall'inizio di questa struttura, al buffer contenente informazioni di segnalazione RSRP e SNR. Questo membro può essere NULL quando non sono disponibili informazioni di segnalazione RSRP e SNR. |
24 | 4 | RsrpSnrSize | SIZE | Dimensioni, in byte, del buffer contenente le informazioni di segnalazione RSRP e SNR nel formato di una struttura MBIM_RSRP_SNR_INFO. |
4 | DataBuffer | DATABUFFER | Struttura MBIM_RSRP_SNR. |
MBIM_RSRP_SNR
La struttura di MBIM_RSRP_SNR seguente viene usata nella struttura DataBuffer di una struttura di MBIM_SIGNAL_STATE_INFO_V2.
Offset | Dimensione | Campo | Tipo | Descrizione |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Numero di voci RSRP_SNR che seguono questo elemento. |
4 | 4 | DataBuffer | DATABUFFER | Matrice di record RSRP_SNR, ognuno specificato come struttura MBIM_RSRP_SNR_INFO. |
MBIM_RSRP_SNR_INFO
Una matrice delle strutture di MBIM_RSRP_SNR_INFO seguenti viene usata nella struttura DataBuffer di una struttura di MBIM_RSRP_SNR.
Offset | Dimensioni> | Campo | Tipo | Descrizione | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4 | RSRP | UINT32 |
|
||||||||||||||||||||||
4 | 4 | SNR | UINT32 |
|
||||||||||||||||||||||
8 | 4 | RSRPThreshold | UINT32 | Definisce la soglia tra il valore RSRP precedente (memorizzato nella cache) e il valore RSRP appena calcolato. Se la differenza assoluta è maggiore del valore soglia, il dispositivo attiva un evento non richiesto. L'unità è 1 dBm. Se impostato su zero, usare il comportamento predefinito nella funzione del dispositivo. Se impostato su 0xFFFFFFFF, non usarlo per attivare l'evento. Se il valore soglia specificato non è supportato dal dispositivo, restituisce il valore di soglia massimo supportato. | ||||||||||||||||||||||
12 | 4 | SNRThreshold | UINT32 | Definisce la soglia tra il valore SNR precedente (memorizzato nella cache) e il valore SNR appena calcolato. Se la differenza assoluta è maggiore del valore soglia, il dispositivo attiva un evento non richiesto. L'unità è 1 dB. Se impostato su zero, usare il comportamento predefinito nella funzione del dispositivo. Se impostato su 0xFFFFFFFF, non usarlo per attivare l'evento. Se la soglia specificata non è supportata dal dispositivo, restituisce il valore massimo soglia supportato. | ||||||||||||||||||||||
16 | 4 | SystemType | MBIM_DATA_CLASS | Indica il tipo di sistema per cui le informazioni sullo stato del segnale sono valide. Questo membro è un bitmask di un tipo definito in MBIM_DATA_CLASS. |
Eventi non richiesti
Le notifiche contengono una struttura MBIM_SIGNAL_STATE_INFO_V2.
Codici di stato
Questo CID usa solo codici di stato generici definiti nella sezione 9.4.5 della revisione della specifica MBIM 1.0.
Calcolo della barra di segnale LTE
Il sistema operativo elabora le impostazioni del Registro di sistema per i calcoli di forza del segnale nell'ordine seguente:
Dataclass è CDMA (o la relativa variante) o TDSCDMA
- Se esiste una tabella di mapping della barra di segnale legacy in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra di segnale legacy in "per_device", usare questa impostazione.
- In caso contrario, usare la tabella di mapping della barra di segnale predefinita nel codice.
Dataclass è GSM o WCDMA
- Se esiste una tabella di mapping a barre di segnale specifica della tecnologia GSM o WCDMA in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping a barre di segnale specifica della tecnologia GSM o WCDMA in "per_device", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra di segnale legacy in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra di segnale legacy in "per_device", usare questa impostazione.
- In caso contrario, usare la tabella di mapping della barra di segnale predefinita nel codice.
- RSSI >= 17; 5 barre
- RSSI >= 12; 4 barre
- RSSI >= 7; 3 barre
- RSSI >= 4; 2 barre
- RSSI >= 2; 1 barre
- Altro; 0 barre
Dataclass è LTE e RSRP viene segnalato dal modem
- Se esiste una tabella di mapping della barra di segnale specifica per LTE per RSRP in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra di segnale specifica per LTE per RSRP in "per_device", usare questa impostazione.
- In caso contrario, usare la tabella predefinita di mapping della barra dei segnali LTE RSRP nel codice.
Nota
Se EnableLTESnrReporting è abilitato ma non è presente alcuna tabella SNR per la segnalazione LTE o SNR dal modem, viene utilizzato solo RSRP. In caso contrario, il meglio di RSRP o SNR viene convertito in barre di segnale.
Dataclass è LTE e RSSI viene segnalato dal modem
- Se esiste una tabella di mapping della barra dei segnali specifica per la tecnologia LTE in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra dei segnali specifica della tecnologia LTE in "per_device", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra dei segnali legacy in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra dei segnali legacy in "per_device", usare questa impostazione.
- In caso contrario, usare la tabella di mapping della barra dei segnali predefinita nel codice.
Dataclass è NR
- Se esiste una tabella di mapping della barra dei segnali specifica per la tecnologia NR per RSRP in "per_iccid", usare questa impostazione.
- In caso contrario, se esiste una tabella di mapping della barra dei segnali specifica per la tecnologia NR per RSRP in "per_device", usare questa impostazione.
- In caso contrario, usare la tabella di mapping predefinita della barra dei segnali RSRP nel codice.
Nota
Se EnableNRSnrReporting è abilitato, ma non è presente alcuna tabella SNR per la segnalazione NR o SNR dal modem, viene utilizzato solo RSRP. In caso contrario, il meglio di RSRP o SNR viene convertito in barre di segnale.
Dataclass è NSA
- Se EnableLTEReportingOnNSA non è impostato o è impostato su 0:
- Seguire il flusso Nr della classe di dati.
- Se EnableLTEReportingOnNSA è impostato su 1:
- Seguire i flussi LTE dataclass (RSRP o RSSI).
- Se EnableLTEReportingOnNSA è impostato su 2:
- Se FrequencyRange è FR1, seguire i flussi LTE della classe Dataclass (RSRP o RSSI).
- Se FrequencyRange è <> FR1, seguire il flusso Nr della classe Dataclass.
- Se EnableLTEReportingOnNSA è impostato su 3:
- Se FrequencyRange è FR2, seguire i flussi LTE della classe Dataclass (RSRP o RSSI).
- Se FrequencyRange è <> FR2, seguire il flusso Nr della classe Dataclass.
- Se EnableLTEReportingOnNSA è impostato su 4:
- Calcolare la barra dei segnali usando i flussi LTE e NR.
- Selezionare il più sicuro.
Nota
Se il segnale LTE non viene segnalato dal modem in 1-5, viene utilizzato il segnale NR. Se il segnale NR non viene usato, viene applicato il segnale LTE.
Personalizzazioni COSA per il calcolo signalBar
EnableLTEReportingOnNSA:
0 = "Usa segnale 5G"
1 = "Usare il segnale LTE"
2 = "Usare il segnale LTE se camped on 5G frequency range 1"
3 = "Usare il segnale LTE se camped on 5G frequency range 2"
4 = "Usare il segnale più forte di LTE e 5G"
EnableNRSnrReporting:
0 = "Usare solo RSRP"
1 = "Usare sia RSRP che SNR"
EnableLTESnrReporting:
0 = "Usare solo RSRP"
1 = "Usare sia RSRP che SNR"
Cellulare/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare. Le impostazioni specifiche della tecnologia hanno la precedenza. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>
Modificare il valore minimo di potenza del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene accampato su GSM. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>
Modificare il valore minimo di forza del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene accampato in WCDMA. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene campato in LTE. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare, quando il dispositivo viene accampato in LTE. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene campato in LTE. Utilizzato quando EnableLTESnrReporting è impostato su 1. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellulare/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene accampato su 5G. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>
Modificare il valore minimo di intensità del segnale corrispondente al numero di barre da visualizzare quando il dispositivo viene accampato su 5G. Usato quando EnableNRSnrReporting è impostato su 1. Per rendere effettiva questa impostazione, ogni numero di barre deve avere un mapping valido per il livello di intensità del segnale.
<SignalBar> può essere di 1-5 valori.
Se l'OEM/MO non riesce a configurare correttamente la tabella di mapping per RSSI o è incompleta, usare il mapping predefinito:
RSSI | Barre visualizzate |
---|---|
[0,1] | 0 |
[2,3] | 1 |
[4,6] | 2 |
[7,11] | 3 |
[12,16] | 4 |
[17,31] | 5 |
Se l'OEM/MO non riesce a configurare correttamente la tabella di mapping per RSRP o è incompleta, usare il mapping predefinito:
RSRP | Barre visualizzate |
---|---|
[0,16] | 0 |
[17,41] | 1 |
[42,51] | 2 |
[52,61] | 3 |
[62,71] | 4 |
[72,126] | 5 |
Se l'OEM/MO non riesce a configurare correttamente la tabella di mapping per SNR o è incompleta, usare il mapping predefinito:
SNR | Barre visualizzate |
---|---|
[0,18] | 0 |
[19,38] | 1 |
[39,46] | 2 |
[47,53] | 3 |
[54,72] | 4 |
[73,127] | 5 |