@Test public void installOneSwitchFlowPushAction() throws Exception { Capture<OFFlowMod> capture = prepareForInstallTest(); switchManager.installOneSwitchFlow(dpid, cookieHex, cookie, inputPort, outputPort, 0, outputVlanId, OutputVlanType.PUSH, meterId, false); assertEquals( scheme.oneSwitchPushFlowMod(inputPort, outputPort, outputVlanId, meterId, cookie), capture.getValue()); }
@Override public long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort, int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId, boolean multiTable) throws SwitchOperationException { List<OFAction> actionList = new ArrayList<>(); IOFSwitch sw = lookupSwitch(dpid); OFFactory ofFactory = sw.getOFFactory(); OFInstructionMeter meter = buildMeterInstruction(meterId, sw, actionList); actionList.addAll(pushSchemeOutputVlanTypeToOfActionList(ofFactory, outputVlanId, outputVlanType)); OFPort ofOutputPort = outputPort == inputPort ? OFPort.IN_PORT : OFPort.of(outputPort); actionList.add(actionSetOutputPort(ofFactory, ofOutputPort)); OFInstructionApplyActions actions = buildInstructionApplyActions(ofFactory, actionList); Match match = matchFlow(ofFactory, inputPort, inputVlanId, FlowEncapsulationType.TRANSIT_VLAN); int flowPriority = getFlowPriority(inputVlanId); List<OFInstruction> instructions = createIngressFlowInstructions(ofFactory, meter, actions, multiTable); if (multiTable) { RoutingMetadata metadata = buildMetadata(RoutingMetadata.builder().oneSwitchFlowFlag(true), sw); OFInstructionWriteMetadata writeMetadata = ofFactory.instructions().buildWriteMetadata() .setMetadata(metadata.getValue()) .setMetadataMask(metadata.getMask()) .build(); instructions.add(writeMetadata); } OFFlowMod.Builder builder = prepareFlowModBuilder(ofFactory, cookie & FLOW_COOKIE_MASK, flowPriority, multiTable ? INGRESS_TABLE_ID : INPUT_TABLE_ID) .setInstructions(instructions) .setMatch(match); if (featureDetectorService.detectSwitch(sw).contains(SwitchFeature.RESET_COUNTS_FLAG)) { builder.setFlags(ImmutableSet.of(OFFlowModFlags.RESET_COUNTS)); } return pushFlow(sw, flowId, builder.build()); }
SwitchManager implements IFloodlightModule, IFloodlightService, ISwitchManager, IOFMessageListener { @Override public long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort, int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId, boolean multiTable) throws SwitchOperationException { List<OFAction> actionList = new ArrayList<>(); IOFSwitch sw = lookupSwitch(dpid); OFFactory ofFactory = sw.getOFFactory(); OFInstructionMeter meter = buildMeterInstruction(meterId, sw, actionList); actionList.addAll(pushSchemeOutputVlanTypeToOfActionList(ofFactory, outputVlanId, outputVlanType)); OFPort ofOutputPort = outputPort == inputPort ? OFPort.IN_PORT : OFPort.of(outputPort); actionList.add(actionSetOutputPort(ofFactory, ofOutputPort)); OFInstructionApplyActions actions = buildInstructionApplyActions(ofFactory, actionList); Match match = matchFlow(ofFactory, inputPort, inputVlanId, FlowEncapsulationType.TRANSIT_VLAN); int flowPriority = getFlowPriority(inputVlanId); List<OFInstruction> instructions = createIngressFlowInstructions(ofFactory, meter, actions, multiTable); if (multiTable) { RoutingMetadata metadata = buildMetadata(RoutingMetadata.builder().oneSwitchFlowFlag(true), sw); OFInstructionWriteMetadata writeMetadata = ofFactory.instructions().buildWriteMetadata() .setMetadata(metadata.getValue()) .setMetadataMask(metadata.getMask()) .build(); instructions.add(writeMetadata); } OFFlowMod.Builder builder = prepareFlowModBuilder(ofFactory, cookie & FLOW_COOKIE_MASK, flowPriority, multiTable ? INGRESS_TABLE_ID : INPUT_TABLE_ID) .setInstructions(instructions) .setMatch(match); if (featureDetectorService.detectSwitch(sw).contains(SwitchFeature.RESET_COUNTS_FLAG)) { builder.setFlags(ImmutableSet.of(OFFlowModFlags.RESET_COUNTS)); } return pushFlow(sw, flowId, builder.build()); } }
SwitchManager implements IFloodlightModule, IFloodlightService, ISwitchManager, IOFMessageListener { @Override public long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort, int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId, boolean multiTable) throws SwitchOperationException { List<OFAction> actionList = new ArrayList<>(); IOFSwitch sw = lookupSwitch(dpid); OFFactory ofFactory = sw.getOFFactory(); OFInstructionMeter meter = buildMeterInstruction(meterId, sw, actionList); actionList.addAll(pushSchemeOutputVlanTypeToOfActionList(ofFactory, outputVlanId, outputVlanType)); OFPort ofOutputPort = outputPort == inputPort ? OFPort.IN_PORT : OFPort.of(outputPort); actionList.add(actionSetOutputPort(ofFactory, ofOutputPort)); OFInstructionApplyActions actions = buildInstructionApplyActions(ofFactory, actionList); Match match = matchFlow(ofFactory, inputPort, inputVlanId, FlowEncapsulationType.TRANSIT_VLAN); int flowPriority = getFlowPriority(inputVlanId); List<OFInstruction> instructions = createIngressFlowInstructions(ofFactory, meter, actions, multiTable); if (multiTable) { RoutingMetadata metadata = buildMetadata(RoutingMetadata.builder().oneSwitchFlowFlag(true), sw); OFInstructionWriteMetadata writeMetadata = ofFactory.instructions().buildWriteMetadata() .setMetadata(metadata.getValue()) .setMetadataMask(metadata.getMask()) .build(); instructions.add(writeMetadata); } OFFlowMod.Builder builder = prepareFlowModBuilder(ofFactory, cookie & FLOW_COOKIE_MASK, flowPriority, multiTable ? INGRESS_TABLE_ID : INPUT_TABLE_ID) .setInstructions(instructions) .setMatch(match); if (featureDetectorService.detectSwitch(sw).contains(SwitchFeature.RESET_COUNTS_FLAG)) { builder.setFlags(ImmutableSet.of(OFFlowModFlags.RESET_COUNTS)); } return pushFlow(sw, flowId, builder.build()); }  }
SwitchManager implements IFloodlightModule, IFloodlightService, ISwitchManager, IOFMessageListener { @Override public long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort, int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId, boolean multiTable) throws SwitchOperationException { List<OFAction> actionList = new ArrayList<>(); IOFSwitch sw = lookupSwitch(dpid); OFFactory ofFactory = sw.getOFFactory(); OFInstructionMeter meter = buildMeterInstruction(meterId, sw, actionList); actionList.addAll(pushSchemeOutputVlanTypeToOfActionList(ofFactory, outputVlanId, outputVlanType)); OFPort ofOutputPort = outputPort == inputPort ? OFPort.IN_PORT : OFPort.of(outputPort); actionList.add(actionSetOutputPort(ofFactory, ofOutputPort)); OFInstructionApplyActions actions = buildInstructionApplyActions(ofFactory, actionList); Match match = matchFlow(ofFactory, inputPort, inputVlanId, FlowEncapsulationType.TRANSIT_VLAN); int flowPriority = getFlowPriority(inputVlanId); List<OFInstruction> instructions = createIngressFlowInstructions(ofFactory, meter, actions, multiTable); if (multiTable) { RoutingMetadata metadata = buildMetadata(RoutingMetadata.builder().oneSwitchFlowFlag(true), sw); OFInstructionWriteMetadata writeMetadata = ofFactory.instructions().buildWriteMetadata() .setMetadata(metadata.getValue()) .setMetadataMask(metadata.getMask()) .build(); instructions.add(writeMetadata); } OFFlowMod.Builder builder = prepareFlowModBuilder(ofFactory, cookie & FLOW_COOKIE_MASK, flowPriority, multiTable ? INGRESS_TABLE_ID : INPUT_TABLE_ID) .setInstructions(instructions) .setMatch(match); if (featureDetectorService.detectSwitch(sw).contains(SwitchFeature.RESET_COUNTS_FLAG)) { builder.setFlags(ImmutableSet.of(OFFlowModFlags.RESET_COUNTS)); } return pushFlow(sw, flowId, builder.build()); }  @Override Collection<Class<? extends IFloodlightService>> getModuleServices(); @Override Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls(); @Override Collection<Class<? extends IFloodlightService>> getModuleDependencies(); @Override void init(FloodlightModuleContext context); @Override void startUp(FloodlightModuleContext context); @Override @NewCorrelationContextRequired Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx); @Override String getName(); @Override void activate(DatapathId dpid); @Override void deactivate(DatapathId dpid); @Override boolean isCallbackOrderingPrereq(OFType type, String name); @Override boolean isCallbackOrderingPostreq(OFType type, String name); @Override ConnectModeRequest.Mode connectMode(final ConnectModeRequest.Mode mode); @Override List<Long> installDefaultRules(final DatapathId dpid); @Override long installIngressFlow(DatapathId dpid, DatapathId dstDpid, String flowId, Long cookie, int inputPort,
                                   int outputPort, int inputVlanId, int transitTunnelId, OutputVlanType outputVlanType,
                                   long meterId, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installServer42IngressFlow(
            DatapathId dpid, DatapathId dstDpid, Long cookie, org.openkilda.model.MacAddress server42MacAddress,
            int server42Port, int outputPort, int customerPort, int inputVlanId, int transitTunnelId,
            OutputVlanType outputVlanType, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installEgressFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                  int transitTunnelId, int outputVlanId, OutputVlanType outputVlanType,
                                  FlowEncapsulationType encapsulationType,
                                  boolean multiTable); @Override long installTransitFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                   int transitTunnelId, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                     int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId,
                                     boolean multiTable); @Override void installOuterVlanMatchSharedFlow(SwitchId switchId, String flowId, FlowSharedSegmentCookie cookie); @Override List<OFFlowMod> getExpectedDefaultFlows(DatapathId dpid, boolean multiTable, boolean switchLldp,
                                                   boolean switchArp); @Override List<MeterEntry> getExpectedDefaultMeters(DatapathId dpid, boolean multiTable, boolean switchLldp,
                                                     boolean switchArp); @Override List<OFFlowMod> getExpectedIslFlowsForPort(DatapathId dpid, int port); @Override List<OFFlowStatsEntry> dumpFlowTable(final DatapathId dpid); @Override List<OFMeterConfig> dumpMeters(final DatapathId dpid); @Override OFMeterConfig dumpMeterById(final DatapathId dpid, final long meterId); @Override void installMeterForFlow(DatapathId dpid, long bandwidth, final long meterId); @Override void modifyMeterForFlow(DatapathId dpid, long meterId, long bandwidth); @Override Map<DatapathId, IOFSwitch> getAllSwitchMap(boolean visible); @Override void deleteMeter(final DatapathId dpid, final long meterId); @Override List<Long> deleteAllNonDefaultRules(final DatapathId dpid); @Override List<Long> deleteRulesByCriteria(DatapathId dpid, boolean multiTable, RuleType ruleType,
                                            DeleteRulesCriteria... criteria); @Override List<Long> deleteDefaultRules(DatapathId dpid, List<Integer> islPorts,
                                         List<Integer> flowPorts, Set<Integer> flowLldpPorts,
                                         Set<Integer> flowArpPorts, Set<Integer> server42FlowRttPorts,
                                         boolean multiTable, boolean switchLldp, boolean switchArp,
                                         boolean server42FlowRtt); @Override Long installUnicastVerificationRuleVxlan(final DatapathId dpid); @Override Long installVerificationRule(final DatapathId dpid, final boolean isBroadcast); @Override List<OFGroupDescStatsEntry> dumpGroups(DatapathId dpid); @Override void installDropFlowCustom(final DatapathId dpid, String dstMac, String dstMask,
                                      final long cookie, final int priority); @Override Long installDropFlow(final DatapathId dpid); @Override Long installDropFlowForTable(final DatapathId dpid, final int tableId,
                                        final long cookie); @Override Long installBfdCatchFlow(DatapathId dpid); @Override Long installRoundTripLatencyFlow(DatapathId dpid); @Override long installEgressIslVxlanRule(DatapathId dpid, int port); @Override long removeEgressIslVxlanRule(DatapathId dpid, int port); @Override long installTransitIslVxlanRule(DatapathId dpid, int port); @Override long removeTransitIslVxlanRule(DatapathId dpid, int port); @Override long installEgressIslVlanRule(DatapathId dpid, int port); Long installLldpTransitFlow(DatapathId dpid); @Override Long installLldpInputPreDropFlow(DatapathId dpid); @Override Long installArpTransitFlow(DatapathId dpid); @Override Long installArpInputPreDropFlow(DatapathId dpid); @Override Long installServer42InputFlow(DatapathId dpid, int server42Port, int customerPort,
                                         org.openkilda.model.MacAddress server42macAddress); @Override Long installServer42TurningFlow(DatapathId dpid); @Override Long installServer42OutputVlanFlow(
            DatapathId dpid, int port, int vlan, org.openkilda.model.MacAddress macAddress); @Override Long installServer42OutputVxlanFlow(
            DatapathId dpid, int port, int vlan, org.openkilda.model.MacAddress macAddress); @Override long removeEgressIslVlanRule(DatapathId dpid, int port); @Override long installIntermediateIngressRule(DatapathId dpid, int port); @Override long removeIntermediateIngressRule(DatapathId dpid, int port); @Override long removeLldpInputCustomerFlow(DatapathId dpid, int port); @Override Long removeArpInputCustomerFlow(DatapathId dpid, int port); @Override Long removeServer42InputFlow(DatapathId dpid, int port); @Override OFFlowMod buildIntermediateIngressRule(DatapathId dpid, int port); @Override long installLldpInputCustomerFlow(DatapathId dpid, int port); @Override OFFlowMod buildLldpInputCustomerFlow(DatapathId dpid, int port); @Override Long installLldpIngressFlow(DatapathId dpid); @Override Long installLldpPostIngressFlow(DatapathId dpid); @Override Long installLldpPostIngressVxlanFlow(DatapathId dpid); @Override Long installLldpPostIngressOneSwitchFlow(DatapathId dpid); @Override Long installArpInputCustomerFlow(DatapathId dpid, int port); @Override OFFlowMod buildArpInputCustomerFlow(DatapathId dpid, int port); @Override List<OFFlowMod> buildExpectedServer42Flows(
            DatapathId dpid, int server42Port, int server42Vlan, org.openkilda.model.MacAddress server42MacAddress,
            Set<Integer> customerPorts); @Override Long installArpIngressFlow(DatapathId dpid); @Override Long installArpPostIngressFlow(DatapathId dpid); @Override Long installArpPostIngressVxlanFlow(DatapathId dpid); @Override Long installArpPostIngressOneSwitchFlow(DatapathId dpid); @Override Long installPreIngressTablePassThroughDefaultRule(DatapathId dpid); @Override Long installEgressTablePassThroughDefaultRule(DatapathId dpid); @Override List<Long> installMultitableEndpointIslRules(DatapathId dpid, int port); @Override List<Long> removeMultitableEndpointIslRules(DatapathId dpid, int port); @Override Long installDropLoopRule(DatapathId dpid); @Override IOFSwitch lookupSwitch(DatapathId dpId); @Override InetAddress getSwitchIpAddress(IOFSwitch sw); @Override List<OFPortDesc> getEnabledPhysicalPorts(DatapathId dpId); @Override List<OFPortDesc> getPhysicalPorts(DatapathId dpId); @Override List<OFPortDesc> getPhysicalPorts(IOFSwitch sw); @Override void safeModeTick(); @Override void configurePort(DatapathId dpId, int portNumber, Boolean portAdminDown); @Override List<OFPortDesc> dumpPortsDescription(DatapathId dpid); @Override SwitchManagerConfig getSwitchManagerConfig(); }
