Search in sources :

Example 31 with Link

use of org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link in project openflowplugin by opendaylight.

the class MessageDeserializerInjector method injectDeserializers.

/**
 * Injects message deserializers into provided.
 * {@link org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerExtensionProvider}
 *
 * @param provider OpenflowJava deserializer extension provider
 */
static void injectDeserializers(final DeserializerExtensionProvider provider) {
    // Inject new message deserializers here using injector created by createInjector method
    final Function<Integer, Function<Class<? extends OfHeader>, Consumer<OFDeserializer<? extends OfHeader>>>> injector = createInjector(provider, EncodeConstants.OF13_VERSION_ID);
    injector.apply(10).apply(org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketInMessage.class).accept(new PacketInMessageDeserializer());
    injector.apply(19).apply(MultipartReply.class).accept(new MultipartReplyMessageDeserializer());
    injector.apply(27).apply(AsyncConfigMessage.class).accept(new AsyncConfigMessageDeserializer());
}
Also used : OFDeserializer(org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer) PacketInMessageDeserializer(org.opendaylight.openflowplugin.impl.protocol.deserialization.messages.PacketInMessageDeserializer) MultipartReply(org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.MultipartReply) PacketInMessage(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage) Function(java.util.function.Function) MultipartReplyMessageDeserializer(org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyMessageDeserializer) OfHeader(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader) AsyncConfigMessage(org.opendaylight.yang.gen.v1.urn.opendaylight.async.config.service.rev170619.AsyncConfigMessage) AsyncConfigMessageDeserializer(org.opendaylight.openflowplugin.impl.protocol.deserialization.messages.AsyncConfigMessageDeserializer)

Example 32 with Link

use of org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link in project openflowplugin by opendaylight.

the class PortTranslatorUtilTest method testTranslatePortFeatures.

/**
 * Test  method for
 * {@link PortTranslatorUtil#translatePortFeatures(org.opendaylight.yang.gen.v1.urn.opendaylight
 * .openflow.common.types.rev130731.PortFeatures)}.
 */
@Test
public void testTranslatePortFeatures() {
    for (int i = 0; i < pfBls.length; i++) {
        pfBls[i] = true;
        final PortFeatures apf = getPortFeatures();
        org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures npf = PortTranslatorUtil.translatePortFeatures(apf);
        assertEqualsPortFeatures(apf, npf);
        pfBls[i] = false;
    }
}
Also used : PortFeatures(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures) Test(org.junit.Test)

Example 33 with Link

use of org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link in project openflowplugin by opendaylight.

the class PortTranslatorUtilTest method testTranslatePort.

/**
 * Test  method for
 * {@link PortTranslatorUtil#translatePort(Short, java.math.BigInteger,
 * Long, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortGrouping)} ()}.
 */
@Test
public void testTranslatePort() {
    Short version = OpenflowVersion.OF10.getVersion();
    BigInteger dataPathId = BigInteger.ONE;
    Long portNumber = Long.MAX_VALUE;
    PortGrouping portGrouping = mockPortGrouping();
    NodeConnectorUpdated nodeConnectorUpdated = PortTranslatorUtil.translatePort(version, dataPathId, portNumber, portGrouping);
    assertNotNull(nodeConnectorUpdated);
    version = OpenflowVersion.OF13.getVersion();
    nodeConnectorUpdated = PortTranslatorUtil.translatePort(version, dataPathId, portNumber, portGrouping);
    assertNotNull(nodeConnectorUpdated);
    version = OpenflowVersion.UNSUPPORTED.getVersion();
    nodeConnectorUpdated = PortTranslatorUtil.translatePort(version, dataPathId, portNumber, portGrouping);
    assertNotNull(nodeConnectorUpdated);
}
Also used : PortGrouping(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortGrouping) BigInteger(java.math.BigInteger) NodeConnectorUpdated(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated) Test(org.junit.Test)

Example 34 with Link

use of org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link in project openflowplugin by opendaylight.

the class TypeKeyMakerFactoryTest method testInstructionKeyMaker.

/**
 * Tests {@link TypeKeyMakerFactory#createInstructionKeyMaker(short)}.
 */
