Pular para o conteúdo principal

Modos de Conexão, WLCP e Mobilidade

Visão Geral

Este guia explica os modos de conexão do TWAG, o Protocolo de Controle WLAN (WLCP) e o comportamento de transferência. Ele descreve o que o software OmniTWAG faz hoje. Também marca cada área que é parcial ou ainda não integrada, para que os operadores não planejem em torno de comportamentos que o código não executa.

O TWAG segue o modelo WLAN Confiável na Seção 16 do 3GPP TS 23.402. Para o plano de dados, autenticação e sinalização S2a que esses modos utilizam, veja:

Índice

Visão Geral e Comparação de Modos

O TWAG suporta três modos de conexão para um UE que acessa o EPC através de uma WLAN Confiável. O modo controla como o UE aprende seu endereço IP, se o UE pode sinalizar um APN e se o UE pode manter mais de uma conexão PDN.

PropriedadeTSCMSCMMCM
Código do modo012
Nome completoModo de Conexão Única TransparenteModo de Conexão ÚnicaModo de Múltiplas Conexões
Conexões PDN por UEUmaUmaMuitas
Entrega de endereço IPDHCPEAPEAP / WLCP
Seleção de APN sinalizada pelo UENãoSimSim (por conexão)
Transferência com preservação de IPNãoSimSim
Bearers dedicadosNãoSimSim
Protocolo de controle do UENenhumNenhumWLCP (TS 24.244)
UE ciente do S2aNãoSimSim

TSCM é o modo padrão. TSCM corresponde ao comportamento anterior à Release-12, onde o UE não sinaliza a rede. O TWAG seleciona o APN, cria uma conexão PDN e entrega o endereço IP alocado pelo PGW através do DHCP.

Os códigos de modo 0, 1 e 2 seguem o AVP TWAN-Connection-Mode no 3GPP TS 29.273.

Negociação de Modos

O modo de conexão é negociado durante a autenticação, na troca STa que transporta EAP. Veja Autenticação para o fluxo EAP em si. O design é:

  1. O TWAG anuncia os modos que suporta ao servidor AAA. O conjunto anunciado vem da chave de configuração connection_modes.
  2. O servidor AAA retorna o modo selecionado na resposta STa DEA, no AVP TWAN-Connection-Mode.
  3. Se o servidor AAA não indicar um modo, o TWAG usa TSCM como padrão.

Se o servidor AAA selecionar um modo que o TWAG não suporta, o TWAG reverte. A ordem de fallback prefere TSCM, depois SCM, e por último MCM. O TWAG seleciona o primeiro modo suportado dessa ordem.

O TWAG lê o modo selecionado de qualquer uma dessas chaves na resposta AAA, na seguinte ordem: twan_connection_mode, TWAN-Connection-Mode, connection_mode ou Connection-Mode. O valor pode ser um código numérico (0/1/2) ou um átomo (:tscm/:scm/:mcm). Um valor não reconhecido padrão é TSCM.

No caminho STa, o STa DER anuncia o modo suportado preferido do TWAG no AVP TWAN-Connection-Mode. A leitura do STa DEA analisa o modo negociado e padrão para TSCM quando o DEA não transporta nenhum.

Status: o modo negociado não é aplicado no caminho da sessão ativa. O cliente STa (StaClient) anuncia o modo suportado no DER e lê o modo negociado do DEA. O módulo de modo de conexão está presente e testado unitariamente. No entanto, o caminho de autenticação de passagem STa não é o caminho de autenticação RADIUS ativo, e o cliente ativo nunca aplica o modo negociado: o ponto de entrada store_connection_mode não tem chamador no caminho de anexação, e o caminho de anexação e dados sempre se comporta como TSCM (IP através do DHCP, sem WLCP, sem transferência sinalizada pelo UE ou APN). Hoje, cada sessão ativa segue o caminho TSCM. Veja Status da Implementação.

Modo de Conexão Única Transparente (TSCM)

TSCM é o modo padrão e o comportamento que o caminho da sessão ativa executa hoje. O UE não sinaliza a rede. TSCM é descrito no ciclo de vida da sessão da Arquitetura e é resumido aqui.

