// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
// Copyright (c) 2011, 2012 Open Networking Foundation
// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
// This library was generated by the LoxiGen Compiler.
// See the file LICENSE.txt which should have been included in the source distribution

// Automatically generated by LOXI from template of_factory_class.java
// Do not modify

package org.projectfloodlight.openflow.protocol.ver13;

import org.projectfloodlight.openflow.protocol.*;
import org.projectfloodlight.openflow.protocol.action.*;
import org.projectfloodlight.openflow.protocol.actionid.*;
import org.projectfloodlight.openflow.protocol.bsntlv.*;
import org.projectfloodlight.openflow.protocol.errormsg.*;
import org.projectfloodlight.openflow.protocol.meterband.*;
import org.projectfloodlight.openflow.protocol.instruction.*;
import org.projectfloodlight.openflow.protocol.instructionid.*;
import org.projectfloodlight.openflow.protocol.match.*;
import org.projectfloodlight.openflow.protocol.oxm.*;
import org.projectfloodlight.openflow.protocol.queueprop.*;
import org.projectfloodlight.openflow.types.*;
import org.projectfloodlight.openflow.util.*;
import org.projectfloodlight.openflow.exceptions.*;


public class OFOxmsVer13 implements OFOxms {
    public final static OFOxmsVer13 INSTANCE = new OFOxmsVer13();




    public OFOxmArpOp.Builder buildArpOp() {
        return new OFOxmArpOpVer13.Builder();
    }
    public OFOxmArpOp arpOp(ArpOpcode value) {
        return new OFOxmArpOpVer13(
                value
                    );
    }

