We noticed that there are cases where, xponder subtree may not have all the connection map details. Below is an example:
<xponder> <xpdr-number>2</xpdr-number> <xpdr-port> <index>2</index> <port-name>1</port-name> <eqpt-srg-id>1</eqpt-srg-id> <circuit-pack-name>1-1-4</circuit-pack-name> </xpdr-port> <xpdr-port> <index>1</index> <port-name>1</port-name> <eqpt-srg-id>1</eqpt-srg-id> <circuit-pack-name>1-1-3</circuit-pack-name> </xpdr-port> <xpdr-type>tpdr</xpdr-type> </xponder> <xponder> <xpdr-number>1</xpdr-number> <xpdr-port> <index>2</index> <port-name>1</port-name> <eqpt-srg-id>1</eqpt-srg-id> <circuit-pack-name>1-1-2</circuit-pack-name> </xpdr-port> <xpdr-port> <index>1</index> <port-name>1</port-name> <eqpt-srg-id>1</eqpt-srg-id> <circuit-pack-name>1-1-1</circuit-pack-name> </xpdr-port> <recolor>false</recolor> <xpdr-type>tpdr</xpdr-type> </xponder> <connection-map> <connection-map-number>16843777</connection-map-number> <destination> <circuit-pack-name>1-1-3</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-1-4</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16843521</connection-map-number> <destination> <circuit-pack-name>1-1-4</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-1-3</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16843265</connection-map-number> <destination> <circuit-pack-name>1-1-1</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-1-2</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16843009</connection-map-number> <destination> <circuit-pack-name>1-1-2</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-1-1</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16909313</connection-map-number> <destination> <circuit-pack-name>1-2-3</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-2-4</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16909057</connection-map-number> <destination> <circuit-pack-name>1-2-4</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-2-3</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16908801</connection-map-number> <destination> <circuit-pack-name>1-2-1</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-2-2</circuit-pack-name> </source> </connection-map> <connection-map> <connection-map-number>16908545</connection-map-number> <destination> <circuit-pack-name>1-2-2</circuit-pack-name> <port-name>1</port-name> </destination> <source> <port-name>1</port-name> <circuit-pack-name>1-2-1</circuit-pack-name> </source> </connection-map>
In the this case the circuit-packs 1-2-1, 1-2-2, 1-2-3, 1-2-4 does not have xponder substree. While we can manually create xponder subtree in the device for these missing circuit-packs. It would be better if the code throws error for such scenarios, while continue to build the port-mapping.