Make the netconf notification stream customisable

Change-Id: I0e51861b7f8cb4961a47e88f64a493106e2c7a8a
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
index 596cb1a..261adea 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
@@ -119,6 +119,7 @@
     private static final String NETCONF_10_CAPABILITY = "urn:ietf:params:netconf:base:1.0";
     private static final String NETCONF_11_CAPABILITY = "urn:ietf:params:netconf:base:1.1";
     private static final String NETCONF_CLIENT_CAPABILITY = "netconfClientCapability";
+    private static final String NOTIFICATION_STREAM = "notificationStream";
 
     private static ServiceDirectory directory = new DefaultServiceDirectory();
 
@@ -351,6 +352,16 @@
         subscriptionbuffer.append("<rpc xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n");
         subscriptionbuffer.append("  <create-subscription\n");
         subscriptionbuffer.append("xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\">\n");
+        DriverService driverService = directory.get(DriverService.class);
+        Driver driver = driverService.getDriver(deviceInfo.getDeviceId());
+        if (driver != null) {
+            String stream = driver.getProperty(NOTIFICATION_STREAM);
+            if (stream != null) {
+                subscriptionbuffer.append("    <stream>");
+                subscriptionbuffer.append(stream);
+                subscriptionbuffer.append("</stream>\n");
+            }
+        }
         // FIXME Only subtree filtering supported at the moment.
         if (filterSchema != null) {
             subscriptionbuffer.append("    ");