diff options
author | CNlucius <lukai1@huawei.com> | 2016-09-13 11:40:12 +0800 |
---|---|---|
committer | CNlucius <lukai1@huawei.com> | 2016-09-13 11:41:53 +0800 |
commit | b731e2f1dd0972409b136aebc7b463dd72c9cfad (patch) | |
tree | 5107d7d80c19ad8076c2c97c2b5ef8d1cf3ab903 /framework/src/onos/protocols/netconf/api | |
parent | ee93993458266114c29271a481ef9ce7ce621b2a (diff) |
ONOSFW-171
O/S-SFC-ONOS scenario documentation
Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365
Signed-off-by: CNlucius <lukai1@huawei.com>
Diffstat (limited to 'framework/src/onos/protocols/netconf/api')
7 files changed, 0 insertions, 544 deletions
diff --git a/framework/src/onos/protocols/netconf/api/pom.xml b/framework/src/onos/protocols/netconf/api/pom.xml deleted file mode 100644 index 74a37838..00000000 --- a/framework/src/onos/protocols/netconf/api/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0"?> -<!-- - ~ Copyright 2015 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. - --> -<project - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" - xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onosproject</groupId> - <artifactId>onos-netconf</artifactId> - <version>1.4.0-rc1</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <artifactId>onos-netconf-api</artifactId> - <packaging>bundle</packaging> - - <description>ONOS NETCONF plugin API</description> - - <dependencies> - <dependency> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> - </dependency> - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-transport</artifactId> - </dependency> - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-transport-native-epoll</artifactId> - <version>${netty4.version}</version> - </dependency> - </dependencies> - -</project> diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfController.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfController.java deleted file mode 100644 index 6411c011..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfController.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2015 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.netconf; - -import org.onlab.packet.IpAddress; -import org.onosproject.net.DeviceId; - -import java.util.Map; - -/** - * Abstraction of an NETCONF controller. Serves as a one stop shop for obtaining - * NetconfDevice and (un)register listeners on NETCONF device events. - */ -public interface NetconfController { - - /** - * Adds Device Event Listener. - * - * @param listener node listener - */ - void addDeviceListener(NetconfDeviceListener listener); - - /** - * Removes Device Listener. - * - * @param listener node listener - */ - void removeDeviceListener(NetconfDeviceListener listener); - - /** - * Tries to connect to a specific NETCONF device, if the connection is succesful - * it creates and adds the device to the ONOS core as a NetconfDevice. - * - * @param deviceInfo info about the device to add - * @return NetconfDevice Netconf device - */ - NetconfDevice connectDevice(NetconfDeviceInfo deviceInfo); - - /** - * Removes a Netconf device. - * - * @param deviceInfo info about the device to remove - */ - void removeDevice(NetconfDeviceInfo deviceInfo); - - /** - * Gets all the nodes information. - * - * @return map of devices - */ - Map<DeviceId, NetconfDevice> getDevicesMap(); - - /** - * Gets a Netconf Device by node identifier. - * - * @param deviceInfo node identifier - * @return NetconfDevice Netconf device - */ - NetconfDevice getNetconfDevice(DeviceId deviceInfo); - - /** - * Gets a Netconf Device by node identifier. - * - * @param ip device ip - * @param port device port - * @return NetconfDevice Netconf device - */ - NetconfDevice getNetconfDevice(IpAddress ip, int port); - -} diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDevice.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDevice.java deleted file mode 100644 index 1974782b..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDevice.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2015 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.netconf; - -/** - * Interface representing a NETCONF device. - */ -public interface NetconfDevice { - - - /** - * Returns whether a device is a NETCONF device with a capabilities list - * and is accessible. - * - * @return true if device is accessible, false otherwise - */ - boolean isActive(); - - /** - * Returns a NETCONF session context for this device. - * - * @return netconf session - */ - NetconfSession getSession(); - - /** - * Ensures that all sessions are closed. - * A device cannot be used after disconnect is called. - */ - void disconnect(); - - /** - * return all the info associated with this device. - * @return NetconfDeviceInfo - */ - NetconfDeviceInfo getDeviceInfo(); -}
\ No newline at end of file diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java deleted file mode 100644 index cb0e240a..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2015 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.netconf; - -import com.google.common.base.Preconditions; -import org.onlab.packet.IpAddress; -import org.onosproject.net.DeviceId; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Objects; - -/** - * Represents a Netconf device information. - */ -public class NetconfDeviceInfo { - - public static final Logger log = LoggerFactory - .getLogger(NetconfDeviceInfo.class); - - private String name; - private String password; - private IpAddress ipAddress; - private int port; - private File keyFile; - - - /** - * Information for contacting the controller. - * - * @param name the connection type - * @param password the password for the device - * @param ipAddress the ip address - * @param port the tcp port - */ - public NetconfDeviceInfo(String name, String password, IpAddress ipAddress, - int port) { - Preconditions.checkArgument(!name.equals(""), "Empty device name"); - Preconditions.checkNotNull(port > 0, "Negative port"); - Preconditions.checkNotNull(ipAddress, "Null ip address"); - this.name = name; - this.password = password; - this.ipAddress = ipAddress; - this.port = port; - } - - /** - * Information for contacting the controller. - * - * @param name the connection type - * @param password the password for the device - * @param ipAddress the ip address - * @param port the tcp port - * @param keyString the string cointaing the key. - */ - public NetconfDeviceInfo(String name, String password, IpAddress ipAddress, - int port, String keyString) { - Preconditions.checkArgument(!name.equals(""), "Empty device name"); - Preconditions.checkNotNull(port > 0, "Negative port"); - Preconditions.checkNotNull(ipAddress, "Null ip address"); - this.name = name; - this.password = password; - this.ipAddress = ipAddress; - this.port = port; - this.keyFile = new File(keyString); - } - - /** - * Exposes the name of the controller. - * - * @return String name - */ - public String name() { - return name; - } - - /** - * Exposes the password of the controller. - * - * @return String password - */ - public String password() { - return password; - } - - /** - * Exposes the ip address of the controller. - * - * @return IpAddress ip address - */ - public IpAddress ip() { - return ipAddress; - } - - /** - * Exposes the port of the controller. - * - * @return int port address - */ - public int port() { - return port; - } - - /** - * Exposes the keyFile of the controller. - * - * @return int port address - */ - public File getKeyFile() { - return keyFile; - } - - /** - * Return the info about the device in a string. - * String format: "netconf:name@ip:port" - * - * @return String device info - */ - public String toString() { - return "netconf:" + name + "@" + ipAddress + ":" + port; - } - - /** - * Return the DeviceId about the device containing the URI. - * - * @return DeviceId - */ - public DeviceId getDeviceId() { - - try { - return DeviceId.deviceId(new URI(this.toString())); - } catch (URISyntaxException e) { - log.debug("Unable to build deviceID for device {} ", this, e); - } - return null; - } - - @Override - public int hashCode() { - return Objects.hash(ipAddress, port, name); - } - - @Override - public boolean equals(Object toBeCompared) { - if (toBeCompared instanceof NetconfDeviceInfo) { - NetconfDeviceInfo netconfDeviceInfo = (NetconfDeviceInfo) toBeCompared; - if (netconfDeviceInfo.name().equals(name) - && netconfDeviceInfo.ip().equals(ipAddress) - && netconfDeviceInfo.port() == port - && netconfDeviceInfo.password().equals(password)) { - return true; - } - } - return false; - } -} diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceListener.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceListener.java deleted file mode 100644 index 9c46d4f6..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceListener.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2015 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.netconf; - -/** - * Allows for providers interested in node events to be notified. - */ -public interface NetconfDeviceListener { - - /** - * Notifies that the node was added. - * - * @param nodeId the node where the event occurred - */ - void deviceAdded(NetconfDeviceInfo nodeId); - - /** - * Notifies that the node was removed. - * - * @param nodeId the node where the event occurred - */ - void deviceRemoved(NetconfDeviceInfo nodeId); -} diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfSession.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfSession.java deleted file mode 100644 index 73c435f6..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfSession.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2015 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.netconf; - -import java.util.List; - -/** - * NETCONF session object that allows NETCONF operations on top with the physical - * device on top of an SSH connection. - */ -// TODO change return type of methdos to <Capability, XMLdoc, string or yang obj> -public interface NetconfSession { - - /** - * Retrives the requested configuration, different from get-config. - * @param request the XML containing the request to the server. - * @return device running configuration - */ - String get(String request); - - /** - * Executes an RPC to the server. - * @param request the XML containing the RPC for the server. - * @return Server response or ERROR - */ - String doRPC(String request); - - /** - * Retrives the specified configuration. - * - * @param targetConfiguration the type of configuration to retrieve. - * @return specified configuration. - */ - String getConfig(String targetConfiguration); - - /** - * Retrives part of the specivied configuration based on the filterSchema. - * - * @param targetConfiguration the type of configuration to retrieve. - * @param configurationFilterSchema XML schema to filter the configuration - * elements we are interested in - * @return device running configuration. - */ - String getConfig(String targetConfiguration, String configurationFilterSchema); - - /** - * Retrives part of the specified configuration based on the filterSchema. - * - * @param newConfiguration configuration to set - * @return true if the configuration was edited correctly - */ - - boolean editConfig(String newConfiguration); - - /** - * Copies the new configuration, an Url or a complete configuration xml tree - * to the target configuration. - * The target configuration can't be the running one - * - * @param targetConfiguration the type of configuration to retrieve. - * @param newConfiguration configuration to set - * @return true if the configuration was copied correctly - */ - boolean copyConfig(String targetConfiguration, String newConfiguration); - - /** - * Deletes part of the specified configuration based on the filterSchema. - * - * @param targetConfiguration the name of the configuration to delete - * @return true if the configuration was copied correctly - */ - boolean deleteConfig(String targetConfiguration); - - /** - * Locks the candidate configuration. - * - * @return true if successful. - */ - boolean lock(); - - /** - * Unlocks the candidate configuration. - * - * @return true if successful. - */ - boolean unlock(); - - /** - * Closes the Netconf session with the device. - * the first time it tries gracefully, then kills it forcefully - * @return true if closed - */ - boolean close(); - - /** - * Gets the session ID of the Netconf session. - * - * @return Session ID as a string. - */ - String getSessionId(); - - /** - * Gets the capabilities of the Netconf server associated to this session. - * - * @return Network capabilities as a string. - */ - String getServerCapabilities(); - - /** - * Sets the device capabilities. - * @param capabilities list of capabilities the device has. - */ - void setDeviceCapabilities(List<String> capabilities); - -} diff --git a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/package-info.java b/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/package-info.java deleted file mode 100644 index 5562bd33..00000000 --- a/framework/src/onos/protocols/netconf/api/src/main/java/org/onosproject/netconf/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2015 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. - */ - -/** - * Created by ray on 10/30/15. - */ -package org.onosproject.netconf; |