diff --git a/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/LsdbAge.java b/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/LsdbAge.java
index 35eda52..120bcd5 100644
--- a/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/LsdbAge.java
+++ b/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/LsdbAge.java
@@ -34,7 +34,7 @@
     /**
      * Gets LSA from bin, this method is used while processing ls refresh and max age on LSA.
      *
-     * @param binKey key to retreive the LSA from bin
+     * @param binKey key to retrieve the LSA from bin
      * @return lsaBin bin instance
      */
     public LsaBin getLsaBin(Integer binKey);
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
index 5f42e89..b598d86 100644
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
@@ -273,7 +273,7 @@
         ChecksumCalculator checksum = new ChecksumCalculator();
         byte[] lsaBytes = routerLsa.asBytes();
         routerLsa.setLsPacketLen(lsaBytes.length);
-        //Convert lsa object to byte again to reflect the packet length whic we added.
+        //Convert lsa object to byte again to reflect the packet length which we added.
         lsaBytes = routerLsa.asBytes();
         //find the checksum
         byte[] twoByteChecksum = checksum.calculateLsaChecksum(lsaBytes,
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
index 2786f44..68ff4fc 100644
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
@@ -1051,7 +1051,7 @@
     public boolean processReceivedLsa(LsaHeader recLsa,
                                       boolean receivedViaFlooding, Channel ch, Ip4Address sourceIp)
             throws Exception {
-        log.debug("OSPFNbr::processReceivedLsa(recLsa, recievedViaFlooding, ch)...!!!");
+        log.debug("OSPFNbr::processReceivedLsa(recLsa, receivedViaFlooding, ch)...!!!");
 
         //Validate the lsa checksum RFC 2328 13 (1)
         ChecksumCalculator checkSum = new ChecksumCalculator();
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImpl.java
index b187ab5..1aae861 100644
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImpl.java
@@ -234,7 +234,7 @@
     /**
      * Gets OSPF Link TED details from the map.
      *
-     * @param key key used to retreive from map
+     * @param key key used to retrieve from map
      * @return OSPF link ted instance
      */
     public OspfLinkTed getOspfLinkTedHashMap(String key) {
