1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
5 xmlns:oor="http://org/openroadm/device"
6 exclude-result-prefixes="oor d">
8 <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
10 <xsl:template match="/">
11 <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
12 <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">
13 <xsl:element name="info" namespace="http://org/openroadm/device">
14 <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>
17 <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />
19 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">
20 <xsl:element name="shelves" namespace="http://org/openroadm/device">
21 <xsl:call-template name="shelve-body"/>
25 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">
26 <xsl:element name="circuit-packs" namespace="http://org/openroadm/device">
27 <xsl:call-template name="cp-body"/>
31 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">
32 <xsl:element name="interface" namespace="http://org/openroadm/device">
33 <xsl:call-template name="inter-body"/>
37 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">
38 <xsl:element name="protocols" namespace="http://org/openroadm/device">
39 <xsl:call-template name="proto-body"/>
43 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">
44 <xsl:element name="degree" namespace="http://org/openroadm/device">
45 <xsl:call-template name="degree-body"/>
49 <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">
50 <xsl:element name="shared-risk-group" namespace="http://org/openroadm/device">
51 <xsl:call-template name="srg-body"/>
59 <xsl:template match="oor:info">
60 <xsl:for-each select="./*">
61 <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number' or name(.) = 'node-type' or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">
62 <xsl:copy-of select="." />
67 <xsl:template name="shelve-body">
68 <xsl:for-each select="./*">
69 <xsl:if test="name(.) ='shelf-name' or name(.) = 'shelf-type' or name(.) = 'rack' or name(.) = 'shelf-position' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'due-date'">
70 <xsl:copy-of select="." />
75 <xsl:template name="cp-body">
76 <xsl:for-each select="./*">
77 <xsl:if test="name(.) = 'circuit-pack-type' or name(.) = 'circuit-pack-product-code' or name(.) = 'circuit-pack-name' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'circuit-pack-mode' or name(.) = 'shelf' or name(.) = 'slot' or name(.) = 'subSlot' or name(.) = 'due-date' or name(.) = 'parent-circuit-pack'">
78 <xsl:copy-of select="." />
80 <xsl:if test="name(.) = 'ports'">
81 <xsl:for-each select=".">
82 <xsl:element name="ports" namespace="http://org/openroadm/device">
83 <xsl:call-template name="ports-body"/>
90 <xsl:template name="inter-body">
91 <xsl:for-each select="./*">
92 <xsl:if test="not(name(.) = 'operational-state' or name(.) = 'ethernet' or name(.) = 'och' or name(.) = 'otu' or name(.) = 'odu')">
93 <xsl:copy-of select="." />
95 <xsl:if test="name(.)='ethernet'">
96 <xsl:element name="ethernet" xmlns="http://org/openroadm/ethernet-interfaces">
97 <xsl:call-template name="eth-body"/>
100 <xsl:if test="name(.)='och'">
101 <xsl:element name="och" xmlns="http://org/openroadm/optical-channel-interfaces">
102 <xsl:call-template name="och-body"/>
105 <xsl:if test="name(.)='otu'">
106 <xsl:element name="otu" xmlns="http://org/openroadm/otn-otu-interfaces">
107 <xsl:call-template name="otu-body"/>
110 <xsl:if test="name(.)='odu'">
111 <xsl:element name="odu" xmlns="http://org/openroadm/otn-odu-interfaces">
112 <xsl:call-template name="odu-body"/>
118 <xsl:template name="eth-body">
119 <xsl:for-each select="./*">
120 <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">
121 <xsl:copy-of select="." />
126 <xsl:template name="och-body">
127 <xsl:for-each select="./*">
128 <xsl:if test="not(name(.) = 'width') ">
129 <xsl:copy-of select="." />
134 <xsl:template name="otu-body">
135 <xsl:for-each select="./*">
136 <xsl:if test="not(name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled') ">
137 <xsl:copy-of select="." />
142 <xsl:template name="odu-body">
143 <xsl:for-each select="./*">
144 <xsl:if test="not(name(.)='no-oam-function' or name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled' or name(.)='opu') ">
145 <xsl:copy-of select="." />
147 <xsl:if test="name(.)='opu'">
148 <xsl:element name="opu" xmlns="http://org/openroadm/otn-odu-interfaces">
149 <xsl:call-template name="opu-body"/>
155 <xsl:template name="opu-body">
156 <xsl:for-each select="./*">
157 <xsl:if test="not(name(.)='rx-payload-type' or name(.) = 'msi') ">
158 <xsl:copy-of select="." />
163 <xsl:template name="proto-body">
164 <xsl:for-each select="./*">
165 <xsl:if test="name(.) = 'lldp'">
166 <xsl:for-each select=".">
167 <xsl:element name="lldp" xmlns="http://org/openroadm/lldp">
168 <xsl:call-template name="lldp-body"/>
175 <xsl:template name="ports-body">
176 <xsl:for-each select="./*">
177 <xsl:if test="name(.) = 'port-name' or name(.) = 'port-type' or name(.) = 'port-qual' or name(.) = 'circuit-id' or name(.) = 'administrative-state' or name(.) = 'logical-connection-point' or name(.) = 'roadm-port' or name(.) = 'otdr-port' or name(.) = 'ila-port' ">
178 <xsl:copy-of select="." />
183 <xsl:template name="lldp-body">
184 <xsl:for-each select="./*">
185 <xsl:if test="not(name(.) = 'nbr-list') ">
186 <xsl:copy-of select="." />
191 <xsl:template name="degree-body">
192 <xsl:for-each select="./*">
193 <xsl:if test="not(name(.) = 'max-wavelengths')">
194 <xsl:copy-of select="." />
199 <xsl:template name="srg-body">
200 <xsl:for-each select="./*">
201 <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelength-duplication' or name(.) = 'current-provisioned-add-drop-ports')">
202 <xsl:copy-of select="." />