X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=extension%2Fopenflowplugin-extension-nicira%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fextension%2Fvendor%2Fnicira%2Fconvertor%2Fmatch%2FNshc4Convertor.java;fp=extension%2Fopenflowplugin-extension-nicira%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fextension%2Fvendor%2Fnicira%2Fconvertor%2Fmatch%2FNshc4Convertor.java;h=eb9ac9414e4e6b8bab7487b414d7d71ae509c4e1;hb=52e2c0a74e1413faae6bf5728afc97a1f1a2cb68;hp=41d846f7caa142811b3c887b3a0a541f6473b5db;hpb=0b08a9b0d324088afd8e220511b58721b92cfbfb;p=openflowplugin.git diff --git a/extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc4Convertor.java b/extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc4Convertor.java index 41d846f7ca..eb9ac9414e 100644 --- a/extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc4Convertor.java +++ b/extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc4Convertor.java @@ -8,16 +8,17 @@ package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match; import com.google.common.base.Optional; +import org.opendaylight.openflowjava.nx.api.NiciraConstants; 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.Nxm1Class; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCase; 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.nx.match.nshc._4.grouping.Nshc4ValuesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.Nshc4CaseValue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.Nshc4CaseValueBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.OfjAugNxExpMatch; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.experimenter.id._case.nx.exp.match.entry.value.NshcCaseValue; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.experimenter.id._case.nx.exp.match.entry.value.NshcCaseValueBuilder; 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.NxAugMatchNodesNodeTableFlow; @@ -37,12 +38,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni import org.opendaylight.yangtools.yang.binding.Augmentation; public class Nshc4Convertor implements ConvertorToOFJava, ConvertorFromOFJava { + @Override public ExtensionAugment> convert(MatchEntry input, MatchPath path) { - Nshc4CaseValue nsc4CaseValue = (Nshc4CaseValue) input.getMatchEntryValue(); - - return resolveAugmentation(new NxmNxNshc4Builder().setValue(nsc4CaseValue.getNshc4Values().getNshc()).build(), - path, NxmNxNshc4Key.class); + ExperimenterIdCase experimenterIdCase = (ExperimenterIdCase) input.getMatchEntryValue(); + OfjAugNxExpMatch ofjAugNxExpMatch = experimenterIdCase.augmentation(OfjAugNxExpMatch.class); + NshcCaseValue nshcCaseValue = (NshcCaseValue) ofjAugNxExpMatch.getNxExpMatchEntryValue(); + NxmNxNshc4 nxmNxNshc4 = new NxmNxNshc4Builder() + .setValue(nshcCaseValue.getNshc()) + .setMask(nshcCaseValue.getMask()) + .build(); + return resolveAugmentation(nxmNxNshc4, path, NxmNxNshc4Key.class); } @Override @@ -52,15 +58,21 @@ public class Nshc4Convertor implements ConvertorToOFJava, ConvertorF throw new CodecPreconditionException(extension); } Long value = matchGrouping.get().getNxmNxNshc4().getValue(); - Nshc4CaseValueBuilder nsc4CaseValueBuilder = new Nshc4CaseValueBuilder(); - nsc4CaseValueBuilder.setNshc4Values(new Nshc4ValuesBuilder() - .setNshc(value).build()); - return MatchUtil.createDefaultMatchEntryBuilder( + Long mask = matchGrouping.get().getNxmNxNshc4().getMask(); + MatchEntry matchEntry = buildMatchEntry(value, mask); + return matchEntry; + } + + public static MatchEntry buildMatchEntry(Long value, Long mask) { + NshcCaseValue nshcCaseValue = new NshcCaseValueBuilder().setNshc(value).setMask(mask).build(); + return MatchUtil.createExperimenterMatchEntryBuilder( org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshc4.class, - Nxm1Class.class, nsc4CaseValueBuilder.build()).build(); + NiciraConstants.NX_NSH_VENDOR_ID, + nshcCaseValue).setHasMask(mask != null).build(); } - private static ExtensionAugment> resolveAugmentation(NxmNxNshc4 value, + private static ExtensionAugment> resolveAugmentation( + NxmNxNshc4 value, MatchPath path, Class key) { switch (path) { case FLOWS_STATISTICS_UPDATE_MATCH: