diff --git a/src/main/java/net/onrc/onos/core/util/PortNumber.java b/src/main/java/net/onrc/onos/core/util/PortNumber.java
index c4c7eed..09df247 100644
--- a/src/main/java/net/onrc/onos/core/util/PortNumber.java
+++ b/src/main/java/net/onrc/onos/core/util/PortNumber.java
@@ -39,6 +39,26 @@
     }
 
     /**
+     * Creates the unsigned 16 bit port number.
+     *
+     * @param number unsigned 16 bit port number.
+     * @return PortNumber instance
+     */
+    public static PortNumber uint16(final short number) {
+        return new PortNumber(number);
+    }
+
+    /**
+     * Creates the unsigned 32 bit port number.
+     *
+     * @param number unsigned 32 bit port number.
+     * @return PortNumber instance
+     */
+    public static PortNumber uint32(final int number) {
+        return new PortNumber(number);
+    }
+
+    /**
      * Constructor from an int.
      *
      * @param value the value to use. (Value will not be validated in any way.)
@@ -95,8 +115,7 @@
      */
     @JsonProperty("value")
     public long value() {
-        // TODO Will require masking when we start storing 32bit port number.
-        return value;
+        return 0xffffffffL & value;
     }
 
     /**
diff --git a/src/test/java/net/onrc/onos/core/util/PortNumberTest.java b/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
index eb9915a..d9fbddc 100644
--- a/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
+++ b/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
@@ -16,6 +16,30 @@
     private static final PortNumber PORT_LOCAL = new PortNumber(0xfffe);
 
     /**
+     * Test method for {@link PortNumber#uint16(short)}.
+     */
+    @Test
+    public void testPortNumberUint16() {
+        final PortNumber ref = new PortNumber(PORT_NONE);
+        PortNumber p = PortNumber.uint16((short) 0xffff);
+
+        assertEquals(ref, p);
+        assertEquals(0xFFFFL, p.value());
+    }
+
+    /**
+     * Test method for {@link PortNumber#uint32(int)}.
+     */
+    @Test
+    public void testPortNumberUint32() {
+        final PortNumber ref = new PortNumber("FFFFFFFF", 16);
+        PortNumber p = PortNumber.uint32(0xFFFFFFFF);
+
+        assertEquals(ref, p);
+        assertEquals(0xFFFFFFFFL, p.value());
+    }
+
+    /**
      * Test method for {@link PortNumber#PortNumber(String)}.
      */
     @Test