No TSCM:

  • O UE mantém uma conexão PDN.
  • O TWAG seleciona o APN. O UE não pode solicitar um APN.
  • O UE recebe seu endereço IP através do DHCP, servido pelo TWAG sobre o túnel GRE. Veja Plano do Usuário.
  • Não há sinalização WLCP.
  • Transferência com preservação de IP, bearers dedicados e seleção de APN sinalizada pelo UE não estão disponíveis.

O TWAG cria a sessão S2a automaticamente após a autenticação. Ele envia uma Solicitação de Criação de Sessão ao PGW com a flag de Indicação de Transferência limpa. Em seguida, pré-aloca o endereço IP atribuído pelo PGW em seu servidor DHCP para o endereço MAC do UE. Veja S2a GTP-C para os detalhes da Criação de Sessão e Sessões para a sessão resultante e seu ciclo de vida de status. A cobrança pela sessão, quando habilitada, segue através do Gy. Veja Cobrança Online (Gy).

Modo de Conexão Única (SCM)

SCM mantém uma única conexão PDN por UE, mas o UE está ciente do S2a. O SCM adiciona essas capacidades sobre o TSCM:

  • O UE recebe seu endereço IP através do EAP, não do DHCP.
  • O UE pode selecionar um APN não padrão.
  • O UE mantém seu endereço IP durante a transferência de 3GPP para WLAN e de WLAN para 3GPP.
  • O PGW pode criar bearers dedicados.

O módulo de modo de conexão relata essas capacidades do SCM. Ele classifica o SCM como um modo que entrega IP através do EAP, suporta transferência, suporta seleção de APN e suporta bearers dedicados.

Status: o SCM ainda não é um caminho de execução distinto. O modelo de capacidade para SCM existe, mas o código de estabelecimento de sessão ainda não ramifica no modo negociado. Um UE que o servidor AAA coloca no SCM ainda é servido através do caminho TSCM (PDN auto-criada, IP através do DHCP). Não confie em IP entregue por EAP ou seleção de APN sinalizada pelo UE para SCM nesta versão.

Modo de Múltiplas Conexões (MCM) e WLCP

O MCM permite que um UE mantenha várias conexões PDN ao mesmo tempo. O UE gerencia cada conexão com o Protocolo de Controle WLAN (WLCP), definido no 3GPP TS 24.244. Após a autenticação, o TWAG não cria automaticamente uma conexão PDN. Em vez disso, o UE envia Solicitações de Conexão PDN WLCP. O TWAG mapeia cada conexão PDN para uma sessão S2a GTP-C separada em direção ao PGW.

Transporte WLCP

O TWAG executa um servidor WLCP na porta UDP 2156, a porta padrão do WLCP. O servidor roteia cada pacote para um manipulador de sessão WLCP por UE, baseado na identidade do UE. O servidor mapeia o IP de origem do UE e a porta para a identidade após a autenticação.

Na produção, a sinalização WLCP é realizada sobre DTLS conforme a Seção 16.1.4A.3.1 do TS 23.402. O servidor atual lida apenas com a camada UDP simples. DTLS ainda não foi aplicado.

Formato da Mensagem WLCP

Cada mensagem WLCP tem um cabeçalho fixo, seguido por uma lista de Elementos de Informação (IEs).

Tipo de Mensagem (1 byte) | Comprimento (2 bytes) | ID da Transação (1 byte) | IEs...

Cada IE tem este formato:

Tipo de IE (1 byte) | Comprimento do IE (2 bytes) | Valor do IE (variável)

O campo Comprimento conta a mensagem completa, incluindo o cabeçalho de 4 bytes.

Tipos de Mensagens WLCP

CódigoMensagemDireçãoPropósito
0x01Solicitação de Conexão PDNUE para TWAGSolicitar uma nova conexão PDN
0x02Aceitação de Conexão PDNTWAG para UEConexão criada, com IP / DNS / QoS
0x03Rejeição de Conexão PDNTWAG para UEConexão recusada, com uma causa
0x04Solicitação de Desconexão PDNUE para TWAGLiberar uma conexão PDN
0x05Aceitação de Desconexão PDNTWAG para UEConexão liberada
0x06Notificação de Dados de DownlinkTWAG para UENotificar o UE sobre dados de downlink pendentes

Elementos de Informação WLCP