@Test
public void testInstructionKeyMaker() {
    TypeKeyMaker<Instruction> keyMaker = TypeKeyMakerFactory.createInstructionKeyMaker(EncodeConstants.OF13_VERSION_ID);
    Assert.assertNotNull("Null keyMaker", keyMaker);
    InstructionBuilder builder = new InstructionBuilder();
    builder.setInstructionChoice(new GotoTableCaseBuilder().build());
    Instruction instruction = builder.build();
    MessageTypeKey<?> key = keyMaker.make(instruction);
    Assert.assertNotNull("Null key", key);
    Assert.assertEquals("Wrong key", new InstructionSerializerKey<>(EncodeConstants.OF13_VERSION_ID, GotoTableCase.class, null), key);
}
Also used : InstructionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder) GotoTableCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCase) GotoTableCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder) Instruction(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction) Test(org.junit.Test)

Example 35 with Link

use of org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link in project openflowplugin by opendaylight.

the class MultipartWriterProviderFactory method createDefaultProvider.

/**
 * Create default #{@link MultipartWriterProvider}.
 *
 * @param deviceContext device context
 * @return the statistics writer provider
 */
public static MultipartWriterProvider createDefaultProvider(final DeviceContext deviceContext) {
    final InstanceIdentifier<Node> instanceIdentifier = deviceContext.getDeviceInfo().getNodeInstanceIdentifier();
    final MultipartWriterProvider provider = new MultipartWriterProvider();
    // Periodic/direct statistics writers
    provider.register(MultipartType.OFPMPTABLE, new TableStatsMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPGROUP, new GroupStatsMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPMETER, new MeterStatsMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPPORTSTATS, new PortStatsMultipartWriter(deviceContext, instanceIdentifier, deviceContext.getPrimaryConnectionContext().getFeatures()));
    provider.register(MultipartType.OFPMPQUEUE, new QueueStatsMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPFLOW, new FlowStatsMultipartWriter(deviceContext, instanceIdentifier, deviceContext, deviceContext.getDeviceInfo().getVersion()));
    provider.register(MultipartType.OFPMPGROUPDESC, new GroupDescMultipartWriter(deviceContext, instanceIdentifier, deviceContext));
    provider.register(MultipartType.OFPMPMETERCONFIG, new MeterConfigMultipartWriter(deviceContext, instanceIdentifier, deviceContext));
    // Device initialization writers
    provider.register(MultipartType.OFPMPDESC, new DescMultipartWriter(deviceContext, instanceIdentifier, deviceContext.getPrimaryConnectionContext()));
    provider.register(MultipartType.OFPMPGROUPFEATURES, new GroupFeaturesMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPMETERFEATURES, new MeterFeaturesMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPTABLEFEATURES, new TableFeaturesMultipartWriter(deviceContext, instanceIdentifier));
    provider.register(MultipartType.OFPMPPORTDESC, new PortDescMultipartWriter(deviceContext, instanceIdentifier, deviceContext.getPrimaryConnectionContext().getFeatures()));
    return provider;
}
Also used : DescMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.DescMultipartWriter) GroupDescMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.GroupDescMultipartWriter) PortDescMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.PortDescMultipartWriter) TableStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.TableStatsMultipartWriter) GroupStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.GroupStatsMultipartWriter) Node(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node) FlowStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.FlowStatsMultipartWriter) TableFeaturesMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.TableFeaturesMultipartWriter) GroupDescMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.GroupDescMultipartWriter) QueueStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.QueueStatsMultipartWriter) MeterFeaturesMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.MeterFeaturesMultipartWriter) GroupFeaturesMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.GroupFeaturesMultipartWriter) PortStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.PortStatsMultipartWriter) PortDescMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.PortDescMultipartWriter) MeterStatsMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.MeterStatsMultipartWriter) MeterConfigMultipartWriter(org.opendaylight.openflowplugin.impl.datastore.multipart.MeterConfigMultipartWriter)

Aggregations

Test (org.junit.Test)454 ByteBuf (io.netty.buffer.ByteBuf)138 ArrayList (java.util.ArrayList)71 BigInteger (java.math.BigInteger)58 Eid (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid)54 MacAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress)51 Ipv4Address (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address)45 VersionDatapathIdConvertorData (org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)38 Ipv6Address (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address)37 IpAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress)35 MatchEntry (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry)35 InetAddress (java.net.InetAddress)33 SimpleAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress)33 MappingData (org.opendaylight.lispflowmapping.lisp.type.MappingData)32 MultipartReplyMessage (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage)28 Inet4Address (java.net.Inet4Address)27 Inet6Address (java.net.Inet6Address)27 NoAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.NoAddress)27 LispAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress)26 Address (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address)26