Example: Imposing a Minimum MTU Setting
The maximum transmission unit (MTU) is the greatest amount of data or packet size (in bytes) that can be transferred in one physical frame on a network.
This example tests the MTU of SONET/SDH interfaces, reports when the MTU is less than the value of the $min-mtu variable, here set to 2048, and causes the commit operation to fail.
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:param name="min-mtu" select="2048"/>
<xsl:template match="configuration">
<xsl:for-each select="interfaces/interface[starts-with(name, 'so-')
and mtu and mtu < $min-mtu]">
<xnm:error>
<xsl:call-template name="jcs:edit-path"/>
<xsl:call-template name="jcs:statement">
<xsl:with-param name="dot" select="mtu"/>
</xsl:call-template>
<message>
<xsl:text>SONET interfaces must have a minimum MTU of </xsl:text>
<xsl:value-of select="$min-mtu"/>
<xsl:text>.</xsl:text>
</message>
</xnm:error>
</xsl:for-each>
</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";
param $min-mtu = 2048;
match configuration {
for-each (interfaces/interface[starts-with(name, 'so-') and mtu and
mtu < $min-mtu]) {
<xnm:error> {
call jcs:edit-path();
call jcs:statement($dot = mtu);
<message> {
expr "SONET interfaces must have a minimum MTU of ";
expr $min-mtu;
expr ".";
}
}
}
}
Testing the ex-so-mtu Script
To test the ex-so-mtu script,
perform the following steps:
- Copy the XSLT or SLAX script from Example: Imposing a Minimum MTU Setting into a text file, name the file
ex-so-mtu.xslorex-so-mtu.slaxas appropriate, and copy it to the/var/db/scripts/commitdirectory on the device. Select the following configuration stanzas, and press Ctrl+c to copy them to the clipboard. If you are using the SLAX version of the script, change the filename at the [edit system scripts commit file] hierarchy level to ex-so-mtu.slax.
system {scripts {commit {file ex-so-mtu.xsl;}}}interfaces {so-1/2/2 {mtu 2048;}so-1/2/3 {mtu 576;}}In configuration mode, issue the load merge terminal command to merge the stanzas into your device configuration:
[edit]user@host# load merge terminal[Type ^D at a new line to end input]... Paste the contents of the clipboard here ...- At the prompt, paste the contents of the clipboard using the mouse and the paste icon.
- Press Enter.
- Press Ctrl+d.
Issue the commit command. The following output appears:
[edit]
user@host# commit
[edit interfaces interface so-1/2/3]
'mtu 576;'
SONET interfaces must have a minimum MTU of 2048.
error: 1 error reported by commit scripts
error: commit script failure
Hide Navigation Pane
Show Navigation Pane
Download
SHA1