CódigoIENotas
0x01APNString do Nome do Ponto de Acesso
0x02Tipo de PDN1 IPv4, 2 IPv6, 3 IPv4v6
0x03PCOOpções de Configuração de Protocolo
0x04Endereço PDNEndereço IP alocado do UE (IPv4, IPv6 ou IPv4v6)
0x05QoS do BearerValores de QCI e MBR / GBR
0x06TFTModelo de Fluxo de Tráfego
0x07CausaValor da causa do resultado
0x08ID do BearerIdentidade do Bearer EPS (EBI)
0x09Endereço DNSUm ou mais endereços de servidor DNS

Valores de Causa WLCP

CódigoCausaSignificado
0x10request_acceptedSolicitação aceita
0x20apn_not_allowedAPN não permitido para este UE
0x21no_resourcesNenhum recurso disponível
0x22unknown_apnAPN desconhecida
0x23user_auth_failedFalha na autenticação do usuário
0x24network_failureFalha na rede (por exemplo, falha no S2a)
0x25pdn_type_not_supportedTipo de PDN solicitado não suportado
0x30request_rejectedSolicitação rejeitada

Configuração da Conexão PDN

Quando uma Solicitação de Conexão PDN chega, o manipulador de sessão WLCP realiza os seguintes passos:

  1. Lê o APN, tipo de PDN e PCO da mensagem. Se o APN estiver ausente, usa internet. Se o tipo de PDN estiver ausente, usa IPv4.
  2. Verifica se o APN é permitido. Veja allowed_apns em Configuração.
  3. Se o UE não tiver um IMSI conhecido, rejeita a solicitação com a causa user_auth_failed.
  4. Cria uma sessão S2a GTP-C em direção ao PGW para aquele APN, com tipo de RAT 3 (WLAN) e a flag de Indicação de Transferência limpa.
  5. Em caso de sucesso, registra o túnel GTP-U e armazena a conexão PDN, com base no EBI. Em seguida, envia uma Aceitação de Conexão PDN com o endereço IP do UE e, quando presente, os servidores DNS, QoS do bearer e EBI.
  6. Em caso de falha no S2a, envia uma Rejeição de Conexão PDN com a causa network_failure.

Desconexão da Conexão PDN

Quando uma Solicitação de Desconexão PDN chega, o manipulador encontra a conexão PDN pelo EBI. Se o EBI for desconhecido, responde com uma Rejeição de Conexão PDN e causa request_rejected. Se o EBI for conhecido, deleta a sessão S2a GTP-C, desregistra o túnel GTP-U, remove a conexão e responde com uma Aceitação de Desconexão PDN. Quando o UE não tiver mais conexões PDN, o manipulador de sessão WLCP para.

Se o PGW deletar um bearer, o manipulador remove a conexão PDN correspondente e libera o túnel GTP-U local. Ele não envia uma Deletar Sessão neste caso, porque o PGW já liberou o bearer.

Derivação de Chave WLCP

A chave WLCP K_WLCP protege a sinalização WLCP. Ela é derivada da Chave de Sessão Mestre (MSK) que a autenticação EAP produz. A derivação segue a Seção 6.2 e o Anexo A do 3GPP TS 33.402.

K_WLCP = HMAC-SHA-256(MSK, FC | P0 | L0)

FC = 0x21
P0 = endereço IP do TWAG (4 bytes para IPv4, 16 bytes para IPv6)
L0 = comprimento de P0 (2 bytes, big-endian)

A saída é de 32 bytes (256 bits). O TWAG vincula a chave ao seu pr��prio endereço IP através do parâmetro P0. Uma variante simplificada deriva a chave da MSK e de um rótulo fixo quando o IP do TWAG ainda não é conhecido.

Status: MCM e WLCP são parciais e não integrados. O codec WLCP, o servidor UDP WLCP, o manipulador de sessão por UE e a derivação de chave existem e são testados unitariamente. Eles não são iniciados pela aplicação e não são acionados pelo fluxo de autenticação. Os seguintes itens não estão implementados:

  • Proteção DTLS para WLCP. Apenas UDP simples é tratado.
  • Gerenciamento de bearer dedicado dentro do MCM. O codec transporta IEs de QoS e TFT, mas o manipulador não atua na criação de bearer dedicado iniciada pelo PGW.
  • Transferência dentro do MCM.
  • A mensagem de Notificação de Dados de Downlink é definida no codec, mas não é gerada pelo manipulador de sessão.

