Adding EVPN App code

Change-Id: Id3b2192f56f054cadcd8384092245b8757a781a9
diff --git a/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/BasePort.java b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/BasePort.java
new file mode 100755
index 0000000..1b2455a
--- /dev/null
+++ b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/BasePort.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.evpnopenflow.rsc;
+
+import org.onlab.packet.MacAddress;
+import org.onosproject.net.DeviceId;
+import org.onosproject.vtnrsc.AllowedAddressPair;
+import org.onosproject.vtnrsc.BindingHostId;
+import org.onosproject.vtnrsc.FixedIp;
+import org.onosproject.vtnrsc.SecurityGroup;
+import org.onosproject.vtnrsc.TenantId;
+import org.onosproject.vtnrsc.TenantNetworkId;
+
+import java.util.Collection;
+import java.util.Set;
+
+/**
+ * Representation of a Base port.
+ */
+public interface BasePort {
+    /**
+     * Coarse classification of the type of the virtual port.
+     */
+    enum State {
+        /**
+         * Signifies that a basePort is currently active,This state mean that
+         * this basePort is available.
+         */
+        ACTIVE,
+        /**
+         * Signifies that a basePort is currently unavailable.
+         */
+        DOWN;
+    }
+
+    /**
+     * Returns the basePort identifier.
+     *
+     * @return basePort identifier
+     */
+    BasePortId portId();
+
+    /**
+     * Returns the network identifier.
+     *
+     * @return tenantNetwork identifier
+     */
+    TenantNetworkId networkId();
+
+    /**
+     * Returns the symbolic name for the basePort.
+     *
+     * @return basePort name
+     */
+    String name();
+
+    /**
+     * Returns the administrative status of the port,which is up(true) or
+     * down(false).
+     *
+     * @return true if the administrative status of the port is up
+     */
+    boolean adminStateUp();
+
+    /**
+     * Returns the state.
+     *
+     * @return state
+     */
+    String state();
+
+    /**
+     * Returns the MAC address.
+     *
+     * @return MAC Address
+     */
+    MacAddress macAddress();
+
+    /**
+     * Returns the port tenantId.
+     *
+     * @return port tenantId
+     */
+    TenantId tenantId();
+
+    /**
+     * Returns the device identifier.
+     *
+     * @return deviceId
+     */
+    DeviceId deviceId();
+
+    /**
+     * Returns the identifier of the entity that uses this port.
+     *
+     * @return deviceOwner
+     */
+    String deviceOwner();
+
+    /**
+     * Returns the basePort allowedAddressPairs.
+     *
+     * @return basePort allowedAddressPairs
+     */
+    Collection<AllowedAddressPair> allowedAddressPairs();
+
+    /**
+     * Returns set of IP addresses for the port, include the IP addresses and subnet
+     * identity.
+     *
+     * @return FixedIps Set of fixedIp
+     */
+    Set<FixedIp> fixedIps();
+
+    /**
+     * Returns the basePort bindinghostId.
+     *
+     * @return basePort bindinghostId
+     */
+    BindingHostId bindingHostId();
+
+    /**
+     * Returns the basePort bindingVnicType.
+     *
+     * @return basePort bindingVnicType
+     */
+    String bindingVnicType();
+
+    /**
+     * Returns the basePort bindingVifType.
+     *
+     * @return basePort bindingVifType
+     */
+    String bindingVifType();
+
+    /**
+     * Returns the basePort bindingvifDetail.
+     *
+     * @return basePort bindingvifDetail
+     */
+    String bindingVifDetails();
+
+    /**
+     * Returns the security groups.
+     *
+     * @return port security groups
+     */
+    Iterable<SecurityGroup> securityGroups();
+}