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 fcaa5c0e60..8c511101e8 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 @@ -357,6 +357,11 @@ public final class DefaultTrafficSelector implements TrafficSelector { return add(Criteria.matchArpTha(addr)); } + @Override + public Builder matchArpSha(MacAddress addr) { + return add(Criteria.matchArpSha(addr)); + } + @Override public TrafficSelector build() { return new DefaultTrafficSelector(ImmutableSet.copyOf(selector.values())); 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 8d2288c291..a0b3416c10 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 @@ -393,6 +393,14 @@ public interface TrafficSelector { */ Builder matchArpTha(MacAddress addr); + /** + * Matches a arp_eth_src address. + * + * @param addr a arp_eth_src address + * @return a selection builder + */ + Builder matchArpSha(MacAddress addr); + /** * Builds an immutable traffic selector. * 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 bc1a094c2f..c45f160bf6 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 @@ -510,23 +510,33 @@ public final class Criteria { } /** - * Creates a match on IPv4 source field using the specified value. + * Creates a match on IPv4 destination field using the specified value. * - * @param ip ipv4 source value + * @param ip ipv4 destination value * @return match criterion */ public static Criterion matchArpTpa(Ip4Address ip) { return new ArpPaCriterion(ip, Type.ARP_TPA); } + /** + * Creates a match on MAC destination field using the specified value. + * + * @param mac MAC destination value + * @return match criterion + */ + public static Criterion matchArpTha(MacAddress mac) { + return new ArpHaCriterion(mac, Type.ARP_THA); + } + /** * Creates a match on MAC source field using the specified value. * * @param mac MAC source value * @return match criterion */ - public static Criterion matchArpTha(MacAddress mac) { - return new ArpHaCriterion(mac, Type.ARP_THA); + public static Criterion matchArpSha(MacAddress mac) { + return new ArpHaCriterion(mac, Type.ARP_SHA); } public static Criterion dummy() {