import org.opendaylight.openflowjava.nx.codec.match.TunIpv4SrcCodec;
import org.opendaylight.openflowjava.nx.codec.match.UdpDstCodec;
import org.opendaylight.openflowjava.nx.codec.match.UdpSrcCodec;
+import org.opendaylight.openflowjava.nx.codec.match.InPortCodec;
import com.google.common.base.Preconditions;
registrator.registerMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_THA_CODEC);
registrator.registerMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
registrator.registerMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
+ registrator.registerMatchEntrySerializer(InPortCodec.SERIALIZER_KEY, NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC);
+ registrator.registerMatchEntryDeserializer(InPortCodec.DESERIALIZER_KEY, NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC);
registrator.registerMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
registrator.registerMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
registrator.registerMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_SRC_CODEC);
registrator.unregisterMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY);
registrator.unregisterMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY);
registrator.unregisterMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY);
+ registrator.unregisterMatchEntrySerializer(InPortCodec.SERIALIZER_KEY);
+ registrator.unregisterMatchEntryDeserializer(InPortCodec.DESERIALIZER_KEY);
registrator.unregisterMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY);
registrator.unregisterMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY);
registrator.unregisterMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY);
import org.opendaylight.openflowjava.nx.codec.match.IcmpTypeCodec;
import org.opendaylight.openflowjava.nx.codec.match.IpSrcCodec;
import org.opendaylight.openflowjava.nx.codec.match.IpDstCodec;
+import org.opendaylight.openflowjava.nx.codec.match.InPortCodec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc1Codec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc2Codec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc3Codec;
public static final ArpSpaCodec ARP_SPA_CODEC = new ArpSpaCodec();
public static final ArpThaCodec ARP_THA_CODEC = new ArpThaCodec();
public static final ArpTpaCodec ARP_TPA_CODEC = new ArpTpaCodec();
+ public static final InPortCodec NXM_OF_IN_PORT_CODEC = new InPortCodec();
public static final EthDstCodec ETH_DST_CODEC = new EthDstCodec();
public static final EthSrcCodec ETH_SRC_CODEC = new EthSrcCodec();
public static final TunIpv4DstCodec TUN_IPV4_DST_CODEC = new TunIpv4DstCodec();
--- /dev/null
+/*
+ * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.openflowjava.nx.codec.match;
+
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
+import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfInPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.in.port.type.grouping.NxmOfInPortValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.OfInPortCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.OfInPortCaseValueBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import io.netty.buffer.ByteBuf;
+
+public class InPortCodec extends AbstractMatchCodec {
+
+ private static final int VALUE_LENGTH = 2;
+ private static final int NXM_FIELD_CODE = 0;
+
+ public static final MatchEntrySerializerKey<Nxm0Class, NxmOfInPort> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
+ EncodeConstants.OF13_VERSION_ID, Nxm0Class.class,
+ NxmOfInPort.class);
+
+ public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID, OxmMatchConstants.NXM_0_CLASS,
+ NXM_FIELD_CODE);
+
+ @Override
+ public void serialize(MatchEntry input, ByteBuf outBuffer) {
+ serializeHeader(input, outBuffer);
+ OfInPortCaseValue value = (OfInPortCaseValue) input.getMatchEntryValue();
+ outBuffer.writeInt(value.getNxmOfInPortValues().getValue());
+ }
+
+ @Override
+ public MatchEntry deserialize(ByteBuf message) {
+ MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
+ OfInPortCaseValueBuilder caseBuilder = new OfInPortCaseValueBuilder();
+ NxmOfInPortValuesBuilder valuesBuilder = new NxmOfInPortValuesBuilder();
+ valuesBuilder.setValue(message.readInt()).build();
+ caseBuilder.setNxmOfInPortValues(valuesBuilder.build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
+ return matchEntryBuilder.build();
+ }
+
+ @Override
+ public int getNxmFieldCode() {
+ return NXM_FIELD_CODE;
+ }
+
+ @Override
+ public int getOxmClassCode() {
+ return OxmMatchConstants.NXM_0_CLASS;
+ }
+
+ @Override
+ public int getValueLength() {
+ return VALUE_LENGTH;
+ }
+
+ @Override
+ public Class<? extends MatchField> getNxmField() {
+ return NxmOfInPort.class;
+ }
+
+ @Override
+ public Class<? extends OxmClassBase> getOxmClass() {
+ return Nxm0Class.class;
+ }
+
+}
identity nxm-of-arp-tpa {
base ofoxm:match-field;
}
+ identity nxm-of-in-port {
+ base ofoxm:match-field;
+ }
identity nxm-nx-tun-ipv4-dst {
base ofoxm:match-field;
}
}
}
}
+ grouping ofj-nxm-of-in-port-type-grouping {
+ container nxm-of-in-port-values {
+ leaf value {
+ type uint16;
+ }
+ }
+ }
grouping ofj-nxm-nx-match-tun-ipv4-dst-grouping {
container tun-ipv4-dst-values {
leaf value {
case arp-tpa-case-value {
uses ofj-nxm-of-match-arp-tpa-grouping;
}
+ case of-in-port-case-value {
+ uses ofj-nxm-of-in-port-type-grouping;
+ }
case tun-ipv4-dst-case-value {
uses ofj-nxm-nx-match-tun-ipv4-dst-grouping;
}
import org.opendaylight.openflowjava.nx.codec.match.ArpSpaCodec;
import org.opendaylight.openflowjava.nx.codec.match.ArpThaCodec;
import org.opendaylight.openflowjava.nx.codec.match.ArpTpaCodec;
+import org.opendaylight.openflowjava.nx.codec.match.InPortCodec;
import org.opendaylight.openflowjava.nx.codec.match.CtStateCodec;
import org.opendaylight.openflowjava.nx.codec.match.CtZoneCodec;
import org.opendaylight.openflowjava.nx.codec.match.EthDstCodec;
import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TunGpeNpConvertor;
import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.UdpDstConvertor;
import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.UdpSrcConvertor;
+import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NxmInPortConvertor;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionConntrack;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfTcpSrcKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpDstKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpSrcKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfInPortKey;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final static ArpSpaConvertor ARP_SPA_CONVERTOR = new ArpSpaConvertor();
private final static ArpTpaConvertor ARP_TPA_CONVERTOR = new ArpTpaConvertor();
private final static ArpThaConvertor ARP_THA_CONVERTOR = new ArpThaConvertor();
+ private final static NxmInPortConvertor NXM_IN_PORT_CONVERTOR = new NxmInPortConvertor();
private final static EthDstConvertor ETH_DST_CONVERTOR = new EthDstConvertor();
private final static EthSrcConvertor ETH_SRC_CONVERTOR = new EthSrcConvertor();
private final static RegLoadConvertor REG_LOAD_CONVERTOR = new RegLoadConvertor();
registrations.add(extensionConverterRegistrator.registerMatchConvertor(ArpSpaCodec.SERIALIZER_KEY, ARP_SPA_CONVERTOR));
registrations.add(extensionConverterRegistrator.registerMatchConvertor(new ConverterExtensionKey<>(NxmOfArpTpaKey.class, EncodeConstants.OF13_VERSION_ID), ARP_TPA_CONVERTOR));
registrations.add(extensionConverterRegistrator.registerMatchConvertor(ArpTpaCodec.SERIALIZER_KEY, ARP_TPA_CONVERTOR));
+ registrations.add(extensionConverterRegistrator.registerMatchConvertor(new ConverterExtensionKey<>(NxmOfInPortKey.class, EncodeConstants.OF13_VERSION_ID), NXM_IN_PORT_CONVERTOR));
+ registrations.add(extensionConverterRegistrator.registerMatchConvertor(InPortCodec.SERIALIZER_KEY, NXM_IN_PORT_CONVERTOR));
registrations.add(extensionConverterRegistrator.registerMatchConvertor(new ConverterExtensionKey<>(NxmOfEthSrcKey.class, EncodeConstants.OF13_VERSION_ID), ETH_SRC_CONVERTOR));
registrations.add(extensionConverterRegistrator.registerMatchConvertor(EthSrcCodec.SERIALIZER_KEY, ETH_SRC_CONVERTOR));
registrations.add(extensionConverterRegistrator.registerMatchConvertor(new ConverterExtensionKey<>(NxmOfEthDstKey.class, EncodeConstants.OF13_VERSION_ID), ETH_DST_CONVERTOR));
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxArpShaCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxArpThaCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxArpThaCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxOfInPortCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxOfInPortCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxNshc1Case;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxNshc1CaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxNshc2Case;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.src.choice.grouping.src.choice.SrcOfIpDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.src.choice.grouping.src.choice.SrcOfIpSrcCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.src.choice.grouping.src.choice.SrcOfIpSrcCaseBuilder;
-
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.src.choice.grouping.src.choice.SrcNxOfInPortCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.src.choice.grouping.src.choice.SrcNxOfInPortCaseBuilder;
import com.google.common.base.Preconditions;
if (dstValue == NiciraMatchCodecs.ARP_TPA_CODEC.getHeaderWithoutHasMask().toLong()) {
return new DstOfArpTpaCaseBuilder().setOfArpTpa(true).build();
}
+ if (dstValue == NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC.getHeaderWithoutHasMask().toLong()) {
+ return new DstNxOfInPortCaseBuilder().setOfInPort(true).build();
+ }
if (dstValue == NiciraMatchCodecs.ETH_DST_CODEC.getHeaderWithoutHasMask().toLong()) {
return new DstOfEthDstCaseBuilder().setOfEthDst(true).build();
}
if (srcValue == NiciraMatchCodecs.ARP_TPA_CODEC.getHeaderWithoutHasMask().toLong()) {
return new SrcOfArpTpaCaseBuilder().setOfArpTpa(true).build();
}
+ if (srcValue == NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC.getHeaderWithoutHasMask().toLong()) {
+ return new SrcNxOfInPortCaseBuilder().setOfInPort(true).build();
+ }
if (srcValue == NiciraMatchCodecs.ETH_DST_CODEC.getHeaderWithoutHasMask().toLong()) {
return new SrcOfEthDstCaseBuilder().setOfEthDst(true).build();
}
if (dstChoice instanceof DstOfArpTpaCase) {
return NiciraMatchCodecs.ARP_TPA_CODEC.getHeaderWithoutHasMask().toLong();
}
+ if (dstChoice instanceof DstNxOfInPortCase) {
+ return NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC.getHeaderWithoutHasMask().toLong();
+ }
if (dstChoice instanceof DstNxTunIpv4DstCase) {
return NiciraMatchCodecs.TUN_IPV4_DST_CODEC.getHeaderWithoutHasMask().toLong();
}
if (srcChoice instanceof SrcOfArpTpaCase) {
return NiciraMatchCodecs.ARP_TPA_CODEC.getHeaderWithoutHasMask().toLong();
}
+ if (srcChoice instanceof SrcNxOfInPortCase) {
+ return NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC.getHeaderWithoutHasMask().toLong();
+ }
if (srcChoice instanceof SrcNxTunIpv4DstCase) {
return NiciraMatchCodecs.TUN_IPV4_DST_CODEC.getHeaderWithoutHasMask().toLong();
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfTcpSrcGrouping;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpDstGrouping;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpSrcGrouping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfInPortGrouping;
import org.opendaylight.yangtools.yang.binding.Augmentation;
/**
NxmNxCtStateGrouping.class);
public final static GroupingResolver<NxmNxCtZoneGrouping, Extension> ctZoneResolver = new GroupingResolver<>(
NxmNxCtZoneGrouping.class);
-
+ public final static GroupingResolver<NxmOfInPortGrouping, Extension> nxmOfInportResolver = new GroupingResolver<>(
+ NxmOfInPortGrouping.class);
static {
augmentationsOfExtension.add(NxAugMatchRpcAddFlow.class);
udpDstResolver.setAugmentations(augmentationsOfExtension);
ctStateResolver.setAugmentations(augmentationsOfExtension);
ctZoneResolver.setAugmentations(augmentationsOfExtension);
+ nxmOfInportResolver.setAugmentations(augmentationsOfExtension);
}
--- /dev/null
+/*
+ * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
+
+import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
+import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
+import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
+import org.opendaylight.openflowplugin.extension.api.path.MatchPath;
+import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.CodecPreconditionException;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.in.port.type.grouping.NxmOfInPortValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.OfInPortCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.OfInPortCaseValueBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.ExtensionKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.grouping.Extension;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifPacketIn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifPacketInBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifSwitchFlowRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifSwitchFlowRemovedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifUpdateFlowStats;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifUpdateFlowStatsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfInPortGrouping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfInPortKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.nxm.of.in.port.grouping.OfInPortBuilder;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+import com.google.common.base.Optional;
+
+public class NxmInPortConvertor implements ConvertorToOFJava<MatchEntry>,
+ ConvertorFromOFJava<MatchEntry, MatchPath> {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava#convert
+ * (org.opendaylight.yangtools.yang.binding.DataContainer,
+ * org.opendaylight.openflowplugin.extension.api.path.AugmentationPath)
+ */
+ @Override
+ public ExtensionAugment<? extends Augmentation<Extension>> convert(
+ MatchEntry input, MatchPath path) {
+ OfInPortCaseValue inPortCaseValue = ((OfInPortCaseValue) input
+ .getMatchEntryValue());
+ return NxmInPortConvertor.resolveAugmentation(new OfInPortBuilder()
+ .setValue(inPortCaseValue.getNxmOfInPortValues().getValue())
+ .build(), path, NxmOfInPortKey.class);
+ }
+
+ private static ExtensionAugment<? extends Augmentation<Extension>> resolveAugmentation(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.nxm.of.in.port.grouping.OfInPort value,
+ MatchPath path, Class<? extends ExtensionKey> key) {
+ switch (path) {
+ case FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_MATCH:
+ return new ExtensionAugment<>(NxAugMatchNotifUpdateFlowStats.class,
+ new NxAugMatchNotifUpdateFlowStatsBuilder()
+ .setOfInPort(value).build(),
+ key);
+ case PACKETRECEIVED_MATCH:
+ return new ExtensionAugment<>(NxAugMatchNotifPacketIn.class,
+ new NxAugMatchNotifPacketInBuilder().setOfInPort(value)
+ .build(),
+ key);
+ case SWITCHFLOWREMOVED_MATCH:
+ return new ExtensionAugment<>(
+ NxAugMatchNotifSwitchFlowRemoved.class,
+ new NxAugMatchNotifSwitchFlowRemovedBuilder()
+ .setOfInPort(value).build(),
+ key);
+ default:
+ throw new CodecPreconditionException(path);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava#convert
+ * (org .opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.
+ * general .rev140714.general.extension.grouping.Extension)
+ */
+ @Override
+ public MatchEntry convert(Extension extension) {
+ Optional<NxmOfInPortGrouping> matchGrouping = MatchUtil.nxmOfInportResolver
+ .getExtension(extension);
+ if (!matchGrouping.isPresent()) {
+ throw new CodecPreconditionException(extension);
+ }
+ Integer value = matchGrouping.get().getOfInPort().getValue();
+ OfInPortCaseValueBuilder inPortCaseValueBuilder = new OfInPortCaseValueBuilder();
+ inPortCaseValueBuilder.setNxmOfInPortValues(
+ new NxmOfInPortValuesBuilder().setValue(value).build());
+ return MatchUtil
+ .createDefaultMatchEntryBuilder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfInPort.class,
+ Nxm0Class.class, inPortCaseValueBuilder.build())
+ .build();
+
+ }
+}
\ No newline at end of file
type empty;
}
}
+ grouping nxm-of-in-port-grouping {
+ leaf of-in-port {
+ type empty;
+ }
+ }
grouping nxm-nx-tun-ipv4-dst-grouping {
leaf nx-tun-ipv4-dst {
type empty;
case dst-of-arp-tpa-case {
uses nxm-of-arp-tpa-grouping;
}
+ case dst-nx-of-in-port-case {
+ uses nxm-of-in-port-grouping;
+ }
case dst-nx-tun-ipv4-dst-case {
uses nxm-nx-tun-ipv4-dst-grouping;
}
case src-of-arp-tpa-case {
uses nxm-of-arp-tpa-grouping;
}
+ case src-nx-of-in-port-case {
+ uses nxm-of-in-port-grouping;
+ }
case src-nx-tun-ipv4-dst-case {
uses nxm-nx-tun-ipv4-dst-grouping;
}
identity nxm-of-arp-tpa-key {
base ext-gen:extension-key;
}
+ identity nxm-of-in-port-key {
+ base ext-gen:extension-key;
+ }
identity nxm-nx-tun-ipv4-dst-key {
base ext-gen:extension-key;
}
uses ipv4-address-grouping;
}
}
+ grouping nxm-of-in-port-grouping {
+ container of-in-port {
+ leaf value {
+ type uint16;
+ }
+ }
+ }
grouping nxm-of-tcp-src-grouping {
container nxm-of-tcp-src {
leaf port {
uses nxm-of-arp-op-grouping;
uses nxm-of-arp-spa-grouping;
uses nxm-of-arp-tpa-grouping;
+ uses nxm-of-in-port-grouping;
uses nxm-nx-tun-ipv4-dst-grouping;
uses nxm-nx-tun-ipv4-src-grouping;
uses nxm-of-eth-src-grouping;