Search in sources :

Example 6 with CommandPacket

use of org.openkilda.server42.control.messaging.Control.CommandPacket in project open-kilda by telstra.

the class GateTest method listFlowsTest.

@Test
public void listFlowsTest() throws Exception {
    Builder commandPacketResponseBuilded = CommandPacketResponse.newBuilder();
    Flow flow1 = Flow.newBuilder().setFlowId("some-flow-id-01").build();
    Flow flow2 = Flow.newBuilder().setFlowId("some-flow-id-02").build();
    commandPacketResponseBuilded.addResponse(Any.pack(flow1));
    commandPacketResponseBuilded.addResponse(Any.pack(flow2));
    CommandPacketResponse commandPacketResponse = commandPacketResponseBuilded.build();
    when(zeroMqClient.send(argThat(commandPacket -> commandPacket.getType() == Type.LIST_FLOWS))).thenReturn(commandPacketResponse);
    String switchId = "00:00:1b:45:18:d6:71:5a";
    Headers headers = Headers.builder().correlationId("some-correlation-id").build();
    gate.listen(new ListFlowsRequest(headers), switchId);
    ArgumentCaptor<ListFlowsResponse> argument = ArgumentCaptor.forClass(ListFlowsResponse.class);
    verify(template).send(eq(toStorm), argument.capture());
    ListFlowsResponse response = argument.getValue();
    assertThat(response.getFlowIds()).contains(flow1.getFlowId(), flow2.getFlowId());
}
Also used : FlowDirection(org.openkilda.server42.messaging.FlowDirection) Control(org.openkilda.server42.control.messaging.Control) FlowRttControl(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl) ClearIsls(org.openkilda.server42.control.messaging.islrtt.ClearIsls) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) CommandPacketResponse(org.openkilda.server42.control.messaging.Control.CommandPacketResponse) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) AddFlow(org.openkilda.server42.control.messaging.flowrtt.AddFlow) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) RunWith(org.junit.runner.RunWith) Autowired(org.springframework.beans.factory.annotation.Autowired) Type(org.openkilda.server42.control.messaging.Control.CommandPacket.Type) Value(org.springframework.beans.factory.annotation.Value) ZeroMqClient(org.openkilda.server42.control.zeromq.ZeroMqClient) ListIslsRequest(org.openkilda.server42.control.messaging.islrtt.ListIslsRequest) ArgumentCaptor(org.mockito.ArgumentCaptor) ClearFlows(org.openkilda.server42.control.messaging.flowrtt.ClearFlows) KafkaTemplate(org.springframework.kafka.core.KafkaTemplate) ListFlowsResponse(org.openkilda.server42.control.messaging.flowrtt.ListFlowsResponse) Map(java.util.Map) RemoveIsl(org.openkilda.server42.control.messaging.islrtt.RemoveIsl) SpringRunner(org.springframework.test.context.junit4.SpringRunner) Headers(org.openkilda.server42.control.messaging.flowrtt.Headers) IslRttControl(org.openkilda.server42.control.messaging.islrtt.IslRttControl) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) MockBean(org.springframework.boot.test.mock.mockito.MockBean) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.RemoveFlow) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) ListFlowsRequest(org.openkilda.server42.control.messaging.flowrtt.ListFlowsRequest) Test(org.junit.Test) TestPropertySource(org.springframework.test.context.TestPropertySource) Mockito.when(org.mockito.Mockito.when) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) Mockito.verify(org.mockito.Mockito.verify) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) List(java.util.List) AddIsl(org.openkilda.server42.control.messaging.islrtt.AddIsl) SwitchId(org.openkilda.model.SwitchId) SwitchToVlanMapping(org.openkilda.server42.control.config.SwitchToVlanMapping) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) PushSettings(org.openkilda.server42.control.messaging.flowrtt.PushSettings) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Any(com.google.protobuf.Any) IslEndpoint(org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint) ListIslsResponse(org.openkilda.server42.control.messaging.islrtt.ListIslsResponse) Headers(org.openkilda.server42.control.messaging.flowrtt.Headers) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) ListFlowsRequest(org.openkilda.server42.control.messaging.flowrtt.ListFlowsRequest) ListFlowsResponse(org.openkilda.server42.control.messaging.flowrtt.ListFlowsResponse) CommandPacketResponse(org.openkilda.server42.control.messaging.Control.CommandPacketResponse) AddFlow(org.openkilda.server42.control.messaging.flowrtt.AddFlow) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.RemoveFlow) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 7 with CommandPacket

