From 86d84c6a9e3f0e0b8b17d81c9b27888885944163 Mon Sep 17 00:00:00 2001 From: Jason Ye Date: Mon, 26 Aug 2013 10:56:22 -0700 Subject: [PATCH] OpenFLow plugin & SAL API documentation Change-Id: I0947e48f4ab52cf61e84973dcc808b10045e3382 Signed-off-by: Jason Ye --- .../IInventoryShimInternalListener.java | 31 +++-- .../openflow/IOFStatisticsListener.java | 42 +++++- .../openflow/IReadFilterInternalListener.java | 31 +++-- .../openflow/IReadServiceFilter.java | 122 ++++++++++++------ .../openflow/IRefreshInternalProvider.java | 4 +- .../openflow/core/ISwitch.java | 8 +- .../internal/TopologyServiceShim.java | 21 ++- .../authorization/IResourceAuthorization.java | 28 ++-- .../controller/sal/core/IContainerAware.java | 6 +- .../sal/core/IContainerListener.java | 60 +++++---- .../IPluginInFlowProgrammerService.java | 73 ++++++++++- .../sal/reader/IPluginInReadService.java | 87 ++++++++++--- .../sal/reader/IPluginOutReadService.java | 42 ++++-- .../controller/sal/reader/IReadService.java | 94 +++++++++++--- .../sal/reader/IReadServiceListener.java | 6 +- .../controller/sal/routing/IRouting.java | 49 ++++--- .../sal/topology/IListenTopoUpdates.java | 19 +-- .../topology/IPluginOutTopologyService.java | 24 +--- .../sal/utils/ConfigurationObject.java | 4 + .../controller/sal/utils/IListener.java | 7 +- .../sal/utils/INodeConnectorFactory.java | 13 +- .../controller/sal/utils/INodeFactory.java | 12 +- .../sal/connection/IConnectionService.java | 11 +- .../IPluginInConnectionService.java | 9 +- .../IPluginOutConnectionService.java | 5 + .../IBridgeDomainConfigService.java | 3 + .../IPluginInBridgeDomainConfigService.java | 4 +- 27 files changed, 593 insertions(+), 222 deletions(-) diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java index 9bcd7c0dc4..3c698b6ce3 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * @@ -24,22 +23,32 @@ public interface IInventoryShimInternalListener { /** * Updates node and its properties * - * @param node {@link org.opendaylight.controller.sal.core.Node} being updated - * @param type {@link org.opendaylight.controller.sal.core.UpdateType} - * @param props set of {@link org.opendaylight.controller.sal.core.Property} such as - * {@link org.opendaylight.controller.sal.core.Description} and/or - * {@link org.opendaylight.controller.sal.core.Tier} etc. + * @param node + * {@link org.opendaylight.controller.sal.core.Node} being + * updated + * @param type + * update type {@link org.opendaylight.controller.sal.core.UpdateType} + * @param props + * set of {@link org.opendaylight.controller.sal.core.Property} + * such as + * {@link org.opendaylight.controller.sal.core.Description} + * and/or {@link org.opendaylight.controller.sal.core.Tier} etc. */ public void updateNode(Node node, UpdateType type, Set props); /** * Updates node connector and its properties * - * @param nodeConnector {@link org.opendaylight.controller.sal.core.NodeConnector} being updated - * @param type {@link org.opendaylight.controller.sal.core.UpdateType} - * @param props set of {@link org.opendaylight.controller.sal.core.Property} such as - * {@link org.opendaylight.controller.sal.core.Description} and/or - * {@link org.opendaylight.controller.sal.core.State} etc. + * @param nodeConnector + * {@link org.opendaylight.controller.sal.core.NodeConnector} + * being updated + * @param type + * update type {@link org.opendaylight.controller.sal.core.UpdateType} + * @param props + * set of {@link org.opendaylight.controller.sal.core.Property} + * such as + * {@link org.opendaylight.controller.sal.core.Description} + * and/or {@link org.opendaylight.controller.sal.core.State} etc. */ public void updateNodeConnector(NodeConnector nodeConnector, UpdateType type, Set props); diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java index 1c22966299..6980479fa8 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java @@ -5,16 +5,52 @@ import java.util.List; import org.openflow.protocol.statistics.OFStatistics; /** - * Interface defines the api which gets called when the information - * contained in the OF statistics reply message from a network is updated with - * new one. + * Interface which defines the notification functions which will get called when + * the information contained in the OF statistics reply message received from a + * network node is different from the cached one. */ public interface IOFStatisticsListener { + /** + * Notifies that a new list of description statistics objects for the given + * switch is available + * + * @param switchId + * The datapath id of the openflow switch + * @param description + * The new list of description statistics objects + */ public void descriptionStatisticsRefreshed(Long switchId, List description); + /** + * Notifies that a new list of flows statistics objects for the given switch + * is available + * + * @param switchId + * The datapath id of the openflow switch + * @param flows + * The new list of flow statistics objects + */ public void flowStatisticsRefreshed(Long switchId, List flows); + /** + * Notifies that a new list of port statistics objects for the given switch + * is available + * + * @param switchId + * The datapath id of the openflow switch + * @param flows + * The new list of port statistics objects + */ public void portStatisticsRefreshed(Long switchId, List ports); + /** + * Notifies that a new list of table statistics objects for the given switch + * is available + * + * @param switchId + * The datapath id of the openflow switch + * @param flows + * The new list of table statistics objects + */ public void tableStatisticsRefreshed(Long switchId, List tables); } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java index d5f4d31f2b..9622af97ef 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java @@ -9,38 +9,45 @@ import org.opendaylight.controller.sal.reader.NodeDescription; import org.opendaylight.controller.sal.reader.NodeTableStatistics; /** - * The Interface provides statistics updates to ReaderFilter listeners within - * the protocol plugin + * The Interface provides notification of statistics (hardware view) updates to + * ReaderFilter listeners within the protocol plugin */ public interface IReadFilterInternalListener { /** - * Notifies the hardware view of all the flow installed on the specified network node + * Notifies the hardware view of all the flow installed on the specified + * network node was updated + * * @param node - * @return + * the network node + * @param flowStatsList */ public void nodeFlowStatisticsUpdated(Node node, List flowStatsList); /** - * Notifies the hardware view of the specified network node connector + * Notifies the hardware view of the specified network node connectors was + * updated + * * @param node - * @return + * the network node */ public void nodeConnectorStatisticsUpdated(Node node, List ncStatsList); /** - * Notifies all the table statistics for a node + * Notifies the hardware view of the specified network node tables was + * updated + * * @param node - * @return + * the network node */ public void nodeTableStatisticsUpdated(Node node, List tableStatsList); /** - * Notifies the hardware view of all the flow installed on the specified network node + * Notifies the hardware view of all the flow installed on the specified + * network node was updated + * * @param node - * @return + * the network node */ public void nodeDescriptionStatisticsUpdated(Node node, NodeDescription nodeDescription); - - } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java index a10e22b394..9ba67e382f 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * @@ -21,90 +20,139 @@ import org.opendaylight.controller.sal.reader.NodeDescription; import org.opendaylight.controller.sal.reader.NodeTableStatistics; /** - * Interface to serve the hardware information requests coming from SAL - * It is implemented by the respective OF1.0 plugin component + * Interface to serve the hardware information requests coming from SAL It is + * implemented by the respective OF1.0 plugin component * */ public interface IReadServiceFilter { /** - * Returns the hardware image for the specified flow - * on the specified network node for the passed container + * Returns the hardware image for the specified flow on the specified + * network node for the passed container * * @param container + * the container for which the request is originated * @param node + * the network node * @param flow + * the target flow * @param cached - * @return + * specify if entry has to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the network node. + * @return The FlowOnNode object containing the information present in + * hardware for the passed flow on the specified network node */ - public FlowOnNode readFlow(String container, Node node, Flow flow, - boolean cached); + public FlowOnNode readFlow(String container, Node node, Flow flow, boolean cached); /** - * Returns the hardware view of all the flow installed - * on the specified network node for the passed container + * Returns the hardware view of all the flow installed on the specified + * network node for the passed container * * @param container + * the container for which the request is originated * @param node + * the network node * @param cached - * @return + * specify if entries have to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the network node. + * @return The list of FlowOnNode objects containing the information present + * in hardware on the specified network node for all its flows */ - public List readAllFlow(String container, Node node, - boolean cached); + public List readAllFlow(String container, Node node, boolean cached); /** - * Returns the description of the network node as provided by the node itself + * Returns the description of the network node as provided by the node + * itself * * @param node + * the network node * @param cached - * @return + * specify if entry has to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the network node. + * @return The NodeDescription object containing the description information + * for the specified network node */ public NodeDescription readDescription(Node node, boolean cached); /** - * Returns the hardware view of the specified network node connector - * for the given container - * @param node - * @return + * Returns the hardware view of the specified network node connector for the + * given container + * + * @param container + * the container for which the request is originated + * @param nodeConnector + * the target nodeConnector + * @param cached + * specify if entry has to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the corresponding network node. + * @return The NodeConnectorStatistics object containing the statistics + * present in hardware for the corresponding network node port */ - public NodeConnectorStatistics readNodeConnector(String container, - NodeConnector nodeConnector, boolean cached); + public NodeConnectorStatistics readNodeConnector(String container, NodeConnector nodeConnector, boolean cached); /** - * Returns the hardware info for all the node connectors on the - * specified network node for the given container + * Returns the hardware info for all the node connectors on the specified + * network node for the given container * + * @param container + * the container for which the request is originated * @param node - * @return + * the target node + * @param cached + * specify if entries have to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the corresponding network node. + * @return The list of NodeConnectorStatistics objects containing the + * statistics present in hardware for all the network node ports */ - public List readAllNodeConnector(String container, - Node node, boolean cached); + public List readAllNodeConnector(String container, Node node, boolean cached); /** - * Returns the table statistics of the node as specified by the given container - * @param node + * Returns the table statistics of the node as specified by the given + * container + * + * @param container + * the container for which the request is originated + * @param nodeTable + * the target network node table * @param cached - * @return + * specify if entry has to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the corresponding network node. + * @return The NodeTableStatistics object containing the statistics present + * in hardware for the corresponding network node table */ - public NodeTableStatistics readNodeTable(String container, - NodeTable nodeTable, boolean cached); + public NodeTableStatistics readNodeTable(String container, NodeTable nodeTable, boolean cached); /** * Returns the table statistics of all the tables for the specified node * + * @param container + * the container for which the request is originated * @param node - * @return + * the target node + * @param cached + * specify if entries have to be queried from the cached hardware + * information maintained in the protocol plugin or directly from + * the corresponding network node. + * @return The list of NodeTableStatistics objects containing the statistics + * present in hardware for all the network node tables */ - public List readAllNodeTable(String containerName, - Node node, boolean cached); + public List readAllNodeTable(String containerName, Node node, boolean cached); /** - * Returns the average transmit rate for the specified node conenctor on - * the given container. If the node connector does not belong to the passed + * Returns the average transmit rate for the specified node connector on the + * given container. If the node connector does not belong to the passed * container a zero value is returned * * @param container + * the container for which the request is originated * @param nodeConnector - * @return tx rate [bps] + * the target node connector + * @return The average tx rate in bps */ public long getTransmitRate(String container, NodeConnector nodeConnector); } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java index 9fca60f1a0..506d1702af 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * @@ -16,7 +15,7 @@ package org.opendaylight.controller.protocol_plugin.openflow; * to be fetched from the plugin * * For example, an application that has been started late, will want to - * be up to date with the latest topology. Hence, it requests for a + * be up to date with the latest topology. Hence, it requests for a * topology refresh from the plugin. */ @@ -29,6 +28,7 @@ public interface IRefreshInternalProvider { /** * @param containerName + * Name of the container for the topology */ public void requestRefresh(String containerName); } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java index 41da311fd9..af3641823c 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java @@ -119,6 +119,8 @@ public interface ISwitch { * * @param msg * The OF message to be sent + * @param xid + * The XID to be used in the message * @return The XID used */ public Integer asyncFastSend(OFMessage msg, int xid); @@ -175,6 +177,7 @@ public interface ISwitch { * Returns True if the port is enabled, * * @param portNumber + * the port ID * @return True if the port is enabled */ public boolean isPortEnabled(short portNumber); @@ -183,6 +186,7 @@ public interface ISwitch { * Returns True if the port is enabled. * * @param port + * the OpenFlow port * @return True if the port is enabled */ public boolean isPortEnabled(OFPhysicalPort port); @@ -220,12 +224,12 @@ public interface ISwitch { * Send Barrier message synchronously. The caller will be blocked until the * Barrier reply arrives. */ - Object syncSendBarrierMessage(); + public Object syncSendBarrierMessage(); /** * Send Barrier message asynchronously. The caller is not blocked. The * Barrier message will be sent in a transmit thread which will be blocked * until the Barrier reply arrives. */ - Object asyncSendBarrierMessage(); + public Object asyncSendBarrierMessage(); } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java index 028779d106..99501c280a 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java @@ -729,18 +729,37 @@ public class TopologyServiceShim implements IDiscoveryListener, bulkNotifyQ.add(containerName); } + /** + * Retrieve/construct edge map for a given container + * + * @param containerName + * the container name + * @return the edges and their properties + */ + private Map>> getEdgeMap(String containerName) { + Map>> edgePropMap = null; + + /* + * When container is freshly created, need to construct map based on global map. + */ + edgePropMap = edgeMap.get(containerName); + + return edgePropMap; + } + /** * Reading the current topology database, the method will replay all the * edge updates for the ITopologyServiceShimListener instance in the given * container, which will in turn publish them toward SAL. * * @param containerName + * the container name */ private void TopologyBulkUpdate(String containerName) { Map>> edgePropMap = null; logger.debug("Try bulk update for container:{}", containerName); - edgePropMap = edgeMap.get(containerName); + edgePropMap = getEdgeMap(containerName); if (edgePropMap == null) { logger.debug("No edges known for container:{}", containerName); return; diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java index 453976bf68..c88c53decf 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java @@ -47,13 +47,15 @@ public interface IResourceAuthorization { public List getRoles(); /** - * Returns the application role level for the specified role - * If the role is not known to this application NOUSER - * will be returned as specified in {@link AppRoleLevel} + * Returns the application role level for the specified role. If the role is + * not known to this application NOUSER will be returned as specified in + * {@link AppRoleLevel} * - * @param roleName the role name to query - * @return the application level of the given role in the application context as specified by {@link AppRoleLevel} - * if the role is not part of this application's roles, NOUSER is returned + * @param roleName + * the role name to query + * @return the application level of the given role in the application + * context as specified by {@link AppRoleLevel}. If the role is not + * part of this application's roles, NOUSER is returned. */ public AppRoleLevel getApplicationRoleLevel(String roleName); @@ -114,18 +116,18 @@ public interface IResourceAuthorization { /** * Unassign the passed resource group from the specified role * - * @param group - * @param role + * @param groupName the name of the resource group + * @param role the role name * @return the status of the request */ - public Status unassignResourceGroupFromRole(String group, String role); + public Status unassignResourceGroupFromRole(String groupName, String role); /** * Returns the list of resource groups the given Role is authorized to use * The returning object expresses the resource group name and the access * its privilege for the given user role * - * @param role + * @param role the role name * @return list of resources */ public List getAuthorizedGroups(String role); @@ -141,7 +143,7 @@ public interface IResourceAuthorization { /** * Returns the list of authorized resources for the given role * For each resource only the highest privilege occurrence is returned - * @param role + * @param role the role name * @return the list of Resource */ public List getAuthorizedResources(String role); @@ -179,8 +181,8 @@ public interface IResourceAuthorization { * Returns the highest privilege that the user has on the specified * resource in this application context * - * @param userName - * @param resource + * @param userName the user name + * @param resource the given resource * @return the privilege the user has on the passed resource */ public Privilege getResourcePrivilege(String userName, Object resource); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java index 008ec59bfa..ce6c00e7c0 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java @@ -10,12 +10,8 @@ package org.opendaylight.controller.sal.core; /** - * @file IContainerAware.java - * - * @brief Define the interface to be called when the Container is being + * The interface describes methods to be called when the Container is being * created/destroyed - * - * */ public interface IContainerAware { diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java index 8ba62e234d..1629c1dd17 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java @@ -21,8 +21,8 @@ package org.opendaylight.controller.sal.core; /** - * - * Interface used to retrieve the status of a given Container + * The interface describes methods used to retrieve the status of a given + * Container */ public interface IContainerListener { /** @@ -42,38 +42,54 @@ public interface IContainerListener { /** * Notification raised when the container flow layout changes * - * @param containerName container for which the update has been raised - * @param previousFlow previous value of the container flow under - * update, differs from the currentFlow only and only if it's an - * update operation - * @param currentFlow current version of the container flow differs from - * the previousFlow only in case of update - * @param t type of update + * @param containerName + * container for which the update has been raised + * @param previousFlow + * previous value of the container flow + * {@link org.opendaylight.controller.sal.core.ContainerFlow} + * under update, differs from the currentFlow only and only if + * it's an update operation + * @param currentFlow + * current version of the container flow + * {@link org.opendaylight.controller.sal.core.ContainerFlow} + * differs from the previousFlow only in case of update + * @param t + * type of update + * {@link org.opendaylight.controller.sal.core.UpdateType} */ public void containerFlowUpdated(String containerName, ContainerFlow previousFlow, ContainerFlow currentFlow, UpdateType t); /** - * Notification raised when a NodeConnector is added or removed in - * the container. + * Notification raised when a NodeConnector is added or removed in the + * container. * - * @param containerName container for which the update has been raised - * @param p NodeConnector being updated - * @param t type of modification, but among the types the modify - * operation is not expected to be raised because the - * nodeConnectors are anyway immutable so this is only used to - * add/delete + * @param containerName + * container for which the update has been raised + * @param p + * NodeConnector + * {@link org.opendaylight.controller.sal.core.NodeConnector} + * being updated + * @param t + * type of modification + * {@link org.opendaylight.controller.sal.core.UpdateType}, but + * among the types the modify operation is not expected to be + * raised because the nodeConnectors are anyway immutable so this + * is only used to add/delete */ public void nodeConnectorUpdated(String containerName, NodeConnector p, UpdateType t); /** - * Notification raised when the container mode has changed - * This notification is needed for some bundle in the default container - * to cleanup some HW state when switching from non-slicing to - * slicing case and vice-versa + * Notification raised when the container mode has changed This notification + * is needed for some bundle in the default container to cleanup some HW + * state when switching from non-slicing to slicing case and vice-versa * - * @param t ADDED when first container is created, REMOVED when last container is removed + * @param t + * type of modification + * {@link org.opendaylight.controller.sal.core.UpdateType}. ADDED + * when first container is created, REMOVED when last container + * is removed */ public void containerModeUpdated(UpdateType t); } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java index 5157788ce7..dacec15d79 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java @@ -12,16 +12,23 @@ import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.utils.Status; /** - * @file IPluginOutFlowProgrammer.java - * - * @brief Flow programmer interface to be implemented by protocol plugins + * This interface defines the flow programmer methods to be implemented by + * protocol plugins */ public interface IPluginInFlowProgrammerService { /** * Synchronously add a flow to the network node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got added * @param flow + * the flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * that got added + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status addFlow(Node node, Flow flow); @@ -29,7 +36,15 @@ public interface IPluginInFlowProgrammerService { * Synchronously modify existing flow on the switch * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got modified * @param flow + * the flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * that got modified + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status modifyFlow(Node node, Flow oldFlow, Flow newFlow); @@ -37,7 +52,15 @@ public interface IPluginInFlowProgrammerService { * Synchronously remove the flow from the network node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got removed * @param flow + * the flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * that got removed + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status removeFlow(Node node, Flow flow); @@ -45,8 +68,17 @@ public interface IPluginInFlowProgrammerService { * Asynchronously add a flow to the network node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got added * @param flow + * the flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * that got added * @param rid + * the request id + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status addFlowAsync(Node node, Flow flow, long rid); @@ -54,8 +86,19 @@ public interface IPluginInFlowProgrammerService { * Asynchronously modify existing flow on the switch * * @param node - * @param flow + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got modified + * @param oldFlow + * the original flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * @param newFlow + * the new flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} * @param rid + * the request id + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status modifyFlowAsync(Node node, Flow oldFlow, Flow newFlow, long rid); @@ -63,8 +106,17 @@ public interface IPluginInFlowProgrammerService { * Asynchronously remove the flow from the network node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got removed * @param flow + * the flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * that got removed * @param rid + * the request id + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status removeFlowAsync(Node node, Flow flow, long rid); @@ -72,6 +124,11 @@ public interface IPluginInFlowProgrammerService { * Remove all flows present on the network node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} on which the + * flow got removed + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status removeAllFlows(Node node); @@ -80,6 +137,10 @@ public interface IPluginInFlowProgrammerService { * Barrier reply arrives. * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status syncSendBarrierMessage(Node node); @@ -87,6 +148,10 @@ public interface IPluginInFlowProgrammerService { * Send Barrier message asynchronously. The caller is not blocked. * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return Status the operation status + * {@link org.opendaylight.controller.sal.utils.Status} */ Status asyncSendBarrierMessage(Node node); } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java index 1b950d7cf5..e9efd382da 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java @@ -17,70 +17,119 @@ import org.opendaylight.controller.sal.core.NodeTable; import org.opendaylight.controller.sal.flowprogrammer.Flow; /** - * @file IPluginInReadService.java - * - * @brief Hardware view interface to be implemented by protocol plugins - * - * - * + * The interface defines hardware view read methods to be implemented by protocol plugins */ public interface IPluginInReadService { /** - * Returns the hardware image for the specified flow on the specified network node + * Returns the hardware image for the specified flow on the specified + * network node + * * @param node + * the network node * @param flow - * @return + * the target flow + * @param cached + * specify if entry has to be queried from the cached hardware + * information maintained locally or directly from the network + * node. + * @return The FlowOnNode object containing the information present in + * hardware for the passed flow on the specified network node */ public FlowOnNode readFlow(Node node, Flow flow, boolean cached); /** - * Returns the hardware view of all the flow installed on the specified network node + * Returns the hardware view of all the flow installed on the specified + * network node + * * @param node - * @return + * the network node + * @param cached + * specify if entries have to be queried from the cached hardware + * information maintained locally or directly from the network + * node. + * @return The list of FlowOnNode objects containing the information present + * in hardware on the specified network node for all its flows */ public List readAllFlow(Node node, boolean cached); /** - * Returns the description of the network node as provided by the node itself + * Returns the description of the network node as provided by the node + * itself + * * @param node - * @return + * the network node + * @param cached + * specify if entry has to be queried from the cached hardware + * information maintained locally or directly from the network + * node. + * @return The NodeDescription object containing the description information + * for the specified network node */ public NodeDescription readDescription(Node node, boolean cached); /** * Returns the hardware view of the specified network node connector - * @param node - * @return + * + * @param connector + * the target nodeConnector + * @param cached + * specify if entry has to be queried from the cached hardware + * information maintained locally or directly from the + * corresponding network node. + * @return The NodeConnectorStatistics object containing the statistics + * present in hardware for the corresponding network node port */ public NodeConnectorStatistics readNodeConnector(NodeConnector connector, boolean cached); /** - * Returns the hardware info for all the node connectors on the specified network node + * Returns the hardware info for all the node connectors on the specified + * network node + * * @param node - * @return + * the target node + * @param cached + * specify if entries have to be queried from the cached hardware + * information maintained locally or directly from the + * corresponding network node. + * @return The list of NodeConnectorStatistics objects containing the + * statistics present in hardware for all the network node ports */ public List readAllNodeConnector(Node node, boolean cached); /** * Returns the table statistics for the node - * @param node - * @return + * @param table + * the target network node table + * @param cached + * specify if entry has to be queried from the cached hardware + * information maintained locally or directly from + * the corresponding network node. + * @return The NodeTableStatistics object containing the statistics present + * in hardware for the corresponding network node table */ public NodeTableStatistics readNodeTable(NodeTable table, boolean cached); /** * Returns all the table statistics for the node + * * @param node - * @return + * the target node + * @param cached + * specify if entries have to be queried from the cached hardware + * information maintained locally or directly from the + * corresponding network node. + * @return The list of NodeTableStatistics objects containing the statistics + * present in hardware for all the network node tables */ public List readAllNodeTable(Node node, boolean cached); /** * Returns the averaged transmit rate for the specified node connector * @param connector + * the target nodeConnector * @return tx rate [bps] */ public long getTransmitRate(NodeConnector connector); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java index 3c1b6f241a..f6e92ad1a9 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java @@ -14,36 +14,60 @@ import java.util.List; import org.opendaylight.controller.sal.core.Node; /** - * @file IPluginOutReadService.java - * - * @brief Hardware statistics updates service to be offered by protocol plugins + * The interface defines hardware statistics updates service to be offered by + * protocol plugins */ public interface IPluginOutReadService { /** - * Notifies the hardware view of all the flow installed on the specified network node + * Notifies the hardware view of all the flow installed on the specified + * network node + * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @param flowStatsList + * the hardware view of all the flow + * {@link org.opendaylight.controller.sal.reader.FlowOnNode} + * installed on the specified network node */ public void nodeFlowStatisticsUpdated(Node node, List flowStatsList); /** - * Notifies the hardware view of the specified network node connector + * Notifies the hardware view of the specified network node + * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @param ncStatsList + * the statistics + * {@link org.opendaylight.controller.sal.reader.NodeConnectorStatistics} + * for all node connectors in a given node */ public void nodeConnectorStatisticsUpdated(Node node, List ncStatsList); /** * Notifies all the table statistics for a node + * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @param tableStatsList + * the statistics + * {@link org.opendaylight.controller.sal.reader.NodeTableStatistics} + * for all the tables in a given node */ public void nodeTableStatisticsUpdated(Node node, List tableStatsList); + /** * Notifies the hardware view of node description changes + * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @param nodeDescription + * the node description + * {@link org.opendaylight.controller.sal.reader.NodeDescription} */ public void descriptionStatisticsUpdated(Node node, NodeDescription nodeDescription ); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java index ae975f1a58..c3af91dd34 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java @@ -17,17 +17,23 @@ import org.opendaylight.controller.sal.core.NodeTable; import org.opendaylight.controller.sal.flowprogrammer.Flow; /** - * Interface for retrieving the network node's flow/port/queue hardware view - * - * - * + * This interface defines methods for retrieving the network node's + * flow/port/queue hardware view */ public interface IReadService { /** - * Get the hardware view for the specified flow on the specified network node + * Get the hardware view for the specified flow on the specified network + * node * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} * @param flow + * the given flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * @return the flow + * {@link org.opendaylight.controller.sal.reader.FlowOnNode} + * installed on the node */ FlowOnNode readFlow(Node node, Flow flow); @@ -37,7 +43,14 @@ public interface IReadService { * Caller will be blocked until node replies or request times out * * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} * @param flow + * the given flow + * {@link org.opendaylight.controller.sal.flowprogrammer.Flow} + * @return the flow + * {@link org.opendaylight.controller.sal.reader.FlowOnNode} + * installed on the node */ FlowOnNode nonCachedReadFlow(Node node, Flow flow); @@ -45,7 +58,11 @@ public interface IReadService { * Get the hardware view for all the flows installed on the network node * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return all the flows + * {@link org.opendaylight.controller.sal.reader.FlowOnNode} + * installed on the node */ List readAllFlows(Node node); @@ -55,14 +72,22 @@ public interface IReadService { * Caller will be blocked until node replies or request times out * * @param node - * @param flow + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the hardware view of all the flows + * {@link org.opendaylight.controller.sal.reader.FlowOnNode} + * installed on the node */ List nonCachedReadAllFlows(Node node); /** * Get the description information for the network node + * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the node description + * {@link org.opendaylight.controller.sal.reader.NodeDescription} */ NodeDescription readDescription(Node node); @@ -72,33 +97,57 @@ public interface IReadService { * Caller will be blocked until node replies or request times out * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the node description + * {@link org.opendaylight.controller.sal.reader.NodeDescription} */ NodeDescription nonCachedReadDescription(Node node); /** * Get the hardware view for the specified node connector + * * @param connector + * the given node connector + * {@link org.opendaylight.controller.sal.core.NodeConnector} + * @return the node connector statistics + * {@link org.opendaylight.controller.sal.reader.NodeConnectorStatistics} */ NodeConnectorStatistics readNodeConnector(NodeConnector connector); /** * Get the hardware view for all the node connectors * present on the specified network node - * @param connector + * + * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the statistics for all the node connectors + * {@link org.opendaylight.controller.sal.reader.NodeConnectorStatistics} */ List readNodeConnectors(Node node); /** * Read the Table statistics for the given node table + * * @param table + * the table + * {@link org.opendaylight.controller.sal.core.NodeTable} + * @return the table statistics + * {@link org.opendaylight.controller.sal.reader.NodeTableStatistics} */ NodeTableStatistics readNodeTable(NodeTable table); /** - * Read the Table statistics for the given node - * This is not used. Querying all tables on a node is not currently a feature. - * @param table + * Read the Table statistics for the given node This is not used. Querying + * all tables on a node is not currently a feature. + * + * @param node + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the table statistics + * {@link org.opendaylight.controller.sal.reader.NodeTableStatistics} + * for all tables in a given node */ List readNodeTable(Node node); @@ -108,6 +157,10 @@ public interface IReadService { * Caller will be blocked until the node replies or request times out * * @param table + * the table + * {@link org.opendaylight.controller.sal.core.NodeTable} + * @return the table statistics + * {@link org.opendaylight.controller.sal.reader.NodeTableStatistics} */ NodeTableStatistics nonCachedReadNodeTable(NodeTable table); @@ -117,15 +170,22 @@ public interface IReadService { * Caller will be blocked until node replies or request times out * * @param node - * @return + * the network node + * {@link org.opendaylight.controller.sal.core.Node} + * @return the statistics + * {@link org.opendaylight.controller.sal.reader.NodeConnectorStatistics} + * for all node connectors in a given node */ List nonCachedReadNodeConnectors(Node node); /** * Get the node connectors statistics information for the network node * - * @param node - * @return + * @param connector + * the given node connector + * {@link org.opendaylight.controller.sal.core.NodeConnector} + * @return the node connector statistics + * {@link org.opendaylight.controller.sal.reader.NodeConnectorStatistics} */ NodeConnectorStatistics nonCachedReadNodeConnector(NodeConnector connector); @@ -133,6 +193,8 @@ public interface IReadService { * Get the transmit rate for the specified node connector * * @param connector + * the given node connector + * {@link org.opendaylight.controller.sal.core.NodeConnector} * @return tx rate [bps] */ long getTransmitRate(NodeConnector connector); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java index 2cf237bc89..28d0905bae 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java @@ -1,10 +1,8 @@ package org.opendaylight.controller.sal.reader; - /** - * @file IReadServiceListener.java - * - * @brief SAL service to be consumed by functional modules that are interested in reader updates + * The interface describes SAL service to be consumed by functional modules that + * are interested in reader updates */ public interface IReadServiceListener extends IPluginOutReadService { diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java index 80950e66a5..d06dce6576 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java @@ -17,32 +17,48 @@ import org.opendaylight.controller.sal.core.Path; /** * This interface provides APIs to manage and query the routing information - * + * */ public interface IRouting { /** * Returns a Path leading from the source to the destination - * @param src: source Node - * @param dst: destination Node - * @return: Path + * + * @param src + * source {@link org.opendaylight.controller.sal.core.Node} + * + * @param dst + * destination + * {@link org.opendaylight.controller.sal.core.Node} + * @return: the {@link org.opendaylight.controller.sal.core.Path} */ public Path getRoute(Node src, Node dst); /** * Returns a Max ThroughPut Path leading from the source to the destination - * @param src: source Node - * @param dst: destination Node - * @return: MTPath + * + * @param src + * source {@link org.opendaylight.controller.sal.core.Node} + * + * @param dst + * destination + * {@link org.opendaylight.controller.sal.core.Node} + * @return: the max throughput {@link org.opendaylight.controller.sal.core.Path} */ public Path getMaxThroughputRoute(Node src, Node dst); /** - * Returns a Path leading from the source to the destination that meets the specified bandwidth - * @param src: source Node - * @param dst: destination Node - * @param Bw: bandwidth - * @return: Path + * Returns a Path leading from the source to the destination that meets the + * specified bandwidth + * + * @param src + * source {@link org.opendaylight.controller.sal.core.Node} + * + * @param dst + * destination {@link org.opendaylight.controller.sal.core.Node} + * @param Bw + * the bandwidth + * @return: the {@link org.opendaylight.controller.sal.core.Path} */ public Path getRoute(Node src, Node dst, Short Bw); @@ -58,9 +74,12 @@ public interface IRouting { /** * Initialization For Max Throughput - * @param EdgeWeightMap: Map containing Edge and Corresponding - * Weight. Optional Param - if null, implementation specific weight - * calculation will be used. + * + * @param EdgeWeightMap + * Map containing + * {@link org.opendaylight.controller.sal.core.Edge} and + * Corresponding Weight. Optional Param - if null, implementation + * specific weight calculation will be used. */ public void initMaxThroughput(Map EdgeWeightMap); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java index 11cdc99013..6850cc6373 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java @@ -13,19 +13,11 @@ import java.util.List; import org.opendaylight.controller.sal.core.Edge; /** - * @file IListenTopoUpdates.java - * - * @brief Topology notifications provided by SAL toward the application - * - * For example an application that wants to keep up to date with the - * updates coming from SAL it will register in the OSGi service - * registry this interface (on a per-container base) and SAL will call it - * providing the update - */ - -/** - * Topology notifications provided by SAL toward the application - * + * This interface defines the methods for topology notifications provided by SAL + * toward the application. For example an application that wants to keep up to + * date with the updates coming from SAL it will register in the OSGi service + * registry. This interface (on a per-container base) and SAL will call it + * providing the update. */ public interface IListenTopoUpdates { /** @@ -51,6 +43,7 @@ public interface IListenTopoUpdates { * threshold level configured on the controller * * @param edge + * The edge which bandwidth usage is back to normal */ public void edgeUtilBackToNormal(Edge edge); } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java index 6667628b0d..32851e86f6 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java @@ -9,25 +9,13 @@ package org.opendaylight.controller.sal.topology; import java.util.List; -import java.util.Set; - import org.opendaylight.controller.sal.core.Edge; -import org.opendaylight.controller.sal.core.Property; -import org.opendaylight.controller.sal.core.UpdateType; - -/** - * @file IPluginOutTopologyService.java - * - * @brief Methods that are invoked from Protocol Plugin toward SAL - * - * Every time a protocol plugin update the topology, it will call this - * service provided by SAL so the update can migrate upward toward the - * applications - */ /** - * Methods that are invoked from Protocol Plugin toward SAL - * + * This interface defines the methods that are invoked from Protocol Plugin + * toward SAL. Every time a protocol plugin update the topology, it will call + * this service provided by SAL so the update can migrate upward toward the + * applications. */ public interface IPluginOutTopologyService { @@ -45,7 +33,8 @@ public interface IPluginOutTopologyService { * on the controller * * @param edge - */ + * The edge which bandwidth usage is above the safety level + */ public void edgeOverUtilized(Edge edge); /** @@ -53,6 +42,7 @@ public interface IPluginOutTopologyService { * threshold level configured on the controller * * @param edge + * The edge which bandwidth usage is back to normal */ public void edgeUtilBackToNormal(Edge edge); } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java index 2e0009cd47..2488c754b8 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java @@ -9,6 +9,10 @@ package org.opendaylight.controller.sal.utils; +/** + * This interface defines the methods for configuration object + * + */ public interface ConfigurationObject { } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java index 4196025088..406614d164 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java @@ -33,6 +33,11 @@ package org.opendaylight.controller.sal.utils; +/** + * This interface defines the methods for callback ordering + * + */ + public interface IListener { public enum Command { CONTINUE, STOP @@ -41,7 +46,7 @@ public interface IListener { /** * The name assigned to this listener * - * @return + * @return the name string */ public String getName(); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java index 317976dc3e..fd51a787aa 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java @@ -13,9 +13,7 @@ import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.NodeConnector; /** - * @file INodeFactory.java - * - * @brief Define the interface to be called when looking up custom node types + * This interface defines the methods to be called when looking up custom node types * */ @@ -23,6 +21,15 @@ public interface INodeConnectorFactory { /** * Method to get custom NodeConnector types from protocol plugins * + * @param typeStr + * {@Link + * org.opendaylight.controller.sal.core.NodeConnector} type + * string + * @param IDStr + * {@Link + * org.opendaylight.controller.sal.core.NodeConnector} ID string + * @return the custom {@Link + * org.opendaylight.controller.sal.core.NodeConnector} */ public NodeConnector fromStringNoNode(String typeStr, String IDStr, Node n); diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java index dce6eb03f6..1ccd04beda 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java @@ -12,9 +12,7 @@ package org.opendaylight.controller.sal.utils; import org.opendaylight.controller.sal.core.Node; /** - * @file INodeFactory.java - * - * @brief Define the interface to be called when looking up custom node types + * This interface defines the methods to be called when looking up custom node types * */ @@ -22,6 +20,14 @@ public interface INodeFactory { /** * Method to get custom node types from protocol plugins * + * @param nodeType + * {@Link org.opendaylight.controller.sal.core.Node} type + * string + * @param nodeId + * {@Link org.opendaylight.controller.sal.core.Node} ID + * string + * @return the custom {@Link + * org.opendaylight.controller.sal.core.Node} */ public Node fromString(String nodeType, String nodeId); } diff --git a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java index 685738c7e7..ff63cf7578 100644 --- a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java +++ b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java @@ -27,11 +27,10 @@ public interface IConnectionService { * plugins and is an opaque value for SAL. Typical values keyed inside this params are * Management IP-Address, Username, Password, Security Keys, etc... * - * @return Node + * @return Node {@link org.opendaylight.controller.sal.core.Node} */ public Node connect (String type, String connectionIdentifier, Map params); - /** * Discover the node type and Connect to the first plugin that is able to connect with the specified parameters. * @@ -41,7 +40,7 @@ public interface IConnectionService { * plugins and is an opaque value for SAL. Typical values keyed inside this params are * Management IP-Address, Username, Password, Security Keys, etc... * - * @return Node + * @return Node {@link org.opendaylight.controller.sal.core.Node} */ public Node connect (String connectionIdentifier, Map params); @@ -49,12 +48,16 @@ public interface IConnectionService { * Disconnect a Node that is connected to this Controller. * * @param node - * @param flow + * the node {@link org.opendaylight.controller.sal.core.Node} + * @return Status {@link org.opendaylight.controller.sal.utils.Status} */ public Status disconnect(Node node); /** * View Change notification + * + * @param node + * the node {@link org.opendaylight.controller.sal.core.Node} */ public void notifyNodeDisconnectFromMaster(Node node); diff --git a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java index 9bae1238b5..f4e16fac54 100644 --- a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java +++ b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java @@ -14,16 +14,14 @@ import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.utils.Status; /** - * @file IPluginInConnectionService.java - * - * @brief Connection interface to be implemented by protocol plugins + * The interface describes methods to be implemented by protocol plugins */ public interface IPluginInConnectionService { /** * Disconnect a Node that is connected to this Controller. * * @param node - * @param flow + * the given node {@link org.opendaylight.controller.sal.core.Node} */ public Status disconnect(Node node); @@ -46,6 +44,9 @@ public interface IPluginInConnectionService { /** * Node Disconnected from the node's master controller. + * + * @param node + * the given node {@link org.opendaylight.controller.sal.core.Node} */ public void notifyNodeDisconnectFromMaster(Node node); diff --git a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java index b602d61952..456acf0166 100644 --- a/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java +++ b/opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java @@ -10,10 +10,15 @@ package org.opendaylight.controller.sal.connection; import org.opendaylight.controller.sal.core.Node; +/** + * The interface describes methods to be implemented by SAL connection service + */ public interface IPluginOutConnectionService { /** * Method to test if a node is local to a controller. * + * @param node + * the given node {@link org.opendaylight.controller.sal.core.Node} * @return true if node is local to this controller. false otherwise. */ public boolean isLocal(Node node); diff --git a/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java b/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java index 04dd59ef3a..432d82354f 100644 --- a/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java +++ b/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java @@ -1,4 +1,7 @@ package org.opendaylight.controller.sal.networkconfig.bridgedomain; +/** + * This interface is just a wrapper of IPluginInBridgeDomainConfigService + */ public interface IBridgeDomainConfigService extends IPluginInBridgeDomainConfigService { } \ No newline at end of file diff --git a/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java b/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java index 20562b80e7..cdb14b7347 100644 --- a/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java +++ b/opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java @@ -8,8 +8,8 @@ import org.opendaylight.controller.sal.core.NodeConnector; import org.opendaylight.controller.sal.utils.Status; /** - * @file IPluginInConfigurationService.java - * + * This interface defines bridge domain configuration service methods to be + * implemented by protocol plugins */ public interface IPluginInBridgeDomainConfigService { /** -- 2.36.6