diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java b/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
index 883bf2f..0de95f0 100644
--- a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
+++ b/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
@@ -119,6 +119,8 @@
 import static org.onosproject.dhcprelay.DhcpRelayManager.DHCP_SELECTORS;
 
 public class DhcpRelayManagerTest {
+    private static final short VLAN_LEN = 2;
+    private static final short SEPARATOR_LEN = 1;
     private static final String CONFIG_FILE_PATH = "dhcp-relay.json";
     private static final DeviceId DEV_1_ID = DeviceId.deviceId("of:0000000000000001");
     private static final DeviceId DEV_2_ID = DeviceId.deviceId("of:0000000000000002");
@@ -1247,10 +1249,12 @@
         interfaceId.setData(interfaceIdBytes);
         interfaceId.setLength((short) interfaceIdBytes.length);
         Dhcp6InterfaceIdOption interfaceIdOption = new Dhcp6InterfaceIdOption(interfaceId);
+        byte[] optionData = interfaceIdOption.getData();
         ByteBuffer bb = ByteBuffer.wrap(interfaceIdBytes);
 
         byte[] macAddr = new byte[MacAddress.MAC_ADDRESS_LENGTH];
-        byte[] port =  new byte[21];
+        byte[] port =  new byte[optionData.length - MacAddress.MAC_ADDRESS_LENGTH -
+                VLAN_LEN - SEPARATOR_LEN * 2];
         short vlan;
         bb.get(macAddr);
         bb.get();  // separator
diff --git a/utils/misc/src/main/java/org/onlab/packet/dhcp/Dhcp6InterfaceIdOption.java b/utils/misc/src/main/java/org/onlab/packet/dhcp/Dhcp6InterfaceIdOption.java
index 0270032..2bd47e1 100644
--- a/utils/misc/src/main/java/org/onlab/packet/dhcp/Dhcp6InterfaceIdOption.java
+++ b/utils/misc/src/main/java/org/onlab/packet/dhcp/Dhcp6InterfaceIdOption.java
@@ -31,6 +31,8 @@
  * Based on RFC-3315.
  */
 public final class Dhcp6InterfaceIdOption extends Dhcp6Option {
+    private static final short VLAN_LEN = 2;
+    private static final short SEPARATOR_LEN = 1;
     private MacAddress peerMacAddr;
     private byte[] inPort;
     private short vlanId;
@@ -138,7 +140,8 @@
                 ByteBuffer bb = ByteBuffer.wrap(optionData);
 
                 byte[] macAddr = new byte[MacAddress.MAC_ADDRESS_LENGTH];
-                byte[] port = new byte[21];
+                byte[] port = new byte[optionData.length - MacAddress.MAC_ADDRESS_LENGTH -
+                                                        VLAN_LEN - SEPARATOR_LEN * 2];
                 short vlan;
                 bb.get(macAddr);
                 bb.get();  // separator "-"