use of org.openkilda.server42.control.messaging.Control.CommandPacket in project open-kilda by telstra.

the class ControlServer method run.

/**
 * We get commands from zmq socket and execute them one by one.
 */
@Override
public void run() {
    log.info("started");
    try (ZContext context = new ZContext()) {
        Socket server = context.createSocket(ZMQ.REP);
        server.bind(bindEndpoint);
        while (!isInterrupted()) {
            byte[] request = server.recv();
            try {
                CommandPacket commandPacket = CommandPacket.parseFrom(request);
                Builder builder = CommandPacketResponse.newBuilder();
                builder.setCommunicationId(commandPacket.getCommunicationId());
                log.info("command type {}", commandPacket.getType().toString());
                log.info("flow list before {}", flows.keySet().toString());
                switch(commandPacket.getType()) {
                    case ADD_FLOW:
                        for (Any any : commandPacket.getCommandList()) {
                            AddFlow addFlow = any.unpack(AddFlow.class);
                            flows.put(FlowKey.fromFlow(addFlow.getFlow()), addFlow.getFlow());
                            statsServer.addFlow(addFlow.getFlow());
                        }
                        break;
                    case REMOVE_FLOW:
                        for (Any any : commandPacket.getCommandList()) {
                            RemoveFlow removeFlow = any.unpack(RemoveFlow.class);
                            FlowKey flowKey = FlowKey.fromFlow(removeFlow.getFlow());
                            flows.remove(flowKey);
                            statsServer.removeFlow(flowKey);
                        }
                        break;
                    case CLEAR_FLOWS:
                        if (commandPacket.getCommandCount() > 0) {
                            Any command = commandPacket.getCommand(0);
                            ClearFlowsFilter filter = command.unpack(ClearFlowsFilter.class);
                            List<FlowKey> keys = flows.values().stream().filter(flow -> flow.getDstMac().equals(filter.getDstMac())).map(FlowKey::fromFlow).collect(Collectors.toList());
                            flows.keySet().removeAll(keys);
                            keys.forEach(statsServer::removeFlow);
                        } else {
                            flows.clear();
                            statsServer.clearFlows();
                        }
                        break;
                    case LIST_FLOWS:
                        if (commandPacket.getCommandCount() > 0) {
                            Any command = commandPacket.getCommand(0);
                            ListFlowsFilter filter = command.unpack(ListFlowsFilter.class);
                            flows.values().stream().filter(flow -> flow.getDstMac().equals(filter.getDstMac())).forEach(flow -> builder.addResponse(Any.pack(flow)));
                        } else {
                            for (Flow flow : flows.values()) {
                                builder.addResponse(Any.pack(flow));
                            }
                        }
                        break;
                    case PUSH_SETTINGS:
                        log.warn("will be shipped with stats application");
                        Any command = commandPacket.getCommand(0);
                        PushSettings settings = command.unpack(PushSettings.class);
                        log.info(settings.toString());
                        break;
                    case ADD_ISL:
                        for (Any any : commandPacket.getCommandList()) {
                            AddIsl addIsl = any.unpack(AddIsl.class);
                            IslEndpoint endpoint = addIsl.getIsl();
                            isls.computeIfAbsent(endpoint.getSwitchId(), k -> new HashSet<>()).add(endpoint.getPort());
                            statsServer.addIsl(endpoint.getSwitchId(), endpoint.getPort());
                        }
                        break;
                    case REMOVE_ISL:
                        for (Any any : commandPacket.getCommandList()) {
                            RemoveIsl removeIsl = any.unpack(RemoveIsl.class);
                            IslEndpoint endpoint = removeIsl.getIsl();
                            isls.getOrDefault(endpoint.getSwitchId(), emptySet()).remove(endpoint.getPort());
                            statsServer.removeIsl(endpoint.getSwitchId(), endpoint.getPort());
                        }
                        break;
                    case CLEAR_ISLS:
                        if (commandPacket.getCommandCount() > 0) {
                            ClearIslsFilter filter = commandPacket.getCommand(0).unpack(ClearIslsFilter.class);
                            Set<Integer> ports = Optional.ofNullable(isls.get(filter.getSwitchId())).orElse(emptySet());
                            isls.remove(filter.getSwitchId());
                            ports.forEach(p -> statsServer.removeIsl(filter.getSwitchId(), p));
                        } else {
                            isls.clear();
                            statsServer.clearIsls();
                        }
                        break;
                    case LIST_ISLS:
                        if (commandPacket.getCommandCount() > 0) {
                            ListIslsFilter filter = commandPacket.getCommand(0).unpack(ListIslsFilter.class);
                            Optional.ofNullable(isls.get(filter.getSwitchId())).orElse(emptySet()).forEach(port -> builder.addResponse(Any.pack(IslEndpoint.newBuilder().setSwitchId(filter.getSwitchId()).setPort(port).build())));
                        } else {
                            isls.forEach((switchId, ports) -> ports.forEach(port -> builder.addResponse(Any.pack(IslEndpoint.newBuilder().setSwitchId(switchId).setPort(port).build()))));
                        }
                        break;
                    case UNRECOGNIZED:
                    default:
                        log.error("Unknown command type");
                        break;
                }
                log.info("flow list after {}", flows.keySet().toString());
                server.send(builder.build().toByteArray());
            } catch (InvalidProtocolBufferException e) {
                log.error("marshalling error");
            }
        }
    }
}
Also used : CommandPacketResponse(org.openkilda.server42.control.messaging.Control.CommandPacketResponse) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) ZContext(org.zeromq.ZContext) Value(org.springframework.beans.factory.annotation.Value) HashSet(java.util.HashSet) ClearIslsFilter(org.openkilda.server42.control.messaging.islrtt.IslRttControl.ClearIslsFilter) ClearFlowsFilter(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.ClearFlowsFilter) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.RemoveFlow) Service(org.springframework.stereotype.Service) ListFlowsFilter(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.ListFlowsFilter) ZMQ(org.zeromq.ZMQ) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) RemoveIsl(org.openkilda.server42.control.messaging.islrtt.IslRttControl.RemoveIsl) Socket(org.zeromq.ZMQ.Socket) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) AddIsl(org.openkilda.server42.control.messaging.islrtt.IslRttControl.AddIsl) Collections.emptySet(java.util.Collections.emptySet) Set(java.util.Set) AddFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.AddFlow) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) Collectors(java.util.stream.Collectors) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) ListIslsFilter(org.openkilda.server42.control.messaging.islrtt.IslRttControl.ListIslsFilter) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) PostConstruct(javax.annotation.PostConstruct) PushSettings(org.openkilda.server42.control.messaging.Control.PushSettings) Optional(java.util.Optional) Any(com.google.protobuf.Any) IslEndpoint(org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint) ClearFlowsFilter(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.ClearFlowsFilter) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) ClearIslsFilter(org.openkilda.server42.control.messaging.islrtt.IslRttControl.ClearIslsFilter) PushSettings(org.openkilda.server42.control.messaging.Control.PushSettings) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) Any(com.google.protobuf.Any) ListFlowsFilter(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.ListFlowsFilter) AddIsl(org.openkilda.server42.control.messaging.islrtt.IslRttControl.AddIsl) HashSet(java.util.HashSet) RemoveIsl(org.openkilda.server42.control.messaging.islrtt.IslRttControl.RemoveIsl) IslEndpoint(org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) ListIslsFilter(org.openkilda.server42.control.messaging.islrtt.IslRttControl.ListIslsFilter) ZContext(org.zeromq.ZContext) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.RemoveFlow) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) AddFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.AddFlow) AddFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.AddFlow) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.RemoveFlow) Socket(org.zeromq.ZMQ.Socket)

