You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TTP解析华为import-route可选route-policy配置的模板编写方法

TTP解析华为VPN路由引入配置的正确模板

场景说明

使用TTP(Template Text Parser)解析华为设备配置时,待解析的ipv4-family vpn-instance配置段内容如下:

ipv4-family vpn-instance VPN1
  import-route static
  import-route direct route-policy TESTE
 #

该段内的import-route配置存在两种格式:

  • 仅指定要引入的路由协议类型
  • 指定协议类型的同时,绑定对应的route-policy路由策略

需要解析输出结构化的import_routes列表,要求:

  • 未绑定路由策略的条目,仅保留protocol字段记录协议类型
  • 绑定路由策略的条目,额外增加rp字段存储路由策略名称

预期输出结构:

import_routes: [
    {
        "protocol": "static"
    },
    {
        "protocol": "direct",
        "rp": "TESTE",
    }
]

原有模板的问题

之前编写的TTP模板无法实现预期效果,原模板如下:

<group name="vpn_import_route*">
  import-route {{ protocol }}
  import-route {{ protocol }} route-policy {{ rp }} 
</group>  

失败原因是TTP行匹配时优先匹配更短的规则,带route-policy的行会被第一条规则命中,把direct route-policy TESTE整体赋值给protocol字段,无法拆分出路由策略参数。

可用模板方案

利用TTP的可选匹配语法,将route-policy相关配置段标记为可选匹配,直接指定输出列表名为import_routes即可,模板内容如下:

<group name="import_routes*">
  import-route {{ protocol }} {{ _start_ }}route-policy {{ rp | _end_ }}
</group>

语法说明:_start_和_end_包裹的内容为可选匹配段,行内存在该片段时自动提取rp字段,不存在时跳过该部分匹配,不会影响protocol字段的正常取值。

如果需要兼容行尾可能存在的其他多余配置字符,可以使用带忽略规则的版本:

<group name="import_routes*">
  import-route {{ protocol }} {{ _start_ }}route-policy {{ rp }}{{ _end_ }} {{ re(".*") | ignore }}
</group>

传入待解析配置后,该模板可直接输出符合要求的结构化解析结果。


内容的提问来源于stack exchange,提问作者Paulo Henrique Peres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:39:20