Log de modem mb com DSS

Observação

Se você estiver planejando que seu modem dê suporte MBIM_CID_MODEM_LOGGING_CONFIGa , forneça comentários nesta página para que possamos dar melhor suporte a você. No momento, esse CID é experimental e ainda não foi testado com um modem, pois nenhum dá suporte a ele.

Este tópico descreve uma nova interface de log de banda larga móvel (MBB) padrão do Windows por meio de extensões da Microsoft para a especificação USB MBIM 1.0, disponível em Windows 10, versão 1903 e posterior.

Com essa nova interface de log, o sistema operacional pode informar o dispositivo MBB para iniciar, parar e liberar os logs para o sistema de arquivos do sistema operacional por meio de comandos CID do MBIM. Dada a natureza não IP do conteúdo de log do modem, o canal de dados que o serviço MBB usa para transmitir cargas de log para o sistema operacional usa o DSS (Fluxo de Serviço de Dados) MBB. O DSS é definido na especificação do MBIM (Mobile Broadband Interface Model) 1.0 .

O sistema operacional abstrai as funcionalidades e as configurações de diagnóstico do modem em todo o ecossistema MBB com um conjunto de configurações de log MBB específicas do Windows. Essas configurações de log do MBB permitem que o fornecedor de um modem mapeie os requisitos de log do MBB do sistema operacional para as configurações de log internas apropriadas. As configurações de log abstraídas e definidas pelo sistema operacional incluem os níveis de detalhamento de log MBB e o tempo máximo de liberação.

Um modem continua preenchendo seu buffer de log, até o tamanho máximo do buffer, até que o segmento seja preenchido e a estrutura do MBIM transmita o segmento para o sistema operacional ou libere o conteúdo de seu buffer quando o tempo máximo de liberação for atingido (mesmo que o segmento não seja preenchido). O sistema operacional define um conjunto de níveis de configuração de log padrão do Windows MBB, descritos posteriormente neste tópico. Cada nível de configuração especifica uma abstração do sistema operacional de detalhes e detalhamento do registro em log do MBB.

A abstração do sistema operacional dos níveis de configuração do MBB é mapeada para a configuração de modem interno apropriada por modems. O sistema operacional não fornece nenhum conteúdo de configuração adicional, como filtros ou máscaras de log, para modems diferentes do nível de configuração do MBB do sistema operacional.

Para modems que dão suporte ao registro em log MBB, todos os níveis de configuração de log MBB, exceto MBIMLoggingLevelOem, devem estar presentes em todas as variantes do BSP. Em outras palavras, o IHV ou o OEM devem dar suporte aos níveis PROD ou LAB do registro em log MBB nas versões de produção e R&D do BSP. Os níveis de laboratório do registro em log MBB só podem ser desabilitados do sistema operacional.

O design dessa nova interface de registro em log usa o canal de controle para definir os parâmetros de log e usa o canal de dados para receber logs de modem porque o canal de dados foi projetado para transferir dados de modem em massa. A vantagem desse design é que os dados em massa não precisam ser transferidos pelo canal de controle, mantendo assim o desempenho do dispositivo consistente. Ele também é dimensionado bem para uma taxa de transferência mais alta. O canal de dados é operado por comandos DSS. Um fluxo de exemplo para um modem pode ter esta aparência:

  1. O sistema operacional envia o CID MBIM_CID_MODEM_LOGGING_CONFIG para o modem para configurar parâmetros de log, como MaxSegmentSize, MaxFlushTime e LoggingLevel.
  2. Depois que o sistema operacional recebe uma resposta bem-sucedida do modem, ele envia o comando MBIM_CID_DSS_CONNECT DSS para o modem com um GUID específico para registro em log de modem, o estado MBIMDssLinkActivate e uma ID de sessão DSS exclusiva.
  3. Depois de receber um código de status de êxito, o sistema operacional se prepara para receber fragmentos do modem. Esses fragmentos são chamados de pacotes DataServiceSessionRead.
  4. Os pacotes DataServiceSessionRead continuam chegando até que o sistema operacional emita outro comando MBIM_CID_DSS_CONNECT com a mesma ID de sessão DSS e um estado MBIMDSSLinkDeactivate.

Depois que o modem grava todos os logs no canal de dados recém-criado, o modem chama MbbDeviceReceiveDeviceServiceSessionData, cujos dados estão disponíveis para aplicativos por meio da camada WinRT: MobileBroadbandDeviceService. Os logs de modem devem ser formatados como dados de cadeia de caracteres imprimíveis que podem ser redirecionados para uma sessão ETW.

Caminho de dados de registro em log do modem

O registro em log do Moddem usa o DSS (Fluxo de Serviço de Dados) do MBIM para transferir os dados para conteúdos de log. Para obter mais informações sobre o DSS, consulte a Seção 10.5.38 da especificação do MBIM 1.0.

Ao se conectar ou desconectar do DSS, o seguinte GUID é usado para registro em log de modem:

GUID Valor
ModemFileTransfer GUID 0EBB1CEB-AF2D-484D-8DF3-53BC51FD162C

O diagrama de fluxo a seguir ilustra o processo de instalação e desativação do DSS.

Configuração de log do modem DSS e diagrama de fluxo de desativação.

Extensão da interface NDIS

O OID a seguir foi definido em Windows 10, versão 1903, para dar suporte ao log de modem.

Valores de SERVIÇO e CID do 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