Example 8 with CommandPacket

use of org.openkilda.server42.control.messaging.Control.CommandPacket in project open-kilda by telstra.

the class GateTest method testClearIsls.

@Test
public void testClearIsls() throws Exception {
    ClearIsls clearIsls = ClearIsls.builder().switchId(new SwitchId("00:00:1b:45:18:d6:71:5a")).build();
    gate.listen(clearIsls);
    CommandPacket commandPacket = getCommandPacket();
    assertThat(commandPacket.getType()).isEqualTo(Type.CLEAR_ISLS);
    assertThat(commandPacket.getCommandList()).hasSize(1);
    Any command = commandPacket.getCommand(0);
    assertThat(command.is(IslRttControl.ClearIslsFilter.class)).isTrue();
    IslRttControl.ClearIslsFilter unpack = command.unpack(IslRttControl.ClearIslsFilter.class);
    String switchId = clearIsls.getSwitchId().toString();
    assertThat(unpack.getSwitchId()).isEqualTo(switchId);
}
Also used : ClearIsls(org.openkilda.server42.control.messaging.islrtt.ClearIsls) SwitchId(org.openkilda.model.SwitchId) IslRttControl(org.openkilda.server42.control.messaging.islrtt.IslRttControl) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) Any(com.google.protobuf.Any) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 9 with CommandPacket

