[Contents] [Prev] [Next] [Index] [Report an Error]

Adding T1 Interfaces to a RIP Group

If you want to enable the Routing Information Protocol (RIP) on an interface, you must make changes at both the [edit interfaces] and [edit protocols rip] hierarchy levels. This example shows you how to use commit scripts to decrease the amount of manual configuration.

This example adds every T1 interface configured at the [edit interfaces] hierarchy level to the [edit protocols rip group test] hierarchy level. This example includes no error, warning, or system log messages. The changes to the configuration are made silently.

XSLT Syntax

<?xml version="1.0" standalone="yes"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:junos="http://xml.juniper.net/junos/*/junos"
    xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm"
    xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">

    <xsl:import href="../import/junos.xsl"/>

    <xsl:template match="configuration">
        <xsl:variable name="all-t1"
                              select="interfaces/interface[starts-with(name, 't1-')]"/>
        <xsl:if test="$all-t1">
            <change>
                <protocols>
                    <rip>
                        <group>
                            <name>test</name>
                            <xsl:for-each select="$all-t1">
                                <xsl:variable name="ifname" select="concat(name, '.0')"/>
                                <neighbor>
                                    <name><xsl:value-of select="$ifname"/></name>
                                </neighbor>
                            </xsl:for-each>
                        </group>
                    </rip>
                </protocols>
            </change>
        </xsl:if>
    </xsl:template>

</xsl:stylesheet>

SLAX Syntax

version 1.0;

ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";

import "../import/junos.xsl";
match configuration {
    var $all-t1 = interfaces/interface[starts-with(name, 't1-')];

    if ($all-t1) {
        <change> {
            <protocols> {
                <rip> {
                    <group> {
                        <name> "test";
                        for-each ($all-t1) {
                            var $ifname = name _ '.0';
                            <neighbor> {
                                <name> $ifname;
                            }
                        }
                    }
                }
            }
        }
    }
}

[Contents] [Prev] [Next] [Index] [Report an Error]