Fix dhcp6Relay

- interfaceIdOption does not proper encode vlanId
- AddHost was not using the actual vlan of the host

Change-Id: I41a639cc4f7efc0c7159f5bab07166d4032fc60a
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
index afe05f0..a912614 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
@@ -859,11 +859,23 @@
      * @param embeddedDhcp6 the dhcp6 payload within relay
      * @param srcMac client gw/host macAddress
      * @param clientInterface client interface
+     * @param vlanIdInUse vlanid encoded in the interface id Option
      */
     private void addHostOrRoute(boolean directConnFlag, ConnectPoint location, DHCP6 dhcp6Relay,
-                                DHCP6 embeddedDhcp6, MacAddress srcMac, Interface clientInterface) {
+                                DHCP6 embeddedDhcp6, MacAddress srcMac, Interface clientInterface,
+                                VlanId vlanIdInUse) {
         log.debug("addHostOrRoute entered.");
-        VlanId vlanId = clientInterface.vlan();
+        VlanId vlanId;
+        if (clientInterface.vlanTagged().isEmpty()) {
+            vlanId = clientInterface.vlan();
+        } else {
+            // might be multiple vlan in same interface
+            vlanId = vlanIdInUse;
+        }
+        if (vlanId == null) {
+            vlanId = VlanId.NONE;
+        }
+
         Boolean isMsgReply = Dhcp6HandlerUtil.isDhcp6Reply(dhcp6Relay);
         MacAddress leafClientMac;
         Byte leafMsgType;
@@ -1315,7 +1327,7 @@
         if (hostOrRouteAllowed) {
             // add host or route
             addHostOrRoute(directConnFlag, clientConnectionPoint, dhcp6Relay, embeddedDhcp6,
-                    clientMac, clientInterface);
+                    clientMac, clientInterface, vlanIdInUse);
         }
 
         udpPacket.setPayload(embeddedDhcp6);