Introduction

4.1 behavior

  • Shared networks. Administrator is able to create Shared network with the Vlan assigned to it. The Vlan stays with the network for its entire lifecycle, never gets changed or released in between.
  • Isolated networks. Network is created without the Vlan. Vlan gets randomly allocated to the network from the Physical network Vnet range at the moment the network gets Implemented. It gets released back to the Vnet pool once the network gets Shutdown as a part of the Network GC, and can be re-used either by this network once it gets implemented again, or by any other network. In other words, on each subsequent implementation the new Vlan can be assigned to the network. 

4.2 behavior

  • Shared networks - no changes.
  • Isolated networks -  Administrator can control Vlan assignment to the Isolated network by assigning the Vlan at the moment the network gets created, just the way it's done for Shared networks. He can also exclude the network from the GC thread run. The old behavior - assign Vlan on Implement and release on Shutdown of the network - is supported as well.

General Flow

1) Create a new network offering

Create a network offering with guestIpType=Isolated, specifyVlan=true

  • specifyVlan=true means that the Admin has to specify the Vlan when he creates the network. 

Code changes:

  • Have to remove the restriction in the code as currently specifyVlan=true is allowed for Shared Network Offerings only. 

2) Create a new network

Create a network from the network offering created on the step #1. Define the Vlan when create the network. When Vlan is specified, GuestNetworkGuru will assign CIDR/gateway to this network, and will set it state to Setup. Once the State=Setup, this network will never be garbage collected.

Code changes:

  • Vlan assignment to Isolated Networks part of code needs to be changed. At the moment vlan for the Guest Isolated network is randomly allocated from the Vnet range defined on the physical network object. When Admin defines the Vlan for the network, the Vlan should be managed outside of the CloudStack, therefore it should be outside of the Physical Network Vnet range. Basically we should follow the same logic as when we create Shared network with Vlan specified. 
  • UI: Only ROOT admin is aware of the Vlans in the system. So only he can create the Isolated network with the vlan defined. UI should handle it and don't display network offerings with "specifyVlan=true" when create a new Isolated network.

DB changes

No DB changes

UI changes

1) "Create network" dialog changes:

  • Display network offering with specifyVlan=true as an option, only on Root Admin UI. To get this offerings with listNetworkOfferings API, add specifyVlan=true to the list of parameters.
  • Add and display Vlan field when network offering with SpecifyVlan=true is selected.

Changes have to be done on the on following tabs:

  • Networks tab,
  • VPC->Create new Tier tab

2) "CreateNetworkOffering" dialog changes. 

When specifyVlan=true, don't automatically send specifyIpRanges=true. Do it the following way:
* Shared networks: Always send specifIpRanges=true* Isolated networks. When specifyVlan=true check box is selected, send specifyIpRanges=true only when no SourceNatService is selected. Don't send anything in all other cases.

Limitations

  • You can't change the Vlan once it's assigned to the network. It will remain with it for the entire network life cycle.
  • No labels