[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;
                            }
                        }
                    }
                }
            }
        }
    }
}

Testing ex-rip-t1.xsl

To test the example in this section, perform the following steps:

  1. From Adding T1 Interfaces to a RIP Group, copy the Extensible Stylesheet Language Transformations (XSLT) or SLAX script into a text file, and name the file ex-rip-t1.xsl. Copy the ex-rip-t1.xsl file to the /var/db/scripts/commit directory on your routing platform.
  2. Select the following configuration, and press Ctrl+c to copy it to the clipboard. If you are using the SLAX version of the script, change the filename to filename.slax.
    system {
        scripts {
            commit {
                file ex-rip-t1.xsl;
            }
        }
    }
    interfaces {
        t1-0/0/0 {
            unit 0 {
                family iso;
            }
        }
        t1-0/0/1 {
            unit 0 {
                family iso;
            }
        }
        t1-0/0/2 {
            unit 0 {
                family iso;
            }
        }
        t1-0/0/3 {
            unit 0 {
                family iso;
            }
        }
        t1-0/1/0 {
            unit 0 {
                family iso;
            }
        }
        t1-0/1/1 {
            unit 0 {
                family iso;
            }
        }
        t1-0/1/2 {
            unit 0 {
                family iso;
            }
        }
        t1-0/1/3 {
            unit 0 {
                family iso;
            }
        }
    }
  3. Merge the configuration into your routing platform configuration by issuing the load merge terminal configuration mode command:
    [edit]
    user@host# load merge terminal
    [Type ^D at a new line to end input]
    > Paste the contents of the clipboard here<
    1. At the prompt, paste the contents of the clipboard using the mouse and the paste icon.
    2. Press Enter.
    3. Press Ctrl+d.
  4. Issue the commit command. When you issue the show protocols rip group test configuration mode command, the following output appears:
    [edit]
    user@host# show protocols rip group test
    neighbor t1-0/0/0.0;
    neighbor t1-0/0/1.0;
    neighbor t1-0/0/2.0;
    neighbor t1-0/0/3.0;
    neighbor t1-0/1/0.0;
    neighbor t1-0/1/1.0;
    neighbor t1-0/1/2.0;
    neighbor t1-0/1/3.0;

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