Used onlab.packet.Ethernet:VOL-391

Change-Id: Ifadb1c6bb4451a0834664fe181d7fa2deac80c60
diff --git a/src/main/java/org/opencord/dhcpl2relay/DhcpL2Relay.java b/src/main/java/org/opencord/dhcpl2relay/DhcpL2Relay.java
index 06a7f4f..209a5da 100755
--- a/src/main/java/org/opencord/dhcpl2relay/DhcpL2Relay.java
+++ b/src/main/java/org/opencord/dhcpl2relay/DhcpL2Relay.java
@@ -16,10 +16,9 @@
 package org.opencord.dhcpl2relay;
 
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Maps;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
@@ -27,28 +26,23 @@
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.packet.DeserializationException;
 import org.onlab.packet.DHCP;
 import org.onlab.packet.DHCPOption;
 import org.onlab.packet.DHCPPacketType;
 import org.onlab.packet.Ethernet;
-import org.onlab.packet.IpAddress;
 import org.onlab.packet.IPv4;
+import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.TpPort;
 import org.onlab.packet.UDP;
 import org.onlab.packet.VlanId;
-import org.onosproject.mastership.MastershipEvent;
-import org.onosproject.mastership.MastershipListener;
-import org.onosproject.mastership.MastershipService;
-import org.onosproject.net.device.DeviceEvent;
-import org.onosproject.net.device.DeviceListener;
-import org.opencord.dhcpl2relay.packet.DhcpEthernet;
-import org.opencord.dhcpl2relay.packet.DhcpOption82;
 import org.onlab.util.Tools;
 import org.onosproject.cfg.ComponentConfigService;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
+import org.onosproject.mastership.MastershipEvent;
+import org.onosproject.mastership.MastershipListener;
+import org.onosproject.mastership.MastershipService;
 import org.onosproject.net.AnnotationKeys;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.Host;
@@ -57,6 +51,8 @@
 import org.onosproject.net.config.NetworkConfigEvent;
 import org.onosproject.net.config.NetworkConfigListener;
 import org.onosproject.net.config.NetworkConfigRegistry;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
@@ -69,7 +65,7 @@
 import org.onosproject.net.packet.PacketPriority;
 import org.onosproject.net.packet.PacketProcessor;
 import org.onosproject.net.packet.PacketService;
-
+import org.opencord.dhcpl2relay.packet.DhcpOption82;
 import org.opencord.sadis.SubscriberAndDeviceInformation;
 import org.opencord.sadis.SubscriberAndDeviceInformationService;
 import org.osgi.service.component.ComponentContext;
@@ -78,8 +74,8 @@
 
 import java.nio.ByteBuffer;
 import java.util.Dictionary;
-import java.util.Map;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -92,7 +88,8 @@
  * DHCP Relay Agent Application Component.
  */
 @Component(immediate = true)
