Files
rodrigonet/ADD-ONU-FEATURE.md
T
2025-08-08 10:22:27 -03:00

7.7 KiB

Funcionalidade: Adicionar ONU

Descrição

Nova funcionalidade implementada para adicionar ONUs automaticamente nas OLTs, incluindo descoberta de slot, determinação de ONU ID disponível, configuração de VLAN e criação de service-port.

Como Usar

Comando de Texto

adicionar onu SERIAL_DA_ONU
add onu SERIAL_DA_ONU
cadastrar onu SERIAL_DA_ONU
criar onu SERIAL_DA_ONU
registrar onu SERIAL_DA_ONU

Exemplos

  • adicionar onu FHTT12345678
  • add onu DACM91569513
  • cadastrar onu ABCD12345678

Fluxo de Operação

1. Comando Inicial

O usuário digita o comando com o serial da ONU que deseja adicionar.

2. Seleção da OLT

O bot apresenta uma lista das OLTs disponíveis para o usuário escolher onde adicionar a ONU.

3. Descoberta do Slot

O sistema executa show interface gpon discovered-onus para encontrar o slot onde a ONU foi descoberta.

4. Análise de ONU IDs

O sistema executa show interface gpon SLOT onu | nomore para descobrir quais ONU IDs (0-127) estão em uso.

5. Determinação da VLAN

Com base na OLT e slot, o sistema determina automaticamente o VLAN ID usando o mapeamento pré-configurado.

6. Confirmação

Antes de adicionar, o bot exibe todas as informações e pede confirmação:

  • Serial da ONU
  • Slot descoberto
  • ONU ID que será usado
  • VLAN ID
  • Configurações que serão aplicadas

7. Adição Automática

Após confirmação, o sistema executa automaticamente todos os comandos necessários.

Comandos SSH Executados

Descoberta do Slot

show interface gpon discovered-onus

Verificação de ONU IDs em Uso

show interface gpon 1/1/3 onu | nomore

Configuração da ONU

config
interface gpon 1/1/3          # Slot descoberto
onu 42                        # Próximo ID disponível
line-profile DM986-100
serial-number FHTT12345678
ethernet 1
native vlan vlan-id 603       # VLAN baseada na OLT/slot
top
service-port new
gpon 1/1/3 onu 42 gem 1 match vlan vlan-id 603 action vlan replace vlan-id 603
commit
top
exit
exit

Mapeamento de VLANs

OLT DITO

Slot VLAN
1/1/1 601
1/1/2 602
1/1/3 603
1/1/4 604

OLT COLMEIA

Slot VLAN
1/1/1 605
1/1/2 606
1/1/3 607
1/1/4 608
1/1/5 609
1/1/6 610
1/1/7 611
1/1/8 612
1/1/9 613
1/1/10 614
1/1/11 608
1/1/12 616
1/1/13 617
1/1/14 618
1/1/15 619
1/1/16 620

OLT CANAA

Slot VLAN
1/1/1 605
1/1/2 606
1/1/3 607
1/1/4 608
1/1/5 609
1/1/6 610
1/1/7 611
1/1/8 612

OLT CANAA 2

Slot VLAN
1/1/1 621
1/1/2 622
1/1/3 623
1/1/4 624
1/1/5 625
1/1/6 626
1/1/7 627
1/1/8 628

OLT PEDRO AFONSO 1

Slot VLAN
1/1/1 301
1/1/2 302
1/1/3 303
1/1/4 304
1/1/5 305
1/1/6 306
1/1/7 307
1/1/8 308
1/1/9 309
1/1/10 310
1/1/11 311
1/1/12 312
1/1/13 313
1/1/14 314
1/1/15 315
1/1/16 316

OLT CANAVIEIRAS

Slot VLAN
1/1/1 601
1/1/2 602
1/1/3 603
1/1/4 604
1/1/5 605
1/1/6 606
1/1/7 607
1/1/8 608
1/1/9 609
1/1/10 610
1/1/11 611
1/1/12 612
1/1/13 613
1/1/14 614
1/1/15 615
1/1/16 616

Recursos de Segurança

Confirmação Obrigatória

  • Sistema exige confirmação explícita antes de adicionar
  • Exibe todas as configurações que serão aplicadas
  • Mostra ONU IDs já em uso no slot

Validação de Dados

  • Verifica se a ONU está na lista de discovered-onus
  • Encontra automaticamente o próximo ONU ID disponível
  • Valida se existe VLAN configurada para a OLT/slot

