diff --git a/java_gen/java_type.py b/java_gen/java_type.py
index 0c5de0e..35503e5 100644
--- a/java_gen/java_type.py
+++ b/java_gen/java_type.py
@@ -207,6 +207,10 @@
         .op(read='bb.readInt()', write='bb.writeInt($name)', pub_type=False)
 u32_list = JType('List<U32>', 'int[]') \
         .op(read='ChannelUtils.readList(bb, $length, U32.READER)', write='ChannelUtils.writeList(bb, $name)')
+u8obj = JType('U8', 'U8') \
+        .op(read='U8.of(bb.readByte())', write='bb.writeByte($name.getRaw())')
+u32obj = JType('U32', 'U32') \
+        .op(read='U32.of(bb.readInt())', write='bb.writeInt($name.getRaw())')
 u64 = JType('U64', 'U64') \
         .op(read='U64.of(bb.readLong())', write='bb.writeLong($name.getValue())')
 of_port = JType("OFPort") \
@@ -361,6 +365,15 @@
         'of_oxm_ipv6_flabel_masked' : { 'value' : ipv6_flabel, 'value_mask' : ipv6_flabel },
         'of_oxm_metadata' : { 'value' : metadata },
         'of_oxm_metadata_masked' : { 'value' : metadata, 'value_mask' : metadata },
+
+        'of_oxm_icmpv6_code' : { 'value' : u8obj },
+        'of_oxm_icmpv6_code_masked' : { 'value' : u8obj, 'value_mask' : u8obj },
+        'of_oxm_icmpv6_type' : { 'value' : u8obj },
+        'of_oxm_icmpv6_type_masked' : { 'value' : u8obj, 'value_mask' : u8obj },
+        'of_oxm_mpls_label' : { 'value' : u32obj },
+        'of_oxm_mpls_label_masked' : { 'value' : u32obj, 'value_mask' : u32obj },
+        'of_oxm_mpls_tc' : { 'value' : u8obj },
+        'of_oxm_mpls_tc_masked' : { 'value' : u8obj, 'value_mask' : u8obj },
 }
 
 
