use of org.openkilda.simulator.messages.SwitchMessage in project open-kilda by telstra.
the class SimulatorCommandBolt method createTopology.
private List<Values> createTopology(TopologyMessage topology) {
List<SwitchMessage> switches = topology.getSwitches();
List<Values> values = new ArrayList<>();
for (SwitchMessage sw : switches) {
// Need to pre-pend 00:00 as DPID as returned by OpenflowJ has 8 octets
values.add(new Values(String.format("00:00:%s", sw.getDpid()).toLowerCase(), sw, SimulatorCommands.DO_ADD_SWITCH));
logger.info("Add Switch: {}", sw.getDpid());
}
return values;
}
use of org.openkilda.simulator.messages.SwitchMessage in project open-kilda by telstra.
the class SpeakerBolt method doCommand.
public void doCommand(Tuple tuple) throws Exception {
String command = tuple.getStringByField(TupleFields.COMMAND.name());
List<Values> values = new ArrayList<>();
if (command.equals(SimulatorCommands.DO_ADD_SWITCH)) {
values = addSwitch((SwitchMessage) tuple.getValueByField(TupleFields.DATA.name()));
if (values.size() > 0) {
for (Values value : values) {
logger.debug("emitting: {}", value);
collector.emit(SimulatorTopology.KAFKA_BOLT_STREAM, tuple, value);
}
}
return;
} else if (command.equals(Commands.DO_DISCOVER_ISL_P2_COMMAND.name())) {
discoverIslPartTwo(tuple, (IslInfoData) tuple.getValueByField(TupleFields.DATA.name()));
return;
}
CommandData data = (CommandData) tuple.getValueByField(TupleFields.DATA.name());
if (command.equals(Commands.DO_DELETE_FLOW.name())) {
} else if (command.equals(Commands.DO_DISCOVER_ISL_COMMAND.name())) {
discoverIsl(tuple, (DiscoverIslCommandData) data);
} else if (command.equals(Commands.DO_DISCOVER_PATH_COMMAND.name())) {
} else if (command.equals(Commands.DO_INSTALL_EGRESS_FLOW.name())) {
} else if (command.equals(Commands.DO_INSTALL_INGRESS_FLOW.name())) {
} else if (command.equals(Commands.DO_INSTALL_ONESWITCH_FLOW.name())) {
} else if (command.equals(Commands.DO_INSTALL_TRANSIT_FLOW.name())) {
} else {
logger.error("Unknown switch command: {}".format(command));
return;
}
if (values.size() > 0) {
for (Values value : values) {
logger.debug("emitting: {}", value);
collector.emit(SimulatorTopology.KAFKA_BOLT_STREAM, tuple, value);
}
}
}
use of org.openkilda.simulator.messages.SwitchMessage in project open-kilda by telstra.
the class SpeakerBoltTest method setUp.
@Before
public void setUp() throws Exception {
mapper = new ObjectMapper();
speakerBolt = new SpeakerBolt();
speakerBolt.prepare(null, null, null);
link = new LinkMessage(linkLatency, localLinkPort, peerSwitch, peerPort);
links.add(link);
switchMessage = new SwitchMessage(dpid, numOfPorts, links);
}
use of org.openkilda.simulator.messages.SwitchMessage in project open-kilda by telstra.
the class SpeakerBolt method doSimulatorCommand.
public void doSimulatorCommand(Tuple tuple) throws Exception {
List<Values> values = new ArrayList<>();
if (tuple.getFields().contains("command")) {
String command = tuple.getStringByField("command");
switch(command) {
case SimulatorCommands.DO_ADD_SWITCH:
// TODO: this is an ugly hack...
if (tuple.getValueByField("data") instanceof AddSwitchCommand) {
values = addSwitch((AddSwitchCommand) tuple.getValueByField("data"));
} else {
values = addSwitch((SwitchMessage) tuple.getValueByField("data"));
}
break;
case SimulatorCommands.DO_ADD_LINK:
values = addLink((AddLinkCommandMessage) tuple.getValueByField("data"));
break;
case SimulatorCommands.DO_PORT_MOD:
values = modPort((PortModMessage) tuple.getValueByField("data"));
break;
default:
logger.error(String.format("Uknown SimulatorCommand %s", command));
}
} else {
SimulatorMessage message = (SimulatorMessage) tuple.getValueByField("data");
if (message instanceof SwitchModMessage) {
SwitchModMessage switchModMessage = (SwitchModMessage) message;
ISwitchImpl sw = getSwitch(switchModMessage.getDpid());
// sw.mod(switchModMessage.getState());
} else {
logger.error("Unkown SimulatorMessage {}", message.getClass().getSimpleName());
}
}
if (values.size() > 0) {
for (Values value : values) {
logger.debug("emitting: {}", value);
collector.emit(SimulatorTopology.KAFKA_BOLT_STREAM, tuple, value);
}
}
}
Aggregations