• Nenhum resultado encontrado

Conforme já dito anteriormente, o protocolo NETCONF tem a possibilidade de estender as suas funcionalidades básicas, através do uso de aptidões ou em inglês capabilities. Nesta secção do documento é feita uma análise mais detalhada dessas aptidões. Cada um dos ele- mentos de rede NETCONF tem de saber quais as aptidões que os outros podem usar. Para isto, durante o estabelecimento de uma ligação, cada dispositivo (cliente e servidor) deve comunicar as aptidões que tem disponíveis. Isto é feito através de uma mensagem com o elemento <hello> que contém uma lista com as aptidões suportadas.

Logicamente, deve suportar pelo menos as funcionalidades básicas, e no caso de suporte a várias versões, deverá indicá-las todas. Uma outra condição que deve ocorrer para permi- tir o funcionamento correcto do protocolo é que os dispositivos que vão enviar a mensagem hello, não devem esperar por outros dispositivos, mas sim, enviar logo que a ligação seja estabelecida. De notar que a implementação de algumas aptidões introduz novas operações, ou altera o funcionamento de operações já existentes. Agora são apresentadas algumas ap- tidões presentes no RFC 6241.

Writable-Running Capability

Esta aptidão permite efectuar alterações directas à configuração corrente do dispositivo, ou seja, é permitido executar as operações <edit-config> e <copy-config> à configuração <running>. As operações <edit-config> e <copy-config> são alteradas, sendo agora permi- tido usar a configuração <running> como <target> das operações.

Candidate Configuration Capability

Com esta funcionalidade adicionada ao dispositivo é possível utilizar uma terceira confi- guração para além da <running> e da <startup>, a <candidate> que é usada para manter dados de configuração que podem ser alterados sem interferir com a configuração corrente do dispositivo. Para além disso, é ainda possível com a operação <commit> enviar esta configuração para funcionar como configuração corrente.

O cliente pode rejeitar quaisquer mudanças que não tenham sido enviadas, através da ope- ração <discard-changes>, que substitui o conteúdo de <candidate> com o conteúdo de <running>. Ambas as operações <commit> e <discard-changes> são adicionadas com esta aptidão, bem como alterado o funcionamento das operações <get-config>, <edit-config>, <copy-config>, <validate>, <lock> e <unlock> que passam a poder usar como parâmetro a configuração <candidate>

Confirmed Commit Capability

Esta aptidão permite ao servidor suportar a operação <cancel-commit> e adição dos pa- râmetros <confirmed>, <confirm-timeout>, <persist>, e <persist-id> na operação <com- mit>. No caso de uma operação de <commit> confirmada, se a confirmação não é recebida antes do período de tempo limite, a operação deve ser revertida. Por omissão, o valor de tempo limite é de 600 segundos, mas pode ser ajustado com o parâmetro <confirm-timeout>. Se ocorrer um novo <commit> e o anterior ainda não foi confirmado, o tempo limite é rei- niciado para o seu valor definido.

Já no caso de ocorrer um envio confirmado mas o elemento <persist> não estar presente, qualquer envio posterior deve ser feito na mesma sessão que o primeiro, até ser confirmado. Se o elemento <persist> estiver presente, os envios posteriores podem ser efectuados em qualquer sessão, mas devem incluir o elemento <persist-id> com um valor igual ao do ele- mento <persist>, de forma a identificar a quem enviar a confirmação. Para cancelar um envio confirmado, e reverter as alterações sem ter de esperar pelo tempo limite, o cliente pode restaurar a configuração para o seu estado anterior através do uso da operação <cancel- commit>.

Rollback-on-Error Capability

Com esta aptidão, o servidor passa a suportar o valor rollback-on-error no parâmetro <error-option> da operação <edit-config>. Tal como o nome indica, permite que durante a alteração de uma configuração se ocorrer algum erro, esta é restaurada para o ponto imediatamente antes da tentativa de alteração. Em configurações partilhadas esta funciona- lidade pode criar situações indesejadas, como por exemplo, o restauro causado por um erro ser efectuado ao mesmo tempo que outro elemento da rede esteja a alterar a configuração. Neste caso, as alterações do segundo são revertidas. Para evitar este tipo de situações é recomendado o uso de bloqueio da configuração enquanto operações são efectuadas.

Validate Capability

O processo de validação consiste em verificar se uma configuração contém erros sintácti- cos ou semânticos, antes de aplicá-la a um dado dispositivo. Com a adição desta aptidão é garantido o suporte da operação <validate> que verifica pelo menos erros de sintaxe, bem como o suporte do parâmetro <test-option> na operação <edit-config>. Este parâmetro pode conter o valor test-only, que valida uma configuração, mesmo que não tenha sido envi- ada.

Distinct Startup Capability

Com esta adição, o dispositivo suporta datastores separadas para a configuração <star- tup> e <running>. A configuração <startup> é carregada pelo dispositivo na inicialização, e operações que afectariam a configuração <running> não são automaticamente copiadas para a configuração <startup>. Para conseguir isto, é necessário executar a operação <copy- config> de forma a actualizar o conteúdo de <startup> com o conteúdo de <running>. URL Capability

Com esta aptidão, é dada a possibilidade a um dispositivo NETCONF de aceitar o elemento <url> nos parâmetros <source> e <target>, na operação <copy-config> por exemplo. Ou- tro exemplo é a operação <edit-config>, que é alterada para que o elemento <url> seja usado em alternativa ao elemento <config>. Com isto, é possível utilizar uma configuração remota, sendo acessível por HTTP, FTP, ou ficheiro.

XPath Capability

Quando esta aptidão é anunciada, indica que o dispositivo NETCONF suporta o uso de expressões Xpath no elemento <filter>, tipicamente usado em operações do tipo <get>. A expressão Xpath deve devolver um conjunto de nodos. Se isto não ocorrer, a operação falha com o erro invalid-value. A mensagem de resposta contém sub-árvores seleccionadas pela expressão de filtragem. Com isto, as operações <get> e <get-config> são modificadas de forma a aceitar o valor <xpath> no atributo type do elemento <filter>.