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 - ruleInstaller.populateManagementNetworkRules(host, service); 552 + case MANAGEMENT:
553 - } else { 553 + ruleInstaller.populateManagementNetworkRules(host, service);
554 - // TODO check if the service needs an update on its group buckets after done CORD-433 554 + break;
555 - ruleInstaller.updateServiceGroup(service); 555 + case PRIVATE:
556 - arpProxy.addGateway(service.serviceIp(), privateGatewayMac); 556 + case PRIVATE_INDIRECT:
557 - 557 + case PRIVATE_DIRECT:
558 - // sends gratuitous ARP here for the case of adding existing VMs 558 + arpProxy.addGateway(service.serviceIp(), privateGatewayMac);
559 - // when ONOS or cordvtn app is restarted 559 + case PUBLIC_INDIRECT:
560 - arpProxy.sendGratuitousArpForGateway(service.serviceIp(), Sets.newHashSet(host)); 560 + case PUBLIC_DIRECT:
561 + default:
562 + // TODO check if the service needs an update on its group buckets after done CORD-433
563 + ruleInstaller.updateServiceGroup(service);
564 + // sends gratuitous ARP here for the case of adding existing VMs
565 + // when ONOS or cordvtn app is restarted
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()) {
620 - ruleInstaller.removeManagementNetworkRules(host, service); 627 + case MANAGEMENT:
621 - } else { 628 + ruleInstaller.removeManagementNetworkRules(host, service);
622 - // TODO check if the service needs an update on its group buckets after done CORD-433 629 + break;
623 - ruleInstaller.updateServiceGroup(service); 630 + case PRIVATE:
624 - 631 + case PRIVATE_INDIRECT:
625 - if (getHostsWithOpenstackNetwork(vNet).isEmpty()) { 632 + case PRIVATE_DIRECT:
626 - arpProxy.removeGateway(service.serviceIp()); 633 + if (getHostsWithOpenstackNetwork(vNet).isEmpty()) {
627 - } 634 + arpProxy.removeGateway(service.serviceIp());
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
......