Waveserver Ai Driver support

Change-Id: I1d65e30b4b46dbad8802fd2edd9dec74b5d2ec18

revert readme

Change-Id: I32f7a9ec21f743d98cdece2ceb097fc65b784589
diff --git a/drivers/ciena/waveserverai/src/main/resources/ciena-drivers.xml b/drivers/ciena/waveserverai/src/main/resources/ciena-drivers.xml
new file mode 100644
index 0000000..d7ecef5
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/ciena-drivers.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<drivers>
+    <driver name="ciena-waveserverai-netconf" extends="netconf" manufacturer="Ciena" hwVersion="WaveserverAi">
+        <behaviour
+            api="org.onosproject.net.optical.OpticalDevice"
+            impl="org.onosproject.net.optical.DefaultOpticalDevice"/>
+        <behaviour
+            api="org.onosproject.net.device.DeviceDescriptionDiscovery"
+            impl="org.onosproject.drivers.ciena.waveserverai.netconf.CienaWaveserverAiDeviceDescription"/>
+        <behaviour
+            api="org.onosproject.net.device.PortStatisticsDiscovery"
+            impl="org.onosproject.drivers.ciena.waveserverai.netconf.CienaWaveserverAiPortStatisticsDiscovery"/>
+        <behaviour
+            api="org.onosproject.net.behaviour.LinkDiscovery"
+            impl="org.onosproject.drivers.ciena.waveserverai.netconf.CienaWaveserverAiLinkDiscovery"/>
+        <behaviour
+            api="org.onosproject.net.behaviour.PortAdmin"
+            impl="org.onosproject.drivers.ciena.waveserverai.netconf.CienaWaveserverAiPortAdmin"/>
+    </driver>
+</drivers>
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverDeviceDetails.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverDeviceDetails.j2
new file mode 100644
index 0000000..3f6b63b
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverDeviceDetails.j2
@@ -0,0 +1,18 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<get>
+  <filter type="subtree">
+    <system:waveserver-system xmlns:system="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-system">
+      <system:host-name/>
+    </system:waveserver-system>
+    <software:waveserver-software xmlns:software="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-software">
+      <software:status/>
+    </software:waveserver-software>
+    <chassis:waveserver-chassis xmlns:chassis="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-chassis">
+        <chassis:identification/>
+        <chassis:mac-addresses>
+          <chassis:chassis/>
+        </chassis:mac-addresses>
+    </chassis:waveserver-chassis>
+  </filter>
+</get>
+</rpc>
\ No newline at end of file
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortDetails.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortDetails.j2
new file mode 100644
index 0000000..3afd439
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortDetails.j2
@@ -0,0 +1,12 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<get>
+  <filter type="subtree">
+    <port:waveserver-ports xmlns:port="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-port">
+      <port:ports>
+        <port:state/>
+        <port:id/>
+      </port:ports>
+    </port:waveserver-ports>
+  </filter>
+</get>
+</rpc>]]>]]>
\ No newline at end of file
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortStatistics.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortStatistics.j2
new file mode 100644
index 0000000..ed0195f
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/discoverPortStatistics.j2
@@ -0,0 +1,24 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+    <get>
+      <filter type="subtree">
+        <pm:waveserver-pm xmlns:pm="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-pm">
+          <pm:ethernet-performance-instances>
+            <pm:current-bin>
+              <pm:statistics>
+                <pm:interface-counts>
+                  <pm:tx>
+                    <pm:bytes/>
+                    <pm:packets/>
+                  </pm:tx>
+                  <pm:rx>
+                    <pm:bytes/>
+                    <pm:packets/>
+                  </pm:rx>
+                </pm:interface-counts>
+              </pm:statistics>
+            </pm:current-bin>
+          </pm:ethernet-performance-instances>
+        </pm:waveserver-pm>
+      </filter>
+    </get>
+</rpc>]]>]]>
\ No newline at end of file
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/getLinks.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/getLinks.j2
new file mode 100644
index 0000000..b0177e7
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/getLinks.j2
@@ -0,0 +1,19 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+    <get>
+      <filter type="subtree">
+        <waveserver-lldp xmlns="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-lldp">
+          <port>
+            <port-id>{{port-number}}</port-id>
+            <remote>
+              <chassis>
+                <chassis-id></chassis-id>
+              </chassis>
+              <port>
+                <id/>
+              </port>
+            </remote>
+          </port>
+        </waveserver-lldp>
+      </filter>
+    </get>
+</rpc>
\ No newline at end of file
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/isEnabled.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/isEnabled.j2
new file mode 100644
index 0000000..fba6ef2
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/isEnabled.j2
@@ -0,0 +1,13 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+    <get xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+      <filter type="subtree">
+        <port:waveserver-ports xmlns:port="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-port">
+          <port:ports>
+            <port-id>{{port-number}}</port-id>
+            <port:state/>
+            <port:id/>
+          </port:ports>
+        </port:waveserver-ports>
+      </filter>
+    </get>
+</rpc>
\ No newline at end of file
diff --git a/drivers/ciena/waveserverai/src/main/resources/templates/requests/setAdminState.j2 b/drivers/ciena/waveserverai/src/main/resources/templates/requests/setAdminState.j2
new file mode 100644
index 0000000..bc30db0
--- /dev/null
+++ b/drivers/ciena/waveserverai/src/main/resources/templates/requests/setAdminState.j2
@@ -0,0 +1,18 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <edit-config>
+    <target>
+      <running/>
+    </target>
+    <config>
+      <waveserver-ports xmlns="urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-port"
+                        xmlns:ncx="http://netconfcentral.org/ns/yuma-ncx">
+        <ports>
+          <port-id>{{port-number}}</port-id>
+          <state>
+            <admin-state>{{admin-state}}</admin-state>
+          </state>
+        </ports>
+      </waveserver-ports>
+    </config>
+  </edit-config>
+</rpc>]]>]]>
\ No newline at end of file