use of org.openkilda.messaging.command.flow.BaseInstallFlow in project open-kilda by telstra.
the class CommandBuilderImpl method buildInstallSpecialDefaultRuleCommands.
/**
* Some default rules require additional properties to be installed. This method creates commands for such rules.
*/
private List<BaseInstallFlow> buildInstallSpecialDefaultRuleCommands(SwitchId switchId, List<Long> switchRules) {
SwitchProperties properties = getSwitchProperties(switchId);
List<BaseInstallFlow> commands = new ArrayList<>();
for (Long cookie : switchRules) {
InstallServer42FlowBuilder command = InstallServer42Flow.builder().transactionId(transactionIdGenerator.generate()).cookie(cookie).switchId(switchId).multiTable(properties.isMultiTable()).inputPort(0).outputPort(0).server42Vlan(properties.getServer42Vlan()).server42MacAddress(properties.getServer42MacAddress());
if (cookie == SERVER_42_FLOW_RTT_OUTPUT_VLAN_COOKIE) {
commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_OUTPUT_VLAN_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
} else if (cookie == SERVER_42_FLOW_RTT_OUTPUT_VXLAN_COOKIE) {
commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_OUTPUT_VXLAN_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
} else if (new PortColourCookie(cookie).getType() == CookieType.SERVER_42_FLOW_RTT_INPUT) {
commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_INPUT_RULE_INSTALL").inputPort(properties.getServer42Port()).build());
} else if (cookie == SERVER_42_ISL_RTT_OUTPUT_COOKIE) {
commands.add(command.id("SWMANAGER_SERVER_42_ISL_RTT_OUTPUT_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
} else if (new PortColourCookie(cookie).getType() == CookieType.SERVER_42_ISL_RTT_INPUT) {
commands.add(command.id("SWMANAGER_SERVER_42_ISL_RTT_INPUT_RULE_INSTALL").inputPort(properties.getServer42Port()).build());
} else {
log.warn("Got request for installation of unknown rule {} on switch {}", cookie, switchId);
}
}
return commands;
}
Aggregations