use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.
the class RecordHandler method doInstallIslDefaultRule.
private void doInstallIslDefaultRule(CommandMessage message) {
InstallIslDefaultRulesCommand toSetup = (InstallIslDefaultRulesCommand) message.getData();
InstallIslDefaultRulesResult result = new InstallIslDefaultRulesResult(toSetup.getSrcSwitch(), toSetup.getSrcPort(), toSetup.getDstSwitch(), toSetup.getDstPort(), true);
DatapathId dpid = DatapathId.of(toSetup.getSrcSwitch().toLong());
try {
if (toSetup.isMultitableMode()) {
context.getSwitchManager().installMultitableEndpointIslRules(dpid, toSetup.getSrcPort());
}
if (toSetup.isServer42IslRtt()) {
context.getSwitchManager().installServer42IslRttInputFlow(dpid, toSetup.getServer42Port(), toSetup.getSrcPort());
}
} catch (SwitchOperationException e) {
logger.error("Failed to install isl rules for switch: '{}'", toSetup.getSrcSwitch(), e);
result.setSuccess(false);
}
getKafkaProducer().sendMessageAndTrack(context.getKafkaSwitchManagerTopic(), record.key(), new InfoMessage(result, System.currentTimeMillis(), message.getCorrelationId(), context.getRegion()));
}
use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.
the class PingData method of.
/**
* Build {@link PingData} from {@link Ping} instance.
*/
public static PingData of(Ping ping) {
NetworkEndpoint ingress = ping.getSource();
DatapathId source = DatapathId.of(ingress.getDatapath().toLong());
DatapathId dest = DatapathId.of(ping.getDest().getDatapath().toLong());
return new PingData(ingress.getPortNumber(), source, dest, ping.getPingId());
}
use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.
the class PingData method of.
/**
* Build {@link PingData} from {@link DecodedJWT} token.
*/
public static PingData of(DecodedJWT token) throws CorruptedNetworkDataException {
PingData data;
try {
DatapathId ingress = DatapathId.of(token.getClaim(makeIngressDatapathRef()).asLong());
int ingressPortNumber = token.getClaim(makeIngressPortRef()).asInt();
DatapathId egress = DatapathId.of(token.getClaim(makeEgressDatapathRef()).asLong());
UUID packetId = UUID.fromString(token.getClaim(makePingIdRef()).asString());
data = new PingData(ingressPortNumber, ingress, egress, packetId);
data.setSenderLatency(token.getClaim(makeIngressLatencyRef()).asLong());
data.setSendTime(token.getClaim(makeTimestampRef()).asLong());
} catch (NullPointerException e) {
throw new CorruptedNetworkDataException(String.format("Corrupted flow verification package (%s)", token));
}
return data;
}
use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.
the class NetworkDiscoveryEmitter method emit.
void emit(DiscoveryHolder discovery) {
DiscoverIslCommandData request = discovery.getDiscoveryRequest();
DatapathId dpId = DatapathId.of(request.getSwitchId().getId());
pathVerificationService.sendDiscoveryMessage(dpId, OFPort.of(request.getPortNumber()), request.getPacketId());
DiscoPacketSendingConfirmation confirmation = new DiscoPacketSendingConfirmation(new NetworkEndpoint(request.getSwitchId(), request.getPortNumber()), request.getPacketId());
kafkaProducerService.sendMessageAndTrackWithZk(confirmationTopic, request.getSwitchId().toString(), new InfoMessage(confirmation, System.currentTimeMillis(), discovery.getCorrelationId(), region));
}
use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.
the class OfPortDescConverterTest method testPortChangeTypeMapping.
@Test
public void testPortChangeTypeMapping() {
OFPortDesc portDesc = OFFactoryVer13.INSTANCE.buildPortDesc().setPortNo(OFPort.of(1)).setName("test").build();
Map<org.openkilda.messaging.info.event.PortChangeType, net.floodlightcontroller.core.PortChangeType> expected = new HashMap<>();
expected.put(org.openkilda.messaging.info.event.PortChangeType.ADD, net.floodlightcontroller.core.PortChangeType.ADD);
expected.put(org.openkilda.messaging.info.event.PortChangeType.OTHER_UPDATE, net.floodlightcontroller.core.PortChangeType.OTHER_UPDATE);
expected.put(org.openkilda.messaging.info.event.PortChangeType.DELETE, net.floodlightcontroller.core.PortChangeType.DELETE);
expected.put(org.openkilda.messaging.info.event.PortChangeType.UP, net.floodlightcontroller.core.PortChangeType.UP);
expected.put(org.openkilda.messaging.info.event.PortChangeType.DOWN, net.floodlightcontroller.core.PortChangeType.DOWN);
DatapathId dpId = DatapathId.of(1);
for (Map.Entry<org.openkilda.messaging.info.event.PortChangeType, net.floodlightcontroller.core.PortChangeType> entry : expected.entrySet()) {
PortInfoData encoded = OfPortDescConverter.INSTANCE.toPortInfoData(dpId, portDesc, entry.getValue());
Assert.assertSame(entry.getKey(), encoded.getState());
}
}
Aggregations