diff --git a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordService.java b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordService.java
index 0d09bb3..f877630 100644
--- a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordService.java
+++ b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordService.java
@@ -53,6 +53,7 @@
      * Default constructor.
      *
      * @param vNet OpenStack network
+     * @param subnet OpenStack subnet
      * @param hosts host and tunnel ip map
      * @param tenantServices list of tenant service ids
      */
diff --git a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnRuleInstaller.java b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnRuleInstaller.java
index d9b29bd..ad9dee8 100644
--- a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnRuleInstaller.java
+++ b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnRuleInstaller.java
@@ -125,6 +125,8 @@
      * @param flowRuleService flow rule service
      * @param deviceService device service
      * @param driverService driver service
+     * @param groupService group service
+     * @param mastershipService mastership service
      * @param tunnelType tunnel type
      */
     public CordVtnRuleInstaller(ApplicationId appId,
diff --git a/apps/cpman/src/main/java/org/onosproject/cpman/ControlPlaneMonitorService.java b/apps/cpman/src/main/java/org/onosproject/cpman/ControlPlaneMonitorService.java
index db00278..24f7717 100644
--- a/apps/cpman/src/main/java/org/onosproject/cpman/ControlPlaneMonitorService.java
+++ b/apps/cpman/src/main/java/org/onosproject/cpman/ControlPlaneMonitorService.java
@@ -31,6 +31,7 @@
      *
      * @param controlMetric  control plane metric (e.g., control message rate, cpu, memory, etc.)
      * @param updateInterval value update interval (time unit will be in minute)
+     * @param deviceId       {@link org.onosproject.net.DeviceId}
      */
     void updateMetric(ControlMetric controlMetric, int updateInterval, Optional<DeviceId> deviceId);
 
diff --git a/apps/cpman/src/main/java/org/onosproject/cpman/MetricsAggregator.java b/apps/cpman/src/main/java/org/onosproject/cpman/MetricsAggregator.java
index 2367629..abd5b1c 100644
--- a/apps/cpman/src/main/java/org/onosproject/cpman/MetricsAggregator.java
+++ b/apps/cpman/src/main/java/org/onosproject/cpman/MetricsAggregator.java
@@ -45,8 +45,9 @@
      * Instantiates the metrics service
      * Initializes all the general metrics for that object
      *
-     * @param type      Control metric type
-     * @param deviceId  DeviceId
+     * @param metricsService MetricsService reference
+     * @param type           Control metric type
+     * @param deviceId       DeviceId
      */
     MetricsAggregator(MetricsService metricsService, ControlMetricType type, Optional<DeviceId> deviceId) {
         String primitiveName = type.toString();
diff --git a/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java b/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
index cdfadf7..d7c7bd4 100644
--- a/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
+++ b/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
@@ -116,10 +116,10 @@
     Iterable<Ip4Address> getAvailableIPs();
 
     /**
+     * Returns IpAssignment from map.
      *
-     *
-     * @param hostId
-     * @return
+     * @param hostId host identification
+     * @return IpAssignment
      */
     IpAssignment getIpAssignmentFromAllocationMap(HostId hostId);
 }
diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/DefaultIpLink.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/DefaultIpLink.java
index 41f0604..4767074 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/DefaultIpLink.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/DefaultIpLink.java
@@ -36,6 +36,7 @@
     /**
      * Constructor to initialize its parameters.
      *
+     * @param providerId     provider identification
      * @param src            link source termination point
      * @param dst            link destination termination point
      * @param linkIdentifier provides link identifier details
diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDeviceIdentifier.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDeviceIdentifier.java
index 472fe00..7be13ad 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDeviceIdentifier.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDeviceIdentifier.java
@@ -34,6 +34,7 @@
     /**
      * Constructor to initialize parameters.
      *
+     * @param routeDish routing distinguisher instance
      * @param routeInstance routing protocol instance
      * @param asNum AS number
      * @param domainIdentifier BGP-LS domain
diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/RouterId.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/RouterId.java
index 85714cb..3c77e9a 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/RouterId.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/RouterId.java
@@ -29,7 +29,8 @@
     /**
      * Constructor to initialize its parameters.
      *
-     * @param routerId Router ID of designated router
+     * @param routerId  Router ID of designated router
+     * @param type      protocol type
      */
     public RouterId(int routerId, ProtocolType type) {
         this.routerId = routerId;
diff --git a/apps/olt/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java b/apps/olt/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
index dee5f5a..1cfc62b 100644
--- a/apps/olt/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
+++ b/apps/olt/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
@@ -43,6 +43,7 @@
      * @param deviceId access device ID
      * @param uplink uplink port number
      * @param vlan device VLAN ID
+     * @param defaultVlan default device VLAN ID
      */
     public AccessDeviceData(DeviceId deviceId, PortNumber uplink, VlanId vlan,
                             Optional<VlanId> defaultVlan) {
diff --git a/apps/olt/app/src/main/java/org/onosproject/olt/rest/OltWebResource.java b/apps/olt/app/src/main/java/org/onosproject/olt/rest/OltWebResource.java
index 8479c19..e3dafec 100644
--- a/apps/olt/app/src/main/java/org/onosproject/olt/rest/OltWebResource.java
+++ b/apps/olt/app/src/main/java/org/onosproject/olt/rest/OltWebResource.java
@@ -40,6 +40,9 @@
     /**
      * Provision a subscriber.
      *
+     * @param device device id
+     * @param port port number
+     * @param vlan vlan id
      * @return 200 OK
      */
     @POST
@@ -60,6 +63,10 @@
 
     /**
      * Remove the provisioning for a subscriber.
+     *
+     * @param device device id
+     * @param port port number
+     * @return 200 OK
      */
     @DELETE
     @Produces(MediaType.APPLICATION_JSON)
diff --git a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingService.java b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingService.java
index 1ed4f6f..8960dcd 100644
--- a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingService.java
+++ b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingService.java
@@ -34,13 +34,14 @@
     /**
      * Removes flow rules corresponding to the port removed by Openstack.
      *
+     * @param uuid UUID
      */
     void deletePort(String uuid);
 
     /**
      * Updates flow rules corresponding to the port information updated by Openstack.
      *
-     * @param openstackPort
+     * @param openstackPort OpenStack port
      */
     void updatePort(OpenstackPort openstackPort);
 
diff --git a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingRulePopulator.java b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingRulePopulator.java
index 014eeb8..92c2742 100644
--- a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingRulePopulator.java
+++ b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackSwitchingRulePopulator.java
@@ -72,6 +72,7 @@
      * @param appId application id
      * @param flowObjectiveService FlowObjectiveService reference
      * @param deviceService DeviceService reference
+     * @param restHandler OpenstackRestHandler reference
      * @param driverService DriverService reference
      */
     public OpenstackSwitchingRulePopulator(ApplicationId appId,
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PIMInterface.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PIMInterface.java
index f54b7b2..c4d35fc 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PIMInterface.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PIMInterface.java
@@ -94,7 +94,8 @@
     /**
      * Set the ONOS Interface, it will override a previous value.
      *
-     * @param intf ONOS Interface.
+     * @param intf ONOS Interface
+     * @return PIM interface instance
      */
     public PIMInterface setInterface(Interface intf) {
         onosInterface = intf;
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PIMNeighbor.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PIMNeighbor.java
index a1f9eec..f44cd1b 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PIMNeighbor.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PIMNeighbor.java
@@ -57,6 +57,7 @@
      * Construct a new PIM Neighbor.
      *
      * @param ipAddr the IP Address of our new neighbor
+     * @param opts option map
      */
     public PIMNeighbor(IpAddress ipAddr, Map<Short, PIMHelloOption> opts) {
         this.ipAddr = ipAddr;
@@ -67,6 +68,7 @@
      * Construct a new PIM neighbor.
      *
      * @param ipAddr the neighbors IP addr
+     * @param macAddr MAC address
      */
     public PIMNeighbor(IpAddress ipAddr, MacAddress macAddr) {
         this.ipAddr = ipAddr;
diff --git a/core/api/src/main/java/org/onosproject/cluster/PartitionId.java b/core/api/src/main/java/org/onosproject/cluster/PartitionId.java
index 1e73d0e..f1deedb 100644
--- a/core/api/src/main/java/org/onosproject/cluster/PartitionId.java
+++ b/core/api/src/main/java/org/onosproject/cluster/PartitionId.java
@@ -40,6 +40,7 @@
      * Creates a partition identifier from an integer.
      *
      * @param id input integer
+     * @return partition identification
      */
     public static PartitionId from(int id) {
         return new PartitionId(id);
diff --git a/core/api/src/main/java/org/onosproject/net/config/NetworkConfigService.java b/core/api/src/main/java/org/onosproject/net/config/NetworkConfigService.java
index c3760c6..09d7b08 100644
--- a/core/api/src/main/java/org/onosproject/net/config/NetworkConfigService.java
+++ b/core/api/src/main/java/org/onosproject/net/config/NetworkConfigService.java
@@ -171,9 +171,10 @@
      * Clears any configuration for the specified subject and configuration
      * key. If one does not exist, this call has no effect.
      *
-     * @param subject     configuration subject
-     * @param configKey   configuration key
-     * @param <S>         type of subject
+     * @param subjectClassKey   subject class key
+     * @param subject           configuration subject
+     * @param configKey         configuration key
+     * @param <S>               type of subject
      */
     <S> void removeConfig(String subjectClassKey, S subject, String configKey);
 }
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/ExtensionCriterion.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/ExtensionCriterion.java
index 646b418..0f6cd13 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/ExtensionCriterion.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/ExtensionCriterion.java
@@ -34,6 +34,7 @@
      * Constructor.
      *
      * @param extensionSelector extension selector
+     * @param deviceId          device identification
      */
     public ExtensionCriterion(ExtensionSelector extensionSelector, DeviceId deviceId) {
         this.extensionSelector = extensionSelector;
diff --git a/core/api/src/main/java/org/onosproject/net/topology/HopCountLinkWeight.java b/core/api/src/main/java/org/onosproject/net/topology/HopCountLinkWeight.java
index c557016..30d2467 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/HopCountLinkWeight.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/HopCountLinkWeight.java
@@ -19,6 +19,8 @@
 
     /**
      * Creates a new hop-count weight with the specified cost of indirect links.
+     *
+     * @param indirectLinkCost indirect link cost
      */
     public HopCountLinkWeight(int indirectLinkCost) {
         this.indirectLinkCost = indirectLinkCost;
diff --git a/core/api/src/main/java/org/onosproject/store/service/AsyncDistributedSet.java b/core/api/src/main/java/org/onosproject/store/service/AsyncDistributedSet.java
index df63f99..251ee14 100644
--- a/core/api/src/main/java/org/onosproject/store/service/AsyncDistributedSet.java
+++ b/core/api/src/main/java/org/onosproject/store/service/AsyncDistributedSet.java
@@ -40,6 +40,7 @@
      * the set is updated.
      *
      * @param listener listener to notify about set update events
+     * @return CompletableFuture that is completed when the operation completes
      */
     CompletableFuture<Void> addListener(SetEventListener<E> listener);
 
@@ -79,6 +80,7 @@
 
     /**
      * Removes all elements from the set.
+     * @return CompletableFuture that is completed when the operation completes
      */
     CompletableFuture<Void> clear();
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/DistributedPrimitive.java b/core/api/src/main/java/org/onosproject/store/service/DistributedPrimitive.java
index 342a110..6a6c09e 100644
--- a/core/api/src/main/java/org/onosproject/store/service/DistributedPrimitive.java
+++ b/core/api/src/main/java/org/onosproject/store/service/DistributedPrimitive.java
@@ -71,6 +71,7 @@
 
     /**
      * Returns the application owning this primitive.
+     * @return application id
      */
     default ApplicationId applicationId() {
         return null;
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
index 0b793a9..b72e693 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
@@ -62,7 +62,8 @@
      * Creates an instance with the specified ResourceAdminService and ExecutorService.
      *
      * @param adminService instance invoked to register resources
-     * @param deviceService {@link DeviceService} to be used.
+     * @param deviceService {@link DeviceService} to be used
+     * @param driverService {@link DriverService} to be used
      * @param executor executor used for processing resource registration
      */
     ResourceDeviceListener(ResourceAdminService adminService, DeviceService deviceService, DriverService driverService,
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapBuilderImpl.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapBuilderImpl.java
index 7ab30ea..9109288 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapBuilderImpl.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapBuilderImpl.java
@@ -61,6 +61,7 @@
      *
      * @param clusterService cluster service
      * @param clusterCommunicator cluster communication service
+     * @param persistenceService persistence service
      */
     public EventuallyConsistentMapBuilderImpl(ClusterService clusterService,
                                               ClusterCommunicationService clusterCommunicator,
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
index f595e6a..bee4dc2 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
@@ -150,6 +150,7 @@
      * @param antiEntropyTimeUnit   time unit for anti-entropy period
      * @param convergeFaster        make anti-entropy try to converge faster
      * @param persistent            persist data to disk
+     * @param persistenceService    persistence service
      */
     EventuallyConsistentMapImpl(String mapName,
                                 ClusterService clusterService,
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceAdminService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceAdminService.java
index 32d480d..b1a08bc 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceAdminService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceAdminService.java
@@ -35,6 +35,7 @@
      *
      * @param connectPoint connect point of the interface
      * @param name name of the interface
+     * @return the result of removal
      */
     boolean remove(ConnectPoint connectPoint, String name);
 }
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpSelectionAlgo.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpSelectionAlgo.java
index d3065f4..d8f6751 100644
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpSelectionAlgo.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpSelectionAlgo.java
@@ -108,7 +108,7 @@
      *
      * @param obj1Size object1 AS count
      * @param obj2Size object2 AS count
-     * @return
+     * @return object with shortest AsPath
      */
     int compareAsPath(Integer obj1Size, Integer obj2Size) {
             return obj1Size.compareTo(obj2Size);
diff --git a/providers/bgp/cfg/src/main/java/org/onosproject/provider/bgp/cfg/impl/BgpAppConfig.java b/providers/bgp/cfg/src/main/java/org/onosproject/provider/bgp/cfg/impl/BgpAppConfig.java
index 4bd6e70..ba205bc 100644
--- a/providers/bgp/cfg/src/main/java/org/onosproject/provider/bgp/cfg/impl/BgpAppConfig.java
+++ b/providers/bgp/cfg/src/main/java/org/onosproject/provider/bgp/cfg/impl/BgpAppConfig.java
@@ -186,6 +186,7 @@
     /**
      * Validates the Bgp peer As number.
      *
+     * @param remoteAs remote As number
      * @return true if valid else false
      */
     public boolean validateRemoteAs(long remoteAs) {
@@ -218,6 +219,7 @@
     /**
      * Validates the Bgp peer holdTime.
      *
+     * @param remoteAs remote As number
      * @return true if valid else false
      */
     public boolean validatePeerHoldTime(long remoteAs) {
diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index 136f182..61b1a8e 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -213,6 +213,8 @@
 
     /**
      * Returns the UTF-8 encoded byte[] representation of a String.
+     * @param input input string
+     * @return UTF-8 encoded byte array
      */
     public static byte[] getBytesUtf8(String input) {
         return input.getBytes(Charsets.UTF_8);
@@ -220,6 +222,8 @@
 
     /**
      * Returns the String representation of UTF-8 encoded byte[].
+     * @param input input byte array
+     * @return UTF-8 encoded string
      */
     public static String toStringUtf8(byte[] input) {
         return new String(input, Charsets.UTF_8);
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
index bc3cdec..743fc25e 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
@@ -96,6 +96,7 @@
      * Returns a meter by the meter id.
      *
      * @param deviceId device identifier
+     * @param meterId meter identifier
      * @return a meter, return 404 if no entry has been found
      * @onos.rsModel Meter
      */