Trate o MCM como uma prévia. Não o habilite para UEs de produção.

Transferência e Mobilidade

O TWAG modela três cenários de mobilidade conforme o TS 23.402. Apenas a mobilidade inter-AP está ativa no caminho da sessão ativa hoje.

Transferência de 3GPP para WLAN

Quando um UE se move de LTE para WiFi, o TWAG deve manter a sessão IP existente. Para fazer isso, o TWAG envia uma Solicitação de Criação de Sessão com a flag de Indicação de Transferência (HI) definida. O PGW então preserva o endereço IP existente e o contexto do bearer, em vez de alocar um novo endereço. Veja S2a GTP-C para os detalhes da Criação de Sessão e do IE de Indicação.

A Solicitação de Criação de Sessão S2a suporta a flag de Indicação de Transferência. O manipulador de transferência pode rotear um evento de entrada de transferência para o processo cliente do UE com a flag de transferência definida.

Status: o caminho da sessão principal não define a flag de transferência. O estabelecimento automático de sessão sempre envia Criação de Sessão com a flag de Indicação de Transferência limpa. Como resultado, a preservação de IP na transferência de 3GPP para WLAN n��o é exercitada pelo caminho de anexação normal nesta versão.

Transferência de WLAN para 3GPP

Quando um UE se move de WiFi para LTE, o PGW envia uma Solicitação de Deletar Bearer. O valor da causa indica uma mudança de RAT. O TWAG trata esses valores de causa como uma transferência de mudança de RAT:

Código de CausaNome
4RAT alterado (3GPP para não-3GPP)
5desativação do ISR
10Acesso alterado de não-3GPP para 3GPP

Em uma Deletar Bearer de mudança de RAT, o TWAG limpa a sessão WiFi localmente. Ele não envia uma Deletar Sessão GTP-C, porque o PGW já liberou o bearer. O UE mantém seu endereço IP no lado LTE.

Status: o manipulador de deletar-bearer não ramifica na causa hoje. O processo cliente do UE lida com uma Deletar Bearer do PGW executando a limpeza local e, em seguida, parando, para qualquer causa. A classificação de mudança de RAT existe como um auxiliar, mas o cliente não usa a causa para escolher um caminho de finalização diferente.

Mobilidade Inter-AP

Quando um UE se move entre APs WiFi dentro do mesmo TWAN, o túnel S2a GTP permanece ativo. O UE mantém a mesma identidade, mas chega com um NAS-IP-Address e Called-Station-Id diferentes. O TWAG atualiza os dados de rastreamento de AP no processo cliente do UE e não finaliza a sessão. Isso mantém o endereço IP do UE estável durante a mudança de AP.

A mobilidade inter-AP é o único caminho de mobilidade que o código da sessão ativa executa. Ele atualiza os campos do processo cliente do UE para NAS-IP e Called-Station-Id, e registra o novo AP no estado de rastreamento de AP. Veja Contabilidade por AP para os dados de rastreamento de AP.

Configuração

Modos de Conexão

Defina os modos que o TWAG anuncia com a chave connection_modes. O valor é uma lista de átomos de modo. O padrão é [:tscm].

config :omnitwag,
# Modos de conexão que este TWAG anuncia ao servidor AAA.
connection_modes: [:tscm, :scm]
ParâmetroTipoRequeridoPadrãoDescrição
connection_modesListaNão[:tscm]Modos que o TWAG anuncia. Use :tscm, :scm e :mcm. A ordem não importa. Os códigos anunciados são ordenados antes do uso.

Nota. O conjunto anunciado é lido pelo módulo de modo de conexão e o cliente STa envia o modo preferido no STa DER. O caminho da sessão RADIUS ativa ainda não age no modo negociado. Veja Status da Implementação. Mantenha o padrão [:tscm] para produção até que SCM e MCM sejam integrados.

Servidor WLCP (MCM)

As configurações do servidor WLCP estão sob a chave :wlcp. O servidor WLCP é relevante apenas para MCM.

