diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour')
26 files changed, 0 insertions, 1470 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeConfig.java deleted file mode 100644 index cf7bed6d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeConfig.java +++ /dev/null @@ -1,107 +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.net.behaviour; - -import java.util.Collection; -import java.util.List; -import java.util.Set; - -import org.onosproject.net.PortNumber; -import org.onosproject.net.device.PortDescription; -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * Behaviour for handling various drivers for bridge configurations. - */ -public interface BridgeConfig extends HandlerBehaviour { - - /** - * Add a bridge. - * - * @param bridgeName bridge name - */ - void addBridge(BridgeName bridgeName); - - /** - * Adds a bridge with given bridge name, dpid and exPortName. - * - * @param bridgeName bridge name - * @param dpid dpid - * @param exPortName external port name - */ - void addBridge(BridgeName bridgeName, String dpid, String exPortName); - - /** - * Adds a bridge with given bridge name and dpid, and sets the controller - * of the bridge with given controllers. - * - * @param bridgeName bridge name - * @param dpid dpid - * @param controllers list of controller - * @return true if succeeds, fail otherwise - */ - boolean addBridge(BridgeName bridgeName, String dpid, List<ControllerInfo> controllers); - - /** - * Remove a bridge. - * - * @param bridgeName bridge name - */ - void deleteBridge(BridgeName bridgeName); - - /** - * Remove a bridge. - * - * @return bridge collection - */ - Collection<BridgeDescription> getBridges(); - - /** - * Add a logical/virtual port. - * - * @param port port number - */ - void addPort(PortDescription port); - - /** - * Delete a logical/virtual port. - * - * @param port port number - */ - void deletePort(PortDescription port); - - /** - * Delete a logical/virtual port. - * - * @return collection of port - */ - Collection<PortDescription> getPorts(); - - /** - * Get a collection of port. - * - * @return portNumbers set of PortNumber - */ - Set<PortNumber> getPortNumbers(); - - /** - * Get logical/virtual ports by ifaceIds. - * - * @param ifaceIds the ifaceid that needed - * @return list of PortNumber - */ - List<PortNumber> getLocalPorts(Iterable<String> ifaceIds); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java deleted file mode 100644 index 3c1d5542..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2014-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.net.behaviour; - -import org.onosproject.net.Description; -import org.onosproject.net.DeviceId; - -/** - * The abstraction of bridge in OVSDB protocol. - */ -public interface BridgeDescription extends Description { - - /** - * Returns bridge name. - * - * @return bridge name - */ - BridgeName bridgeName(); - - /** - * Returns controller identifier that this bridge belongs to. - * - * @return controller identifier - */ - DeviceId cotrollerDeviceId(); - - /** - * Returns bridge identifier . - * - * @return bridge identifier - */ - DeviceId deviceId(); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeName.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeName.java deleted file mode 100644 index a15217c6..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/BridgeName.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2014-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.net.behaviour; - -import java.util.Objects; - -import com.google.common.base.MoreObjects; - -/** - * Represents for a bridge name. - */ -public final class BridgeName { - - private final String name; - - // Public construction is prohibited - private BridgeName(String name) { - this.name = name; - } - - /** - * Creates a bridge name using the supplied string. - * - * @param name bridge name - * @return BridgeName - */ - public static BridgeName bridgeName(String name) { - return new BridgeName(name); - } - - /** - * Returns the bridge name string. - * - * @return name string - */ - public String name() { - return name; - } - - @Override - public int hashCode() { - return name.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof BridgeName) { - final BridgeName that = (BridgeName) obj; - return this.getClass() == that.getClass() && - Objects.equals(this.name, that.name); - } - return false; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(getClass()) - .add("name", name) - .toString(); - } - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java deleted file mode 100644 index cd7cb977..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerConfig.java +++ /dev/null @@ -1,43 +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.net.behaviour; - -import org.onosproject.net.driver.HandlerBehaviour; - -import java.util.List; - -/** - * Device behaviour to obtain and set controllers at the device. - */ -public interface ControllerConfig extends HandlerBehaviour { - - //TODO: add other controller parameters as needed. - - /** - * Obtain the list of controller which are currently configured. - * - * @return a list for controller descriptions - */ - List<ControllerInfo> getControllers(); - - /** - * Set a list of controllers on a device. - * - * @param controllers a list of controller descriptions - */ - void setControllers(List<ControllerInfo> controllers); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java deleted file mode 100644 index 0e509562..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ControllerInfo.java +++ /dev/null @@ -1,127 +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.net.behaviour; - -import com.google.common.base.Preconditions; -import org.onlab.packet.IpAddress; - -import java.util.Objects; - -/** - * Represents information for a device to connect to a controller. - */ -public class ControllerInfo { - - private IpAddress ip = IpAddress.valueOf("0.0.0.0"); - private int port = 6653; - private String type = "error"; - - /** - * Information for contacting the controller. - * - * @param ip the ip address - * @param port the tcp port - * @param type the connection type - */ - public ControllerInfo(IpAddress ip, int port, String type) { - this.ip = ip; - this.port = port; - this.type = type; - } - - /** - * Information for contacting the controller, if some information - * is not contained in the target string because it's optional - * it's leaved as in the field declaration (default values). - * - * @param target column returned from ovsdb query - */ - public ControllerInfo(String target) { - String[] data = target.split(":"); - this.type = data[0]; - Preconditions.checkArgument(!data[0].contains("unix"), - "Unable to create controller info " + - "from {} because it's based " + - "on unix sockets", target); - if (data[0].startsWith("p")) { - if (data.length >= 2) { - this.port = Integer.parseInt(data[1]); - } - if (data.length == 3) { - this.ip = IpAddress.valueOf(data[2]); - } - } else { - this.ip = IpAddress.valueOf(data[1]); - if (data.length == 3) { - this.port = Integer.parseInt(data[2]); - } - } - } - - /** - * Exposes the ip address of the controller. - * - * @return IpAddress ip address - */ - public IpAddress ip() { - return ip; - } - - /** - * Exposes the tcp port of the controller. - * - * @return int tcp port - */ - public int port() { - return port; - } - - /** - * Exposes the type of the controller connection. - * - * @return String type - */ - public String type() { - return type; - } - - public String target() { - if (type.startsWith("p")) { - return type + ":" + port + ":" + ip; - } else { - return type + ":" + ip + ":" + port; - } - } - - - @Override - public int hashCode() { - return Objects.hash(ip, port, type); - } - - @Override - public boolean equals(Object toBeCompared) { - if (toBeCompared instanceof ControllerInfo) { - ControllerInfo controllerInfo = (ControllerInfo) toBeCompared; - if (controllerInfo.type().equals(this.type) - && controllerInfo.ip().equals(this.ip()) - && controllerInfo.port() == this.port) { - return true; - } - } - return false; - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java deleted file mode 100644 index 6a6f670f..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2014-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.net.behaviour; - -import java.util.Objects; - -import org.onosproject.net.AbstractDescription; -import org.onosproject.net.DeviceId; -import org.onosproject.net.SparseAnnotations; - -import com.google.common.base.MoreObjects; - -/** - * The default implementation of bridge. - */ -public final class DefaultBridgeDescription extends AbstractDescription - implements BridgeDescription { - - private final BridgeName name; - private final DeviceId deviceId; - private final DeviceId controllerId; - - public DefaultBridgeDescription(BridgeName name, DeviceId controllerId, - DeviceId deviceId, - SparseAnnotations... annotations) { - super(annotations); - this.name = name; - this.deviceId = deviceId; - this.controllerId = controllerId; - } - - @Override - public BridgeName bridgeName() { - return name; - } - - @Override - public DeviceId deviceId() { - return deviceId; - } - - @Override - public DeviceId cotrollerDeviceId() { - return controllerId; - } - - @Override - public int hashCode() { - return Objects.hash(name, deviceId, controllerId); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof DefaultBridgeDescription) { - final DefaultBridgeDescription that = (DefaultBridgeDescription) obj; - return this.getClass() == that.getClass() - && Objects.equals(this.name, that.name) - && Objects.equals(this.deviceId, that.deviceId) - && Objects.equals(this.controllerId, that.controllerId); - } - return false; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(getClass()).add("name", name) - .add("deviceId", deviceId).add("controllerId", controllerId) - .toString(); - } - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultNextGroup.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultNextGroup.java deleted file mode 100644 index ef1f9de7..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultNextGroup.java +++ /dev/null @@ -1,33 +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.net.behaviour; - -/** - * Default implementation of a next group. - */ -public class DefaultNextGroup implements NextGroup { - - private final byte[] data; - - public DefaultNextGroup(byte[] data) { - this.data = data; - } - - @Override - public byte[] data() { - return data; - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultTunnelDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultTunnelDescription.java deleted file mode 100644 index 7554a3cb..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/DefaultTunnelDescription.java +++ /dev/null @@ -1,87 +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.net.behaviour; - -import org.onosproject.net.AbstractDescription; -import org.onosproject.net.SparseAnnotations; - -import com.google.common.annotations.Beta; -import com.google.common.base.MoreObjects; - -/** - * Default implementation of immutable tunnel description entity. - */ -@Beta -public class DefaultTunnelDescription extends AbstractDescription - implements TunnelDescription { - - private final TunnelEndPoint src; - private final TunnelEndPoint dst; - private final Type type; - // which a tunnel match up - // tunnel producer - private final TunnelName tunnelName; // name of a tunnel - - /** - * Creates a tunnel description using the supplied information. - * - * @param src TunnelPoint source - * @param dst TunnelPoint destination - * @param type tunnel type - * @param tunnelName tunnel name - * @param annotations optional key/value annotations - */ - public DefaultTunnelDescription(TunnelEndPoint src, - TunnelEndPoint dst, Type type, - TunnelName tunnelName, - SparseAnnotations... annotations) { - super(annotations); - this.src = src; - this.dst = dst; - this.type = type; - this.tunnelName = tunnelName; - } - - @Override - public TunnelEndPoint src() { - return src; - } - - @Override - public TunnelEndPoint dst() { - return dst; - } - - @Override - public Type type() { - return type; - } - - @Override - public TunnelName tunnelName() { - return tunnelName; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("src", src()) - .add("dst", dst()) - .add("type", type()) - .add("tunnelName", tunnelName()) - .toString(); - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionSelectorResolver.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionSelectorResolver.java deleted file mode 100644 index d45dd53c..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionSelectorResolver.java +++ /dev/null @@ -1,40 +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.net.behaviour; - -import com.google.common.annotations.Beta; -import org.onosproject.net.driver.HandlerBehaviour; -import org.onosproject.net.flow.criteria.ExtensionSelector; -import org.onosproject.net.flow.criteria.ExtensionSelectorType; - -/** - * Provides access to the extension selectors implemented by this driver. - */ -@Beta -public interface ExtensionSelectorResolver extends HandlerBehaviour { - - /** - * Gets an extension selector instance of the specified type, if supported - * by the driver. - * - * @param type type of extension to get - * @return extension selector - * @throws UnsupportedOperationException if the extension type is not - * supported by this driver - */ - ExtensionSelector getExtensionSelector(ExtensionSelectorType type); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionTreatmentResolver.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionTreatmentResolver.java deleted file mode 100644 index 8ca05af3..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/ExtensionTreatmentResolver.java +++ /dev/null @@ -1,40 +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.net.behaviour; - -import com.google.common.annotations.Beta; -import org.onosproject.net.driver.HandlerBehaviour; -import org.onosproject.net.flow.instructions.ExtensionTreatment; -import org.onosproject.net.flow.instructions.ExtensionTreatmentType; - -/** - * Provides access to the extension treatments implemented by this driver. - */ -@Beta -public interface ExtensionTreatmentResolver extends HandlerBehaviour { - - /** - * Gets an extension treatment instance of the specified type, if supported - * by the driver. - * - * @param type type of extension to get - * @return extension instruction - * @throws UnsupportedOperationException if the extension type is not - * supported by this driver - */ - ExtensionTreatment getExtensionInstruction(ExtensionTreatmentType type); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/IpTunnelEndPoint.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/IpTunnelEndPoint.java deleted file mode 100644 index 83ad4756..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/IpTunnelEndPoint.java +++ /dev/null @@ -1,80 +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.net.behaviour; - -import java.util.Objects; - -import com.google.common.annotations.Beta; -import org.onlab.packet.IpAddress; - -import com.google.common.base.MoreObjects; - -/** - * Represent for a tunnel point using ip address. - */ -@Beta -public final class IpTunnelEndPoint implements TunnelEndPoint { - - private final IpAddress ip; - - /** - * Public construction is prohibited. - * @param ip ip address - */ - private IpTunnelEndPoint(IpAddress ip) { - this.ip = ip; - } - - /** - * Create a IP tunnel end point. - * @param ip IP address - * @return IpTunnelEndPoint - */ - public static IpTunnelEndPoint ipTunnelPoint(IpAddress ip) { - return new IpTunnelEndPoint(ip); - } - - /** - * Returns IP address. - * @return IP address - */ - public IpAddress ip() { - return ip; - } - - @Override - public int hashCode() { - return Objects.hash(ip); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof IpTunnelEndPoint) { - final IpTunnelEndPoint other = (IpTunnelEndPoint) obj; - return Objects.equals(this.ip, other.ip); - } - return false; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(getClass()).add("ip", ip).toString(); - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/LambdaQuery.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/LambdaQuery.java deleted file mode 100644 index e3b1d963..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/LambdaQuery.java +++ /dev/null @@ -1,40 +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.net.behaviour; - -import com.google.common.annotations.Beta; -import org.onosproject.net.OchSignal; -import org.onosproject.net.PortNumber; -import org.onosproject.net.driver.HandlerBehaviour; - -import java.util.SortedSet; - -/** - * A HandlerBehaviour to retrieve available wavelength resources. - */ -@Beta -public interface LambdaQuery extends HandlerBehaviour { - - // Currently returns set of FLEX GridType ochSignal instances - /** - * Returns set of Lambda instances which can be used at the port. - * - * @param port to be checked for the available resources. - * @return Set of OchSignals which can be used at the port. - */ - SortedSet<OchSignal> queryLambdas(PortNumber port); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/MplsQuery.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/MplsQuery.java deleted file mode 100644 index 0e9f466d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/MplsQuery.java +++ /dev/null @@ -1,35 +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.net.behaviour; - -import com.google.common.annotations.Beta; -import org.onosproject.net.PortNumber; -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * A HandlerBehaviour to check the capability of MPLS. - */ -@Beta -public interface MplsQuery extends HandlerBehaviour { - - /** - * Indicates if MPLS can be used at the port. - - * @param port port to be checked for the capability - * @return true if MPLS can be used at the port, false otherwise. - */ - boolean isEnabled(PortNumber port); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/NextGroup.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/NextGroup.java deleted file mode 100644 index b5a3891c..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/NextGroup.java +++ /dev/null @@ -1,30 +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.net.behaviour; - -/** - * Opaque data type for carrying group-like information. - * Only relevant to a pipeliner driver. - */ -public interface NextGroup { - - /** - * Serialized form of the next group. - * @return a byte array. - */ - byte[] data(); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/Pipeliner.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/Pipeliner.java deleted file mode 100644 index dcfc5883..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/Pipeliner.java +++ /dev/null @@ -1,57 +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.net.behaviour; - -import org.onosproject.net.DeviceId; -import org.onosproject.net.driver.HandlerBehaviour; -import org.onosproject.net.flowobjective.FilteringObjective; -import org.onosproject.net.flowobjective.ForwardingObjective; -import org.onosproject.net.flowobjective.NextObjective; - -/** - * Behaviour for handling various pipelines. - */ -public interface Pipeliner extends HandlerBehaviour { - - /** - * Initializes the driver with context required for its operation. - * - * @param deviceId the deviceId - * @param context processing context - */ - void init(DeviceId deviceId, PipelinerContext context); - - /** - * Installs the filtering rules onto the device. - * - * @param filterObjective a filtering objective - */ - void filter(FilteringObjective filterObjective); - - /** - * Installs the forwarding rules onto the device. - * - * @param forwardObjective a forwarding objective - */ - void forward(ForwardingObjective forwardObjective); - - /** - * Installs the next hop elements into the device. - * - * @param nextObjective a next objectives - */ - void next(NextObjective nextObjective); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java deleted file mode 100644 index d0ca42b1..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java +++ /dev/null @@ -1,41 +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.net.behaviour; - -import org.onlab.osgi.ServiceDirectory; -import org.onosproject.net.flowobjective.FlowObjectiveStore; - -/** - * Processing context and supporting services for the pipeline behaviour. - */ -public interface PipelinerContext { - - /** - * Returns the service directory which can be used to obtain references - * to various supporting services. - * - * @return service directory - */ - ServiceDirectory directory(); - - /** - * Returns the Objective Store where data can be stored and retrieved. - * @return the flow objective store - */ - FlowObjectiveStore store(); - - // TODO: add means to store and access shared state -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortAdmin.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortAdmin.java deleted file mode 100644 index 141e27dc..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortAdmin.java +++ /dev/null @@ -1,33 +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.net.behaviour; - -import org.onosproject.net.device.PortDescription; -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * Means to administratively enable/disable a logical port at the device. - */ -public interface PortAdmin extends HandlerBehaviour { - - /** - * Enable/disable administratively a port. - * - * @param port a port description containing the desired port state - */ - void enable(PortDescription port); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java deleted file mode 100644 index 83dd99d8..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/PortConfig.java +++ /dev/null @@ -1,40 +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.net.behaviour; - -import com.google.common.primitives.UnsignedInteger; -import org.onosproject.net.device.PortDescription; -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * Means to configure a logical port at the device. - */ -public interface PortConfig extends HandlerBehaviour { - - /** - * Apply QoS configuration on a device. - * @param port a port description - * @param queueId an unsigned integer - */ - void applyQoS(PortDescription port, UnsignedInteger queueId); - - /** - * Remove a QoS configuration. - * @param port a port description - */ - void removeQoS(PortDescription port); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java deleted file mode 100644 index 22f3ecb7..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueConfig.java +++ /dev/null @@ -1,56 +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.net.behaviour; - -import com.google.common.primitives.UnsignedInteger; - -import java.util.Set; - -/** - * Means to alter a device's dataplane queues. - */ -public interface QueueConfig { - - /** - * Obtain all queues configured on a device. - * - * @return a list of queue descriptions - */ - Set<QueueInfo> getQueues(); - - /** - * Obtain a specific queue given a queue id. - * - * @param queueId an unsigned integer representing a queue id - * @return a queue description - */ - QueueInfo getQueue(UnsignedInteger queueId); - - /** - * Add a queue to a device. - * - * @param queue a queue description - */ - void addQueue(QueueInfo queue); - - /** - * Remove a queue from a device. - * - * @param queueId an unsigned integer - */ - void removeQueue(UnsignedInteger queueId); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java deleted file mode 100644 index 25852b36..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/QueueInfo.java +++ /dev/null @@ -1,56 +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.net.behaviour; - -import com.google.common.primitives.UnsignedInteger; - -/** - * Represents a dataplane queue. - */ -public class QueueInfo { - - public enum Type { - /** - * Supports burst and priority as well as min and max rates. - */ - FULL, - - /** - * Only support min and max rates. - */ - MINMAX - } - - private final UnsignedInteger queueId; - private final Type type; - private final long minRate; - private final long maxRate; - private final long burst; - private final long priority; - - public QueueInfo(UnsignedInteger queueId, Type type, long minRate, - long maxRate, long burst, long priority) { - this.queueId = queueId; - this.type = type; - this.minRate = minRate; - this.maxRate = maxRate; - this.burst = burst; - this.priority = priority; - } - - //TODO builder - // public static QueueInfoBuilder builder() {} -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java deleted file mode 100644 index a1b97ffd..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java +++ /dev/null @@ -1,65 +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.net.behaviour; - -import java.util.Collection; - -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * Behaviour for handling various drivers for tunnel configuration. - */ -public interface TunnelConfig extends HandlerBehaviour { - - /** - * Creates a tunnel on this device. - * - * @param tunnel tunnel descriptor - */ - @Deprecated - void createTunnel(TunnelDescription tunnel); - - /** - * Creates a tunnel interface on a given bridge of this device. - * - * @param bridgeName bridge name - * @param tunnel tunnel description - * @return true if succeeds, false otherwise - */ - boolean createTunnelInterface(BridgeName bridgeName, TunnelDescription tunnel); - - /** - * Removes a tunnel on this device. - * - * @param tunnel tunnel descriptor - */ - void removeTunnel(TunnelDescription tunnel); - - /** - * Updates a tunnel on this device. - * - * @param tunnel tunnel descriptor - */ - void updateTunnel(TunnelDescription tunnel); - - /** - * Returns tunnels created on this device. - * - * @return collection of tunnels - */ - Collection<TunnelDescription> getTunnels(); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelDescription.java deleted file mode 100755 index b2fb6996..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelDescription.java +++ /dev/null @@ -1,86 +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.net.behaviour; - -import org.onosproject.net.Annotated; -import org.onosproject.net.Description; - -import com.google.common.annotations.Beta; - -/** - * Describes a tunnel. - */ -@Beta -public interface TunnelDescription extends Description, Annotated { - - /** - * Tunnel technology type. - */ - enum Type { - /** - * Signifies that this is a MPLS tunnel. - */ - MPLS, - /** - * Signifies that this is a L2 tunnel. - */ - VLAN, - /** - * Signifies that this is a DC L2 extension tunnel. - */ - VXLAN, - /** - * Signifies that this is a L3 tunnel. - */ - GRE, - /** - * Signifies that this is a L1 OTN tunnel. - */ - ODUK, - /** - * Signifies that this is a L0 OCH tunnel. - */ - OCH - } - - /** - * Returns the connection point source. - * - * @return tunnel source ConnectionPoint - */ - TunnelEndPoint src(); - - /** - * Returns the connection point destination. - * - * @return tunnel destination - */ - TunnelEndPoint dst(); - - /** - * Returns the tunnel type. - * - * @return tunnel type - */ - Type type(); - - /** - * Return the name of a tunnel. - * - * @return Tunnel Name - */ - TunnelName tunnelName(); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java deleted file mode 100644 index c354c38d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java +++ /dev/null @@ -1,28 +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.net.behaviour; - -import com.google.common.annotations.Beta; - -/** - * Represents for source end point or destination end point of a tunnel. Maybe a tunnel - * based on ConnectPoint, IpAddress, MacAddress and so on is built. - */ -@Beta -public interface TunnelEndPoint { - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelName.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelName.java deleted file mode 100644 index 9be26549..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/TunnelName.java +++ /dev/null @@ -1,79 +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.net.behaviour; - -import com.google.common.annotations.Beta; - -import java.util.Objects; - -/** - * Represents for a unique tunnel name. TunnelId is generated by ONOS while - * TunnelName is given by producer. The consumer can borrow tunnels with - * TunnelId or TunnelName. - */ -@Beta -public final class TunnelName { - private final String str; - - // Default constructor for serialization - private TunnelName(String tunnelName) { - this.str = tunnelName; - } - - - /** - * Creates a tunnel name using the supplied URI string. - * - * @param tunnelName tunnel name string - * @return tunnel name object - */ - public static TunnelName tunnelName(String tunnelName) { - return new TunnelName(tunnelName); - } - - /** - * The string of tunnel name. - * - * @return the string of tunnel name - */ - public String value() { - return str; - } - - @Override - public int hashCode() { - return Objects.hash(str); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof TunnelName) { - final TunnelName that = (TunnelName) obj; - return this.getClass() == that.getClass() - && Objects.equals(this.str, that.str); - } - return false; - } - - @Override - public String toString() { - return str; - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/VlanQuery.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/VlanQuery.java deleted file mode 100644 index a1057c90..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/VlanQuery.java +++ /dev/null @@ -1,35 +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.net.behaviour; - -import com.google.common.annotations.Beta; -import org.onosproject.net.PortNumber; -import org.onosproject.net.driver.HandlerBehaviour; - -/** - * A HandlerBehaviour to check the capability of VLAN. - */ -@Beta -public interface VlanQuery extends HandlerBehaviour { - - /** - * Indicates if VLAN can be used at the port. - * - * @param port port to be checked for the capability - * @return true if VLAN can be used at the port, false otherwise. - */ - boolean isEnabled(PortNumber port); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/package-info.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/package-info.java deleted file mode 100644 index f0a9a5e5..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/behaviour/package-info.java +++ /dev/null @@ -1,21 +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. - */ - -/** - * Abstractions of various device configuration or device adaptation behaviours; - * counterpart to the device driver subsystem. - */ -package org.onosproject.net.behaviour;
\ No newline at end of file |