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