config :omnitwag,
wlcp: %{
enabled: true,
port: 2156,
allowed_apns: :all
}
ParâmetroTipoRequeridoPadrãoDescrição
enabledBooleanoNãofalseHabilitar o servidor WLCP. Deixe false a menos que você teste o MCM.
portInteiroNão2156Porta UDP para WLCP. 2156 é a porta padrão do WLCP.
allowed_apnsÁtomo ou ListaNão:allLista de permissão de APN para solicitações PDN WLCP. Use :all para permitir todos os APNs, ou uma lista de strings de APN, por exemplo, ["internet", "ims"]. Uma solicitação para um APN não na lista é rejeitada com a causa apn_not_allowed.

Nota. O servidor WLCP não é iniciado pelo supervisor da aplicação nesta versão. A chave enabled é definida para uso futuro.

Configuração Relacionada

O caminho de configuração da PDN do MCM reutiliza as configurações GTP para suas sessões S2a. Veja o resumo de configuração da Arquitetura para o bloco gtp, incluindo pgw_ip, local_ip, mcc e mnc.

Observabilidade

O servidor WLCP e os manipuladores de sessão emitem eventos de telemetria. Esses eventos alimentam o pipeline de métricas. Veja Métricas para o catálogo de métricas.

Evento de TelemetriaEmitido quando
[:wlcp, :packet, :received]Um pacote WLCP chega. Transporta bytes.
[:wlcp, :packet, :malformed]Um pacote falha ao decodificar.
[:wlcp, :packet, :unregistered]Um pacote chega de um endereço de origem não mapeado.
[:wlcp, :pdn, :request]Uma Solicitação de Conexão PDN é recebida.
[:wlcp, :pdn, :accept]Uma conexão PDN é estabelecida.
[:wlcp, :pdn, :reject]Uma conexão PDN é rejeitada. Transporta a causa.
[:wlcp, :pdn, :disconnect_request]Uma Solicitação de Desconexão PDN é recebida.
[:wlcp, :pdn, :disconnect_accept]Uma conexão PDN é liberada.
[:twag, :handover, :in]Um evento de entrada de transferência de 3GPP para WLAN é roteado. Transporta source.
[:twag, :handover, :out]Uma mudança de RAT de WLAN para 3GPP é tratada. Transporta cause.
[:twag, :handover, :ap_change]Um evento de mobilidade inter-AP é tratado.

O servidor WLCP e os manipuladores de sessão também registram em nível de informação. Eles registram cada solicitação de conexão PDN, aceitação, rejeição e desconexão, com a identidade do UE, APN e EBI. O manipulador de transferência registra cada entrada de transferência, mudança de RAT e mudança de AP, com a identidade do UE.

Status da Implementação

Esta tabela resume o que está em execução no caminho da sessão ativa, o que existe, mas não está integrado, e o que não está implementado. Use-a para planejar em torno do comportamento real.

RecursoStatus
TSCM (padrão, PDN auto-criada, IP via DHCP)Ativo
Mobilidade inter-AP (túnel S2a preservado)Ativo
S2a Criar Sessão com flag de Indicação de TransferênciaSuportado no codificador S2a, mas o caminho de anexação sempre limpa
Lógica de negociação de modo de conexão e fallbackPresente como um módulo, testado unitariamente
STa DER anuncia modos suportadosConectado (STa DER transporta o TWAN-Connection-Mode preferido, além de SSID / BSSID)
STa DEA lê modo selecionadoConectado (StaClient analisa o modo negociado, padrão para TSCM)
Modo negociado aplicado à sessão ativaNão conectado (store_connection_mode não tem chamador no caminho de anexação)
SCM como um caminho de execução distinto (EAP IP, seleção de APN)Não integrado (servido como TSCM)
Codec WLCP (todos os tipos de mensagem e IEs)Presente, testado unitariamente
Servidor UDP WLCP e manipulador de sessão por UEPresente, não iniciado pela aplicação
Derivação de chave WLCP (K_WLCP, FC=0x21)Presente, testado unitariamente
MCM várias conexões PDN simultâneasPresente no manipulador, não integrado de ponta a ponta
Proteção DTLS para WLCPNão implementado (apenas UDP simples)
Gerenciamento de bearer dedicado no MCMNão implementado
Geração de Notificação de Dados de Downlink WLCPNão implementado (apenas codec)
Transferência no MCMNão implementado
Preservação de IP de 3GPP para WLAN no caminho de anexaçãoNão exercitado (anexação limpa a flag HI)
Finalização de WLAN para 3GPP pela causa de mudança de RATNão ramificado (limpeza de deletar-bearer é independente da causa)