diff --git a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
index 8ddbb6b..c02218e 100644
--- a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
+++ b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpController.java
@@ -38,6 +38,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -73,6 +74,7 @@
     }
 
     @Override
+    @Deprecated
     public ISnmpSession getSession(DeviceId deviceId) throws IOException {
         if (!sessionMap.containsKey(deviceId)) {
             SnmpDevice device = snmpDeviceMap.get(deviceId);
@@ -112,16 +114,32 @@
     }
 
     @Override
+    public SnmpDevice getDevice(URI uri) {
+            //this assumes that only one device is associated with one deviceId
+            return snmpDeviceMap.entrySet()
+                    .stream().filter(p -> p.getValue()
+                    .getSnmpHost().equals(uri.toString()))
+                    .map(Map.Entry::getValue).findFirst().orElse(null);
+    }
+
+    @Override
     public void removeDevice(DeviceId did) {
         snmpDeviceMap.remove(did);
     }
 
     @Override
+    @Deprecated // in 1.14.0
     public void addDevice(DeviceId did, SnmpDevice device) {
         snmpDeviceMap.put(did, device);
     }
 
     @Override
+    public void addDevice(SnmpDevice device) {
+        log.info("Adding device {}", device.deviceId());
+        snmpDeviceMap.put(device.deviceId(), device);
+    }
+
+    @Override
     public DefaultAlarm buildWalkFailedAlarm(DeviceId deviceId) {
         long timeRaised = System.currentTimeMillis();
         return new DefaultAlarm.Builder(
diff --git a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpDevice.java b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpDevice.java
index b15277c..2442240 100644
--- a/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpDevice.java
+++ b/protocols/snmp/ctl/src/main/java/org/onosproject/snmp/ctl/DefaultSnmpDevice.java
@@ -17,8 +17,15 @@
 
 import org.onosproject.net.DeviceId;
 import org.onosproject.snmp.SnmpDevice;
+import org.onosproject.snmp.SnmpDeviceConfig;
 import org.slf4j.Logger;
+import org.snmp4j.Snmp;
+import org.snmp4j.TransportMapping;
+import org.snmp4j.smi.GenericAddress;
+import org.snmp4j.transport.DefaultTcpTransportMapping;
+import org.snmp4j.transport.DefaultUdpTransportMapping;
 
+import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 
@@ -33,28 +40,62 @@
 
     private final Logger log = getLogger(DefaultSnmpDevice.class);
 
-
-    private static final int DEFAULT_SNMP_PORT = 161;
-
     private static final String SCHEME = "snmp";
 
     private final String snmpHost;
     private final DeviceId deviceId;
-    private int snmpPort = DEFAULT_SNMP_PORT;
+    private final int snmpPort;
+    private final int notificationPort;
     private final String username;
     //Community is a conventional name for password in SNMP.
     private final String community;
     private boolean reachable = false;
+    private final String protocol;
+    private final String notificationProtocol;
 
+    private Snmp session;
 
-    public DefaultSnmpDevice(String snmpHost, int snmpPort, String username, String community) {
-
+    public DefaultSnmpDevice(String snmpHost, int snmpPort,
+                             String username, String community) {
+        this.protocol = GenericAddress.TYPE_UDP;
         this.snmpHost = checkNotNull(snmpHost, "SNMP Device IP cannot be null");
-        this.snmpPort = snmpPort;
+        this.snmpPort = checkNotNull(snmpPort, "SNMP Device port cannot be null");
+        this.notificationProtocol = GenericAddress.TYPE_UDP;
+        this.notificationPort = 0;
         this.username = username;
         this.community = community;
         this.deviceId = createDeviceId();
+        initializeSession();
+    }
+
+    public DefaultSnmpDevice(SnmpDeviceConfig snmpDeviceConfig) {
+        checkNotNull(snmpDeviceConfig.ip(), "SNMP Device IP address cannot be null");
+        this.protocol = snmpDeviceConfig.protocol();
+        this.notificationProtocol = snmpDeviceConfig.notificationProtocol();
+        this.snmpHost = checkNotNull(snmpDeviceConfig.ip().toString(), "SNMP Device IP cannot be null");
+        this.snmpPort = checkNotNull(snmpDeviceConfig.port(), "SNMP Device port cannot be null");
+        this.notificationPort = checkNotNull(snmpDeviceConfig.notificationPort(),
+                                          "SNMP Device notification port cannot be null");
+        this.username = snmpDeviceConfig.username();
+        this.community = snmpDeviceConfig.password();
+        this.deviceId = createDeviceId();
+        initializeSession();
+    }
+
+    private void initializeSession() {
         reachable = true;
+        try {
+            TransportMapping transport;
+            if (protocol == GenericAddress.TYPE_TCP) {
+                transport = new DefaultTcpTransportMapping();
+            } else {
+                transport = new DefaultUdpTransportMapping();
+            }
+            transport.listen();
+            session = new Snmp(transport);
+        } catch (IOException e) {
+            log.error("Failed to connect to device: ", e);
+        }
     }
 
     @Override
@@ -64,6 +105,11 @@
     }
 
     @Override
+    public Snmp getSession() {
+        return session;
+    }
+
+    @Override
     public void disconnect() {
         log.info("disconnect");
         reachable = false;
@@ -86,6 +132,11 @@
     }
 
     @Override
+    public int getNotificationPort() {
+        return notificationPort;
+    }
+
+    @Override
     public String getUsername() {
         return username;
     }
@@ -100,6 +151,16 @@
         return deviceId;
     }
 
+    @Override
+    public String getProtocol() {
+        return protocol;
+    }
+
+    @Override
+    public String getNotificationProtocol() {
+        return notificationProtocol;
+    }
+
     private DeviceId createDeviceId() {
         String additionalSsp = new StringBuilder(
                 snmpHost).append(":")
@@ -114,4 +175,5 @@
             throw new IllegalArgumentException("Can't create device ID from " + additionalSsp, e);
         }
     }
+
 }
diff --git a/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpControllerTest.java b/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpControllerTest.java
index a649633..e5a630a 100644
--- a/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpControllerTest.java
+++ b/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpControllerTest.java
@@ -119,4 +119,4 @@
             return snmpSession;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpDeviceTest.java b/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpDeviceTest.java
index da26581..e9bda9f 100644
--- a/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpDeviceTest.java
+++ b/protocols/snmp/ctl/src/test/java/org/onosproject/snmp/ctl/DefaultSnmpDeviceTest.java
@@ -32,12 +32,15 @@
     private final String community = "test";
     private final DeviceId deviceId = DeviceId.deviceId("snmp:1.1.1.1:1");
     private final String deviceInfo = "host: 1.1.1.1. port: 1";
+    private final String defaultProtocol = "udp";
+    private final String tcpProtocol = "tcp";
 
     DefaultSnmpDevice device = new DefaultSnmpDevice("1.1.1.1", 1, "test", "test");
 
     @Test
     public void basics() throws Exception {
         assertTrue("Device should be reachable", device.isReachable());
+        assertEquals("Incorrect protocol", defaultProtocol, device.getProtocol());
         assertEquals("Incorrect host", snmpHost, device.getSnmpHost());
         assertEquals("Incorrect port", snmpPort, device.getSnmpPort());
         assertEquals("Incorrect username", username, device.getUsername());
@@ -46,6 +49,5 @@
         assertEquals("Incorrect deviceInfo", deviceInfo, device.deviceInfo());
         device.disconnect();
         assertFalse("Device should not be reachable", device.isReachable());
-
     }
 }