SwitchManager implements IFloodlightModule, IFloodlightService, ISwitchManager, IOFMessageListener { @Override public long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort, int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId, boolean multiTable) throws SwitchOperationException { List<OFAction> actionList = new ArrayList<>(); IOFSwitch sw = lookupSwitch(dpid); OFFactory ofFactory = sw.getOFFactory(); OFInstructionMeter meter = buildMeterInstruction(meterId, sw, actionList); actionList.addAll(pushSchemeOutputVlanTypeToOfActionList(ofFactory, outputVlanId, outputVlanType)); OFPort ofOutputPort = outputPort == inputPort ? OFPort.IN_PORT : OFPort.of(outputPort); actionList.add(actionSetOutputPort(ofFactory, ofOutputPort)); OFInstructionApplyActions actions = buildInstructionApplyActions(ofFactory, actionList); Match match = matchFlow(ofFactory, inputPort, inputVlanId, FlowEncapsulationType.TRANSIT_VLAN); int flowPriority = getFlowPriority(inputVlanId); List<OFInstruction> instructions = createIngressFlowInstructions(ofFactory, meter, actions, multiTable); if (multiTable) { RoutingMetadata metadata = buildMetadata(RoutingMetadata.builder().oneSwitchFlowFlag(true), sw); OFInstructionWriteMetadata writeMetadata = ofFactory.instructions().buildWriteMetadata() .setMetadata(metadata.getValue()) .setMetadataMask(metadata.getMask()) .build(); instructions.add(writeMetadata); } OFFlowMod.Builder builder = prepareFlowModBuilder(ofFactory, cookie & FLOW_COOKIE_MASK, flowPriority, multiTable ? INGRESS_TABLE_ID : INPUT_TABLE_ID) .setInstructions(instructions) .setMatch(match); if (featureDetectorService.detectSwitch(sw).contains(SwitchFeature.RESET_COUNTS_FLAG)) { builder.setFlags(ImmutableSet.of(OFFlowModFlags.RESET_COUNTS)); } return pushFlow(sw, flowId, builder.build()); }  @Override Collection<Class<? extends IFloodlightService>> getModuleServices(); @Override Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls(); @Override Collection<Class<? extends IFloodlightService>> getModuleDependencies(); @Override void init(FloodlightModuleContext context); @Override void startUp(FloodlightModuleContext context); @Override @NewCorrelationContextRequired Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx); @Override String getName(); @Override void activate(DatapathId dpid); @Override void deactivate(DatapathId dpid); @Override boolean isCallbackOrderingPrereq(OFType type, String name); @Override boolean isCallbackOrderingPostreq(OFType type, String name); @Override ConnectModeRequest.Mode connectMode(final ConnectModeRequest.Mode mode); @Override List<Long> installDefaultRules(final DatapathId dpid); @Override long installIngressFlow(DatapathId dpid, DatapathId dstDpid, String flowId, Long cookie, int inputPort,
                                   int outputPort, int inputVlanId, int transitTunnelId, OutputVlanType outputVlanType,
                                   long meterId, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installServer42IngressFlow(
            DatapathId dpid, DatapathId dstDpid, Long cookie, org.openkilda.model.MacAddress server42MacAddress,
            int server42Port, int outputPort, int customerPort, int inputVlanId, int transitTunnelId,
            OutputVlanType outputVlanType, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installEgressFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                  int transitTunnelId, int outputVlanId, OutputVlanType outputVlanType,
                                  FlowEncapsulationType encapsulationType,
                                  boolean multiTable); @Override long installTransitFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                   int transitTunnelId, FlowEncapsulationType encapsulationType, boolean multiTable); @Override long installOneSwitchFlow(DatapathId dpid, String flowId, Long cookie, int inputPort, int outputPort,
                                     int inputVlanId, int outputVlanId, OutputVlanType outputVlanType, long meterId,
                                     boolean multiTable); @Override void installOuterVlanMatchSharedFlow(SwitchId switchId, String flowId, FlowSharedSegmentCookie cookie); @Override List<OFFlowMod> getExpectedDefaultFlows(DatapathId dpid, boolean multiTable, boolean switchLldp,
                                                   boolean switchArp); @Override List<MeterEntry> getExpectedDefaultMeters(DatapathId dpid, boolean multiTable, boolean switchLldp,
                                                     boolean switchArp); @Override List<OFFlowMod> getExpectedIslFlowsForPort(DatapathId dpid, int port); @Override List<OFFlowStatsEntry> dumpFlowTable(final DatapathId dpid); @Override List<OFMeterConfig> dumpMeters(final DatapathId dpid); @Override OFMeterConfig dumpMeterById(final DatapathId dpid, final long meterId); @Override void installMeterForFlow(DatapathId dpid, long bandwidth, final long meterId); @Override void modifyMeterForFlow(DatapathId dpid, long meterId, long bandwidth); @Override Map<DatapathId, IOFSwitch> getAllSwitchMap(boolean visible); @Override void deleteMeter(final DatapathId dpid, final long meterId); @Override List<Long> deleteAllNonDefaultRules(final DatapathId dpid); @Override List<Long> deleteRulesByCriteria(DatapathId dpid, boolean multiTable, RuleType ruleType,
                                            DeleteRulesCriteria... criteria); @Override List<Long> deleteDefaultRules(DatapathId dpid, List<Integer> islPorts,
                                         List<Integer> flowPorts, Set<Integer> flowLldpPorts,
                                         Set<Integer> flowArpPorts, Set<Integer> server42FlowRttPorts,
                                         boolean multiTable, boolean switchLldp, boolean switchArp,
                                         boolean server42FlowRtt); @Override Long installUnicastVerificationRuleVxlan(final DatapathId dpid); @Override Long installVerificationRule(final DatapathId dpid, final boolean isBroadcast); @Override List<OFGroupDescStatsEntry> dumpGroups(DatapathId dpid); @Override void installDropFlowCustom(final DatapathId dpid, String dstMac, String dstMask,
                                      final long cookie, final int priority); @Override Long installDropFlow(final DatapathId dpid); @Override Long installDropFlowForTable(final DatapathId dpid, final int tableId,
                                        final long cookie); @Override Long installBfdCatchFlow(DatapathId dpid); @Override Long installRoundTripLatencyFlow(DatapathId dpid); @Override long installEgressIslVxlanRule(DatapathId dpid, int port); @Override long removeEgressIslVxlanRule(DatapathId dpid, int port); @Override long installTransitIslVxlanRule(DatapathId dpid, int port); @Override long removeTransitIslVxlanRule(DatapathId dpid, int port); @Override long installEgressIslVlanRule(DatapathId dpid, int port); Long installLldpTransitFlow(DatapathId dpid); @Override Long installLldpInputPreDropFlow(DatapathId dpid); @Override Long installArpTransitFlow(DatapathId dpid); @Override Long installArpInputPreDropFlow(DatapathId dpid); @Override Long installServer42InputFlow(DatapathId dpid, int server42Port, int customerPort,
                                         org.openkilda.model.MacAddress server42macAddress); @Override Long installServer42TurningFlow(DatapathId dpid); @Override Long installServer42OutputVlanFlow(
            DatapathId dpid, int port, int vlan, org.openkilda.model.MacAddress macAddress); @Override Long installServer42OutputVxlanFlow(
            DatapathId dpid, int port, int vlan, org.openkilda.model.MacAddress macAddress); @Override long removeEgressIslVlanRule(DatapathId dpid, int port); @Override long installIntermediateIngressRule(DatapathId dpid, int port); @Override long removeIntermediateIngressRule(DatapathId dpid, int port); @Override long removeLldpInputCustomerFlow(DatapathId dpid, int port); @Override Long removeArpInputCustomerFlow(DatapathId dpid, int port); @Override Long removeServer42InputFlow(DatapathId dpid, int port); @Override OFFlowMod buildIntermediateIngressRule(DatapathId dpid, int port); @Override long installLldpInputCustomerFlow(DatapathId dpid, int port); @Override OFFlowMod buildLldpInputCustomerFlow(DatapathId dpid, int port); @Override Long installLldpIngressFlow(DatapathId dpid); @Override Long installLldpPostIngressFlow(DatapathId dpid); @Override Long installLldpPostIngressVxlanFlow(DatapathId dpid); @Override Long installLldpPostIngressOneSwitchFlow(DatapathId dpid); @Override Long installArpInputCustomerFlow(DatapathId dpid, int port); @Override OFFlowMod buildArpInputCustomerFlow(DatapathId dpid, int port); @Override List<OFFlowMod> buildExpectedServer42Flows(
            DatapathId dpid, int server42Port, int server42Vlan, org.openkilda.model.MacAddress server42MacAddress,
            Set<Integer> customerPorts); @Override Long installArpIngressFlow(DatapathId dpid); @Override Long installArpPostIngressFlow(DatapathId dpid); @Override Long installArpPostIngressVxlanFlow(DatapathId dpid); @Override Long installArpPostIngressOneSwitchFlow(DatapathId dpid); @Override Long installPreIngressTablePassThroughDefaultRule(DatapathId dpid); @Override Long installEgressTablePassThroughDefaultRule(DatapathId dpid); @Override List<Long> installMultitableEndpointIslRules(DatapathId dpid, int port); @Override List<Long> removeMultitableEndpointIslRules(DatapathId dpid, int port); @Override Long installDropLoopRule(DatapathId dpid); @Override IOFSwitch lookupSwitch(DatapathId dpId); @Override InetAddress getSwitchIpAddress(IOFSwitch sw); @Override List<OFPortDesc> getEnabledPhysicalPorts(DatapathId dpId); @Override List<OFPortDesc> getPhysicalPorts(DatapathId dpId); @Override List<OFPortDesc> getPhysicalPorts(IOFSwitch sw); @Override void safeModeTick(); @Override void configurePort(DatapathId dpId, int portNumber, Boolean portAdminDown); @Override List<OFPortDesc> dumpPortsDescription(DatapathId dpid); @Override SwitchManagerConfig getSwitchManagerConfig(); static final long FLOW_COOKIE_MASK; static final int VERIFICATION_RULE_PRIORITY; static final int VERIFICATION_RULE_VXLAN_PRIORITY; static final int DROP_VERIFICATION_LOOP_RULE_PRIORITY; static final int CATCH_BFD_RULE_PRIORITY; static final int ROUND_TRIP_LATENCY_RULE_PRIORITY; static final int FLOW_PRIORITY; static final int ISL_EGRESS_VXLAN_RULE_PRIORITY_MULTITABLE; static final int ISL_TRANSIT_VXLAN_RULE_PRIORITY_MULTITABLE; static final int INGRESS_CUSTOMER_PORT_RULE_PRIORITY_MULTITABLE; static final int ISL_EGRESS_VLAN_RULE_PRIORITY_MULTITABLE; static final int DEFAULT_FLOW_PRIORITY; static final int MINIMAL_POSITIVE_PRIORITY; static final int SERVER_42_INPUT_PRIORITY; static final int SERVER_42_TURNING_PRIORITY; static final int SERVER_42_OUTPUT_VLAN_PRIORITY; static final int SERVER_42_OUTPUT_VXLAN_PRIORITY; static final int LLDP_INPUT_PRE_DROP_PRIORITY; static final int LLDP_TRANSIT_ISL_PRIORITY; static final int LLDP_INPUT_CUSTOMER_PRIORITY; static final int LLDP_INGRESS_PRIORITY; static final int LLDP_POST_INGRESS_PRIORITY; static final int LLDP_POST_INGRESS_VXLAN_PRIORITY; static final int LLDP_POST_INGRESS_ONE_SWITCH_PRIORITY; static final int ARP_INPUT_PRE_DROP_PRIORITY; static final int ARP_TRANSIT_ISL_PRIORITY; static final int ARP_INPUT_CUSTOMER_PRIORITY; static final int ARP_INGRESS_PRIORITY; static final int ARP_POST_INGRESS_PRIORITY; static final int ARP_POST_INGRESS_VXLAN_PRIORITY; static final int ARP_POST_INGRESS_ONE_SWITCH_PRIORITY; static final int SERVER_42_INGRESS_DEFAULT_FLOW_PRIORITY_OFFSET; static final int SERVER_42_INGRESS_DEFAULT_FLOW_PRIORITY; static final int BDF_DEFAULT_PORT; static final int ROUND_TRIP_LATENCY_GROUP_ID; static final MacAddress STUB_VXLAN_ETH_DST_MAC; static final IPv4Address STUB_VXLAN_IPV4_SRC; static final IPv4Address STUB_VXLAN_IPV4_DST; static final int STUB_VXLAN_UDP_SRC; static final int ARP_VXLAN_UDP_SRC; static final int SERVER_42_FORWARD_UDP_PORT; static final int SERVER_42_REVERSE_UDP_PORT; static final int VXLAN_UDP_DST; static final int ETH_SRC_OFFSET; static final int INTERNAL_ETH_SRC_OFFSET; static final int MAC_ADDRESS_SIZE_IN_BITS; static final int TABLE_1; static final int INPUT_TABLE_ID; static final int PRE_INGRESS_TABLE_ID; static final int INGRESS_TABLE_ID; static final int POST_INGRESS_TABLE_ID; static final int EGRESS_TABLE_ID; static final int TRANSIT_TABLE_ID; static final int NOVIFLOW_TIMESTAMP_SIZE_IN_BITS; }