-public class DhcpL2Relay {
+public class
+DhcpL2Relay {
 
     public static final String DHCP_L2RELAY_APP = "org.opencord.dhcpl2relay";
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -388,13 +385,7 @@
             }
 
             // process the packet and get the payload
-            DhcpEthernet packet = null;
-            ByteBuffer byteBuffer = context.inPacket().unparsed();
-            try {
-                packet = DhcpEthernet.deserializer().deserialize(byteBuffer.array(), 0, byteBuffer.array().length);
-            } catch (DeserializationException e) {
-                log.warn("Unable to deserialize packet");
-            }
+            Ethernet packet = context.inPacket().parsed();
 
             if (packet == null) {
                 log.warn("Packet is null");
@@ -403,7 +394,7 @@
 
             log.debug("Got a packet ", packet);
 
-            if (packet.getEtherType() == DhcpEthernet.TYPE_IPV4) {
+            if (packet.getEtherType() == Ethernet.TYPE_IPV4) {
                 IPv4 ipv4Packet = (IPv4) packet.getPayload();
 
                 if (ipv4Packet.getProtocol() == IPv4.PROTOCOL_UDP) {
@@ -419,7 +410,7 @@
         }
 
         //forward the packet to ConnectPoint where the DHCP server is attached.
-        private void forwardPacket(DhcpEthernet packet) {
+        private void forwardPacket(Ethernet packet) {
 
             if (dhcpServerConnectPoint.get() != null) {
                 TrafficTreatment t = DefaultTrafficTreatment.builder()
@@ -428,8 +419,8 @@
                         dhcpServerConnectPoint.get().deviceId(), t,
                         ByteBuffer.wrap(packet.serialize()));
                 if (log.isTraceEnabled()) {
-                log.trace("Relaying packet to dhcp server {} at {}",
-                        packet, dhcpServerConnectPoint.get());
+                    log.trace("Relaying packet to dhcp server {} at {}",
+                            packet, dhcpServerConnectPoint.get());
                 }
                 packetService.emit(o);
             } else {
@@ -450,7 +441,7 @@
         }
 
         //process the dhcp packet before sending to server
-        private void processDhcpPacket(PacketContext context, DhcpEthernet packet,
+        private void processDhcpPacket(PacketContext context, Ethernet packet,
                                        DHCP dhcpPayload) {
             if (dhcpPayload == null) {
                 log.warn("DHCP payload is null");
@@ -463,7 +454,7 @@
 
             switch (incomingPacketType) {
                 case DHCPDISCOVER:
-                    DhcpEthernet ethernetPacketDiscover =
+                    Ethernet ethernetPacketDiscover =
                             processDhcpPacketFromClient(context, packet);
                     if (ethernetPacketDiscover != null) {
                         forwardPacket(ethernetPacketDiscover);
@@ -471,13 +462,13 @@
                     break;
                 case DHCPOFFER:
                     //reply to dhcp client.
-                    DhcpEthernet ethernetPacketOffer = processDhcpPacketFromServer(packet);
+                    Ethernet ethernetPacketOffer = processDhcpPacketFromServer(packet);
                     if (ethernetPacketOffer != null) {
                         sendReply(ethernetPacketOffer, dhcpPayload);
                     }
                     break;
                 case DHCPREQUEST:
-                    DhcpEthernet ethernetPacketRequest =
+                    Ethernet ethernetPacketRequest =
                             processDhcpPacketFromClient(context, packet);
                     if (ethernetPacketRequest != null) {
                         forwardPacket(ethernetPacketRequest);
@@ -485,7 +476,7 @@
                     break;
                 case DHCPACK:
                     //reply to dhcp client.
-                    DhcpEthernet ethernetPacketAck = processDhcpPacketFromServer(packet);
+                    Ethernet ethernetPacketAck = processDhcpPacketFromServer(packet);
                     if (ethernetPacketAck != null) {
                         sendReply(ethernetPacketAck, dhcpPayload);
                     }
@@ -495,8 +486,8 @@
             }
         }
 
-        private DhcpEthernet processDhcpPacketFromClient(PacketContext context,
-                                                         DhcpEthernet ethernetPacket) {
+        private Ethernet processDhcpPacketFromClient(PacketContext context,
+                                                     Ethernet ethernetPacket) {
 
             MacAddress relayAgentMac = relayAgentMacAddress(context);
             if (relayAgentMac == null) {
@@ -504,7 +495,7 @@
                 return null;
             }
 
-            DhcpEthernet etherReply = ethernetPacket;
+            Ethernet etherReply = ethernetPacket;
 
             IPv4 ipv4Packet = (IPv4) etherReply.getPayload();
             UDP udpPacket = (UDP) ipv4Packet.getPayload();
@@ -539,22 +530,22 @@
 
             ipv4Packet.setPayload(udpPacket);
             etherReply.setPayload(ipv4Packet);
-            etherReply.setSourceMacAddress(relayAgentMac);
-            etherReply.setDestinationMacAddress(dhcpConnectMac);
+            etherReply.setSourceMACAddress(relayAgentMac);
+            etherReply.setDestinationMACAddress(dhcpConnectMac);
 
             etherReply.setPriorityCode(ethernetPacket.getPriorityCode());
             etherReply.setVlanID(cTag(context).toShort());
-            etherReply.setQinQtpid(DhcpEthernet.TYPE_VLAN);
-            etherReply.setQinQVid(sTag(context).toShort());
+            etherReply.setQinQTPID(Ethernet.TYPE_VLAN);
+            etherReply.setQinQVID(sTag(context).toShort());
 
             log.info("Finished processing packet -- sending packet {}", etherReply);
             return etherReply;
         }
 
         //build the DHCP offer/ack with proper client port.
-        private DhcpEthernet processDhcpPacketFromServer(DhcpEthernet ethernetPacket) {
+        private Ethernet processDhcpPacketFromServer(Ethernet ethernetPacket) {
             // get dhcp header.
-            DhcpEthernet etherReply = (DhcpEthernet) ethernetPacket.clone();
+            Ethernet etherReply = (Ethernet) ethernetPacket.clone();
             IPv4 ipv4Packet = (IPv4) etherReply.getPayload();
             UDP udpPacket = (UDP) ipv4Packet.getPayload();
             DHCP dhcpPayload = (DHCP) udpPacket.getPayload();
@@ -587,8 +578,8 @@
             } // end storing of info
 
             // we leave the srcMac from the original packet
-            etherReply.setDestinationMacAddress(dstMac);
-            etherReply.setQinQVid(sTag(subsCp).toShort());
+            etherReply.setDestinationMACAddress(dstMac);
+            etherReply.setQinQVID(sTag(subsCp).toShort());
             etherReply.setPriorityCode(ethernetPacket.getPriorityCode());
             etherReply.setVlanID((cTag(subsCp).toShort()));
 
@@ -611,7 +602,7 @@
             Set<Host> hosts = hostService.getHostsByMac(dstMac);
             if (hosts == null || hosts.isEmpty()) {
                 log.warn("Cannot determine host for DHCP client: {}. Aborting "
-                        + "relay for dhcp packet from server",
+                                + "relay for dhcp packet from server",
                         dstMac);
                 return null;
             }
@@ -630,7 +621,7 @@
         }
 
         //send the response to the requester host.
-        private void sendReply(DhcpEthernet ethPacket, DHCP dhcpPayload) {
+        private void sendReply(Ethernet ethPacket, DHCP dhcpPayload) {
             MacAddress descMac = valueOf(dhcpPayload.getClientHardwareAddress());
             ConnectPoint subCp = getConnectPointOfClient(descMac);
 
@@ -660,9 +651,9 @@
         option82.setAgentCircuitId(entry.circuitId());
         option82.setAgentRemoteId(entry.remoteId());
         DHCPOption option = new DHCPOption()
-                                .setCode(DHCP.DHCPOptionCode.OptionCode_CircuitID.getValue())
-                                .setData(option82.toByteArray())
-                                .setLength(option82.length());
+                .setCode(DHCP.DHCPOptionCode.OptionCode_CircuitID.getValue())
+                .setData(option82.toByteArray())
+                .setLength(option82.length());
 
         options.add(options.size() - 1, option);
         dhcpPacket.setOptions(options);