Committed by
Gerrit Code Review
Don't proxy ARP with the private gateway MAC address for public network.
Change-Id: Ice16a39cc9fe349e22f61131d24f898744a765db
Showing
1 changed file
with
23 additions
and
9 deletions
... | @@ -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 | ... | ... |
-
Please register or login to post a comment