Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例提交脚本的逐行说明

对 SONET/SDH 接口应用更改

以下 XSLT 提交脚本会对名称以 so-开头的每个接口应用瞬时更改,将封装设置为 ppp。有关瞬时更改的信息,请参阅 使用提交脚本生成持久或瞬时配置更改的概述。有关此示例的 SLAX 版本,请参阅 示例:生成瞬时更改

第 1 行到 8 行是 提交脚本所需的样板 ,为简洁起因,此处省略了一些样板。

第 9 行是一个 <xsl:for-each> 编程指令,用于检查名称以“so-”开头且已在 family inet 任意逻辑单元上启用的每个接口节点。(此处显示两行,只是为了简洁性。)

第 10 行是瞬时更改的开放式标记。该元素可能的内容<transient-change>与 Junos XML 协议操作<load-configuration>中标记元素的内容<configuration>相同。

第 11 行到 16 行表示瞬态更改的内容。封装设置为 ppp

第 17 行到第 19 行关闭此模板中的所有打开标记。

第 20 行关闭样式表和提交脚本。

对支持 ISO 的接口应用更改

以下示例 XSLT 脚本可确保为国际标准组织 (ISO) 协议启用的接口也已启用 MPLS,并且包含在 [edit protocols mpls interface] 层次结构级别。有关此示例的 SLAX 版本,请参阅 示例:控制 IS-IS 和 MPLS 接口

第 1 行到 8 行是 提交脚本所需的样板 ,为简洁起因,此处省略了一些样板。

第 9 行保存对 [edit protocols mpls] 层次结构级别的引用,以便在以下 for-each 循环中引用。

第 10 行检查启用了 ISO 的每个接口单元(逻辑接口)。停止select在 ,unit但谓词将选择限制为包含元素下嵌套元素的<family>单元<iso>

第 11 行在变量中构建接口名称。首先,name变量声明的属性设置为ifname。在 Junos OS 中,接口名称是设备名称、句点和单元编号的串联。此时,脚本中的上下文节点是单元号,因为第 10 行将上下文更改为接口/接口/单元。<name>指的是../name上下文节点的父节点的元素,即设备名称 (type-fpc/pic/port)。XPath 表达式中的“name”标记指的是<name>上下文节点的元素,即单元号 (unit-number)。执行串联后,第 11 行中的 XPath 表达式将解析为 type-fpc/pic/port.unit-number。当第 10 行中的<xsl:for-each>指令遍历层次结构并找到支持 ISO 的接口时,接口名称将递归存储在变量中ifname

对于未启用 MPLS 的每个支持 ISO 的接口,第 12 行的评估为真。

第 13 行调用该 jcs:emit-change 模板,这是 junos.xsl 文件中的一个帮助或便利模板。发射 更改模板(SLAX 和 XSLT)和emit_change (Python) 中讨论了此模板。

第 14 行到 18 行使用 message 模板中的 jcs:emit-change 参数。消息参数是可以使用的快捷键,而不是显式包括 <warning><edit-path><statement> 元素。

第 19 行到第 23 行使用 content 模板中的 jcs:emit-change 参数。参数 content 用于指定要对当前上下文节点的更改。

第 24 行和第 25 行分别关闭在第 13 行和第 12 行中打开的标记。

Line 26 测试 MPLS 是否已启用以及是否未在 [edit protocols mpls interface] 层次结构级别上配置此接口。

第 27 行到第 41 行包含该模板的另一个调用 jcs:emit-change 。在此调用中,接口添加在 [edit protocols mpls interface] 层次结构级别。

42 至 45 行关闭所有开放元素。