Adding port, port number, port description implementations and related tests.
diff --git a/net/api/src/main/java/org/onlab/onos/net/Port.java b/net/api/src/main/java/org/onlab/onos/net/Port.java
index 3135b77..24fd533 100644
--- a/net/api/src/main/java/org/onlab/onos/net/Port.java
+++ b/net/api/src/main/java/org/onlab/onos/net/Port.java
@@ -1,11 +1,18 @@
 package org.onlab.onos.net;
 
+import java.util.Set;
+
 /**
  * Abstraction of a network port.
  */
 public interface Port {
 
-    // Notion of port state: enabled, disabled, blocked
+    /**
+     * Port state.
+     */
+    enum State {
+        UP, DOWN, BLOCKED, UNKNOWN
+    }
 
     /**
      * Returns the port number.
@@ -15,6 +22,27 @@
     PortNumber number();
 
     /**
+     * Returns the port state(s).
+     *
+     * @return port state set
+     */
+    Set<State> state();
+
+    /**
+     * Indicates whether or not the port is currently up and active.
+     *
+     * @return true if the port is operational
+     */
+    boolean isEnabled();
+
+    /**
+     * Indicates whether or not the port is administratively blocked.
+     *
+     * @return true if the port is blocked
+     */
+    boolean isBlocked();
+
+    /**
      * Returns the identifier of the network element to which this port belongs.
      *
      * @return parent network element