Hyunsun Moon
Committed by Gerrit Code Review

Don't proxy ARP with the private gateway MAC address for public network.

Change-Id: Ice16a39cc9fe349e22f61131d24f898744a765db
...@@ -548,16 +548,23 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro ...@@ -548,16 +548,23 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro
548 return; 548 return;
549 } 549 }
550 550
551 - if (service.serviceType().equals(CordService.ServiceType.MANAGEMENT)) { 551 + switch (service.serviceType()) {
552 + case MANAGEMENT:
552 ruleInstaller.populateManagementNetworkRules(host, service); 553 ruleInstaller.populateManagementNetworkRules(host, service);
553 - } else { 554 + break;
555 + case PRIVATE:
556 + case PRIVATE_INDIRECT:
557 + case PRIVATE_DIRECT:
558 + arpProxy.addGateway(service.serviceIp(), privateGatewayMac);
559 + case PUBLIC_INDIRECT:
560 + case PUBLIC_DIRECT:
561 + default:
554 // TODO check if the service needs an update on its group buckets after done CORD-433 562 // TODO check if the service needs an update on its group buckets after done CORD-433
555 ruleInstaller.updateServiceGroup(service); 563 ruleInstaller.updateServiceGroup(service);
556 - arpProxy.addGateway(service.serviceIp(), privateGatewayMac);
557 -
558 // sends gratuitous ARP here for the case of adding existing VMs 564 // sends gratuitous ARP here for the case of adding existing VMs
559 // when ONOS or cordvtn app is restarted 565 // when ONOS or cordvtn app is restarted
560 arpProxy.sendGratuitousArpForGateway(service.serviceIp(), Sets.newHashSet(host)); 566 arpProxy.sendGratuitousArpForGateway(service.serviceIp(), Sets.newHashSet(host));
567 + break;
561 } 568 }
562 569
563 registerDhcpLease(host, service); 570 registerDhcpLease(host, service);
...@@ -616,15 +623,22 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro ...@@ -616,15 +623,22 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro
616 return; 623 return;
617 } 624 }
618 625
619 - if (service.serviceType().equals(CordService.ServiceType.MANAGEMENT)) { 626 + switch (service.serviceType()) {
627 + case MANAGEMENT:
620 ruleInstaller.removeManagementNetworkRules(host, service); 628 ruleInstaller.removeManagementNetworkRules(host, service);
621 - } else { 629 + break;
622 - // TODO check if the service needs an update on its group buckets after done CORD-433 630 + case PRIVATE:
623 - ruleInstaller.updateServiceGroup(service); 631 + case PRIVATE_INDIRECT:
624 - 632 + case PRIVATE_DIRECT:
625 if (getHostsWithOpenstackNetwork(vNet).isEmpty()) { 633 if (getHostsWithOpenstackNetwork(vNet).isEmpty()) {
626 arpProxy.removeGateway(service.serviceIp()); 634 arpProxy.removeGateway(service.serviceIp());
627 } 635 }
636 + case PUBLIC_INDIRECT:
637 + case PUBLIC_DIRECT:
638 + default:
639 + // TODO check if the service needs an update on its group buckets after done CORD-433
640 + ruleInstaller.updateServiceGroup(service);
641 + break;
628 } 642 }
629 } 643 }
630 644
......