+
+ putXpdrLcpsInMaps(line, nodeId, xponderNb,
+ circuitPackName, circuitPackName2.toString(), port, port2,
+ lcpMap, mappingMap);
+
+ line += 2;
+ break;
+
+ default:
+ LOG.error(PortMappingUtils.UNSUPPORTED_DIR_LOGMSG,
+ nodeId, port.getPortName(), circuitPackName, port.getPortDirection());
+ }
+
+ return line;
+ }
+
+ private boolean createTtpPortMapping(String nodeId, Info deviceInfo, List<Mapping> portMapList) {
+ // Creating mapping data for degree TTP's
+ Map<Integer, Degree> degrees = getDegreesMap(nodeId, deviceInfo);
+ Map<String, String> interfaceList = getEthInterfaceList(nodeId);
+ List<CpToDegree> cpToDegreeList = getCpToDegreeList(degrees, interfaceList);
+ LOG.info(PortMappingUtils.MAP_LOOKS_LOGMSG, nodeId, interfaceList);
+ postPortMapping(nodeId, null, null, cpToDegreeList);
+
+ Map<Integer, List<ConnectionPorts>> connectionPortMap = getPerDegreePorts(nodeId, deviceInfo);
+ for (Entry<Integer, List<ConnectionPorts>> cpMapEntry : connectionPortMap.entrySet()) {
+ List<ConnectionPorts> cpMapValue = cpMapEntry.getValue();
+ ConnectionPorts cp1 = cpMapValue.get(0);
+ String cp1Name = cp1.getCircuitPackName();
+ switch (cpMapValue.size()) {
+ case 1:
+ // port is bidirectional
+ Ports port = getTtpPort(cp1, cp1Name, nodeId);
+ if (port == null) {
+ return false;
+ }
+ if (!checkTtpPort(port, cp1Name, nodeId, true)) {
+ continue;
+ }
+ String logicalConnectionPoint =
+ PortMappingUtils.degreeTtpNodeName(cpMapEntry.getKey().toString(), "TXRX");
+ LOG.info(PortMappingUtils.ASSOCIATED_LCP_LOGMSG,
+ nodeId, port.getPortName(), cp1Name, logicalConnectionPoint);
+ portMapList.add(createMappingObject(nodeId, port, cp1Name, logicalConnectionPoint));
+ break;
+ case 2:
+ // ports are unidirectionals
+ Ports port1 = getTtpPort(cp1, cp1Name, nodeId);
+ if (port1 == null) {
+ return false;
+ }
+ ConnectionPorts cp2 = cpMapValue.get(1);
+ String cp2Name = cp2.getCircuitPackName();
+ Ports port2 = getTtpPort(cp2, cp2Name, nodeId);
+ if (port2 == null) {
+ return false;
+ }
+ if (!checkTtpPortsUnidir(port1, port2, cp1Name, cp2Name, nodeId)) {
+ continue;
+ }
+ String logicalConnectionPoint1 = PortMappingUtils.degreeTtpNodeName(cpMapEntry.getKey().toString(),
+ port1.getPortDirection().getName().toUpperCase(Locale.getDefault()));
+ LOG.info(PortMappingUtils.ASSOCIATED_LCP_LOGMSG,
+ nodeId, port1.getPortName(), cp1Name, logicalConnectionPoint1);
+ portMapList.add(createMappingObject(nodeId, port1, cp1Name, logicalConnectionPoint1));
+ String logicalConnectionPoint2 = PortMappingUtils.degreeTtpNodeName(cpMapEntry.getKey().toString(),
+ port2.getPortDirection().getName().toUpperCase(Locale.getDefault()));
+ LOG.info(PortMappingUtils.ASSOCIATED_LCP_LOGMSG,
+ nodeId, port2.getPortName(), cp2Name, logicalConnectionPoint2);
+ portMapList.add(createMappingObject(nodeId, port2, cp2Name, logicalConnectionPoint2));
+ break;
+ default:
+ LOG.error(PortMappingUtils.NOT_CORRECT_CONPORT_LOGMSG, nodeId, cpMapEntry.getKey());
+ continue;
+ //TODO should it be continue or return false ?