diff --git a/pom.xml b/pom.xml
index 10b71ab..8ce4f7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,7 @@
         <onos.app.readme>Integration with Kafka event bus</onos.app.readme>
         <aaa.api.version>2.1.0</aaa.api.version>
         <olt.api.version>4.2.0-SNAPSHOT</olt.api.version>
-        <dhcpl2relay.api.version>2.1.0</dhcpl2relay.api.version>
+        <dhcpl2relay.api.version>2.2.0-SNAPSHOT</dhcpl2relay.api.version>
         <bng.api.version>1.0.0</bng.api.version>
         <sadis.api.version>5.1.0</sadis.api.version>
         <igmp.api.version>2.1.1</igmp.api.version>
diff --git a/src/test/java/org/opencord/kafka/integrations/DhcpL2RelayKafkaIntegrationTest.java b/src/test/java/org/opencord/kafka/integrations/DhcpL2RelayKafkaIntegrationTest.java
index fe45d40..3a4ed77 100644
--- a/src/test/java/org/opencord/kafka/integrations/DhcpL2RelayKafkaIntegrationTest.java
+++ b/src/test/java/org/opencord/kafka/integrations/DhcpL2RelayKafkaIntegrationTest.java
@@ -68,7 +68,7 @@
         DhcpAllocationInfo allocationInfo = new DhcpAllocationInfo(
                 OLT_CONNECT_POINT,
                 DHCP.MsgType.DHCPREQUEST, ONU_SERIAL, OLT_MAC,
-                LOCAL_IP);
+                LOCAL_IP, SUBSCRIBER_ID);
         DhcpL2RelayEvent event = new DhcpL2RelayEvent(DhcpL2RelayEvent.Type.STATS_UPDATE,
                 allocationInfo, OLT_CONNECT_POINT, entryCounter, null);
         dhcpL2RelayListener.event(event);
@@ -86,7 +86,7 @@
         DhcpAllocationInfo allocationInfo = new DhcpAllocationInfo(
                 OLT_CONNECT_POINT,
                 DHCP.MsgType.DHCPREQUEST, ONU_SERIAL, OLT_MAC,
-                LOCAL_IP);
+                LOCAL_IP, SUBSCRIBER_ID);
         DhcpL2RelayEvent event = new DhcpL2RelayEvent(DhcpL2RelayEvent.Type.STATS_UPDATE,
                 allocationInfo, OLT_CONNECT_POINT, entryCounter, ONU_SERIAL);
         dhcpL2RelayListener.event(event);
@@ -104,7 +104,7 @@
         DhcpAllocationInfo allocationInfo = new DhcpAllocationInfo(
                 new ConnectPoint(DEVICE_ID_1, PORT.number()),
                 DHCP.MsgType.DHCPREQUEST, ONU_SERIAL, OLT_MAC,
-                LOCAL_IP);
+                LOCAL_IP, SUBSCRIBER_ID);
         DhcpL2RelayEvent event = new DhcpL2RelayEvent(DhcpL2RelayEvent.Type.UPDATED,
                 allocationInfo, cp, entryCounter, null);
         dhcpL2RelayListener.event(event);
@@ -161,7 +161,7 @@
         }
 
         @Override
-        public boolean removeAllocationByConnectPoint(ConnectPoint connectPoint) {
+        public boolean removeAllocationsByConnectPoint(ConnectPoint connectPoint) {
             return false;
         }
     }
diff --git a/src/test/java/org/opencord/kafka/integrations/KafkaIntegrationTestBase.java b/src/test/java/org/opencord/kafka/integrations/KafkaIntegrationTestBase.java
index 81fe499..5d68892 100644
--- a/src/test/java/org/opencord/kafka/integrations/KafkaIntegrationTestBase.java
+++ b/src/test/java/org/opencord/kafka/integrations/KafkaIntegrationTestBase.java
@@ -64,6 +64,7 @@
     protected static final Short SESSION_ID = 2;
     protected static final ConnectPoint OLT_CONNECT_POINT = new ConnectPoint(MockDeviceService.DEVICE_ID_1,
             PORT_NUMBER);
+    protected static final String SUBSCRIBER_ID = ONU_SERIAL + "-1";
 
     protected AuthenticationEvent getAuthenticationEvent() {
         return new AuthenticationEvent(AuthenticationEvent.Type.APPROVED,