use of org.openkilda.server42.control.messaging.Control.CommandPacket in project open-kilda by telstra.

the class GateTest method listIslsTest.

@Test
public void listIslsTest() throws Exception {
    Builder commandPacketResponseBuilded = CommandPacketResponse.newBuilder();
    String switchId = "00:00:1b:45:18:d6:71:5a";
    IslEndpoint port1 = IslEndpoint.newBuilder().setSwitchId(switchId).setPort(1).build();
    IslEndpoint port2 = IslEndpoint.newBuilder().setSwitchId(switchId).setPort(2).build();
    IslEndpoint port3 = IslEndpoint.newBuilder().setSwitchId(switchId).setPort(3).build();
    IslEndpoint port4 = IslEndpoint.newBuilder().setSwitchId(switchId).setPort(4).build();
    commandPacketResponseBuilded.addResponse(Any.pack(port1));
    commandPacketResponseBuilded.addResponse(Any.pack(port2));
    commandPacketResponseBuilded.addResponse(Any.pack(port3));
    commandPacketResponseBuilded.addResponse(Any.pack(port4));
    CommandPacketResponse commandPacketResponse = commandPacketResponseBuilded.build();
    when(zeroMqClient.send(argThat(commandPacket -> commandPacket.getType() == Type.LIST_ISLS))).thenReturn(commandPacketResponse);
    gate.listen(ListIslsRequest.builder().switchId(new SwitchId(switchId)).build());
    ArgumentCaptor<ListIslsResponse> argument = ArgumentCaptor.forClass(ListIslsResponse.class);
    verify(template).send(eq(toStorm), argument.capture());
    ListIslsResponse response = argument.getValue();
    assertThat(response.getPorts()).contains(port1.getPort(), port2.getPort(), port3.getPort(), port4.getPort());
}
Also used : FlowDirection(org.openkilda.server42.messaging.FlowDirection) Control(org.openkilda.server42.control.messaging.Control) FlowRttControl(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl) ClearIsls(org.openkilda.server42.control.messaging.islrtt.ClearIsls) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) CommandPacketResponse(org.openkilda.server42.control.messaging.Control.CommandPacketResponse) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) AddFlow(org.openkilda.server42.control.messaging.flowrtt.AddFlow) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) RunWith(org.junit.runner.RunWith) Autowired(org.springframework.beans.factory.annotation.Autowired) Type(org.openkilda.server42.control.messaging.Control.CommandPacket.Type) Value(org.springframework.beans.factory.annotation.Value) ZeroMqClient(org.openkilda.server42.control.zeromq.ZeroMqClient) ListIslsRequest(org.openkilda.server42.control.messaging.islrtt.ListIslsRequest) ArgumentCaptor(org.mockito.ArgumentCaptor) ClearFlows(org.openkilda.server42.control.messaging.flowrtt.ClearFlows) KafkaTemplate(org.springframework.kafka.core.KafkaTemplate) ListFlowsResponse(org.openkilda.server42.control.messaging.flowrtt.ListFlowsResponse) Map(java.util.Map) RemoveIsl(org.openkilda.server42.control.messaging.islrtt.RemoveIsl) SpringRunner(org.springframework.test.context.junit4.SpringRunner) Headers(org.openkilda.server42.control.messaging.flowrtt.Headers) IslRttControl(org.openkilda.server42.control.messaging.islrtt.IslRttControl) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) MockBean(org.springframework.boot.test.mock.mockito.MockBean) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.RemoveFlow) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) ListFlowsRequest(org.openkilda.server42.control.messaging.flowrtt.ListFlowsRequest) Test(org.junit.Test) TestPropertySource(org.springframework.test.context.TestPropertySource) Mockito.when(org.mockito.Mockito.when) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) Mockito.verify(org.mockito.Mockito.verify) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) List(java.util.List) AddIsl(org.openkilda.server42.control.messaging.islrtt.AddIsl) SwitchId(org.openkilda.model.SwitchId) SwitchToVlanMapping(org.openkilda.server42.control.config.SwitchToVlanMapping) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) PushSettings(org.openkilda.server42.control.messaging.flowrtt.PushSettings) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Any(com.google.protobuf.Any) IslEndpoint(org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint) ListIslsResponse(org.openkilda.server42.control.messaging.islrtt.ListIslsResponse) IslEndpoint(org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint) Builder(org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder) SwitchId(org.openkilda.model.SwitchId) CommandPacketResponse(org.openkilda.server42.control.messaging.Control.CommandPacketResponse) ListIslsResponse(org.openkilda.server42.control.messaging.islrtt.ListIslsResponse) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 10 with CommandPacket

