GOOGLE ADS

domingo, 17 de abril de 2022

Con el analizador TTP, cómo capturar datos en un grupo con dos líneas que comienzan con la misma palabra

Con el analizador TTP, ¿cómo puedo capturar el límite de prefijo en la siguiente configuración BGP del dispositivo Nokia? Tengo dos líneas de límite de prefijo en la configuración, una para ipv4 y la otra para ipv6; Necesito extraer ambos.

 neighbor 192.168.102.41
description "blablabla"
authentication-key "hashed-key-here" hash2
prefix-limit ipv4 600 threshold 80
prefix-limit ipv6 601 threshold 81
import "policy-1" "policy-2"
export "policy-3" "policy-4"
graceful-restart
stale-routes-time 360
restart-time 120
enable-notification
exit
peer-as 65510
bfd-enable
exit

Esta es la plantilla TTP que se me ocurrió,

 <group name="neighbor.{{ neighbor }}">
neighbor {{ neighbor | _start_ }}
family {{ address_family | default("ipv4") }}
description {{ description | ORPHRASE | macro("remove_quot_marks") }}
authentication-key {{ auth_key | macro("remove_quot_marks") }} hash2
prefix-limit {{ family }} {{ prefix_limit }} threshold {{ threshold }}
peer-as {{ peer_AS_number }}
import {{ import_policy | ORPHRASE | macro("extract_import_export_policy") }}
export {{ export_policy | ORPHRASE | macro("extract_import_export_policy") }}
bfd-enable {{ bfd_enabled | set("enabled") }}
exit {{ _end_ }}
</group>

Esto solo extrae la configuración para ipv4; la configuración para ipv6 se ignora. Traté de reemplazar la línea de límite de prefijo en la plantilla anterior las siguientes dos líneas,

  prefix-limit ipv4 {{ ipv4_prefix_limit }} threshold {{ ipv4_threshold }}
prefix-limit ipv6 {{ ipv6_prefix_limit }} threshold {{ ipv6_threshold }}

Esto también solo extrae la configuración para ipv4; la configuración para ipv6 se descarta por completo.

Pero si mi plantilla TTP tiene esta única línea como se muestra a continuación, entonces puedo extraer la configuración tanto para ipv4 como para ipv6,

  prefix-limit {{ family }} {{ prefix_limit }} threshold {{ threshold }}

los siguientes son los datos analizados con la plantilla anterior,

[
{
"family": "ipv4",
"prefix_limit": "600",
"threshold": "80"
},
{
"family": "ipv6",
"prefix_limit": "601",
"threshold": "81"
}
]

¿Cómo puedo hacer que esto funcione junto con otras configuraciones, como en mi primera plantilla TTP?

gracias harry


Solución del problema

Responda mi propia pregunta, la siguiente plantilla TTP funcionó para la configuración de muestra en mi pregunta. (Mi mente debe estar en otro lugar hace un momento)

 <group name="neighbor.{{ neighbor }}">
neighbor {{ neighbor | _start_ }}
family {{ address_family | default("ipv4") }}
description {{ description | ORPHRASE | macro("remove_quot_marks") }}
authentication-key {{ auth_key | macro("remove_quot_marks") }} hash2
<group name="prefix_limit.{{family}}">
prefix-limit {{ family }} {{ prefix_limit }} threshold {{ threshold }}
</group>

peer-as {{ peer_AS_number }}
import {{ import_policy | ORPHRASE | macro("extract_import_export_policy") }}
export {{ export_policy | ORPHRASE | macro("extract_import_export_policy") }}
bfd-enable {{ bfd_enabled | set("enabled") }}
exit {{ _end_ }}
</group>

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...