Search in sources :

Example 16 with DatapathId

use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.

the class MeterVerifyCommand method validateMeterConfig.

private void validateMeterConfig(MeterSchema actualSchema, boolean isInaccurate) {
    DatapathId datapathId = getSw().getId();
    MeterSchema expectedSchema = MeterSchemaMapper.INSTANCE.map(datapathId, makeMeterAddMessage());
    if (!expectedSchema.equals(actualSchema)) {
        throw maskCallbackException(new SwitchIncorrectMeterException(datapathId, meterConfig, expectedSchema, actualSchema, isInaccurate));
    }
}
Also used : MeterSchema(org.openkilda.model.of.MeterSchema) SwitchIncorrectMeterException(org.openkilda.floodlight.error.SwitchIncorrectMeterException) DatapathId(org.projectfloodlight.openflow.types.DatapathId)

Example 17 with DatapathId

use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.

the class OfBatchHolder method addDeleteGroup.

@Override
public void addDeleteGroup(GroupSpeakerData data, SwitchId switchId) {
    DatapathId dpId = DatapathId.of(switchId.toLong());
    OFFactory factory = iofSwitchService.getSwitch(dpId).getOFFactory();
    OFMessage message = OfGroupConverter.INSTANCE.convertDeleteGroupCommand(data, factory);
    xidMapping.put(message.getXid(), data.getUuid());
    commandMap.put(data.getUuid(), BatchData.builder().group(true).message(message).build());
    groupsMap.put(data.getGroupId(), data);
    executionGraph.add(data.getUuid(), data.getDependsOn());
}
Also used : OFMessage(org.projectfloodlight.openflow.protocol.OFMessage) OFFactory(org.projectfloodlight.openflow.protocol.OFFactory) DatapathId(org.projectfloodlight.openflow.types.DatapathId)

Example 18 with DatapathId

use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.

the class OfBatchHolder method addDeleteMeter.

@Override
public void addDeleteMeter(MeterSpeakerData data, SwitchId switchId) {
    DatapathId dpId = DatapathId.of(switchId.toLong());
    OFFactory factory = iofSwitchService.getSwitch(dpId).getOFFactory();
    OFMessage message = OfMeterConverter.INSTANCE.convertDeleteMeterCommand(data, factory);
    xidMapping.put(message.getXid(), data.getUuid());
    commandMap.put(data.getUuid(), BatchData.builder().meter(true).message(message).build());
    metersMap.put(data.getMeterId(), data);
    executionGraph.add(data.getUuid(), data.getDependsOn());
}
Also used : OFMessage(org.projectfloodlight.openflow.protocol.OFMessage) OFFactory(org.projectfloodlight.openflow.protocol.OFFactory) DatapathId(org.projectfloodlight.openflow.types.DatapathId)

Example 19 with DatapathId

use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.

the class OfBatchHolder method addInstallGroup.

@Override
public void addInstallGroup(GroupSpeakerData data, SwitchId switchId) {
    DatapathId dpId = DatapathId.of(switchId.toLong());
    OFFactory factory = iofSwitchService.getSwitch(dpId).getOFFactory();
    OFMessage message = OfGroupConverter.INSTANCE.convertInstallGroupCommand(data, factory);
    xidMapping.put(message.getXid(), data.getUuid());
    commandMap.put(data.getUuid(), BatchData.builder().group(true).message(message).build());
    groupsMap.put(data.getGroupId(), data);
    executionGraph.add(data.getUuid(), data.getDependsOn());
}
Also used : OFMessage(org.projectfloodlight.openflow.protocol.OFMessage) OFFactory(org.projectfloodlight.openflow.protocol.OFFactory) DatapathId(org.projectfloodlight.openflow.types.DatapathId)

Example 20 with DatapathId

use of org.projectfloodlight.openflow.types.DatapathId in project open-kilda by telstra.

the class OfBatchHolder method addInstallFlow.

@Override
public void addInstallFlow(FlowSpeakerData data, SwitchId switchId) {
    DatapathId dpId = DatapathId.of(switchId.toLong());
    OFFactory factory = iofSwitchService.getSwitch(dpId).getOFFactory();
    OFMessage message = OfFlowConverter.INSTANCE.convertInstallFlowCommand(data, factory);
    xidMapping.put(message.getXid(), data.getUuid());
    commandMap.put(data.getUuid(), BatchData.builder().flow(true).message(message).build());
    flowsMap.put(data.getCookie(), data);
    executionGraph.add(data.getUuid(), data.getDependsOn());
}
Also used : OFMessage(org.projectfloodlight.openflow.protocol.OFMessage) OFFactory(org.projectfloodlight.openflow.protocol.OFFactory) DatapathId(org.projectfloodlight.openflow.types.DatapathId)

Aggregations

DatapathId (org.projectfloodlight.openflow.types.DatapathId)55 InfoMessage (org.openkilda.messaging.info.InfoMessage)19 UnsupportedSwitchOperationException (org.openkilda.floodlight.error.UnsupportedSwitchOperationException)17 IOFSwitch (net.floodlightcontroller.core.IOFSwitch)16 SwitchOperationException (org.openkilda.floodlight.error.SwitchOperationException)16 ISwitchManager (org.openkilda.floodlight.switchmanager.ISwitchManager)16 OFFactory (org.projectfloodlight.openflow.protocol.OFFactory)15 IKafkaProducerService (org.openkilda.floodlight.service.kafka.IKafkaProducerService)14 SwitchId (org.openkilda.model.SwitchId)14 OFMessage (org.projectfloodlight.openflow.protocol.OFMessage)13 SwitchNotFoundException (org.openkilda.floodlight.error.SwitchNotFoundException)12 OFPortDesc (org.projectfloodlight.openflow.protocol.OFPortDesc)10 ArrayList (java.util.ArrayList)9 InetSocketAddress (java.net.InetSocketAddress)8 HashSet (java.util.HashSet)8 Map (java.util.Map)8 InvalidMeterIdException (org.openkilda.floodlight.error.InvalidMeterIdException)8 OfInstallException (org.openkilda.floodlight.error.OfInstallException)8 Objects (java.util.Objects)7 Collectors (java.util.stream.Collectors)7