From 08c7294c6fd5ec334ede535c0fac2fbb9727f16f Mon Sep 17 00:00:00 2001 From: BitOhenry Date: Wed, 18 Nov 2015 14:44:29 +0800 Subject: [PATCH] [ONOS-3391] create arp_spa selector to onos Change-Id: I2508a3ca7acb95b9792f0b23e085074a5b030a3b --- .../onosproject/net/flow/DefaultTrafficSelector.java | 5 +++++ .../java/org/onosproject/net/flow/TrafficSelector.java | 8 ++++++++ .../org/onosproject/net/flow/criteria/Criteria.java | 10 ++++++++++ 3 files changed, 23 insertions(+) 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 65570f8043..a842d60060 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 @@ -358,6 +358,11 @@ public final class DefaultTrafficSelector implements TrafficSelector { return add(Criteria.matchArpTpa(addr)); } + @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 6b1720bce4..9fe88d5af6 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 @@ -394,6 +394,14 @@ public interface TrafficSelector { */ 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. * 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 c45f160bf6..554b8e7463 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 @@ -519,6 +519,16 @@ public final class Criteria { return new ArpPaCriterion(ip, Type.ARP_TPA); } + /** + * 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. *