MBIMEx 2.0 – Suporte à NSA 5G
Como a especificação errata do MBIM 1.0 não tem um mecanismo para alterar CIDs existentes com cargas novas ou modificadas, Windows 10, a versão 1903 apresenta a Extensão 2.0 do MBIM 1.0 para estender a interface para dar suporte ao 5G.
Esquema de controle de versão
Observação
Nesta seção, o termo versão MBIMEx refere-se ao número de versão das Extensões do MBIM.
O host aprende a versão MBIMEx de um dispositivo de duas maneiras:
- O DESCRITOR FUNCIONAL ESTENDIDO DO MBIM.
- A mensagem opcional MBM_CID_VERSION, se o dispositivo der suporte a ela e declarar suporte para ela.
Se esses dois forem diferentes, a versão superior dita a versão MBIMEx durante a duração em que o dispositivo permanece enumerado para o host. A versão mais alta do MBIMEx é conhecida como a versão anunciada do MBIMEx do dispositivo. A versão anunciada do MBIMEx de um dispositivo pode ser inferior à sua versão nativa do MBIMEx, que é a versão mais alta do MBIMEx à qual o dispositivo dá suporte. Os dispositivos podem aprender a versão MBIMEx do host explicitamente apenas por meio da mensagem MBIM_CID_VERSION.
Em qualquer versão, o host sempre consulta o dispositivo por serviços e CIDs com suporte usando MBIM_CID_DEVICE_SERVICES no início da sequência de inicialização do dispositivo.
Se um dispositivo der suporte a MBIM_CID_VERSION e anunciar seu suporte na resposta de consulta MBIM_CID_DEVICE_SERVICES, um host que não entende MBIM_CID_VERSION ou tem uma versão MBIMEx inferior a 2.0 o ignora. Enquanto isso, um host que entende MBIM_CID_VERSION e tem uma versão nativa do MBIMEx 2.0 ou superior envia uma mensagem MBIM_CID_VERSION para o dispositivo com a versão nativa do MBIMEx do host, e o CID é o primeiro CID enviado ao dispositivo depois de receber a resposta MBIM_CID_DEVICE_SERVICES.
Se o primeiro CID que o dispositivo recebe do host depois de responder à consulta MBIM_CID_DEVICE_SERVICES for MBIM_CID_VERSION, o dispositivo conhecerá a versão MBIMEx do host.
Se o primeiro CID que o dispositivo recebe do host depois de responder à consulta MBIM_CID_DEVICE_SERVICES for qualquer outro CID, o dispositivo assumirá que a versão nativa do MBIMEx do host é 1.0.
Se o dispositivo não der suporte a MBIM_CID_VERSION, ele não responderá à consulta MBIM_CID_DEVICE_SERVICES com MBIM_CID_VERSION. Portanto, o host não enviará uma mensagem MBIM_CID_VERSION e pressupõe que a versão nativa do MBIMEx do dispositivo seja 1.0.
Em termos de recursos, uma versão mais alta do MBIMEx é um superconjunto de todas as versões inferiores do MBIMEx. Um host dá suporte a todos os dispositivos com uma versão anunciada do MBIMEx em ou abaixo da versão nativa do MBIMEx do host. Se a versão anunciada do MBIMEx de um dispositivo for maior do que a versão nativa do MBIMEx de um host, o host não deverá dar suporte ao dispositivo e o comportamento exato do host nessa situação será indefinido.
Um dispositivo que pretende trabalhar com hosts mais antigos deve anunciar inicialmente o MBIMEx versão 1.0 ou a versão mais baixa do MBIMEx do host com a qual o dispositivo se destina a funcionar em um descritor funcional estendido do MBIM.
Se o host enviar MBIM_CID_VERSION com uma versão MBIMEx mais alta do que o dispositivo anunciado inicialmente, o dispositivo deverá indicar uma versão mbIMEx mais alta na resposta MBIM_CID_VERSION até o menor da versão nativa do MBIMEx do host e a versão nativa do MBIMEx do dispositivo.
Observação
Por exemplo, um dispositivo dá suporte ao MBIMEx versão 2.0, mas destina-se a trabalhar com versões mais antigas do sistema operacional que não dão suporte ao MBIMEx 2.0. O dispositivo anuncia inicialmente o MBIMEx versão 1.0 nos descritores USB e anuncia o suporte para o MBIM_CID_VERSION opcional. Quando inserido em um host que executa Windows 10, versão 1803, o host não entende MBIM_CID_VERSION e não envia MBIM_CID_VERSION para o dispositivo. Para o host, a versão MBIMEx do dispositivo é 1.0. O host continua a enviar outros CIDs na sequência de inicialização. Ao receber CIDs diferentes de MBIM_CID_VERSION, o dispositivo sabe que o host dá suporte ao MBIMEx versão 1.0. Ambos os lados continuam em conformidade com o MBIMEx versão 1.0. Posteriormente, quando o mesmo dispositivo é inserido em um host que executa Windows 10, versão 1903 com uma versão nativa do MBIMEx 2.0, o host envia MBIM_CID_VERSION para o dispositivo para informá-lo de que a versão nativa do MBIMEx do host é 2.0. O dispositivo envia MBIM_CID_VERSION novamente em resposta com o MBIMEx anunciado do dispositivo versão 2.0. A partir daí, ambos os lados continuam em conformidade com o MBIMEx versão 2.0.
A tabela a seguir mostra uma matriz de compatibilidade com três hosts hipotéticos e três dispositivos hipotéticos, cada um com sua versão nativa do MBIMEx declarada. Os dispositivos anunciam o MBIMEx versão 1.0 inicialmente no descritor USB. A matriz mostra como cada um dos dispositivos se comporta com cada um dos hosts.
Dispositivo (abaixo) / Host (à direita) | Windows 10, versão 1809 ou anterior (MBIMEx nativo versão 1.0) | Windows 10, versão 1903 e posterior (MBIMEx versão 2.0) |
---|---|---|
Dispositivo 4G MBIMEx nativo versão 1.0 |
O dispositivo anuncia inicialmente o MBIMEx 1.0. Sem troca de MBIM_CID_VERSION. Dispositivo e host compatíveis. Funciona por padrão com o MBIMEx versão 1.0. | O dispositivo anuncia inicialmente o MBIMEx 1.0. Sem troca de MBIM_CID_VERSION. O host funciona com o dispositivo usando MBIMEx 1.0. |
Dispositivo NSA 5G MBIMEx nativo versão 2.0 |
O dispositivo anuncia inicialmente o MBIMEx 1.0. Sem troca de MBIM_CID_VERSION. O dispositivo sabe que o host tem MBIMEx 1.0 e continua com MBIMEx 1.0. | O dispositivo anuncia inicialmente o MBIMEx 1.0. O host envia MBIM_CID_VERSION para informar ao dispositivo que o host dá suporte ao MBIMEx 2.0. O dispositivo responde com MBIMEx 2.0. Ambos os lados prossiga com MBIMEx 2.0. |
A tabela a seguir lista todos os CIDs existentes modificados no MBIMEx versão 2.0 e seus conteúdos modificados. Todas as cargas não mencionadas nesses CIDs e em todos os outros CIDs não mencionados na tabela são transferidas do MBIMEx versão 1.0 e permanecem inalteradas.
CID | Carga útil |
---|---|
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 |
Serviço MBIM
Nome do serviço | UUID | Valor UUID |
---|---|---|
Extensões de conectividade ip básicas da Microsoft | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
MBIM_CID_VERSION
Para drivers MBB que dão suporte à extensão 2.0 ou superior do MBIM da Microsoft, MBIM_CID_VERSION é um comando obrigatório para trocar informações de versão do MBIM entre o host e o dispositivo. Para dispositivos no mercado com drivers que não reconhecem esse CID, o host assumirá e fornecerá compatibilidade com versões anteriores.
O host enviará esse comando como uma consulta se ele tiver suporte do dispositivo. A consulta contém o número de versão do MBIM e o número de versão das Extensões do MBIM aos quais o host atualmente dá suporte.
No lado do dispositivo, o dispositivo ajusta o número de versão do MBIM anunciado e o número de versão das Extensões do MBIM com base nas regras definidas no esquema de controle de versão e, em seguida, envia-os na resposta ao host.
Esse comando é definido no serviço Basic Connect Extensions .
CID | Código de comando | UUID |
---|---|---|
MBIM_CID_VERSION | 15 | 3d01dcc5-fef5-4d05-0d3abef7058e9aaf |
Parâmetros
Operação | Set | Consulta | Notification |
---|---|---|---|
Comando | Não aplicável | MBIM_VERSION_INFO | Não aplicável |
Resposta | Não aplicável | MBIM_VERSION_INFO | Não aplicável |
Consulta
Informa ao dispositivo o número de versão nativo do MBIM do host e o número de versão das Extensões do MBIM. O InformationBuffer contém a seguinte estrutura MBIM_VERSION_INFO.
Deslocamento | Tamanho | Campo | Tipo | Descrição |
---|---|---|---|---|
0 | 2 | bcdMBIMVersion | UINT16 | O número de versão do MBIM do remetente no BCD, com um ponto decimal implícito entre os bits 7 e 8. Por exemplo, 0x0100 == 1.00 == 1.0 . Esta é uma constante little-endian, então os bytes são 0x00, então 0x01. |
2 | 2 | bcdMBIMExtendedVersion | UINT16 | O número de versão de Extensões do MBIM do remetente em BCD, com um ponto decimal implícito entre os bits 7 e 8. Por exemplo, 0x0100 == 1.00 == 1.0 . Esta é uma constante little-endian, então os bytes são 0x00, então 0x01. |
Set
Não aplicável.
Resposta
O MBIM_COMMAND_DONE InformationBuffer contém uma estrutura MBIM_VERSION_INFO.
Eventos não solicitados
Não aplicável.
Códigos de status
Esse CID usa apenas códigos de status genéricos definidos na Seção 9.4.5 da revisão de especificação do MBIM 1.0.
MBIM_CID_MS_DEVICE_CAPS_V2
Esse CID é o mesmo definido em operações multi-SIM do MB, que por si só é uma extensão de MBIM_CID_MS_DEVICE_CAPS conforme definido na Seção 10.5.1 da revisão de especificação do MBIM 1.0. Para extensões do MBIM versão 2.0, há novas classes de dados definidas na tabela MBIM_DATA_CLASS que permitem que o dispositivo relate seus recursos 5G. MBIMDataClass5G_NSA indica que o dispositivo dá suporte à NSA (não autônoma) 5G, definida no 3GPP TS 37.340 e MBIMDataClass5G_SA indica que o dispositivo dá suporte a SA (5G Autônomo), também definido no 3GPP TS 37.340.
Se o dispositivo der suporte a ambas as novas classes de dados, ambos os bits deverão ser definidos.
MBIM_DATA_CLASS
Tipos | Mask |
---|---|
MBIMDataClassNone | 0h |
MBIMDataClassGPRS | 1h |
MBIMDataClassEDGE | 2h |
MBIMDataClassUMTS | 4h |
MBIMDataClassHSDPA | 8h |
MBIMDataClassHSUPA | 10h |
MBIMDataClassLTE | 20h |
MBIMDataClass5G_NSA | 40h |
MBIMDataClass5G_SA | 80h |
Reservado | 100h-8000h |
MBIMDataClass1XRTT | 10000h |
MBIMDataClass1XEVDO | 20000h |
MBIMDataClass1XEVDORevA | 40000h |
MBIMDataClass1XEVDV | 80000h |
MBIMDataClass3XRTT | 100000h |
MBIMDataClass1XEVDORevB | 200000h |
MBIMDataClassUMB | 400000h |
Reservado | 800000-40000000h |
MBIMDataClassCustom | 80000000h |
MBIM_CID_REGISTER_STATE
Esse comando é uma extensão para o CID do MBIM_CID_REGISTER_STATE já definido na revisão de especificação do MBIM 1.0. Essa extensão adiciona um novo membro chamado PreferredDataClasses para a estrutura de resposta.
Parâmetros
Operação | Set | Consulta | Notification |
---|---|---|---|
Comando | MBIM_SET_REGISTRATION_STATE | Vazio | Não aplicável |
Resposta | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 | MBIM_REGISTRATION_STATE_INFO_V2 |
Consulta
O InformationBuffer é nulo e o InformationBufferLength é zero.
Set
Define o estado de registro. As informações são as mesmas descritas na revisão de especificação do MBIM 1.0.
Resposta
O InformationBuffer no MBIM_COMMAND_DONE contém a seguinte estrutura de MBIM_REGISTRATION_STATE_INFO_V2. Em comparação com a estrutura de MBIM_REGISTRATION_STATE_INFO definida na Seção 10.5.10.6 da revisão de especificação do MBIM 1.0, a estrutura a seguir tem um novo campo PreferredDataClasses . A menos que indicado aqui, as descrições de campo na tabela 10-55 da revisão de especificação do MBIM 1.0 se aplicam a essa estrutura.
MBIM_REGISTRATION_STATE_INFO_V2
Deslocamento | Tamanho | Campo | Tipo | Descrição |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Um erro específico da rede. A tabela 10-44 na revisão de especificação do MBIM 1.0 documenta os códigos de causa para NwError. |
4 | 4 | RegisterState | MBIM_REGISTER_STATE | Confira a Tabela 10-46 na revisão de especificação do MBIM 1.0. |
8 | 4 | RegisterMode | MBIM_REGISTER_MODE | Confira a Tabela 10-47 na revisão de especificação do MBIM 1.0. |
12 | 4 | AvailableDataClass | UINT32 | Um bitmap dos valores em MBIM_DATA_CLASS que representa as classes de dados com suporte na rede registrada, para a célula na qual o dispositivo está registrado. Esse valor será definido como MBIMDataClassNone se o RegisterState não for MBIMRegisterStateHome, MBIMRegisterStateRoaming ou MBIMRegisterStatePartner. |
16 | 4 | CurrentCellularClass | MBIM_CELLULAR_CLASS | Indica a classe celular atual em uso para uma função de vários modos. Confira a Tabela 10-8 na revisão de especificação do MBIM 1.0 para obter mais informações. Para uma função de modo único, isso é o mesmo que a classe celular relatada em MBIM_CID_DEVICE_CAPS. Para funções de vários modos, uma transição de CDMA para GSM ou vice-versa é indicada com uma CurrentCellularClass atualizada. |
20 | 4 | ProviderIdOffset | OFFSET | O deslocamento em bytes, calculado desde o início dessa estrutura, para uma cadeia de caracteres numérica (0-9) chamada ProviderId que representa a identidade do provedor de rede. Para redes baseadas em GSM, essa cadeia de caracteres é uma concatenação de um MCC (Mobile Country Code) de três dígitos e um MNC (Código de Rede Móvel) de dois ou três dígitos. As operadoras baseadas em GSM podem ter mais de um MNC e, portanto, mais de um ProviderId. Para redes baseadas em CDMA, essa cadeia de caracteres é uma SID (ID do Sistema) de cinco dígitos. Geralmente, uma operadora baseada em CDMA tem mais de um SID. Normalmente, uma transportadora tem um SID para cada mercado que geralmente é dividido geograficamente dentro de uma nação por regulamentos, como áreas estatísticas metropolitanas (MSA) no Estados Unidos. Os dispositivos baseados em CDMA devem especificar MBIM_CDMA_DEFAULT_PROVIDER_ID se essas informações não estiverem disponíveis. Ao processar uma solicitação de consulta e o estado de registro estiver no modo de registro automático, esse membro contém a ID do provedor à qual o dispositivo está associado no momento (se aplicável). Quando o estado de registro está no modo de registro manual, esse membro contém a ID do provedor à qual o dispositivo é solicitado a registrar (mesmo que o provedor não esteja disponível). Ao processar uma solicitação definida e o estado de registro estiver no modo manual, isso contém a ID do provedor selecionada pelo host com o qual registrar o dispositivo. Quando o estado de registro está no modo de registro automático, esse parâmetro é ignorado. Os provedores CDMA 1xRTT devem ser definidos como MBIM_CDMA_DEFAULT_PROVIDER_ID se a ID do provedor não estiver disponível. |
24 | 4 | ProviderIdSize | SIZE(0..12) | O tamanho, em bytes, para ProviderId. |
28 | 4 | ProviderNameOffset | OFFSET | O deslocamento em bytes, calculado desde o início dessa estrutura, para uma cadeia de caracteres chamada ProviderName que representa o nome do provedor de rede. Esse membro é limitado a, no máximo, caracteres MBIM_PROVIDERNAME_LEN. Para redes baseadas em GSM, se a Apresentação Preferencial de Iniciais de País e o Nome da Rede Móvel (PCCI&N) tiver mais de vinte caracteres, o dispositivo deverá abreviar o nome da rede. Esse membro é ignorado quando o host define a lista de provedores preferenciais. Os dispositivos devem especificar uma cadeia de caracteres NULL para dispositivos que não têm essas informações. |
32 | 4 | ProviderNameSize | SIZE(0..40) | O tamanho, em bytes, para ProviderName. |
36 | 4 | RoamingTextOffset | OFFSET | O deslocamento em bytes, calculado desde o início dessa estrutura, para uma cadeia de caracteres chamada RoamingText para informar a um usuário que o dispositivo está em roaming. Esse membro é limitado a, no máximo, 63 caracteres. Esse texto deve fornecer informações adicionais ao usuário quando o estado de registro for MBIMRegisterStatePartner ou MBIMRegisterStateRoaming. Esse membro é opcional. |
40 | 4 | RoamingTextSize | SIZE(0..126) | O tamanho, em bytes, para RoamingText. |
44 | 4 | RegistrationFlag | MBIM_REGISTRATION_FLAGS | Sinalizadores definidos por Tabela 10-48 na revisão de especificação do MBIM 1.0. |
48 | 4 | PreferredDataClass | UINT32 | Um bitmap dos valores em MBIM_DATA_CLASS que representam as classes de dados habilitadas no dispositivo. O dispositivo só pode operar usando as classes de dados que estão habilitadas. |
Dinâmico | 4 | DataBuffer | DATABUFFER | O buffer de dados que contém ProviderId, ProviderName e RoamingText. |
Eventos não solicitados
As notificações contêm uma estrutura MBIM_REGISTRATION_STATE_INFO_V2.
Códigos de status
Esse CID usa apenas códigos de status genéricos definidos na Seção 9.4.5 da revisão de especificação do MBIM 1.0.
MBIM_CID_PACKET_SERVICE
Esse comando é uma extensão para o MBIM_CID_PACKET_SERVICE existente definido na revisão de especificação do MBIM 1.0.
Essa extensão adiciona um novo membro chamado FrequencyRange para a estrutura de resposta e renomeou o membro HighestAvailableDataClass como CurrentDataClass para esclarecer sua finalidade.
CurrentDataClass indica a RAT (Radio Access Technology) com a qual o dispositivo está registrado no momento. Ele contém um único valor de MBIM_DATA_CLASS.
O FrequencyRange indica o intervalo de frequência que o dispositivo está usando no momento. Isso só será válido se o campo CurrentDataClass indicar que o MBIMDataClass5G_NSA ou MBIMDataClass5G_SA bit está definido.
Parâmetros
Operação | Set | Consulta | Notification |
---|---|---|---|
Comando | MBIM_SET_PACKET_SERVICE | Vazio | Não aplicável |
Resposta | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 | MBIM_PACKET_SERVICE_INFO_V2 |
Consulta
O InformationBuffer é nulo e o InformationBufferLength é zero.
Set
As informações para comandos set são descritas na revisão de especificação do MBIM 1.0.
Resposta
O InformationBuffer no MBIM_COMMAND_DONE contém uma estrutura MBIM_PACKET_SERVICE_INFO_V2. Em comparação com a estrutura de MBIM_PACKET_SERVICE_INFO definida na Seção 10.5.10.6 da revisão de especificação do MBIM 1.0, essa nova estrutura tem os campos CurrentDataClass e FrequencyRange . A menos que indicado aqui, as descrições de campo na Tabela 10-55 da revisão de especificação do MBIM 1.0 se aplicam aqui.
MBIM_PACKET_SERVICE_INFO_V2
Deslocamento | Tamanho | Campo | Tipo | Descrição |
---|---|---|---|---|
0 | 4 | NwError | UINT32 | Um erro específico da rede. A tabela 10-44 na revisão de especificação do MBIM 1.0 documenta os códigos de causa para NwError. |
4 | 4 | PacketServiceState | MBIM_PACKET_SERVICE_STATE | Consulte a Tabela 10-53 na revisão de especificação do MBIM 1.0. |
8 | 4 | CurrentDataClass | MBIM_DATA_CLASS | A classe de dados atual na célula atual, especificada de acordo com MBIM_DATA_CLASS. As funções devem definir esse membro como MBIMDataClassNone se a função não estiver no estado do serviço de pacote anexado. Exceto para HSPA (em outras palavras, HSUPA e HSDPA) e DC 5G, a função define esse membro como um único valor MBIM_DATA_CLASS. Para serviços de dados HSPA, as funções especificam um OR bit a bit de MBIMDataClass HSDPA e MBIMDataClassHSUPA. Para células que dão suporte a HSDPA, mas não HSUPA, apenas HSDPA é indicado (implicando a classe de dados UMTS para dados de uplink). Sempre que a classe de dados atual é alterada, as funções enviam uma notificação indicando o novo valor de CurrentDataClass. |
12 | 8 | UplinkSpeed | UINT64 | Contém a taxa de bits de uplink, em bits por segundo. |
20 | 8 | DownlinkSpeed | UINT64 | Contém a taxa de bits de downlink, em bits por segundo. |
38 | 4 | FrequencyRange | MBIM_FREQUENCY_RANGE | Uma máscara de bits de valores em MBIM_FREQUENCY_RANGE que representa os intervalos de frequência que o dispositivo está usando no momento. Isso só será válido se CurrentDataClass for MBIMDataClass5G_NSA ou MBIMDataClass5G_SA. |
MBIM_FREQUENCY_RANGE
A enumeração a seguir é usada como um valor na estrutura MBIM_PACKET_SERVICE_INFO_V2 anterior.
Tipo | Valor | Descrição |
---|---|---|
MBIMFrequencyRangeUnknown | 0 | Se o tipo de sistema não for 5G. |
MBIMFrequencyRange1 | 1 | Intervalo de frequência 1 (FR1) em 3GPP TS 38.101-1 (Sub-6G). |
MBIMFrequencyRange2 | 2 | FR2 em 3GPP TS 38.101-2 (mmWave). |
MBIMFrequencyRange1AndRange2 | 3 | Se as operadoras FR1 e FR2 estiverem conectadas. |
Eventos não solicitados
As notificações contêm uma estrutura MBIM_PACKET_SERVICE_INFO_V2.
Códigos de status
Esse CID usa apenas códigos de status genéricos definidos na Seção 9.4.5 da revisão de especificação do MBIM 1.0.
MBIM_CID_SIGNAL_STATE
Esse CID é uma extensão para MBIM_CID_SIGNAL_STATE, introduzindo RSRP e SNR para critérios de estado de sinal. Essa nova extensão só será válida se o dispositivo indicar suporte a Extensões do MBIM versão 2.0. Essa extensão será obrigatória se o modem der suporte a classes de dados MBIMDataClass5G_(N)SA.
Os campos RSRP e SNR só serão válidos se o SystemType correspondente for MGBIMDataClassLTE ou MBIMDataClass5G_(N)SA. Se o modem relatar RSRP e/ou SNR, o campo RSSI será definido como um valor de 99.
Se o SystemType correspondente for MBIMDataClass5G_(N)SA, o campo RSRP será obrigatório e o campo SNR será opcional. Se o SystemType correspondente for MBIMDataClassLTE, os campos RSRP e SNR serão opcionais e o campo RSSI poderá ser usado. Nesse caso, os campos RSRP e SNR podem ser omitidos definindo um valor zero (0) para os membros RsrpSnrOffset e RsrpSnrSize .
Parâmetros
Operação | Set | Consulta | Notification |
---|---|---|---|
Comando | MBIM_SET_SIGNAL_STATE | Vazio | Não aplicável |
Resposta | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 | MBIM_SIGNAL_STATE_INFO_V2 |
Consulta
O InformationBuffer é nulo e o InformationBufferLength é zero.
Set
As informações para comandos set são descritas na revisão de especificação do MBIM 1.0.
Resposta
O InformationBuffer no MBIM_COMMAND_DONE contém a seguinte estrutura de MBIM_SIGNAL_STATE_INFO_V2.
MBIM_SIGNAL_STATE_INFO_V2
Deslocamento | Tamanho | Campo | Tipo | Descrição |
---|---|---|---|---|
0 | 4 | Rssi | UINT32 | Confira a Tabela 10.58 na revisão de especificação do MBIM 1.0. |
4 | 4 | ErrorRate | UINT32 | Confira a Tabela 10.58 na revisão de especificação do MBIM 1.0. |
8 | 4 | SignalStrengthInterval | UINT32 | O intervalo de relatórios, em segundos. |
12 | 4 | RssiThreshold | UINT32 | A diferença nos valores codificados em RSSI que dispara um relatório. Use 0xFFFFFFFF se isso não importar. |
16 | 4 | ErrorRateThreshold | UINT32 | A diferença em Valores codificados errorrate que disparam um relatório. Use 0xFFFFFFFF se isso não importar. |
20 | 4 | RsrpSnrOffset | OFFSET | O deslocamento em bytes, calculado desde o início dessa estrutura, para o buffer que contém informações de sinalização RSRP e SNR. Esse membro pode ser NULL quando nenhuma informação de sinalização RSRP e SNR estiver disponível. |
24 | 4 | RsrpSnrSize | SIZE | O tamanho, em bytes, do buffer que contém as informações de sinalização RSRP e SNR no formato de uma estrutura MBIM_RSRP_SNR_INFO. |
4 | DataBuffer | DATABUFFER | Uma estrutura MBIM_RSRP_SNR. |
MBIM_RSRP_SNR
A estrutura de MBIM_RSRP_SNR a seguir é usada no DataBuffer de uma estrutura MBIM_SIGNAL_STATE_INFO_V2.
Deslocamento | Tamanho | Campo | Tipo | Descrição |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | A contagem de entradas RSRP_SNR que seguem esse elemento. |
4 | 4 | DataBuffer | DATABUFFER | Uma matriz de registros RSRP_SNR, cada um especificado como uma estrutura MBIM_RSRP_SNR_INFO. |
MBIM_RSRP_SNR_INFO
Uma matriz das estruturas de MBIM_RSRP_SNR_INFO a seguir é usada no DataBuffer de uma estrutura de MBIM_RSRP_SNR.
Deslocamento | Tamanho> | Campo | Tipo | Descrição | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4 | RSRP | UINT32 |
|
||||||||||||||||||||||
4 | 4 | SNR | UINT32 |
|
||||||||||||||||||||||
8 | 4 | RSRPThreshold | UINT32 | Define o limite entre o valor RSRP antigo (armazenado em cache) e o valor RSRP calculado recentemente. Se a diferença absoluta for maior que o valor limite, o dispositivo disparará um evento não solicitado. A unidade é 1 dBm. Se definido como zero, use o comportamento padrão na função de dispositivo. Se definido como 0xFFFFFFFF, não use isso para disparar o evento. Se o valor limite fornecido não for compatível com o dispositivo, ele retornará o valor limite máximo que ele dá suporte. | ||||||||||||||||||||||
12 | 4 | SNRThreshold | UINT32 | Define o limite entre o valor SNR antigo (armazenado em cache) e o valor SNR calculado recentemente. Se a diferença absoluta for maior que o valor limite, o dispositivo disparará um evento não solicitado. A unidade é 1 banco de dados. Se definido como zero, use o comportamento padrão na função de dispositivo. Se definido como 0xFFFFFFFF, não use isso para disparar o evento. Se o limite fornecido não for compatível com o dispositivo, ele retornará o valor limite máximo que ele dá suporte. | ||||||||||||||||||||||
16 | 4 | SystemType | MBIM_DATA_CLASS | Indica o tipo de sistema para o qual as informações de estado do sinal são válidas. Esse membro é uma máscara de bits de um tipo, conforme definido em MBIM_DATA_CLASS. |
Eventos não solicitados
As notificações contêm uma estrutura MBIM_SIGNAL_STATE_INFO_V2.
Códigos de status
Esse CID usa apenas códigos de status genéricos definidos na Seção 9.4.5 da revisão de especificação do MBIM 1.0.
Cálculo da barra de sinal LTE
O sistema operacional deve processar as configurações do Registro para cálculos de força de sinal na seguinte ordem:
Dataclass é CDMA (ou sua variante) ou TDSCDMA
- Se existir uma tabela de mapeamento de barra de sinal herdada em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal herdada em "per_device", use essa configuração.
- Caso contrário, use a tabela de mapeamento de barra de sinal padrão no código.
Dataclass é GSM ou WCDMA
- Se houver uma tabela de mapeamento de barra de sinal específica da tecnologia GSM ou WCDMA em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal específica da tecnologia GSM ou WCDMA em "per_device", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal herdada em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal herdada em "per_device", use essa configuração.
- Caso contrário, use a tabela de mapeamento de barra de sinal padrão no código.
- RSSI >= 17; 5 barras
- RSSI >= 12; 4 barras
- RSSI >= 7; 3 barras
- RSSI >= 4; 2 barras
- RSSI >= 2; 1 barras
- Mais; 0 barras
Dataclass é LTE e RSRP é relatado pelo modem
- Se houver uma tabela de mapeamento de barra de sinal específica da tecnologia LTE para RSRP em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal específica da tecnologia LTE para RSRP em "per_device", use essa configuração.
- Caso contrário, use a tabela de mapeamento de barra de sinal RSRP LTE padrão no código.
Observação
Se EnableLTESnrReporting estiver habilitado, mas não houver nenhuma tabela SNR para relatórios LTE ou SNR pelo modem, somente RSRP será usado. Caso contrário, o melhor de RSRP ou SNR é convertido em barras de sinal.
Dataclass é LTE e RSSI é relatado pelo modem
- Se existir uma tabela de mapeamento de barra de sinal específica da tecnologia LTE em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal específica da tecnologia LTE em "per_device", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal herdada em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal herdada em "per_device", use essa configuração.
- Caso contrário, use a tabela de mapeamento de barra de sinal padrão no código.
Dataclass é NR
- Se existir uma tabela de mapeamento de barra de sinal específica da tecnologia NR para RSRP em "per_iccid", use essa configuração.
- Caso contrário, se houver uma tabela de mapeamento de barra de sinal específica da tecnologia NR para RSRP em "per_device", use essa configuração.
- Caso contrário, use a tabela de mapeamento de barra de sinal NR RSRP padrão no código.
Observação
Se EnableNRSnrReporting estiver habilitado, mas não houver nenhuma tabela SNR para relatórios NR ou SNR pelo modem, somente RSRP será usado. Caso contrário, o melhor de RSRP ou SNR é convertido em barras de sinal.
Dataclass é NSA
- Se EnableLTEReportingOnNSA não estiver definido ou estiver definido como 0:
- Siga o fluxo de NR dataclass.
- Se EnableLTEReportingOnNSA estiver definido como 1:
- Siga os fluxos LTE de Dataclass (RSRP ou RSSI).
- Se EnableLTEReportingOnNSA estiver definido como 2:
- Se FrequencyRange for FR1, siga os fluxos LTE da classe de dados (RSRP ou RSSI).
- Se FrequencyRange for <> FR1, siga o fluxo de NR dataclass.
- Se EnableLTEReportingOnNSA estiver definido como 3:
- Se FrequencyRange for FR2, siga os fluxos LTE da classe de dados (RSRP ou RSSI).
- Se FrequencyRange for <> FR2, siga o fluxo de NR dataclass.
- Se EnableLTEReportingOnNSA estiver definido como 4:
- Calcule a barra de sinais usando os fluxos LTE e NR.
- Selecione o mais forte.
Observação
Se o sinal LTE não for relatado pelo modem em 1-5, o sinal de NR será usado. Se o sinal NR não for usado, o sinal LTE será aplicado.
Personalizações de COSA para cálculo do SignalBar
EnableLTEReportingOnNSA:
0 = "Usar sinal 5G"
1 = "Usar sinal LTE"
2 = "Usar o sinal LTE se estiver acampado no intervalo de frequência 5G 1"
3 = "Usar o sinal LTE se acampado no intervalo de frequência 5G 2"
4 = "Usar o sinal mais forte de LTE e 5G"
EnableNRSnrReporting:
0 = "Usar somente RSRP"
1 = "Usar RSRP e SNR"
EnableLTESnrReporting:
0 = "Usar somente RSRP"
1 = "Usar RSRP e SNR"
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas. As configurações específicas da tecnologia têm precedência. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado no GSM. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado no WCDMA. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado no LTE. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado no LTE. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado no LTE. Usado quando EnableLTESnrReporting é definido como 1. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado em 5G. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>
Modifique o valor mínimo de força do sinal correspondente ao número de barras a serem mostradas quando o dispositivo estiver acampado em 5G. Usado quando EnableNRSnrReporting é definido como 1. Cada número de barras precisa ter um mapeamento de força de sinal válido para que essa configuração entre em vigor.
<SignalBar> pode ser de 1 a 5 valores.
Se o OEM/MO não configurar corretamente a tabela de mapeamento para RSSI ou estiver incompleta, use o mapeamento padrão:
RSSI | Barras Exibidas |
---|---|
[0,1] | 0 |
[2,3] | 1 |
[4,6] | 2 |
[7,11] | 3 |
[12,16] | 4 |
[17,31] | 5 |
Se o OEM/MO não configurar corretamente a tabela de mapeamento para RSRP ou estiver incompleta, use o mapeamento padrão:
RSRP | Barras Exibidas |
---|---|
[0,16] | 0 |
[17,41] | 1 |
[42,51] | 2 |
[52,61] | 3 |
[62,71] | 4 |
[72,126] | 5 |
Se o OEM/MO não configurar corretamente a tabela de mapeamento para SNR ou estiver incompleta, use o mapeamento padrão:
SNR | Barras Exibidas |
---|---|
[0,18] | 0 |
[19,38] | 1 |
[39,46] | 2 |
[47,53] | 3 |
[54,72] | 4 |
[73,127] | 5 |