Upgrade CORD VTN app to ONOS 1.12.0

Change-Id: Ib0c24100c87ef198359901d22e6f24c435ad0a08
diff --git a/pom.xml b/pom.xml
index 5c0251f..02a6093 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <onos.app.name>org.opencord.vtn</onos.app.name>
-        <onos.version>1.10.6</onos.version>
+        <onos.version>1.12.0</onos.version>
         <onos.app.title>VTN App</onos.app.title>
         <onos.app.category>Traffic Steering</onos.app.category>
         <onos.app.url>http://opencord.org</onos.app.url>
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnDhcpProxy.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnDhcpProxy.java
index 28a7f98..e63cdcf 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnDhcpProxy.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnDhcpProxy.java
@@ -26,8 +26,6 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onlab.packet.DHCP;
-import org.onlab.packet.DHCPOption;
-import org.onlab.packet.DHCPPacketType;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IPv4;
 import org.onlab.packet.Ip4Address;
@@ -35,6 +33,7 @@
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.TpPort;
 import org.onlab.packet.UDP;
+import org.onlab.packet.dhcp.DhcpOption;
 import org.onlab.util.Tools;
 import org.onosproject.cfg.ComponentConfigService;
 import org.onosproject.core.ApplicationId;
@@ -68,7 +67,14 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import static org.onlab.packet.DHCP.DHCPOptionCode.*;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_BroadcastAddress;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_DHCPServerIp;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_DomainServer;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_END;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_LeaseTime;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_MessageType;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_RouterAddress;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_SubnetMask;
 import static org.onlab.packet.DHCPPacketType.DHCPACK;
 import static org.onlab.packet.DHCPPacketType.DHCPOFFER;
 import static org.opencord.cordvtn.api.Constants.DEFAULT_GATEWAY_MAC_STR;
@@ -184,10 +190,12 @@
             if (ethPacket == null || ethPacket.getEtherType() != Ethernet.TYPE_IPV4) {
                 return;
             }
+
             IPv4 ipv4Packet = (IPv4) ethPacket.getPayload();
             if (ipv4Packet.getProtocol() != IPv4.PROTOCOL_UDP) {
                 return;
             }
+
             UDP udpPacket = (UDP) ipv4Packet.getPayload();
             if (udpPacket.getDestinationPort() != UDP.DHCP_SERVER_PORT ||
                     udpPacket.getSourcePort() != UDP.DHCP_CLIENT_PORT) {
@@ -204,7 +212,7 @@
                 return;
             }
 
-            DHCPPacketType inPacketType = getPacketType(dhcpPacket);
+            DHCP.MsgType inPacketType = dhcpPacket.getPacketType();
             if (inPacketType == null || dhcpPacket.getClientHardwareAddress() == null) {
                 log.trace("Malformed DHCP packet received, ignore it");
                 return;
@@ -245,24 +253,11 @@
                     // do nothing
                     break;
                 default:
+                    log.warn("Unknown packet type {}", inPacketType);
                     break;
             }
         }
 
-        private DHCPPacketType getPacketType(DHCP dhcpPacket) {
-            DHCPOption optType = dhcpPacket.getOption(OptionCode_MessageType);
-            if (optType == null) {
-                log.trace("DHCP packet with no message type, ignore it");
-                return null;
-            }
-
-            DHCPPacketType inPacketType = DHCPPacketType.getType(optType.getData()[0]);
-            if (inPacketType == null) {
-                log.trace("DHCP packet with no packet type, ignore it");
-            }
-            return inPacketType;
-        }
-
         private Ethernet buildReply(Ethernet ethRequest, byte packetType,
                                     Instance reqInstance) {
             ServiceNetwork snet = snetService.serviceNetwork(reqInstance.netId());
@@ -327,9 +322,9 @@
             dhcpReply.setServerIPAddress(serverIp.toInt());
             dhcpReply.setClientHardwareAddress(request.getClientHardwareAddress());
 
-            List<DHCPOption> options = Lists.newArrayList();
+            List<DhcpOption> options = Lists.newArrayList();
             // message type
-            DHCPOption option = new DHCPOption();
+            DhcpOption option = new DhcpOption();
             option.setCode(OptionCode_MessageType.getValue());
             option.setLength((byte) 1);
             byte[] optionData = {msgType};
@@ -337,14 +332,14 @@
             options.add(option);
 
             // server identifier
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_DHCPServerIp.getValue());
             option.setLength((byte) 4);
             option.setData(serverIp.toOctets());
             options.add(option);
 
             // lease time
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_LeaseTime.getValue());
             option.setLength((byte) 4);
             option.setData(DHCP_DATA_LEASE_INFINITE);
@@ -352,7 +347,7 @@
 
             // subnet mask
             Ip4Address subnetMask = Ip4Address.makeMaskPrefix(subnetPrefixLen);
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_SubnetMask.getValue());
             option.setLength((byte) 4);
             option.setData(subnetMask.toOctets());
@@ -360,21 +355,21 @@
 
             // broadcast address
             Ip4Address broadcast = Ip4Address.makeMaskedAddress(yourIp, subnetPrefixLen);
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_BroadcastAddress.getValue());
             option.setLength((byte) 4);
             option.setData(broadcast.toOctets());
             options.add(option);
 
             // domain server
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_DomainServer.getValue());
             option.setLength((byte) 4);
             option.setData(DEFAULT_DNS.toOctets());
             options.add(option);
 
             // TODO fix MTU value to be configurable
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(DHCP_OPTION_MTU);
             option.setLength((byte) 2);
             option.setData(DHCP_DATA_MTU_DEFAULT);
@@ -382,7 +377,7 @@
 
             // router address
             if (snet.type() != MANAGEMENT_LOCAL && snet.type() != MANAGEMENT_HOST) {
-                option = new DHCPOption();
+                option = new DhcpOption();
                 option.setCode(OptionCode_RouterAddress.getValue());
                 option.setLength((byte) 4);
                 option.setData(serverIp.toOctets());
@@ -392,7 +387,7 @@
             // classless static routes
             byte[] data = getClasslessStaticRoutesData(snet);
             if (data.length >= 5) {
-                option = new DHCPOption();
+                option = new DhcpOption();
                 option.setCode(DHCP_OPTION_CLASSLESS_STATIC_ROUTE);
                 option.setLength((byte) data.length);
                 option.setData(data);
@@ -400,7 +395,7 @@
             }
 
             // end option
-            option = new DHCPOption();
+            option = new DhcpOption();
             option.setCode(OptionCode_END.getValue());
             option.setLength((byte) 1);
             options.add(option);