// some mutualization would be helpful
public class PortMappingVersion710 {
private static final Logger LOG = LoggerFactory.getLogger(PortMappingVersion710.class);
+ private static final Map<Direction, String> SUFFIX;
private final DataBroker dataBroker;
private final DeviceTransactionManager deviceTransactionManager;
private final OpenRoadmInterfaces openRoadmInterfaces;
+ static {
+ SUFFIX = Map.of(
+ Direction.Tx, "TX",
+ Direction.Rx, "RX",
+ Direction.Bidirectional, "TXRX");
+ }
+
public PortMappingVersion710(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager,
OpenRoadmInterfaces openRoadmInterfaces) {
this.dataBroker = dataBroker;
switch (port.getPortQual()) {
case XpdrClient:
- String lcp0 = "XPDR1-" + StringConstants.CLIENT_TOKEN + client;
+ String lcp0 = createXpdrLogicalConnectionPort(1, client, StringConstants.CLIENT_TOKEN);
lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0);
mappingMap.put(lcp0,
createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, null));
case XpdrNetwork:
if (port.getPortDirection().getIntValue() == Direction.Bidirectional.getIntValue()) {
- String lcp = "XPDR1-" + StringConstants.NETWORK_TOKEN + line;
+ String lcp = createXpdrLogicalConnectionPort(1, line, StringConstants.NETWORK_TOKEN);
lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp);
mappingMap.put(lcp,
createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null, null)
line++;
continue;
}
- // TODO PortDirection treatment here is similar to the one in createPpPortMapping.
- // Some code alignment must be considered.
if (!checkPartnerPortNotNull(port)) {
LOG.warn("Error in the configuration of port {} of {} for {}",
circuitPackName);
continue;
}
- String lcp1 = "XPDR1-" + StringConstants.NETWORK_TOKEN + line;
- String lcp2 = new StringBuilder("XPDR1-")
- .append(StringConstants.NETWORK_TOKEN)
- .append(line + 1)
- .toString();
+ String lcp1 = createXpdrLogicalConnectionPort(1, line, StringConstants.NETWORK_TOKEN);
+ String lcp2 = createXpdrLogicalConnectionPort(1, line + 1, StringConstants.NETWORK_TOKEN);
if (lcpMap.containsKey(lcp1) || lcpMap.containsKey(lcp2)) {
LOG.warn("mapping already exists for {} or {}", lcp1, lcp2);
line += 2;
case XpdrClient:
case SwitchClient:
- String lcp0 = "XPDR" + xponderNb + "-" + StringConstants.CLIENT_TOKEN + client;
+ String lcp0 =
+ createXpdrLogicalConnectionPort(xponderNb , client, StringConstants.CLIENT_TOKEN);
lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0);
mappingMap.put(lcp0,
createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, null));
case XpdrNetwork:
case SwitchNetwork:
if (port.getPortDirection().getIntValue() == Direction.Bidirectional.getIntValue()) {
- String lcp = "XPDR" + xponderNb + "-" + StringConstants.NETWORK_TOKEN + line;
+ String lcp =
+ createXpdrLogicalConnectionPort(xponderNb , line, StringConstants.NETWORK_TOKEN);
lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp);
mappingMap.put(lcp,
createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null,
line++;
continue;
}
- // TODO PortDirection treatment here is similar to the one in createPpPortMapping.
- // Some code alignment must be considered.
if (!checkPartnerPortNotNull(port)) {
LOG.warn("Error in the configuration of port {} of {} for {}",
circuitPackName);
continue;
}
- String lcp1 = "XPDR" + xponderNb + "-" + StringConstants.NETWORK_TOKEN + line;
- String lcp2 = new StringBuilder("XPDR")
- .append(xponderNb)
- .append("-")
- .append(StringConstants.NETWORK_TOKEN)
- .append(line + 1)
- .toString();
+ String lcp1 =
+ createXpdrLogicalConnectionPort(xponderNb , line, StringConstants.NETWORK_TOKEN);
+ String lcp2 =
+ createXpdrLogicalConnectionPort(xponderNb , line + 1, StringConstants.NETWORK_TOKEN);
if (lcpMap.containsKey(lcp1) || lcpMap.containsKey(lcp2)) {
LOG.warn("mapping already exists for {} or {}", lcp1, lcp2);
line += 2;
}
private String createLogicalConnectionPort(Ports port, int index, int portIndex) {
- String lcp = null;
- switch (port.getPortDirection()) {
- case Tx:
- lcp = "SRG" + index + "-PP" + portIndex + "-TX";
- break;
- case Rx:
- lcp = "SRG" + index + "-PP" + portIndex + "-RX";
- break;
- case Bidirectional:
- lcp = "SRG" + index + "-PP" + portIndex + "-TXRX";
- break;
- default:
- LOG.error("Unsupported port direction for port {} : {}", port, port.getPortDirection());
+ if (SUFFIX.containsKey(port.getPortDirection())) {
+ return String.join("-", "SRG" + index, "PP" + portIndex, SUFFIX.get(port.getPortDirection()));
}
- return lcp;
+ LOG.error("port {} : Unsupported port direction {}", port, port.getPortDirection());
+ return null;
+ }
+
+ private String createXpdrLogicalConnectionPort(int xponderNb, int lcpNb, String token) {
+ return new StringBuilder("XPDR").append(xponderNb)
+ .append("-")
+ .append(token).append(lcpNb)
+ .toString();
}
private Map<McCapabilityProfileKey, McCapabilityProfile> getMcCapabilityProfiles(String deviceId, Info ordmInfo) {