MIBs NTCIP

Como obter, como compilar e o que costuma dar errado

A MIB é o arquivo que descreve, em formato legível por máquina, todos os objetos de uma norma NTCIP — o nome de cada um, seu identificador, seu tipo, sua faixa de valores e se é de leitura ou escrita. Sem ela, nenhuma ferramenta de teste ou de integração sabe o que perguntar ao equipamento.

Como obter

Os arquivos MIB oficiais são distribuídos gratuitamente pela NEMA:

  1. Envie um e-mail para ntcip@nema.org
  2. Informe nome, organização e e-mail
  3. Você recebe acesso ao servidor da NEMA com os arquivos

O acesso é por FTP. Navegadores modernos não abrem mais endereços ftp:// — Chrome e Firefox removeram o suporte em 2021 — então use um cliente de FTP, como o FileZilla, ou a linha de comando.

Peça o índice junto. O servidor da NEMA traz um documento de acompanhamento (MIB Steward Tracking) que lista, para cada norma e cada versão, qual arquivo MIB é o recomendado, o nome do módulo e exatamente quais IMPORTS ele precisa para compilar. É o atalho para não descobrir dependência por tentativa e erro.

Os arquivos estão organizados em quatro diretórios por versão de compilador. Para desenvolvimento novo, a NEMA recomenda o conjunto SMICng v2.2.07 — os demais são históricos.

A MIB é gratuita; a norma, não. E a diferença não é só de preço. A MIB lista os objetos e seus tipos. O texto da norma explica o comportamento esperado de cada um — as máquinas de estado, as restrições, as interações entre objetos. Para especificar ou fiscalizar, a MIB sozinha não basta.

Curiosamente, a própria MIB traz a distinção no seu cabeçalho de direitos autorais: «Except for the MIB, do not copy without written permission of either AASHTO, ITE, or NEMA» — a MIB é a exceção expressa à proibição de cópia.

Ter a MIB não é ser conforme. Como a MIB é pública e gratuita, exibi-la não prova conformidade de equipamento nenhum — prova apenas que se tem o dicionário. Quem recebe um painel confunde as duas coisas com frequência; a diferença está em Auditar um PMV.

A armadilha número um: as MIBs NTCIP são SMIv1

Esta é a causa da maioria dos «não compila» e «o browser não abre».

Existem duas versões da linguagem em que MIBs são escritas: a SMIv1, dos anos 1990, e a SMIv2, que é o padrão desde então. Ferramentas modernas assumem SMIv2 por padrão.

As MIBs NTCIP continuam em SMIv1. Dá para verificar em qualquer uma delas: o bloco IMPORTS puxa de RFC1155-SMI e RFC-1212, que são SMIv1, e não há MODULE-IDENTITY, que é obrigatório em SMIv2.

    IMPORTS
    IpAddress, Counter
        FROM RFC1155-SMI          <- SMIv1
    OBJECT-TYPE
        FROM RFC-1212             <- SMIv1
    DisplayString
        FROM RFC1213-MIB
    OwnerString, dms
        FROM NTCIP8004v02;

Na prática: na sua ferramenta, ative o modo SMIv1 ou o modo tolerante de importação. Quase toda mensagem de erro de compilação de MIB NTCIP some com esse ajuste.

As dependências que ninguém avisa

Uma MIB de equipamento não se sustenta sozinha: ela importa definições de outras. A MIB de PMV, por exemplo, precisa de quatro arquivos antes dela.

A ordem que funciona — e que o índice oficial da NEMA confirma arquivo por arquivo:

1 · Base IETFRFC1155-SMIRFC-1212RFC1213-MIB2 · EstruturaNTCIP 8004raiz da árvoree tipos comuns3 · GlobaisNTCIP 1201o que todoequipamento tem4 · ProtocolosNTCIP 1103se STMP ouregistro de eventos5 · EquipamentoNTCIP 1203 · PMV1202 · semáforo1204 · meteorologia

Por que a ordem importa. A MIB de PMV declara FROM NTCIP8004v02 — se a 8004 não estiver carregada, o compilador não resolve os símbolos e aborta com um erro que não menciona a 8004. O erro aparece na 1203, a causa está na ausência da 8004.

Onde a árvore fica

Todo objeto NTCIP pendura do número de empresa privada da NEMA junto ao IANA:

Árvore de identificadores — MIB NTCIP
  • 1iso
    • 3org
      • 6dod
        • 1internet
          • 2mgmtMIB-II padrão — sysDescr, sysUpTime… não é NTCIP
            • 1mib-2
          • 4private
            • 1enterprisesnúmeros de empresa privada — IANA
              • 1206nemaNational Electrical Manufacturers Association
                • 4transportation
                  • 1protocolsSTMP, objetos dinâmicos, segurançaNTCIP 1103
                  • 2devicesum ramo por tipo de equipamento
                    • 1asccontrolador semafóricoNTCIP 1202
                    • 2rampcontrole de acessoNTCIP 1207
                    • 3dmspainel de mensagens variáveisNTCIP 1203
                    • 4tsssensores de tráfegoNTCIP 1209
                    • 5essestação meteorológicaNTCIP 1204
                    • 6globalobjetos comuns a todo equipamentoNTCIP 1201
                    • 7cctvcâmeraNTCIP 1205
                    • 8cctvSwitchcomutação de vídeoNTCIP 1208
                    • 9dcmcoleta de dadosNTCIP 1206
                    • 10ssmmestre de campoNTCIP 1210
                    • 11scpprioridade semafóricaNTCIP 1211
                    • 13elmsiluminaçãoNTCIP 1213
                    • 17saeNtcipSPaT e MAP — veículo conectadoNTCIP 1217
                    • 18rsuunidade de viaNTCIP 1218
                  • 3tciptransporte coletivo