A tabela a seguir especifica o UUID e o código de comando para cada CID, bem como se o CID dá suporte a solicitações Set, Query ou Event (notificação). Consulte a Seção individual de cada CID neste tópico para obter mais informações sobre seus parâmetros, estruturas de dados e notificações.

CID UUID Código de comando Set Consulta Notificar
MBIM_CID_MODEM_LOGGING_CONFIG UUID_BASIC_CONNECT_EXTENSIONS TBD Y Y Y

MBIM_CID_MODEM_LOGGING_CONFIG

Esse CID é usado para configurar os logs coletados pelo modem e com que frequência eles serão enviados do modem para o host por DSS. O registro em log deve ser configurado antes que uma sessão de registro em log seja iniciada. Como esse CID faz parte das extensões de conexão, é opcional que os IHVs ofereçam suporte a esse CID. Se um IHV der suporte ao registro em log de modem por meio do canal de dados DSS, ele deverá especificar isso como uma funcionalidade. A funcionalidade pode ser anunciada usando o CID MBIM_BASIC_CID_DEVICE_SERVICES.

Parâmetros

Operação Set Consulta Notification
Comando MBIM_MODEM_LOGGING_CONFIG Não Aplicável Não aplicável
Resposta MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG

Consulta

Consulta a configuração de log do modem atual. O InformationBuffer de MBIM_COMMAND_MSG não é usado. A estrutura de MBIM_MODEM_LOGGING_CONFIG a seguir é usada no InformationBuffer do MBIM_COMMAND_DONE.

MBIM_MODEM_LOGGING_CONFIG

Deslocamento Tamanho Campo Tipo Descrição
0 4 Versão UINT32 O número de versão dessa estrutura. Esse campo deve ser definido como 1 para a versão 1 dessa estrutura.
4 4 MaxSegmentSize UINT32 Especifica o tamanho do segmento, em quilobytes, para cada fragmento enviado pelo modem. Se o tamanho máximo do fragmento compatível com o modem para Comando de Serviço de Dispositivo exceder o valor definido, esse valor será definido como o tamanho máximo do segmento com suporte.
8 4 MaxFlushTime UINT32 A hora, em milissegundos, indicando o tempo máximo que o modem aguarda antes de enviar um fragmento de log. Se os logs coletados não atingirem MaxSegmentSize dentro da duração MaxFlushTime desde o último fragmento de log enviado, um fragmento de log será enviado independentemente de seu tamanho. Se não houver dados de registro em log, nenhuma notificação será enviada. Se o dispositivo não puder lidar com tempos de liberação menores, o dispositivo retornará o tempo que ele pode manipular na resposta. A resposta a uma consulta ou conjunto contém o MaxFlushTime configurado no momento.
12 4 LevelConfig MBIM_LOGGING_LEVEL_CONFIG Configura o nível para o qual os logs são coletados. A resposta a uma consulta ou conjunto contém o LevelConfig configurado no momento.

Observação

Se o modem não puder fornecer dados de log para o sistema operacional no MaxSegmentSize e MaxFlushTimer solicitados, ele poderá escolher seus próprios valores para esses parâmetros e atualizar o sistema operacional como uma resposta definida ou um evento não solicitado. O comportamento do sistema operacional não será alterado se MaxSegmentSize ou MaxFlushTimer forem alterados, pois ele receberá os pacotes de dados independentemente e os despejará em um arquivo.

A enumeração MBIM_LOGGING_LEVEL_CONFIG a seguir é usada na estrutura de MBIM_MODEM_LOGGING_CONFIG anterior.

Tipo Valor Descrição
MBIMLoggingLevelProd 0 Destinado à coleta de telemetria de uma população de varejo ou produção. O log resultante deve ser do tamanho de cápsula e contém apenas o modem de chave ou o estado MBB ou informações de falha.
MBIMLoggingLevelLabVerbose 1 Destinado ao desenvolvimento de produtos MBB com baixa maturidade. Captura detalhada de pilha completa de modems. A captura de modem resultante deve habilitar o IHV para reproduzir e recuperar totalmente a captura durante o log.
MBIMLoggingLevelLabMedium 2 Destinado à verificação e teste de campo de produtos MBB com maturidade e estabilidade relativas. O nível de detalhes e detalhamento fornece pontos de dados suficientes para os engenheiros de IHV fazer a triagem da maioria das falhas de MBB.
MBIMLoggingLevelLabLow 3 Destinado ao registro em log no nível de auto-host. Captura em nível de resumo de modems de captura de pilha completa. Habilita uma compreensão em nível de realce do estado do modem e das interações do sistema operacional.
MBIMLoggingLevelOem 4 Reservado para uso interno de OEM e IHV.

Set

Um comando set é usado para definir para configurar o nível, o tamanho do segmento e o tempo máximo de liberação para registro em log de modem. Uma estrutura MBIM_MODEM_LOGGING_CONFIG é usada no InformationBuffer.

Resposta

O InformationBuffer no MBIM_COMMAND_DONE contém uma estrutura MBIM_MODEM_LOGGING_CONFIG.

Eventos não solicitados

Eventos não solicitados têm suporte para cenários em que o modem precisa informar o sistema operacional sobre alterações internas. Atualmente, no Windows 10, versão 1903, esses cenários não ocorrem.

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.

Comportamento da sessão DSS durante a inatividade

A tabela a seguir descreve como a sessão DSS se comporta durante vários estágios de inatividade:

Cenário Estado da sessão DSS
Suspensão do sistema, suspensão somente modem, redefinição e recuperação Sessão DSS mantida aberta
Desligamento do sistema, reinicialização, hibernação Sessão do DSS fechada