diff --git a/api/pom.xml b/api/pom.xml
index 0d5e2ca..9e6da34 100755
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <artifactId>sadis</artifactId>
         <groupId>org.opencord</groupId>
-        <version>1.2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/api/src/main/java/org/opencord/sadis/SubscriberAndDeviceInformation.java b/api/src/main/java/org/opencord/sadis/SubscriberAndDeviceInformation.java
index 80ca685..6b64ce7 100644
--- a/api/src/main/java/org/opencord/sadis/SubscriberAndDeviceInformation.java
+++ b/api/src/main/java/org/opencord/sadis/SubscriberAndDeviceInformation.java
@@ -38,8 +38,8 @@
     @JsonProperty(value = "nasPortId")
     String nasPortId;
 
-    @JsonProperty(value = "port")
-    int port = -1;
+    @JsonProperty(value = "uplinkPort")
+    int uplinkPort = -1;
 
     @JsonProperty(value = "slot")
     int slot = -1;
@@ -94,12 +94,12 @@
         this.nasPortId = nasPortId;
     }
 
-    public final int port() {
-        return this.port;
+    public final int uplinkPort() {
+        return this.uplinkPort;
     }
 
-    public final void setPort(final int port) {
-        this.port = port;
+    public final void setUplinkPort(final int uplinkPort) {
+        this.uplinkPort = uplinkPort;
     }
 
     public final int slot() {
@@ -163,7 +163,7 @@
         result = prime * result + (this.hardwareIdentifier == null ? 0 : this.hardwareIdentifier.hashCode());
         result = prime * result + (this.id == null ? 0 : this.id.hashCode());
         result = prime * result + (this.nasPortId == null ? 0 : this.nasPortId.hashCode());
-        result = prime * result + this.port;
+        result = prime * result + this.uplinkPort;
         result = prime * result + (this.sTag == null ? 0 : this.sTag.hashCode());
         result = prime * result + this.slot;
         result = prime * result + (this.ipAddress == null ? 0 : this.ipAddress.hashCode());
@@ -232,7 +232,7 @@
         } else if (!this.ipAddress.equals(other.ipAddress())) {
             return false;
         }
-        if (this.port != other.port) {
+        if (this.uplinkPort != other.uplinkPort) {
             return false;
         }
         if (this.sTag == null) {
@@ -279,8 +279,8 @@
         buf.append(this.sTag);
         buf.append(",nasPortId:");
         buf.append(this.nasPortId);
-        buf.append(",port:");
-        buf.append(this.port);
+        buf.append(",uplinkPort:");
+        buf.append(this.uplinkPort);
         buf.append(",slot:");
         buf.append(this.slot);
         buf.append(",hardwareIdentifier:");
