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