add a virtual gateway for reactive routing

  There is no physical gateway in SDN network.
  However a host needs a gateway when it tries to communicate with a remote host.
  So we designed a virtual gateway for SDN network.
  The virtual gateway can have multiple IP addresses.
  Each IP address is used as the default gateway address of an IP prefix.
  We only configure one MAC address to the virtual gateway.
  You can choose any MAC address from the BGP speakers as the virtual gateway MAC address.
  We configure this MAC address staticly in the sdnip.json configuration file.

Change-Id: I2a72bef797fc55d25bb5473e8fca624ad659e1d1
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java
index 76f1df0..d5a9e29 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java
@@ -17,6 +17,7 @@
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
+import org.onlab.packet.MacAddress;
 import org.onosproject.routing.config.BgpPeer;
 import org.onosproject.routing.config.BgpSpeaker;
 import org.onosproject.routing.config.LocalIpPrefixEntry;
@@ -33,6 +34,7 @@
     // the BGP routers outside our SDN network the BGP peers.
     private List<BgpSpeaker> bgpSpeakers;
     private List<BgpPeer> peers;
+    private MacAddress virtualGatewayMacAddress;
 
     // All IP prefixes from the configuration are local
     private List<LocalIpPrefixEntry> localIp4PrefixEntries =
@@ -77,7 +79,7 @@
     }
 
     /**
-     * Sets a list of BGP peers we are configured to peer with.
+     * Sets a list of BGP peers we configured to peer with.
      *
      * @param peers the list of BGP peers
      */
@@ -87,6 +89,26 @@
     }
 
     /**
+     * Gets the MAC address we configured for virtual gateway
+     * in SDN network.
+     *
+     * @return the MAC address of virtual gateway
+     */
+    public MacAddress getVirtualGatewayMacAddress() {
+        return virtualGatewayMacAddress;
+    }
+
+    /**
+     * Sets the MAC address for virtual gateway in SDN network.
+     *
+     * @param virtualGatewayMacAddress the MAC address of virtual gateway
+     */
+    @JsonProperty("virtualGatewayMacAddress")
+    public void setVirtualGatewayMacAddress(MacAddress virtualGatewayMacAddress) {
+        this.virtualGatewayMacAddress = virtualGatewayMacAddress;
+    }
+
+    /**
      * Gets a list of local IPv4 prefix entries configured for local
      * SDN network.
      * <p>