BitOhenry

[ONOS-3464] Add arp_spa operation to provider of openflow

Change-Id: Iffb0d12bd53b292ef370fd12c0e9d693a215f5cb
...@@ -712,6 +712,10 @@ public class FlowEntryBuilder { ...@@ -712,6 +712,10 @@ public class FlowEntryBuilder {
712 mac = MacAddress.valueOf(match.get(MatchField.ARP_SHA).getLong()); 712 mac = MacAddress.valueOf(match.get(MatchField.ARP_SHA).getLong());
713 builder.matchArpSha(mac); 713 builder.matchArpSha(mac);
714 break; 714 break;
715 + case ARP_SPA:
716 + ip = Ip4Address.valueOf(match.get(MatchField.ARP_SPA).getInt());
717 + builder.matchArpSpa(ip);
718 + break;
715 case ARP_THA: 719 case ARP_THA:
716 mac = MacAddress.valueOf(match.get(MatchField.ARP_THA).getLong()); 720 mac = MacAddress.valueOf(match.get(MatchField.ARP_THA).getLong());
717 builder.matchArpTha(mac); 721 builder.matchArpTha(mac);
...@@ -721,7 +725,6 @@ public class FlowEntryBuilder { ...@@ -721,7 +725,6 @@ public class FlowEntryBuilder {
721 builder.matchArpTpa(ip); 725 builder.matchArpTpa(ip);
722 break; 726 break;
723 case ARP_OP: 727 case ARP_OP:
724 - case ARP_SPA:
725 case MPLS_TC: 728 case MPLS_TC:
726 default: 729 default:
727 log.warn("Match type {} not yet implemented.", field.id); 730 log.warn("Match type {} not yet implemented.", field.id);
......
...@@ -424,6 +424,11 @@ public abstract class FlowModBuilder { ...@@ -424,6 +424,11 @@ public abstract class FlowModBuilder {
424 mBuilder.setExact(MatchField.ARP_SHA, 424 mBuilder.setExact(MatchField.ARP_SHA,
425 MacAddress.of(arpHaCriterion.mac().toLong())); 425 MacAddress.of(arpHaCriterion.mac().toLong()));
426 break; 426 break;
427 + case ARP_SPA:
428 + arpPaCriterion = (ArpPaCriterion) c;
429 + mBuilder.setExact(MatchField.ARP_SPA,
430 + IPv4Address.of(arpPaCriterion.ip().toInt()));
431 + break;
427 case ARP_THA: 432 case ARP_THA:
428 arpHaCriterion = (ArpHaCriterion) c; 433 arpHaCriterion = (ArpHaCriterion) c;
429 mBuilder.setExact(MatchField.ARP_THA, 434 mBuilder.setExact(MatchField.ARP_THA,
...@@ -435,7 +440,6 @@ public abstract class FlowModBuilder { ...@@ -435,7 +440,6 @@ public abstract class FlowModBuilder {
435 IPv4Address.of(arpPaCriterion.ip().toInt())); 440 IPv4Address.of(arpPaCriterion.ip().toInt()));
436 break; 441 break;
437 case ARP_OP: 442 case ARP_OP:
438 - case ARP_SPA:
439 case MPLS_TC: 443 case MPLS_TC:
440 case PBB_ISID: 444 case PBB_ISID:
441 default: 445 default:
......