Todo OID de equipamento NTCIP começa em 1.3.6.1.4.1.1206.4.2 — nema · transportation · devices

Por isso todo OID de PMV começa em 1.3.6.1.4.1.1206.4.2.3 — nema, transportation, devices, dms — e todo objeto global em 1.3.6.1.4.1.1206.4.2.6. Objetos que começam em 1.3.6.1.2.1 não são NTCIP — são do MIB-II padrão, que todo agente SNMP tem.

Restrições de compilação do acervo

O acervo MIB do NTCIP não constitui conjunto homogêneo. Resulta de trinta anos de publicações sucessivas, e a carga integral em um único analisador sujeita-se às condições abaixo. A inobservância de qualquer uma produz falha de resolução de símbolo — comumente atribuída, por engano, ao arquivo em que a falha se manifesta, e não àquele que a causa.

Coexistência de duas versões de SMI

As MIBs do NTCIP são escritas em SMIv1, com uma exceção: a NTCIP 1218, de unidades de via, adota SMIv2. O analisador empregado deve processar ambas. Ferramenta configurada para versão única rejeita o acervo remanescente ou a 1218, conforme o caso.

Pluralidade de módulos da NTCIP 8004

A norma de estrutura da informação de gerência foi publicada em edições que declaram módulos de nomes distintos. Coexistem no acervo, e a escolha não é indiferente:

Módulo declaradoRequerido por
NTCIP8004-A-2004NTCIP 1103 v01 e v02
NTCIP8004-2008NTCIP 1103 v03 e 1209 v02
NTCIP8004v02NTCIP 1201 v03, 1202 v03, 1203 v03, 1204 v04, 1207, 1210, 1211 e 1213

Observe-se a contraintuição: o arquivo de edição mais recente não atende à NTCIP 1103 v03, de idêntica atualidade. A carga de um único módulo inviabiliza parte substancial do acervo.

Dependência remanescente de norma rescindida

A NTCIP 1101 foi rescindida em 2006. O módulo TMIB-II, nela definido, permanece entretanto como dependência declarada da NTCIP 1205 e da NTCIP 1206. A exclusão do arquivo correspondente, ainda que justificada pela rescisão, impede a compilação dessas duas normas.

Versões fixadas por dependência cruzada

A NTCIP 1210 declara dependência do módulo NTCIP1103v0217-STMP, da versão v02.17, e não da v03 vigente. Ambas as versões da 1103 devem, portanto, integrar o conjunto carregado.

Defeito de referência na NTCIP 1211

A MIB da NTCIP 1211 v02 declara importação do módulo NTCIP1202-2004. Nenhum arquivo da distribuição oficial declara esse módulo: o arquivo correspondente à NTCIP 1202 v02 declara NTCIP1202-200x. Trata-se de defeito na publicação, e não de erro de transcrição.

Analisadores tolerantes resolvem a árvore não obstante. Analisadores estritos interrompem a compilação. A superação do defeito exige intervenção deliberada de quem monta o ambiente.

Dissociação entre nome de arquivo e nome de módulo

A cláusula IMPORTS referencia o nome do módulo, declarado na primeira linha significativa do arquivo, e não o nome do arquivo. Os dois raramente coincidem, e há arquivos de nomes distintos que declaram módulo idêntico. A resolução de dependências pelo nome do arquivo é fonte recorrente de erro.

Sobre o encargo. Nenhuma das condições acima consta de documentação publicada pelas entidades mantenedoras. São apuráveis apenas por inspeção do acervo — e o encargo de apurá-las recai, invariavelmente, sobre quem precisa integrar ou verificar o equipamento.

Normas que tratam das próprias MIBs

NormaO que define
NTCIP 8004 v02, jun/2010SMI — como a informação de gerência é estruturada e identificada
NTCIP 8005 v01, jun/2010Procedimento para criar arquivos MIB
NTCIP 8007 v01, mai/2008Documentação de teste e conformidade dentro das normas

Como obter as normas

As normas publicadas têm download direto no site oficial, pela lista de Published Standards. Publicações históricas ainda dependem de solicitação. O catálogo oficial de normas e situação é mantido pelo Joint Committee on the NTCIP.

E agora, o que fazer com a MIB

Carregar a MIB numa ferramenta e conversar com o equipamento é o que permite verificar, no recebimento, se o painel entregue realmente faz o que o contrato pediu. O passo a passo está em Auditar um PMV.

Relacionado