Committed by
Gerrit Code Review
[ONOS-3441] Add arp_tpa operation to provider of openflow
Change-Id: I94949f4b536bbaa3f5999f8584674bbe44cb2c6b
Showing
2 changed files
with
12 additions
and
2 deletions
... | @@ -513,6 +513,7 @@ public class FlowEntryBuilder { | ... | @@ -513,6 +513,7 @@ public class FlowEntryBuilder { |
513 | Ip4Prefix ip4Prefix; | 513 | Ip4Prefix ip4Prefix; |
514 | Ip6Address ip6Address; | 514 | Ip6Address ip6Address; |
515 | Ip6Prefix ip6Prefix; | 515 | Ip6Prefix ip6Prefix; |
516 | + Ip4Address ip; | ||
516 | 517 | ||
517 | TrafficSelector.Builder builder = DefaultTrafficSelector.builder(); | 518 | TrafficSelector.Builder builder = DefaultTrafficSelector.builder(); |
518 | for (MatchField<?> field : match.getMatchFields()) { | 519 | for (MatchField<?> field : match.getMatchFields()) { |
... | @@ -715,9 +716,12 @@ public class FlowEntryBuilder { | ... | @@ -715,9 +716,12 @@ public class FlowEntryBuilder { |
715 | mac = MacAddress.valueOf(match.get(MatchField.ARP_THA).getLong()); | 716 | mac = MacAddress.valueOf(match.get(MatchField.ARP_THA).getLong()); |
716 | builder.matchArpTha(mac); | 717 | builder.matchArpTha(mac); |
717 | break; | 718 | break; |
719 | + case ARP_TPA: | ||
720 | + ip = Ip4Address.valueOf(match.get(MatchField.ARP_TPA).getInt()); | ||
721 | + builder.matchArpTpa(ip); | ||
722 | + break; | ||
718 | case ARP_OP: | 723 | case ARP_OP: |
719 | case ARP_SPA: | 724 | case ARP_SPA: |
720 | - case ARP_TPA: | ||
721 | case MPLS_TC: | 725 | case MPLS_TC: |
722 | default: | 726 | default: |
723 | log.warn("Match type {} not yet implemented.", field.id); | 727 | log.warn("Match type {} not yet implemented.", field.id); | ... | ... |
... | @@ -25,6 +25,7 @@ import org.onosproject.net.driver.DriverService; | ... | @@ -25,6 +25,7 @@ import org.onosproject.net.driver.DriverService; |
25 | import org.onosproject.net.flow.FlowRule; | 25 | import org.onosproject.net.flow.FlowRule; |
26 | import org.onosproject.net.flow.TrafficSelector; | 26 | import org.onosproject.net.flow.TrafficSelector; |
27 | import org.onosproject.net.flow.criteria.ArpHaCriterion; | 27 | import org.onosproject.net.flow.criteria.ArpHaCriterion; |
28 | +import org.onosproject.net.flow.criteria.ArpPaCriterion; | ||
28 | import org.onosproject.net.flow.criteria.Criterion; | 29 | import org.onosproject.net.flow.criteria.Criterion; |
29 | import org.onosproject.net.flow.criteria.EthCriterion; | 30 | import org.onosproject.net.flow.criteria.EthCriterion; |
30 | import org.onosproject.net.flow.criteria.EthTypeCriterion; | 31 | import org.onosproject.net.flow.criteria.EthTypeCriterion; |
... | @@ -180,6 +181,7 @@ public abstract class FlowModBuilder { | ... | @@ -180,6 +181,7 @@ public abstract class FlowModBuilder { |
180 | SctpPortCriterion sctpPortCriterion; | 181 | SctpPortCriterion sctpPortCriterion; |
181 | IPv6NDLinkLayerAddressCriterion llAddressCriterion; | 182 | IPv6NDLinkLayerAddressCriterion llAddressCriterion; |
182 | ArpHaCriterion arpHaCriterion; | 183 | ArpHaCriterion arpHaCriterion; |
184 | + ArpPaCriterion arpPaCriterion; | ||
183 | 185 | ||
184 | for (Criterion c : selector.criteria()) { | 186 | for (Criterion c : selector.criteria()) { |
185 | switch (c.type()) { | 187 | switch (c.type()) { |
... | @@ -427,9 +429,13 @@ public abstract class FlowModBuilder { | ... | @@ -427,9 +429,13 @@ public abstract class FlowModBuilder { |
427 | mBuilder.setExact(MatchField.ARP_THA, | 429 | mBuilder.setExact(MatchField.ARP_THA, |
428 | MacAddress.of(arpHaCriterion.mac().toLong())); | 430 | MacAddress.of(arpHaCriterion.mac().toLong())); |
429 | break; | 431 | break; |
432 | + case ARP_TPA: | ||
433 | + arpPaCriterion = (ArpPaCriterion) c; | ||
434 | + mBuilder.setExact(MatchField.ARP_TPA, | ||
435 | + IPv4Address.of(arpPaCriterion.ip().toInt())); | ||
436 | + break; | ||
430 | case ARP_OP: | 437 | case ARP_OP: |
431 | case ARP_SPA: | 438 | case ARP_SPA: |
432 | - case ARP_TPA: | ||
433 | case MPLS_TC: | 439 | case MPLS_TC: |
434 | case PBB_ISID: | 440 | case PBB_ISID: |
435 | default: | 441 | default: | ... | ... |
-
Please register or login to post a comment