    public OFOxmArpOpMasked.Builder buildArpOpMasked() {
        return new OFOxmArpOpMaskedVer13.Builder();
    }
    public OFOxmArpOpMasked arpOpMasked(ArpOpcode value, ArpOpcode mask) {
        return new OFOxmArpOpMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmArpSha.Builder buildArpSha() {
        return new OFOxmArpShaVer13.Builder();
    }
    public OFOxmArpSha arpSha(MacAddress value) {
        return new OFOxmArpShaVer13(
                value
                    );
    }

    public OFOxmArpShaMasked.Builder buildArpShaMasked() {
        return new OFOxmArpShaMaskedVer13.Builder();
    }
    public OFOxmArpShaMasked arpShaMasked(MacAddress value, MacAddress mask) {
        return new OFOxmArpShaMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmArpSpa.Builder buildArpSpa() {
        return new OFOxmArpSpaVer13.Builder();
    }
    public OFOxmArpSpa arpSpa(IPv4Address value) {
        return new OFOxmArpSpaVer13(
                value
                    );
    }

    public OFOxmArpSpaMasked.Builder buildArpSpaMasked() {
        return new OFOxmArpSpaMaskedVer13.Builder();
    }
    public OFOxmArpSpaMasked arpSpaMasked(IPv4Address value, IPv4Address mask) {
        return new OFOxmArpSpaMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmArpTha.Builder buildArpTha() {
        return new OFOxmArpThaVer13.Builder();
    }
    public OFOxmArpTha arpTha(MacAddress value) {
        return new OFOxmArpThaVer13(
                value
                    );
    }

    public OFOxmArpThaMasked.Builder buildArpThaMasked() {
        return new OFOxmArpThaMaskedVer13.Builder();
    }
    public OFOxmArpThaMasked arpThaMasked(MacAddress value, MacAddress mask) {
        return new OFOxmArpThaMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmArpTpa.Builder buildArpTpa() {
        return new OFOxmArpTpaVer13.Builder();
    }
    public OFOxmArpTpa arpTpa(IPv4Address value) {
        return new OFOxmArpTpaVer13(
                value
                    );
    }

    public OFOxmArpTpaMasked.Builder buildArpTpaMasked() {
        return new OFOxmArpTpaMaskedVer13.Builder();
    }
    public OFOxmArpTpaMasked arpTpaMasked(IPv4Address value, IPv4Address mask) {
        return new OFOxmArpTpaMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnGlobalVrfAllowed.Builder buildBsnGlobalVrfAllowed() {
        return new OFOxmBsnGlobalVrfAllowedVer13.Builder();
    }
    public OFOxmBsnGlobalVrfAllowed bsnGlobalVrfAllowed(OFBooleanValue value) {
        return new OFOxmBsnGlobalVrfAllowedVer13(
                value
                    );
    }

    public OFOxmBsnGlobalVrfAllowedMasked.Builder buildBsnGlobalVrfAllowedMasked() {
        return new OFOxmBsnGlobalVrfAllowedMaskedVer13.Builder();
    }
    public OFOxmBsnGlobalVrfAllowedMasked bsnGlobalVrfAllowedMasked(OFBooleanValue value, OFBooleanValue mask) {
        return new OFOxmBsnGlobalVrfAllowedMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnInPorts128.Builder buildBsnInPorts128() {
        return new OFOxmBsnInPorts128Ver13.Builder();
    }
    public OFOxmBsnInPorts128 bsnInPorts128(OFBitMask128 value) {
        return new OFOxmBsnInPorts128Ver13(
                value
                    );
    }

    public OFOxmBsnInPorts128Masked.Builder buildBsnInPorts128Masked() {
        return new OFOxmBsnInPorts128MaskedVer13.Builder();
    }
    public OFOxmBsnInPorts128Masked bsnInPorts128Masked(OFBitMask128 value, OFBitMask128 mask) {
        return new OFOxmBsnInPorts128MaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnL3DstClassId.Builder buildBsnL3DstClassId() {
        return new OFOxmBsnL3DstClassIdVer13.Builder();
    }
    public OFOxmBsnL3DstClassId bsnL3DstClassId(ClassId value) {
        return new OFOxmBsnL3DstClassIdVer13(
                value
                    );
    }

    public OFOxmBsnL3DstClassIdMasked.Builder buildBsnL3DstClassIdMasked() {
        return new OFOxmBsnL3DstClassIdMaskedVer13.Builder();
    }
    public OFOxmBsnL3DstClassIdMasked bsnL3DstClassIdMasked(ClassId value, ClassId mask) {
        return new OFOxmBsnL3DstClassIdMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnL3InterfaceClassId.Builder buildBsnL3InterfaceClassId() {
        return new OFOxmBsnL3InterfaceClassIdVer13.Builder();
    }
    public OFOxmBsnL3InterfaceClassId bsnL3InterfaceClassId(ClassId value) {
        return new OFOxmBsnL3InterfaceClassIdVer13(
                value
                    );
    }

    public OFOxmBsnL3InterfaceClassIdMasked.Builder buildBsnL3InterfaceClassIdMasked() {
        return new OFOxmBsnL3InterfaceClassIdMaskedVer13.Builder();
    }
    public OFOxmBsnL3InterfaceClassIdMasked bsnL3InterfaceClassIdMasked(ClassId value, ClassId mask) {
        return new OFOxmBsnL3InterfaceClassIdMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnL3SrcClassId.Builder buildBsnL3SrcClassId() {
        return new OFOxmBsnL3SrcClassIdVer13.Builder();
    }
    public OFOxmBsnL3SrcClassId bsnL3SrcClassId(ClassId value) {
        return new OFOxmBsnL3SrcClassIdVer13(
                value
                    );
    }

    public OFOxmBsnL3SrcClassIdMasked.Builder buildBsnL3SrcClassIdMasked() {
        return new OFOxmBsnL3SrcClassIdMaskedVer13.Builder();
    }
    public OFOxmBsnL3SrcClassIdMasked bsnL3SrcClassIdMasked(ClassId value, ClassId mask) {
        return new OFOxmBsnL3SrcClassIdMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnLagId.Builder buildBsnLagId() {
        return new OFOxmBsnLagIdVer13.Builder();
    }
    public OFOxmBsnLagId bsnLagId(LagId value) {
        return new OFOxmBsnLagIdVer13(
                value
                    );
    }

    public OFOxmBsnLagIdMasked.Builder buildBsnLagIdMasked() {
        return new OFOxmBsnLagIdMaskedVer13.Builder();
    }
    public OFOxmBsnLagIdMasked bsnLagIdMasked(LagId value, LagId mask) {
        return new OFOxmBsnLagIdMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmBsnVrf.Builder buildBsnVrf() {
        return new OFOxmBsnVrfVer13.Builder();
    }
    public OFOxmBsnVrf bsnVrf(VRF value) {
        return new OFOxmBsnVrfVer13(
                value
                    );
    }

    public OFOxmBsnVrfMasked.Builder buildBsnVrfMasked() {
        return new OFOxmBsnVrfMaskedVer13.Builder();
    }
    public OFOxmBsnVrfMasked bsnVrfMasked(VRF value, VRF mask) {
        return new OFOxmBsnVrfMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmEthDst.Builder buildEthDst() {
        return new OFOxmEthDstVer13.Builder();
    }
    public OFOxmEthDst ethDst(MacAddress value) {
        return new OFOxmEthDstVer13(
                value
                    );
    }

    public OFOxmEthDstMasked.Builder buildEthDstMasked() {
        return new OFOxmEthDstMaskedVer13.Builder();
    }
    public OFOxmEthDstMasked ethDstMasked(MacAddress value, MacAddress mask) {
        return new OFOxmEthDstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmEthSrc.Builder buildEthSrc() {
        return new OFOxmEthSrcVer13.Builder();
    }
    public OFOxmEthSrc ethSrc(MacAddress value) {
        return new OFOxmEthSrcVer13(
                value
                    );
    }

    public OFOxmEthSrcMasked.Builder buildEthSrcMasked() {
        return new OFOxmEthSrcMaskedVer13.Builder();
    }
    public OFOxmEthSrcMasked ethSrcMasked(MacAddress value, MacAddress mask) {
        return new OFOxmEthSrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmEthType.Builder buildEthType() {
        return new OFOxmEthTypeVer13.Builder();
    }
    public OFOxmEthType ethType(EthType value) {
        return new OFOxmEthTypeVer13(
                value
                    );
    }

    public OFOxmEthTypeMasked.Builder buildEthTypeMasked() {
        return new OFOxmEthTypeMaskedVer13.Builder();
    }
    public OFOxmEthTypeMasked ethTypeMasked(EthType value, EthType mask) {
        return new OFOxmEthTypeMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIcmpv4Code.Builder buildIcmpv4Code() {
        return new OFOxmIcmpv4CodeVer13.Builder();
    }
    public OFOxmIcmpv4Code icmpv4Code(ICMPv4Code value) {
        return new OFOxmIcmpv4CodeVer13(
                value
                    );
    }

    public OFOxmIcmpv4CodeMasked.Builder buildIcmpv4CodeMasked() {
        return new OFOxmIcmpv4CodeMaskedVer13.Builder();
    }
    public OFOxmIcmpv4CodeMasked icmpv4CodeMasked(ICMPv4Code value, ICMPv4Code mask) {
        return new OFOxmIcmpv4CodeMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIcmpv4Type.Builder buildIcmpv4Type() {
        return new OFOxmIcmpv4TypeVer13.Builder();
    }
    public OFOxmIcmpv4Type icmpv4Type(ICMPv4Type value) {
        return new OFOxmIcmpv4TypeVer13(
                value
                    );
    }

    public OFOxmIcmpv4TypeMasked.Builder buildIcmpv4TypeMasked() {
        return new OFOxmIcmpv4TypeMaskedVer13.Builder();
    }
    public OFOxmIcmpv4TypeMasked icmpv4TypeMasked(ICMPv4Type value, ICMPv4Type mask) {
        return new OFOxmIcmpv4TypeMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIcmpv6Code.Builder buildIcmpv6Code() {
        return new OFOxmIcmpv6CodeVer13.Builder();
    }
    public OFOxmIcmpv6Code icmpv6Code(U8 value) {
        return new OFOxmIcmpv6CodeVer13(
                value
                    );
    }

    public OFOxmIcmpv6CodeMasked.Builder buildIcmpv6CodeMasked() {
        return new OFOxmIcmpv6CodeMaskedVer13.Builder();
    }
    public OFOxmIcmpv6CodeMasked icmpv6CodeMasked(U8 value, U8 mask) {
        return new OFOxmIcmpv6CodeMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIcmpv6Type.Builder buildIcmpv6Type() {
        return new OFOxmIcmpv6TypeVer13.Builder();
    }
    public OFOxmIcmpv6Type icmpv6Type(U8 value) {
        return new OFOxmIcmpv6TypeVer13(
                value
                    );
    }

    public OFOxmIcmpv6TypeMasked.Builder buildIcmpv6TypeMasked() {
        return new OFOxmIcmpv6TypeMaskedVer13.Builder();
    }
    public OFOxmIcmpv6TypeMasked icmpv6TypeMasked(U8 value, U8 mask) {
        return new OFOxmIcmpv6TypeMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmInPhyPort.Builder buildInPhyPort() {
        return new OFOxmInPhyPortVer13.Builder();
    }
    public OFOxmInPhyPort inPhyPort(OFPort value) {
        return new OFOxmInPhyPortVer13(
                value
                    );
    }

    public OFOxmInPhyPortMasked.Builder buildInPhyPortMasked() {
        return new OFOxmInPhyPortMaskedVer13.Builder();
    }
    public OFOxmInPhyPortMasked inPhyPortMasked(OFPort value, OFPort mask) {
        return new OFOxmInPhyPortMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmInPort.Builder buildInPort() {
        return new OFOxmInPortVer13.Builder();
    }
    public OFOxmInPort inPort(OFPort value) {
        return new OFOxmInPortVer13(
                value
                    );
    }

    public OFOxmInPortMasked.Builder buildInPortMasked() {
        return new OFOxmInPortMaskedVer13.Builder();
    }
    public OFOxmInPortMasked inPortMasked(OFPort value, OFPort mask) {
        return new OFOxmInPortMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpDscp.Builder buildIpDscp() {
        return new OFOxmIpDscpVer13.Builder();
    }
    public OFOxmIpDscp ipDscp(IpDscp value) {
        return new OFOxmIpDscpVer13(
                value
                    );
    }

    public OFOxmIpDscpMasked.Builder buildIpDscpMasked() {
        return new OFOxmIpDscpMaskedVer13.Builder();
    }
    public OFOxmIpDscpMasked ipDscpMasked(IpDscp value, IpDscp mask) {
        return new OFOxmIpDscpMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpEcn.Builder buildIpEcn() {
        return new OFOxmIpEcnVer13.Builder();
    }
    public OFOxmIpEcn ipEcn(IpEcn value) {
        return new OFOxmIpEcnVer13(
                value
                    );
    }

    public OFOxmIpEcnMasked.Builder buildIpEcnMasked() {
        return new OFOxmIpEcnMaskedVer13.Builder();
    }
    public OFOxmIpEcnMasked ipEcnMasked(IpEcn value, IpEcn mask) {
        return new OFOxmIpEcnMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpProto.Builder buildIpProto() {
        return new OFOxmIpProtoVer13.Builder();
    }
    public OFOxmIpProto ipProto(IpProtocol value) {
        return new OFOxmIpProtoVer13(
                value
                    );
    }

    public OFOxmIpProtoMasked.Builder buildIpProtoMasked() {
        return new OFOxmIpProtoMaskedVer13.Builder();
    }
    public OFOxmIpProtoMasked ipProtoMasked(IpProtocol value, IpProtocol mask) {
        return new OFOxmIpProtoMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv4Dst.Builder buildIpv4Dst() {
        return new OFOxmIpv4DstVer13.Builder();
    }
    public OFOxmIpv4Dst ipv4Dst(IPv4Address value) {
        return new OFOxmIpv4DstVer13(
                value
                    );
    }

    public OFOxmIpv4DstMasked.Builder buildIpv4DstMasked() {
        return new OFOxmIpv4DstMaskedVer13.Builder();
    }
    public OFOxmIpv4DstMasked ipv4DstMasked(IPv4Address value, IPv4Address mask) {
        return new OFOxmIpv4DstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv4Src.Builder buildIpv4Src() {
        return new OFOxmIpv4SrcVer13.Builder();
    }
    public OFOxmIpv4Src ipv4Src(IPv4Address value) {
        return new OFOxmIpv4SrcVer13(
                value
                    );
    }

    public OFOxmIpv4SrcMasked.Builder buildIpv4SrcMasked() {
        return new OFOxmIpv4SrcMaskedVer13.Builder();
    }
    public OFOxmIpv4SrcMasked ipv4SrcMasked(IPv4Address value, IPv4Address mask) {
        return new OFOxmIpv4SrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6Dst.Builder buildIpv6Dst() {
        return new OFOxmIpv6DstVer13.Builder();
    }
    public OFOxmIpv6Dst ipv6Dst(IPv6Address value) {
        return new OFOxmIpv6DstVer13(
                value
                    );
    }

    public OFOxmIpv6DstMasked.Builder buildIpv6DstMasked() {
        return new OFOxmIpv6DstMaskedVer13.Builder();
    }
    public OFOxmIpv6DstMasked ipv6DstMasked(IPv6Address value, IPv6Address mask) {
        return new OFOxmIpv6DstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6Flabel.Builder buildIpv6Flabel() {
        return new OFOxmIpv6FlabelVer13.Builder();
    }
    public OFOxmIpv6Flabel ipv6Flabel(IPv6FlowLabel value) {
        return new OFOxmIpv6FlabelVer13(
                value
                    );
    }

    public OFOxmIpv6FlabelMasked.Builder buildIpv6FlabelMasked() {
        return new OFOxmIpv6FlabelMaskedVer13.Builder();
    }
    public OFOxmIpv6FlabelMasked ipv6FlabelMasked(IPv6FlowLabel value, IPv6FlowLabel mask) {
        return new OFOxmIpv6FlabelMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6NdSll.Builder buildIpv6NdSll() {
        return new OFOxmIpv6NdSllVer13.Builder();
    }
    public OFOxmIpv6NdSll ipv6NdSll(MacAddress value) {
        return new OFOxmIpv6NdSllVer13(
                value
                    );
    }

    public OFOxmIpv6NdSllMasked.Builder buildIpv6NdSllMasked() {
        return new OFOxmIpv6NdSllMaskedVer13.Builder();
    }
    public OFOxmIpv6NdSllMasked ipv6NdSllMasked(MacAddress value, MacAddress mask) {
        return new OFOxmIpv6NdSllMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6NdTarget.Builder buildIpv6NdTarget() {
        return new OFOxmIpv6NdTargetVer13.Builder();
    }
    public OFOxmIpv6NdTarget ipv6NdTarget(IPv6Address value) {
        return new OFOxmIpv6NdTargetVer13(
                value
                    );
    }

    public OFOxmIpv6NdTargetMasked.Builder buildIpv6NdTargetMasked() {
        return new OFOxmIpv6NdTargetMaskedVer13.Builder();
    }
    public OFOxmIpv6NdTargetMasked ipv6NdTargetMasked(IPv6Address value, IPv6Address mask) {
        return new OFOxmIpv6NdTargetMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6NdTll.Builder buildIpv6NdTll() {
        return new OFOxmIpv6NdTllVer13.Builder();
    }
    public OFOxmIpv6NdTll ipv6NdTll(MacAddress value) {
        return new OFOxmIpv6NdTllVer13(
                value
                    );
    }

    public OFOxmIpv6NdTllMasked.Builder buildIpv6NdTllMasked() {
        return new OFOxmIpv6NdTllMaskedVer13.Builder();
    }
    public OFOxmIpv6NdTllMasked ipv6NdTllMasked(MacAddress value, MacAddress mask) {
        return new OFOxmIpv6NdTllMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmIpv6Src.Builder buildIpv6Src() {
        return new OFOxmIpv6SrcVer13.Builder();
    }
    public OFOxmIpv6Src ipv6Src(IPv6Address value) {
        return new OFOxmIpv6SrcVer13(
                value
                    );
    }

    public OFOxmIpv6SrcMasked.Builder buildIpv6SrcMasked() {
        return new OFOxmIpv6SrcMaskedVer13.Builder();
    }
    public OFOxmIpv6SrcMasked ipv6SrcMasked(IPv6Address value, IPv6Address mask) {
        return new OFOxmIpv6SrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmMetadata.Builder buildMetadata() {
        return new OFOxmMetadataVer13.Builder();
    }
    public OFOxmMetadata metadata(OFMetadata value) {
        return new OFOxmMetadataVer13(
                value
                    );
    }

    public OFOxmMetadataMasked.Builder buildMetadataMasked() {
        return new OFOxmMetadataMaskedVer13.Builder();
    }
    public OFOxmMetadataMasked metadataMasked(OFMetadata value, OFMetadata mask) {
        return new OFOxmMetadataMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmMplsLabel.Builder buildMplsLabel() {
        return new OFOxmMplsLabelVer13.Builder();
    }
    public OFOxmMplsLabel mplsLabel(U32 value) {
        return new OFOxmMplsLabelVer13(
                value
                    );
    }

    public OFOxmMplsLabelMasked.Builder buildMplsLabelMasked() {
        return new OFOxmMplsLabelMaskedVer13.Builder();
    }
    public OFOxmMplsLabelMasked mplsLabelMasked(U32 value, U32 mask) {
        return new OFOxmMplsLabelMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmMplsTc.Builder buildMplsTc() {
        return new OFOxmMplsTcVer13.Builder();
    }
    public OFOxmMplsTc mplsTc(U8 value) {
        return new OFOxmMplsTcVer13(
                value
                    );
    }

    public OFOxmMplsTcMasked.Builder buildMplsTcMasked() {
        return new OFOxmMplsTcMaskedVer13.Builder();
    }
    public OFOxmMplsTcMasked mplsTcMasked(U8 value, U8 mask) {
        return new OFOxmMplsTcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmSctpDst.Builder buildSctpDst() {
        return new OFOxmSctpDstVer13.Builder();
    }
    public OFOxmSctpDst sctpDst(TransportPort value) {
        return new OFOxmSctpDstVer13(
                value
                    );
    }

    public OFOxmSctpDstMasked.Builder buildSctpDstMasked() {
        return new OFOxmSctpDstMaskedVer13.Builder();
    }
    public OFOxmSctpDstMasked sctpDstMasked(TransportPort value, TransportPort mask) {
        return new OFOxmSctpDstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmSctpSrc.Builder buildSctpSrc() {
        return new OFOxmSctpSrcVer13.Builder();
    }
    public OFOxmSctpSrc sctpSrc(TransportPort value) {
        return new OFOxmSctpSrcVer13(
                value
                    );
    }

    public OFOxmSctpSrcMasked.Builder buildSctpSrcMasked() {
        return new OFOxmSctpSrcMaskedVer13.Builder();
    }
    public OFOxmSctpSrcMasked sctpSrcMasked(TransportPort value, TransportPort mask) {
        return new OFOxmSctpSrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmTcpDst.Builder buildTcpDst() {
        return new OFOxmTcpDstVer13.Builder();
    }
    public OFOxmTcpDst tcpDst(TransportPort value) {
        return new OFOxmTcpDstVer13(
                value
                    );
    }

    public OFOxmTcpDstMasked.Builder buildTcpDstMasked() {
        return new OFOxmTcpDstMaskedVer13.Builder();
    }
    public OFOxmTcpDstMasked tcpDstMasked(TransportPort value, TransportPort mask) {
        return new OFOxmTcpDstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmTcpSrc.Builder buildTcpSrc() {
        return new OFOxmTcpSrcVer13.Builder();
    }
    public OFOxmTcpSrc tcpSrc(TransportPort value) {
        return new OFOxmTcpSrcVer13(
                value
                    );
    }

    public OFOxmTcpSrcMasked.Builder buildTcpSrcMasked() {
        return new OFOxmTcpSrcMaskedVer13.Builder();
    }
    public OFOxmTcpSrcMasked tcpSrcMasked(TransportPort value, TransportPort mask) {
        return new OFOxmTcpSrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmUdpDst.Builder buildUdpDst() {
        return new OFOxmUdpDstVer13.Builder();
    }
    public OFOxmUdpDst udpDst(TransportPort value) {
        return new OFOxmUdpDstVer13(
                value
                    );
    }

    public OFOxmUdpDstMasked.Builder buildUdpDstMasked() {
        return new OFOxmUdpDstMaskedVer13.Builder();
    }
    public OFOxmUdpDstMasked udpDstMasked(TransportPort value, TransportPort mask) {
        return new OFOxmUdpDstMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmUdpSrc.Builder buildUdpSrc() {
        return new OFOxmUdpSrcVer13.Builder();
    }
    public OFOxmUdpSrc udpSrc(TransportPort value) {
        return new OFOxmUdpSrcVer13(
                value
                    );
    }

    public OFOxmUdpSrcMasked.Builder buildUdpSrcMasked() {
        return new OFOxmUdpSrcMaskedVer13.Builder();
    }
    public OFOxmUdpSrcMasked udpSrcMasked(TransportPort value, TransportPort mask) {
        return new OFOxmUdpSrcMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmVlanPcp.Builder buildVlanPcp() {
        return new OFOxmVlanPcpVer13.Builder();
    }
    public OFOxmVlanPcp vlanPcp(VlanPcp value) {
        return new OFOxmVlanPcpVer13(
                value
                    );
    }

    public OFOxmVlanPcpMasked.Builder buildVlanPcpMasked() {
        return new OFOxmVlanPcpMaskedVer13.Builder();
    }
    public OFOxmVlanPcpMasked vlanPcpMasked(VlanPcp value, VlanPcp mask) {
        return new OFOxmVlanPcpMaskedVer13(
                value,
                      mask
                    );
    }

    public OFOxmVlanVid.Builder buildVlanVid() {
        return new OFOxmVlanVidVer13.Builder();
    }
    public OFOxmVlanVid vlanVid(OFVlanVidMatch value) {
        return new OFOxmVlanVidVer13(
                value
                    );
    }

    public OFOxmVlanVidMasked.Builder buildVlanVidMasked() {
        return new OFOxmVlanVidMaskedVer13.Builder();
    }
    public OFOxmVlanVidMasked vlanVidMasked(OFVlanVidMatch value, OFVlanVidMatch mask) {
        return new OFOxmVlanVidMaskedVer13(
                value,
                      mask
                    );
    }

    public OFMessageReader<OFOxm<?>> getReader() {
        return OFOxmVer13.READER;
    }

    @SuppressWarnings("unchecked")
    public <F extends OFValueType<F>> OFOxm<F> fromValue(F value, MatchField<F> field) {
        switch (field.id) {
            case ARP_OP:
                return (OFOxm<F>)((Object)arpOp((ArpOpcode)((Object)value)));
            case ARP_SHA:
                return (OFOxm<F>)((Object)arpSha((MacAddress)((Object)value)));
            case ARP_SPA:
                return (OFOxm<F>)((Object)arpSpa((IPv4Address)((Object)value)));
            case ARP_THA:
                return (OFOxm<F>)((Object)arpTha((MacAddress)((Object)value)));
            case ARP_TPA:
                return (OFOxm<F>)((Object)arpTpa((IPv4Address)((Object)value)));
            case BSN_GLOBAL_VRF_ALLOWED:
                return (OFOxm<F>)((Object)bsnGlobalVrfAllowed((OFBooleanValue)((Object)value)));
            case BSN_IN_PORTS_128:
                return (OFOxm<F>)((Object)bsnInPorts128((OFBitMask128)((Object)value)));
            case BSN_L3_DST_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3DstClassId((ClassId)((Object)value)));
            case BSN_L3_INTERFACE_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3InterfaceClassId((ClassId)((Object)value)));
            case BSN_L3_SRC_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3SrcClassId((ClassId)((Object)value)));
            case BSN_LAG_ID:
                return (OFOxm<F>)((Object)bsnLagId((LagId)((Object)value)));
            case BSN_VRF:
                return (OFOxm<F>)((Object)bsnVrf((VRF)((Object)value)));
            case ETH_DST:
                return (OFOxm<F>)((Object)ethDst((MacAddress)((Object)value)));
            case ETH_SRC:
                return (OFOxm<F>)((Object)ethSrc((MacAddress)((Object)value)));
            case ETH_TYPE:
                return (OFOxm<F>)((Object)ethType((EthType)((Object)value)));
            case ICMPV4_CODE:
                return (OFOxm<F>)((Object)icmpv4Code((ICMPv4Code)((Object)value)));
            case ICMPV4_TYPE:
                return (OFOxm<F>)((Object)icmpv4Type((ICMPv4Type)((Object)value)));
            case ICMPV6_CODE:
                return (OFOxm<F>)((Object)icmpv6Code((U8)((Object)value)));
            case ICMPV6_TYPE:
                return (OFOxm<F>)((Object)icmpv6Type((U8)((Object)value)));
            case IN_PHY_PORT:
                return (OFOxm<F>)((Object)inPhyPort((OFPort)((Object)value)));
            case IN_PORT:
                return (OFOxm<F>)((Object)inPort((OFPort)((Object)value)));
            case IP_DSCP:
                return (OFOxm<F>)((Object)ipDscp((IpDscp)((Object)value)));
            case IP_ECN:
                return (OFOxm<F>)((Object)ipEcn((IpEcn)((Object)value)));
            case IP_PROTO:
                return (OFOxm<F>)((Object)ipProto((IpProtocol)((Object)value)));
            case IPV4_DST:
                return (OFOxm<F>)((Object)ipv4Dst((IPv4Address)((Object)value)));
            case IPV4_SRC:
                return (OFOxm<F>)((Object)ipv4Src((IPv4Address)((Object)value)));
            case IPV6_DST:
                return (OFOxm<F>)((Object)ipv6Dst((IPv6Address)((Object)value)));
            case IPV6_FLABEL:
                return (OFOxm<F>)((Object)ipv6Flabel((IPv6FlowLabel)((Object)value)));
            case IPV6_ND_SLL:
                return (OFOxm<F>)((Object)ipv6NdSll((MacAddress)((Object)value)));
            case IPV6_ND_TARGET:
                return (OFOxm<F>)((Object)ipv6NdTarget((IPv6Address)((Object)value)));
            case IPV6_ND_TLL:
                return (OFOxm<F>)((Object)ipv6NdTll((MacAddress)((Object)value)));
            case IPV6_SRC:
                return (OFOxm<F>)((Object)ipv6Src((IPv6Address)((Object)value)));
            case METADATA:
                return (OFOxm<F>)((Object)metadata((OFMetadata)((Object)value)));
            case MPLS_LABEL:
                return (OFOxm<F>)((Object)mplsLabel((U32)((Object)value)));
            case MPLS_TC:
                return (OFOxm<F>)((Object)mplsTc((U8)((Object)value)));
            case SCTP_DST:
                return (OFOxm<F>)((Object)sctpDst((TransportPort)((Object)value)));
            case SCTP_SRC:
                return (OFOxm<F>)((Object)sctpSrc((TransportPort)((Object)value)));
            case TCP_DST:
                return (OFOxm<F>)((Object)tcpDst((TransportPort)((Object)value)));
            case TCP_SRC:
                return (OFOxm<F>)((Object)tcpSrc((TransportPort)((Object)value)));
            case UDP_DST:
                return (OFOxm<F>)((Object)udpDst((TransportPort)((Object)value)));
            case UDP_SRC:
                return (OFOxm<F>)((Object)udpSrc((TransportPort)((Object)value)));
            case VLAN_PCP:
                return (OFOxm<F>)((Object)vlanPcp((VlanPcp)((Object)value)));
            case VLAN_VID:
                return (OFOxm<F>)((Object)vlanVid((OFVlanVidMatch)((Object)value)));
            default:
                throw new IllegalArgumentException("No OXM known for match field " + field);
        }
    }

    @SuppressWarnings("unchecked")
    public <F extends OFValueType<F>> OFOxm<F> fromValueAndMask(F value, F mask, MatchField<F> field) {
        switch (field.id) {
            case ARP_OP:
                return (OFOxm<F>)((Object)arpOpMasked((ArpOpcode)((Object)value), (ArpOpcode)((Object)mask)));
            case ARP_SHA:
                return (OFOxm<F>)((Object)arpShaMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case ARP_SPA:
                return (OFOxm<F>)((Object)arpSpaMasked((IPv4Address)((Object)value), (IPv4Address)((Object)mask)));
            case ARP_THA:
                return (OFOxm<F>)((Object)arpThaMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case ARP_TPA:
                return (OFOxm<F>)((Object)arpTpaMasked((IPv4Address)((Object)value), (IPv4Address)((Object)mask)));
            case BSN_GLOBAL_VRF_ALLOWED:
                return (OFOxm<F>)((Object)bsnGlobalVrfAllowedMasked((OFBooleanValue)((Object)value), (OFBooleanValue)((Object)mask)));
            case BSN_IN_PORTS_128:
                return (OFOxm<F>)((Object)bsnInPorts128Masked((OFBitMask128)((Object)value), (OFBitMask128)((Object)mask)));
            case BSN_L3_DST_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3DstClassIdMasked((ClassId)((Object)value), (ClassId)((Object)mask)));
            case BSN_L3_INTERFACE_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3InterfaceClassIdMasked((ClassId)((Object)value), (ClassId)((Object)mask)));
            case BSN_L3_SRC_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3SrcClassIdMasked((ClassId)((Object)value), (ClassId)((Object)mask)));
            case BSN_LAG_ID:
                return (OFOxm<F>)((Object)bsnLagIdMasked((LagId)((Object)value), (LagId)((Object)mask)));
            case BSN_VRF:
                return (OFOxm<F>)((Object)bsnVrfMasked((VRF)((Object)value), (VRF)((Object)mask)));
            case ETH_DST:
                return (OFOxm<F>)((Object)ethDstMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case ETH_SRC:
                return (OFOxm<F>)((Object)ethSrcMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case ETH_TYPE:
                return (OFOxm<F>)((Object)ethTypeMasked((EthType)((Object)value), (EthType)((Object)mask)));
            case ICMPV4_CODE:
                return (OFOxm<F>)((Object)icmpv4CodeMasked((ICMPv4Code)((Object)value), (ICMPv4Code)((Object)mask)));
            case ICMPV4_TYPE:
                return (OFOxm<F>)((Object)icmpv4TypeMasked((ICMPv4Type)((Object)value), (ICMPv4Type)((Object)mask)));
            case ICMPV6_CODE:
                return (OFOxm<F>)((Object)icmpv6CodeMasked((U8)((Object)value), (U8)((Object)mask)));
            case ICMPV6_TYPE:
                return (OFOxm<F>)((Object)icmpv6TypeMasked((U8)((Object)value), (U8)((Object)mask)));
            case IN_PHY_PORT:
                return (OFOxm<F>)((Object)inPhyPortMasked((OFPort)((Object)value), (OFPort)((Object)mask)));
            case IN_PORT:
                return (OFOxm<F>)((Object)inPortMasked((OFPort)((Object)value), (OFPort)((Object)mask)));
            case IP_DSCP:
                return (OFOxm<F>)((Object)ipDscpMasked((IpDscp)((Object)value), (IpDscp)((Object)mask)));
            case IP_ECN:
                return (OFOxm<F>)((Object)ipEcnMasked((IpEcn)((Object)value), (IpEcn)((Object)mask)));
            case IP_PROTO:
                return (OFOxm<F>)((Object)ipProtoMasked((IpProtocol)((Object)value), (IpProtocol)((Object)mask)));
            case IPV4_DST:
                return (OFOxm<F>)((Object)ipv4DstMasked((IPv4Address)((Object)value), (IPv4Address)((Object)mask)));
            case IPV4_SRC:
                return (OFOxm<F>)((Object)ipv4SrcMasked((IPv4Address)((Object)value), (IPv4Address)((Object)mask)));
            case IPV6_DST:
                return (OFOxm<F>)((Object)ipv6DstMasked((IPv6Address)((Object)value), (IPv6Address)((Object)mask)));
            case IPV6_FLABEL:
                return (OFOxm<F>)((Object)ipv6FlabelMasked((IPv6FlowLabel)((Object)value), (IPv6FlowLabel)((Object)mask)));
            case IPV6_ND_SLL:
                return (OFOxm<F>)((Object)ipv6NdSllMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case IPV6_ND_TARGET:
                return (OFOxm<F>)((Object)ipv6NdTargetMasked((IPv6Address)((Object)value), (IPv6Address)((Object)mask)));
            case IPV6_ND_TLL:
                return (OFOxm<F>)((Object)ipv6NdTllMasked((MacAddress)((Object)value), (MacAddress)((Object)mask)));
            case IPV6_SRC:
                return (OFOxm<F>)((Object)ipv6SrcMasked((IPv6Address)((Object)value), (IPv6Address)((Object)mask)));
            case METADATA:
                return (OFOxm<F>)((Object)metadataMasked((OFMetadata)((Object)value), (OFMetadata)((Object)mask)));
            case MPLS_LABEL:
                return (OFOxm<F>)((Object)mplsLabelMasked((U32)((Object)value), (U32)((Object)mask)));
            case MPLS_TC:
                return (OFOxm<F>)((Object)mplsTcMasked((U8)((Object)value), (U8)((Object)mask)));
            case SCTP_DST:
                return (OFOxm<F>)((Object)sctpDstMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case SCTP_SRC:
                return (OFOxm<F>)((Object)sctpSrcMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case TCP_DST:
                return (OFOxm<F>)((Object)tcpDstMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case TCP_SRC:
                return (OFOxm<F>)((Object)tcpSrcMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case UDP_DST:
                return (OFOxm<F>)((Object)udpDstMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case UDP_SRC:
                return (OFOxm<F>)((Object)udpSrcMasked((TransportPort)((Object)value), (TransportPort)((Object)mask)));
            case VLAN_PCP:
                return (OFOxm<F>)((Object)vlanPcpMasked((VlanPcp)((Object)value), (VlanPcp)((Object)mask)));
            case VLAN_VID:
                return (OFOxm<F>)((Object)vlanVidMasked((OFVlanVidMatch)((Object)value), (OFVlanVidMatch)((Object)mask)));
            default:
                throw new IllegalArgumentException("No OXM known for match field " + field);
        }
    }

    @SuppressWarnings("unchecked")
    public <F extends OFValueType<F>> OFOxm<F> fromMasked(Masked<F> masked, MatchField<F> field) {
        switch (field.id) {
            case ARP_OP:
                return (OFOxm<F>)((Object)arpOpMasked((ArpOpcode)((Object)(masked.getValue())), (ArpOpcode)((Object)(masked.getMask()))));
            case ARP_SHA:
                return (OFOxm<F>)((Object)arpShaMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case ARP_SPA:
                return (OFOxm<F>)((Object)arpSpaMasked((IPv4Address)((Object)(masked.getValue())), (IPv4Address)((Object)(masked.getMask()))));
            case ARP_THA:
                return (OFOxm<F>)((Object)arpThaMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case ARP_TPA:
                return (OFOxm<F>)((Object)arpTpaMasked((IPv4Address)((Object)(masked.getValue())), (IPv4Address)((Object)(masked.getMask()))));
            case BSN_GLOBAL_VRF_ALLOWED:
                return (OFOxm<F>)((Object)bsnGlobalVrfAllowedMasked((OFBooleanValue)((Object)(masked.getValue())), (OFBooleanValue)((Object)(masked.getMask()))));
            case BSN_IN_PORTS_128:
                return (OFOxm<F>)((Object)bsnInPorts128Masked((OFBitMask128)((Object)(masked.getValue())), (OFBitMask128)((Object)(masked.getMask()))));
            case BSN_L3_DST_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3DstClassIdMasked((ClassId)((Object)(masked.getValue())), (ClassId)((Object)(masked.getMask()))));
            case BSN_L3_INTERFACE_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3InterfaceClassIdMasked((ClassId)((Object)(masked.getValue())), (ClassId)((Object)(masked.getMask()))));
            case BSN_L3_SRC_CLASS_ID:
                return (OFOxm<F>)((Object)bsnL3SrcClassIdMasked((ClassId)((Object)(masked.getValue())), (ClassId)((Object)(masked.getMask()))));
            case BSN_LAG_ID:
                return (OFOxm<F>)((Object)bsnLagIdMasked((LagId)((Object)(masked.getValue())), (LagId)((Object)(masked.getMask()))));
            case BSN_VRF:
                return (OFOxm<F>)((Object)bsnVrfMasked((VRF)((Object)(masked.getValue())), (VRF)((Object)(masked.getMask()))));
            case ETH_DST:
                return (OFOxm<F>)((Object)ethDstMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case ETH_SRC:
                return (OFOxm<F>)((Object)ethSrcMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case ETH_TYPE:
                return (OFOxm<F>)((Object)ethTypeMasked((EthType)((Object)(masked.getValue())), (EthType)((Object)(masked.getMask()))));
            case ICMPV4_CODE:
                return (OFOxm<F>)((Object)icmpv4CodeMasked((ICMPv4Code)((Object)(masked.getValue())), (ICMPv4Code)((Object)(masked.getMask()))));
            case ICMPV4_TYPE:
                return (OFOxm<F>)((Object)icmpv4TypeMasked((ICMPv4Type)((Object)(masked.getValue())), (ICMPv4Type)((Object)(masked.getMask()))));
            case ICMPV6_CODE:
                return (OFOxm<F>)((Object)icmpv6CodeMasked((U8)((Object)(masked.getValue())), (U8)((Object)(masked.getMask()))));
            case ICMPV6_TYPE:
                return (OFOxm<F>)((Object)icmpv6TypeMasked((U8)((Object)(masked.getValue())), (U8)((Object)(masked.getMask()))));
            case IN_PHY_PORT:
                return (OFOxm<F>)((Object)inPhyPortMasked((OFPort)((Object)(masked.getValue())), (OFPort)((Object)(masked.getMask()))));
            case IN_PORT:
                return (OFOxm<F>)((Object)inPortMasked((OFPort)((Object)(masked.getValue())), (OFPort)((Object)(masked.getMask()))));
            case IP_DSCP:
                return (OFOxm<F>)((Object)ipDscpMasked((IpDscp)((Object)(masked.getValue())), (IpDscp)((Object)(masked.getMask()))));
            case IP_ECN:
                return (OFOxm<F>)((Object)ipEcnMasked((IpEcn)((Object)(masked.getValue())), (IpEcn)((Object)(masked.getMask()))));
            case IP_PROTO:
                return (OFOxm<F>)((Object)ipProtoMasked((IpProtocol)((Object)(masked.getValue())), (IpProtocol)((Object)(masked.getMask()))));
            case IPV4_DST:
                return (OFOxm<F>)((Object)ipv4DstMasked((IPv4Address)((Object)(masked.getValue())), (IPv4Address)((Object)(masked.getMask()))));
            case IPV4_SRC:
                return (OFOxm<F>)((Object)ipv4SrcMasked((IPv4Address)((Object)(masked.getValue())), (IPv4Address)((Object)(masked.getMask()))));
            case IPV6_DST:
                return (OFOxm<F>)((Object)ipv6DstMasked((IPv6Address)((Object)(masked.getValue())), (IPv6Address)((Object)(masked.getMask()))));
            case IPV6_FLABEL:
                return (OFOxm<F>)((Object)ipv6FlabelMasked((IPv6FlowLabel)((Object)(masked.getValue())), (IPv6FlowLabel)((Object)(masked.getMask()))));
            case IPV6_ND_SLL:
                return (OFOxm<F>)((Object)ipv6NdSllMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case IPV6_ND_TARGET:
                return (OFOxm<F>)((Object)ipv6NdTargetMasked((IPv6Address)((Object)(masked.getValue())), (IPv6Address)((Object)(masked.getMask()))));
            case IPV6_ND_TLL:
                return (OFOxm<F>)((Object)ipv6NdTllMasked((MacAddress)((Object)(masked.getValue())), (MacAddress)((Object)(masked.getMask()))));
            case IPV6_SRC:
                return (OFOxm<F>)((Object)ipv6SrcMasked((IPv6Address)((Object)(masked.getValue())), (IPv6Address)((Object)(masked.getMask()))));
            case METADATA:
                return (OFOxm<F>)((Object)metadataMasked((OFMetadata)((Object)(masked.getValue())), (OFMetadata)((Object)(masked.getMask()))));
            case MPLS_LABEL:
                return (OFOxm<F>)((Object)mplsLabelMasked((U32)((Object)(masked.getValue())), (U32)((Object)(masked.getMask()))));
            case MPLS_TC:
                return (OFOxm<F>)((Object)mplsTcMasked((U8)((Object)(masked.getValue())), (U8)((Object)(masked.getMask()))));
            case SCTP_DST:
                return (OFOxm<F>)((Object)sctpDstMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case SCTP_SRC:
                return (OFOxm<F>)((Object)sctpSrcMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case TCP_DST:
                return (OFOxm<F>)((Object)tcpDstMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case TCP_SRC:
                return (OFOxm<F>)((Object)tcpSrcMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case UDP_DST:
                return (OFOxm<F>)((Object)udpDstMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case UDP_SRC:
                return (OFOxm<F>)((Object)udpSrcMasked((TransportPort)((Object)(masked.getValue())), (TransportPort)((Object)(masked.getMask()))));
            case VLAN_PCP:
                return (OFOxm<F>)((Object)vlanPcpMasked((VlanPcp)((Object)(masked.getValue())), (VlanPcp)((Object)(masked.getMask()))));
            case VLAN_VID:
                return (OFOxm<F>)((Object)vlanVidMasked((OFVlanVidMatch)((Object)(masked.getValue())), (OFVlanVidMatch)((Object)(masked.getMask()))));
            default:
                return null;
        }
    }

    public OFVersion getVersion() {
            return OFVersion.OF_13;
    }
}
