Adds default router option only when the gateway is set in subnet.

Change-Id: If14152337a2c1567ea6db16f06f99a50571b55e9
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandler.java
index 3f511e9..0c0e81e 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandler.java
@@ -81,6 +81,7 @@
 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.DHCP.MsgType.DHCPACK;
 import static org.onlab.packet.DHCP.MsgType.DHCPOFFER;
@@ -98,7 +99,6 @@
     protected final Logger log = getLogger(getClass());
 
     private static final String DHCP_SERVER_MAC = "dhcpServerMac";
-    private static final String DHCP_DATA_MTU = "dhcpDataMtu";
     private static final Ip4Address DEFAULT_PRIMARY_DNS = Ip4Address.valueOf("8.8.8.8");
     private static final Ip4Address DEFAULT_SECONDARY_DNS = Ip4Address.valueOf("8.8.4.4");
     private static final byte PACKET_TTL = (byte) 127;
@@ -455,6 +455,16 @@
                 options.add(option);
             }
 
+            // Sets the default router address up.
+            // Performs only if the gateway is set in subnet.
+            if (!Strings.isNullOrEmpty(osSubnet.getGateway())) {
+                option = new DhcpOption();
+                option.setCode(OptionCode_RouterAddress.getValue());
+                option.setLength((byte) 4);
+                option.setData(Ip4Address.valueOf(osSubnet.getGateway()).toOctets());
+                options.add(option);
+            }
+
             // end option
             option = new DhcpOption();
             option.setCode(OptionCode_END.getValue());
diff --git a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandlerTest.java b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandlerTest.java
index 65331fe..8cd0462 100644
--- a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandlerTest.java
+++ b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingDhcpHandlerTest.java
@@ -77,6 +77,7 @@
 import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_END;
 import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_MessageType;
 import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_RequestedIP;
+import static org.onlab.packet.DHCP.DHCPOptionCode.OptionCode_RouterAddress;
 import static org.onosproject.net.NetTestTools.connectPoint;
 
 /**
@@ -287,6 +288,14 @@
         option.setData(hostRouteByteBuf.array());
         optionList.add(option);
 
+        // default router address setup
+        option = new DhcpOption();
+        option.setCode(OptionCode_RouterAddress.getValue());
+        option.setLength((byte) 4);
+        option.setData(Ip4Address.valueOf(subnet.getGateway()).toOctets());
+        optionList.add(option);
+
+
         // DHCP options end...
         option = new DhcpOption();
         option.setCode(OptionCode_END.getValue());