Processo Controlado

  • Usa shell interativo para manter contexto
  • Timeout de segurança (90 segundos)
  • Logging detalhado de todas as operações

Tratamento de Erros

ONU Não Descoberta

  • Mensagem clara informando que a ONU não está na lista discovered-onus
  • Sugestão para verificar se a ONU está ligada

Slot Lotado

  • Informa quando todos os ONU IDs (0-127) estão em uso
  • Sugere usar outro slot ou remover ONUs não utilizadas

VLAN Não Configurada

  • Alerta quando não há VLAN mapeada para a OLT/slot
  • Informa as configurações necessárias

Timeout

  • Processo é interrompido após 90 segundos
  • Conexão é fechada adequadamente

Resultados

Sucesso

✅ ONU Adicionada com Sucesso!

📱 Serial: FHTT12345678
📍 Localização: Slot 1/1/3, ONU 42
🏷️ VLAN: 603
🔌 Service-port: 1234
🏢 OLT: DITO

✅ Configurações aplicadas:
• Line-profile: DM986-100
• Serial number: FHTT12345678
• Ethernet: porta 1
• Native VLAN: 603
• Service-port: criado e configurado
• Configuração commitada

🎉 A ONU está pronta para uso!

Erro

❌ Não foi possível adicionar a ONU

📱 Serial: FHTT12345678
🏢 OLT: DITO

❌ Erro: ONU FHTT12345678 não encontrada na lista de discovered-onus

💡 Dica: Verifique se a ONU está ligada e descoberta pela OLT.
Use o comando: show interface gpon discovered-onus

Arquivos Modificados

1. src/ssh/manager.js

  • getVlanMapping() - Mapeamento de VLANs por OLT/slot
  • discoverOnuSlot() - Descobre slot da ONU na lista discovered-onus
  • getUsedOnuIds() - Lista ONU IDs já em uso em um slot
  • findNextAvailableOnuId() - Encontra próximo ID disponível
  • addOnu() - Adiciona ONU completa (shell interativo)
  • addOnuBySerial() - Processo completo por serial

2. src/nlp/processor.js

  • Adicionado 'adicionar_onu' aos actionSynonyms
  • Novos padrões regex para comandos de adição
  • Suporte para variações de comando (add, criar, cadastrar, registrar)

3. src/bot/handler.js

  • handleAdicionarOnu() - Interface para comando adicionar
  • handleAddOnuCallback() - Callback para seleção de OLT e análise
  • handleConfirmAddCallback() - Callback para confirmação e execução
  • Atualização da mensagem de help

Considerações Técnicas

Performance

  • Processo otimizado em etapas bem definidas
  • Uso de shell interativo para operações complexas
  • Timeout de 90 segundos para operações da OLT

Confiabilidade

  • Validação em todas as etapas
  • Descoberta automática de configurações
  • Logs detalhados para troubleshooting

Usabilidade

  • Interface intuitiva com botões
  • Mensagens claras e informativas
  • Confirmação visual antes da ação

Limitações

  1. Dependência de Discovered-onus: ONU deve estar na lista discovered-onus
  2. Mapeamento Fixo: VLANs são pré-configuradas no código
  3. Timeout: Operações longas podem exceder 90s
  4. Dependência SSH: Requer conectividade estável

Próximas Melhorias

  1. VLAN Configurável: Permitir definir VLAN customizada
  2. Line-profile Dinâmico: Detectar modelo da ONU automaticamente
  3. Validação Pós-adição: Verificar se ONU subiu corretamente
  4. Adição em Lote: Adicionar múltiplas ONUs de uma vez

Teste da Funcionalidade

Cenário de Teste

  1. Certifique-se que há uma ONU na lista discovered-onus
  2. Digite: adicionar onu SERIAL_DA_ONU
  3. Selecione uma OLT na lista
  4. Verifique as informações exibidas
  5. Confirme a adição
  6. Aguarde conclusão da operação

Comandos de Teste

  • adicionar onu TESTE123456
  • add onu TESTE123456
  • cadastrar onu TESTE123456
  • criar TESTE123456

Verificação Manual

# Verificar se ONU está discovered
show interface gpon discovered-onus

# Verificar ONU IDs em uso
show interface gpon 1/1/3 onu | nomore

# Após adição, verificar se ONU subiu
show interface gpon 1/1/3 onu ONUID

# Verificar service-port criado
show running-config service-port