use of org.openkilda.model.cookie.PortColourCookie in project open-kilda by telstra.
the class EgressIslVlanRuleGenerator method generateCommands.
@Override
public List<SpeakerData> generateCommands(Switch sw) {
Set<FieldMatch> match = Sets.newHashSet(FieldMatch.builder().field(Field.IN_PORT).value(islPort).build());
Instructions instructions = Instructions.builder().goToTable(OfTable.EGRESS).build();
return Collections.singletonList(FlowSpeakerData.builder().switchId(sw.getSwitchId()).ofVersion(OfVersion.of(sw.getOfVersion())).cookie(new PortColourCookie(CookieType.MULTI_TABLE_ISL_VLAN_EGRESS_RULES, islPort)).table(OfTable.INPUT).priority(ISL_EGRESS_VLAN_RULE_PRIORITY_MULTITABLE).match(match).instructions(instructions).build());
}
use of org.openkilda.model.cookie.PortColourCookie 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