3.1.4.19 ValidateSubnet
The ValidateSubnet event describes the common validation rules for the IPSubnet instance. The description assumes the IPSubnet instance to be validated is passed as a parameter with the name Param_IPSubnet.
The following validations MUST pass for the IPSubnet instance to be valid:
ValidateIPBlock MUST succeed, since IPSubnet is derived from IPBlock.
Param_IPSubnet.name is not NULL or a whitespace. Its length is less than or equal to 512.
Param_IPSubnet.startIPAddress is equal to Param_IPSubnet.networkID.
Param_IPSubnet.endIPAddress is equal to (Param_IPSubnet.networkID | ~Param_IPSubnet.subnetMask).
Param_IPSubnet.addressSpaceRecordId is not 0.
Param_IPSubnet.vlanId list MUST NOT contain any duplicates or any VLANId whose value is less than 1 or greater than 4095.
Param_IPSubnet.virtualizationType equals either IPVirtualizationType.NonVirtualized or IPVirtualizationType.Fabric or IPVirtualizationType.Virtual.
Param_IPSubnet.virtualizationType and the IPAddressSpaceType associated with Param_IPSubnet.addressSpaceRecordId MUST satisfy the following conditions:
If virtualizationType is IPVirtualizationType.Virtual, then addressSpaceType is IPAddressSpaceType.Customer.
If virtualizationType is IPVirtualizationType.Fabric, then addressSpaceType is not IPAddressSpaceType.Provider.
If virtualizationType is IPVirtualizationType.NonVirtualized, then Param_IPSubnet.addressSpaceRecordId is ProviderAddressSpace.DefaultProviderAddressSpaceRecordId.
Param_IPSubnet.vsId is greater than or equal to 0 and less than 16777215.