use of org.openkilda.server42.control.messaging.Control.CommandPacket in project open-kilda by telstra.

the class GateTest method addFlow.

@Test
public void addFlow() throws Exception {
    AddFlow addFlow = AddFlow.builder().flowId("some-flow-id").tunnelId(1001L).innerTunnelId(1002L).direction(FlowDirection.REVERSE).port(42).build();
    String switchId = "00:00:1b:45:18:d6:71:5a";
    gate.listen(addFlow, switchId);
    CommandPacket commandPacket = getCommandPacket();
    assertThat(commandPacket.getType()).isEqualTo(Type.ADD_FLOW);
    assertThat(commandPacket.getCommandCount()).isEqualTo(1);
    Any command = commandPacket.getCommand(0);
    assertThat(command.is(FlowRttControl.AddFlow.class)).isTrue();
    FlowRttControl.AddFlow unpack = command.unpack(FlowRttControl.AddFlow.class);
    Flow flow = unpack.getFlow();
    assertThat(flow.getFlowId()).isEqualTo(addFlow.getFlowId());
    assertThat(flow.getTunnelId()).isEqualTo(addFlow.getTunnelId());
    assertThat(flow.getInnerTunnelId()).isEqualTo(addFlow.getInnerTunnelId());
    assertThat(flow.getDirection()).isEqualTo(FlowDirection.toBoolean(addFlow.getDirection()));
    assertThat(flow.getUdpSrcPort()).isEqualTo(flowRttUdpSrcPortOffset + addFlow.getPort());
    Map<Long, List<String>> vlanToSwitch = switchToVlanMapping.getVlan();
    vlanToSwitch.forEach((vlan, switches) -> {
        if (switches.contains(switchId)) {
            assertThat(flow.getTransitTunnelId()).isEqualTo(vlan);
        }
    });
    assertThat(flow.getDstMac()).isSubstringOf(switchId).isNotEqualTo(switchId);
}
Also used : AddFlow(org.openkilda.server42.control.messaging.flowrtt.AddFlow) List(java.util.List) FlowRttControl(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl) CommandPacket(org.openkilda.server42.control.messaging.Control.CommandPacket) Any(com.google.protobuf.Any) AddFlow(org.openkilda.server42.control.messaging.flowrtt.AddFlow) Flow(org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow) RemoveFlow(org.openkilda.server42.control.messaging.flowrtt.RemoveFlow) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

CommandPacket (org.openkilda.server42.control.messaging.Control.CommandPacket)15 Any (com.google.protobuf.Any)12 FlowRttControl (org.openkilda.server42.control.messaging.flowrtt.FlowRttControl)10 Test (org.junit.Test)9 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)9 InvalidProtocolBufferException (com.google.protobuf.InvalidProtocolBufferException)7 SwitchId (org.openkilda.model.SwitchId)7 Flow (org.openkilda.server42.control.messaging.flowrtt.FlowRttControl.Flow)7 RemoveFlow (org.openkilda.server42.control.messaging.flowrtt.RemoveFlow)7 IslRttControl (org.openkilda.server42.control.messaging.islrtt.IslRttControl)7 AddFlow (org.openkilda.server42.control.messaging.flowrtt.AddFlow)6 CommandPacketResponse (org.openkilda.server42.control.messaging.Control.CommandPacketResponse)5 IslEndpoint (org.openkilda.server42.control.messaging.islrtt.IslRttControl.IslEndpoint)5 List (java.util.List)4 Control (org.openkilda.server42.control.messaging.Control)4 Builder (org.openkilda.server42.control.messaging.Control.CommandPacket.Builder)4 KafkaHandler (org.springframework.kafka.annotation.KafkaHandler)4 Builder (org.openkilda.server42.control.messaging.Control.CommandPacketResponse.Builder)3 ClearFlows (org.openkilda.server42.control.messaging.flowrtt.ClearFlows)3 Headers (org.openkilda.server42.control.messaging.flowrtt.Headers)3