diff --git a/java_gen/pre-written/src/main/java/org/openflow/protocol/match/MatchField.java b/java_gen/pre-written/src/main/java/org/openflow/protocol/match/MatchField.java
index 5913658..eb02bc3 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/protocol/match/MatchField.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/protocol/match/MatchField.java
@@ -146,7 +146,7 @@
     
     public boolean arePrerequisitesOK(Match match) {
         for (Prerequisite<?> p : this.prerequisites) {
-            if (!p.isStaisfied(match)) {
+            if (!p.isSatisfied(match)) {
                 return false;
             }
         }
diff --git a/java_gen/pre-written/src/main/java/org/openflow/protocol/match/Prerequisite.java b/java_gen/pre-written/src/main/java/org/openflow/protocol/match/Prerequisite.java
index f518925..f7afc8b 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/protocol/match/Prerequisite.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/protocol/match/Prerequisite.java
@@ -29,7 +29,7 @@
      * @param match Match object
      * @return true iff prerequisite is satisfied.
      */
-    public boolean isStaisfied(Match match) {
+    public boolean isSatisfied(Match match) {
         OFValueType<T> res = match.get(this.field);
         if (res == null)
             return false;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/ArpOpcode.java b/java_gen/pre-written/src/main/java/org/openflow/types/ArpOpcode.java
index 92d7e18..01e7bd8 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/ArpOpcode.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/ArpOpcode.java
@@ -61,8 +61,8 @@
     private static final int MIN_OPCODE = 0;
     private static final int MAX_OPCODE = 0xFFFF;
     
-    public static final ArpOpcode FULL_MASK = new ArpOpcode(0xFFFFFFFF);
-    public static final ArpOpcode NO_MASK = new ArpOpcode(0x00000000);
+    public static final ArpOpcode NO_MASK = new ArpOpcode(0xFFFFFFFF);
+    public static final ArpOpcode FULL_MASK = new ArpOpcode(0x00000000);
 
     private final int opcode;
 
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/EthType.java b/java_gen/pre-written/src/main/java/org/openflow/types/EthType.java
index ff843ce..c451a99 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/EthType.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/EthType.java
@@ -101,8 +101,8 @@
     public static final EthType ETH_TYPE_Q_IN_Q             = new EthType(ETH_TYPE_VAL_Q_IN_Q );
     public static final EthType ETH_TYPE_LLT                = new EthType(ETH_TYPE_VAL_LLT );
 
-    public static final EthType FULL_MASK = new EthType(0xFFFFFFFF);
-    public static final EthType NO_MASK = new EthType(0x00000000);
+    public static final EthType NO_MASK = new EthType(0xFFFFFFFF);
+    public static final EthType FULL_MASK = new EthType(0x00000000);
 
     private EthType(int type) {
         this.rawValue = type;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Code.java b/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Code.java
index 21c9c1e..724170e 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Code.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Code.java
@@ -14,8 +14,8 @@
 
     private final short code;
     
-    public static final ICMPv4Code FULL_MASK = new ICMPv4Code((short)0xFFFF);
-    public static final ICMPv4Code NO_MASK = new ICMPv4Code((short)0x0000);
+    public static final ICMPv4Code NO_MASK = new ICMPv4Code((short)0xFFFF);
+    public static final ICMPv4Code FULL_MASK = new ICMPv4Code((short)0x0000);
 
     private ICMPv4Code(short code) {
         this.code = code;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Type.java b/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Type.java
index c8cf9dd..7aa45d8 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Type.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/ICMPv4Type.java
@@ -64,8 +64,8 @@
     public static final ICMPv4Type ICMPV4_TYPE_PHOTURIS = new ICMPv4Type(ICMPV4_TYPE_VAL_PHOTURIS);
     public static final ICMPv4Type ICMPV4_TYPE_EXPERIMENTAL_MOBILITY    = new ICMPv4Type(ICMPV4_TYPE_VAL_EXPERIMENTAL_MOBILITY);
 
-    public static final ICMPv4Type FULL_MASK = new ICMPv4Type((short)0xFFFF);
-    public static final ICMPv4Type NO_MASK = new ICMPv4Type((short)0x0000);
+    public static final ICMPv4Type NO_MASK = new ICMPv4Type((short)0xFFFF);
+    public static final ICMPv4Type FULL_MASK = new ICMPv4Type((short)0x0000);
 
     private final short type;
     
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IPv4.java b/java_gen/pre-written/src/main/java/org/openflow/types/IPv4.java
index 9690a35..da6f126 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IPv4.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IPv4.java
@@ -13,8 +13,8 @@
     static final int LENGTH = 4;
     private final int rawValue;
     
-    public static final IPv4 FULL_MASK = IPv4.of(0xFFFFFFFF);
-    public static final IPv4 NO_MASK = IPv4.of(0x00000000);
+    public static final IPv4 NO_MASK = IPv4.of(0xFFFFFFFF);
+    public static final IPv4 FULL_MASK = IPv4.of(0x00000000);
 
     private IPv4(final int rawValue) {
         this.rawValue = rawValue;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IPv4WithMask.java b/java_gen/pre-written/src/main/java/org/openflow/types/IPv4WithMask.java
index 0a1a6d3..6ea4aa1 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IPv4WithMask.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IPv4WithMask.java
@@ -72,7 +72,7 @@
             return IPv4WithMask.of(ipv4, maskAddress);
         } else if (maskBits == 0) {
             // No mask
-            return IPv4WithMask.of(ipv4, IPv4.of(0xFFFFFFFF));
+            return IPv4WithMask.of(ipv4, IPv4.NO_MASK);
         } else {
             // With mask
             int mask = (-1) << (32 - maskBits);
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6.java b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6.java
index 2a9304c..bf0f9b2 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6.java
@@ -16,8 +16,8 @@
     private final long raw1;
     private final long raw2;
     
-    public static final IPv6 FULL_MASK = IPv6.of(0xFFFFFFFFFFFFFFFFl, 0xFFFFFFFFFFFFFFFFl);
-    public static final IPv6 NO_MASK = IPv6.of(0x0, 0x0);
+    public static final IPv6 NO_MASK = IPv6.of(0xFFFFFFFFFFFFFFFFl, 0xFFFFFFFFFFFFFFFFl);
+    public static final IPv6 FULL_MASK = IPv6.of(0x0, 0x0);
 
     private IPv6(final long raw1, final long raw2) {
         this.raw1 = raw1;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6FlowLabel.java b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6FlowLabel.java
index cf7123c..def5947 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6FlowLabel.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6FlowLabel.java
@@ -9,8 +9,8 @@
     
     private final int label;
     
-    public static final IPv6FlowLabel FULL_MASK = IPv6FlowLabel.of(0xFFFFFFFF);
-    public static final IPv6FlowLabel NO_MASK = IPv6FlowLabel.of(0x0);
+    public static final IPv6FlowLabel NO_MASK = IPv6FlowLabel.of(0xFFFFFFFF);
+    public static final IPv6FlowLabel FULL_MASK = IPv6FlowLabel.of(0x0);
     
     private IPv6FlowLabel(int label) {
         this.label = label;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6WithMask.java b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6WithMask.java
index 453507a..dfebeba 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IPv6WithMask.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IPv6WithMask.java
@@ -67,7 +67,7 @@
             return IPv6WithMask.of(ipv6, maskAddress);
         } else if (maskBits == 0) {
             // No mask
-            return IPv6WithMask.of(ipv6, IPv6.of(0xFFFFFFFFFFFFFFFFl, 0xFFFFFFFFFFFFFFFFl));
+            return IPv6WithMask.of(ipv6, IPv6.NO_MASK);
         } else {
             // With mask
             BigInteger mask = BigInteger.ONE.negate().shiftLeft(128 - maskBits);
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IpDscp.java b/java_gen/pre-written/src/main/java/org/openflow/types/IpDscp.java
index 5727d2f..52598cb 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IpDscp.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IpDscp.java
@@ -68,12 +68,12 @@
     DSCP_61((byte)61),
     DSCP_62((byte)62),
     DSCP_63((byte)63),
-    DSCP_FULL_MASK((byte)0xFF);
+    DSCP_NO_MASK((byte)0xFF);
     
     static final int LENGTH = 1;
     
-    public static final IpDscp FULL_MASK = DSCP_FULL_MASK;
-    public static final IpDscp NO_MASK = DSCP_0;
+    public static final IpDscp NO_MASK = DSCP_NO_MASK;
+    public static final IpDscp FULL_MASK = DSCP_0;
     
     private final byte dscp;
     
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IpEcn.java b/java_gen/pre-written/src/main/java/org/openflow/types/IpEcn.java
index dfcce51..0d9721c 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IpEcn.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IpEcn.java
@@ -8,10 +8,10 @@
     ECN_01((byte)1),
     ECN_10((byte)2),
     ECN_11((byte)3),
-    ECN_FULL_MASK((byte)0xFF);
+    ECN_NO_MASK((byte)0xFF);
     
-    public static final IpEcn FULL_MASK = ECN_FULL_MASK;
-    public static final IpEcn NO_MASK = ECN_00;
+    public static final IpEcn NO_MASK = ECN_NO_MASK;
+    public static final IpEcn FULL_MASK = ECN_00;
 
     static final int LENGTH = 1;
     
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/IpProtocol.java b/java_gen/pre-written/src/main/java/org/openflow/types/IpProtocol.java
index fa05358..6fc896f 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/IpProtocol.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/IpProtocol.java
@@ -298,8 +298,8 @@
     public static final IpProtocol IP_PROTO_HIP = new IpProtocol(IP_PROTO_NUM_HIP);
     public static final IpProtocol IP_PROTO_SHIM6 = new IpProtocol(IP_PROTO_NUM_SHIM6);
 
-    public static final IpProtocol FULL_MASK = IP_PROTO_HOPOPT;
-    public static final IpProtocol NO_MASK = new IpProtocol((short)0x0000);
+    public static final IpProtocol NO_MASK = IP_PROTO_HOPOPT;
+    public static final IpProtocol FULL_MASK = new IpProtocol((short)0x0000);
 
     private IpProtocol(short version) {
         this.proto = version;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/MacAddress.java b/java_gen/pre-written/src/main/java/org/openflow/types/MacAddress.java
index 172af71..7723d6f 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/MacAddress.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/MacAddress.java
@@ -14,8 +14,8 @@
     static final int MacAddrLen = 6;
     private final long rawValue;
 
-    public static final MacAddress FULL_MASK = MacAddress.of(0xFFFFFFFFFFFFFFFFl);
-    public static final MacAddress NO_MASK = MacAddress.of(0x0);
+    public static final MacAddress NO_MASK = MacAddress.of(0xFFFFFFFFFFFFFFFFl);
+    public static final MacAddress FULL_MASK = MacAddress.of(0x0);
 
     private MacAddress(final long rawValue) {
         this.rawValue = rawValue;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/OFMetadata.java b/java_gen/pre-written/src/main/java/org/openflow/types/OFMetadata.java
index 2a06530..e27679c 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/OFMetadata.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/OFMetadata.java
@@ -6,8 +6,8 @@
     
     private static int LENGTH = 8;
 
-    public static final OFMetadata FULL_MASK = OFMetadata.of(0xFFFFFFFFFFFFFFFFl);
-    public static final OFMetadata NO_MASK = OFMetadata.of(0x0);
+    public static final OFMetadata NO_MASK = OFMetadata.of(0xFFFFFFFFFFFFFFFFl);
+    public static final OFMetadata FULL_MASK = OFMetadata.of(0x0);
 
     protected OFMetadata(long raw) {
         super(raw);
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/OFPhysicalPort.java b/java_gen/pre-written/src/main/java/org/openflow/types/OFPhysicalPort.java
index 3f1e173..d3b1c9f 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/OFPhysicalPort.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/OFPhysicalPort.java
@@ -18,8 +18,8 @@
 
     private final int port;
 
-    public static final OFPhysicalPort FULL_MASK = OFPhysicalPort.of(0xFFFFFFFF);
-    public static final OFPhysicalPort NO_MASK = OFPhysicalPort.of(0x0);
+    public static final OFPhysicalPort NO_MASK = OFPhysicalPort.of(0xFFFFFFFF);
+    public static final OFPhysicalPort FULL_MASK = OFPhysicalPort.of(0x0);
 
     private OFPhysicalPort(int port) {
         this.port = port;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/OFPort.java b/java_gen/pre-written/src/main/java/org/openflow/types/OFPort.java
index fe6c0cf..eaf96de 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/OFPort.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/OFPort.java
@@ -86,8 +86,8 @@
      */
     public final static OFPort ANY = new NamedPort(OFPP_ANY_INT, "any");
 
-    public static final OFPort FULL_MASK = OFPort.of(0xFFFFFFFF);
-    public static final OFPort NO_MASK = OFPort.of(0x0);
+    public static final OFPort NO_MASK = OFPort.of(0xFFFFFFFF);
+    public static final OFPort FULL_MASK = OFPort.of(0x0);
     
     /** cache of frequently used ports */
     private static class PrecachedPort {
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/TransportPort.java b/java_gen/pre-written/src/main/java/org/openflow/types/TransportPort.java
index ed6a4fe..2c5687e 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/TransportPort.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/TransportPort.java
@@ -14,8 +14,8 @@
     static final int MAX_PORT = 0xFFFF;
     static final int MIN_PORT = 0;
     
-    public static final TransportPort FULL_MASK = TransportPort.of(0xFFFFFFFF);
-    public static final TransportPort NO_MASK = TransportPort.of(0x0);
+    public static final TransportPort NO_MASK = TransportPort.of(0xFFFFFFFF);
+    public static final TransportPort FULL_MASK = TransportPort.of(0x0);
 
     private final int port;
     
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/U32.java b/java_gen/pre-written/src/main/java/org/openflow/types/U32.java
index 88d6b15..527e778 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/U32.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/U32.java
@@ -37,11 +37,11 @@
         return new U32(value);
     }
 
-    long getValue() {
+    public long getValue() {
         return f(raw);
     }
 
-    int getRaw() {
+    public int getRaw() {
         return raw;
     }
 
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/VlanPcp.java b/java_gen/pre-written/src/main/java/org/openflow/types/VlanPcp.java
index 138d7be..ccbaa63 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/VlanPcp.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/VlanPcp.java
@@ -10,8 +10,8 @@
     
     private final byte pcp;
     
-    public static final VlanPcp FULL_MASK = VlanPcp.of((byte)0xFF);
-    public static final VlanPcp NO_MASK = VlanPcp.of((byte)0x0);
+    public static final VlanPcp NO_MASK = VlanPcp.of((byte)0xFF);
+    public static final VlanPcp FULL_MASK = VlanPcp.of((byte)0x0);
     
     private VlanPcp(byte pcp) {
         this.pcp = pcp;
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java b/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
index f64f4e4..6a40f43 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
@@ -8,8 +8,8 @@
     private static final short VALIDATION_MASK = 0x0FFF;
     final static int LENGTH = 2;
     
-    public static final VlanVid FULL_MASK = VlanVid.of((short)0xFFFF);
-    public static final VlanVid NO_MASK = VlanVid.of((short)0x0);
+    public static final VlanVid NO_MASK = VlanVid.of((short)0xFFFF);
+    public static final VlanVid FULL_MASK = VlanVid.of((short)0x0);
 
     private final short vid;
     
