[ONOS-3391] create arp_spa selector to onos

Change-Id: I2508a3ca7acb95b9792f0b23e085074a5b030a3b
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
index 65570f8..a842d60 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
@@ -359,6 +359,11 @@
         }
 
         @Override
+        public Builder matchArpSpa(Ip4Address addr) {
+            return add(Criteria.matchArpSpa(addr));
+        }
+
+        @Override
         public Builder matchArpTha(MacAddress addr) {
             return add(Criteria.matchArpTha(addr));
         }
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
index 6b1720b..9fe88d5 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
@@ -395,6 +395,14 @@
         Builder matchArpTpa(Ip4Address addr);
 
         /**
+         * Matches a arp IPv4 source address.
+         *
+         * @param addr a arp IPv4 source address
+         * @return a selection builder
+         */
+        Builder matchArpSpa(Ip4Address addr);
+
+        /**
          * Matches a arp_eth_dst address.
          *
          * @param addr a arp_eth_dst address
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
index c45f160..554b8e7 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
@@ -520,6 +520,16 @@
     }
 
     /**
+     * Creates a match on IPv4 source field using the specified value.
+     *
+     * @param ip ipv4 source value
+     * @return match criterion
+     */
+    public static Criterion matchArpSpa(Ip4Address ip) {
+        return new ArpPaCriterion(ip, Type.ARP_SPA);
+    }
+
+    /**
      * Creates a match on MAC destination field using the specified value.
      *
      * @param mac MAC destination value