diff --git a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LinkDiscovery.java b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LinkDiscovery.java
index 7dc9aed..4b962ae 100644
--- a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LinkDiscovery.java
+++ b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LinkDiscovery.java
@@ -155,7 +155,7 @@
      * @param packetContext packet context
      * @return true if handled
      */
-    boolean handleLLDP(PacketContext packetContext) {
+    boolean handleLldp(PacketContext packetContext) {
         Ethernet eth = packetContext.inPacket().parsed();
         if (eth == null) {
             return false;
@@ -216,7 +216,7 @@
      * @param port the port
      * @return Packet_out message with LLDP data
      */
-    private OutboundPacket createOutBoundLLDP(Long port) {
+    private OutboundPacket createOutBoundLldp(Long port) {
         if (port == null) {
             return null;
         }
@@ -233,7 +233,7 @@
      * @param port the port
      * @return Packet_out message with LLDP data
      */
-    private OutboundPacket createOutBoundBDDP(Long port) {
+    private OutboundPacket createOutBoundBddp(Long port) {
         if (port == null) {
             return null;
         }
@@ -246,10 +246,10 @@
 
     private void sendProbes(Long portNumber) {
         log.trace("Sending probes out to {}@{}", portNumber, device.id());
-        OutboundPacket pkt = createOutBoundLLDP(portNumber);
+        OutboundPacket pkt = createOutBoundLldp(portNumber);
         context.packetService().emit(pkt);
-        if (context.useBDDP()) {
-            OutboundPacket bpkt = createOutBoundBDDP(portNumber);
+        if (context.useBddp()) {
+            OutboundPacket bpkt = createOutBoundBddp(portNumber);
             context.packetService().emit(bpkt);
         }
     }
