[ONOS-4837] NETCONF function for FUJITSU OLT #4 and #5

- Add the following commands for FJ OLT
  volt-onus <netconf:target> <ONU ID>
  volt-setonu <netconf:target> <ONU-ID:parameter type:parameter value>
  volt-onustats <netconf:target> {ONU-ID}
  volt-rebootonu <netconf:target> <ONU-ID>
  volt-ethloopback <netconf:target> <ONU-ETH-ID[:loopback mode]>
- Add the method of doUserRpc() in Netconfsession/NetconfSessionImpl
   *If you dont allow to implement the method, i can move it to our XmlUtility method.
- Add new behaviours in /core/.../net/behaviour, and @Beta in the interface.
- Move those behaviour interface to fujitsu driver directory.
   * VoltPonLinkConfig.java as well.
- Update fujitsu-drivers.xml
- Change the method name from doUserRpc to doWrappedRpc

Change-Id: Ic39d3a11ba35d2377e552af097eda65c5554c63f
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuConfig.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuConfig.java
new file mode 100644
index 0000000..ab77877
--- /dev/null
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuConfig.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * 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.
+ */
+package org.onosproject.drivers.fujitsu.behaviour;
+
+import com.google.common.annotations.Beta;
+import org.onosproject.net.driver.HandlerBehaviour;
+
+/**
+ * Device behaviour to obtain and set parameters of ONUs in vOLT.
+ */
+@Beta
+public interface VoltOnuConfig extends HandlerBehaviour {
+
+    /**
+     * Obtain all ONUs or a specific ONU in the device.
+     *
+     * @param target input data in string
+     * @return response string
+     */
+    String getOnus(String target);
+
+    /**
+     * Set a parameter value of an ONU in the device.
+     *
+     * @param target input data in string
+     * @return response string
+     */
+    String setOnu(String target);
+
+    /**
+     * Obtain all or a specific ONU statistics in the device.
+     *
+     * @param target input data in string
+     * @return response string
+     */
+    String getOnuStatistics(String target);
+
+}
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuOperConfig.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuOperConfig.java
new file mode 100644
index 0000000..996d5ca
--- /dev/null
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltOnuOperConfig.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * 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.
+ */
+package org.onosproject.drivers.fujitsu.behaviour;
+
+import com.google.common.annotations.Beta;
+import org.onosproject.net.driver.HandlerBehaviour;
+
+/**
+ * Device behaviour to perform actions in an ONU in vOLT.
+ */
+@Beta
+public interface VoltOnuOperConfig extends HandlerBehaviour {
+
+    /**
+     * Reboot an ONU in the device.
+     *
+     * @param target input data in string
+     */
+    String rebootOnu(String target);
+
+    /**
+     * Operate/release loopback on Ethernet port an ONU in the device.
+     *
+     * @param target input data in string
+     */
+    String loopbackEthOnu(String target);
+
+}
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltPonLinkConfig.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltPonLinkConfig.java
new file mode 100644
index 0000000..dfd2812
--- /dev/null
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/VoltPonLinkConfig.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * 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.
+ */
+package org.onosproject.drivers.fujitsu.behaviour;
+
+import com.google.common.annotations.Beta;
+import org.onosproject.net.driver.HandlerBehaviour;
+
+/**
+ * Device behaviour to obtain and set parameters of PON links in vOLT.
+ */
+@Beta
+public interface VoltPonLinkConfig extends HandlerBehaviour {
+
+    /**
+     * Obtain all GPON PON links or a specific PON link in the device.
+     *
+     * @param target input data in string
+     * @return response string
+     */
+    String getPonLinks(String target);
+
+    /**
+     * Set a parameter value of PON link in the device.
+     *
+     * @param target input data in string
+     *
+     */
+    void setPonLink(String target);
+
+}
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/package-info.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/package-info.java
new file mode 100644
index 0000000..c9b3256
--- /dev/null
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/behaviour/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * 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.
+ */
+
+
+/**
+ * Abstractions of various device configuration or device adaptation behaviours;
+ * counterpart to the device driver subsystem. -vOLT
+ */
+package org.onosproject.drivers.fujitsu.behaviour;