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:

  1. ValidateIPBlock MUST succeed, since IPSubnet is derived from IPBlock.

  2. Param_IPSubnet.name is not NULL or a whitespace. Its length is less than or equal to 512.

  3. Param_IPSubnet.startIPAddress is equal to Param_IPSubnet.networkID.

  4. Param_IPSubnet.endIPAddress is equal to (Param_IPSubnet.networkID | ~Param_IPSubnet.subnetMask).

  5. Param_IPSubnet.addressSpaceRecordId is not 0.

  6. Param_IPSubnet.vlanId list MUST NOT contain any duplicates or any VLANId whose value is less than 1 or greater than 4095.

  7. Param_IPSubnet.virtualizationType equals either IPVirtualizationType.NonVirtualized or IPVirtualizationType.Fabric or IPVirtualizationType.Virtual.

  8. Param_IPSubnet.virtualizationType and the IPAddressSpaceType associated with Param_IPSubnet.addressSpaceRecordId MUST satisfy the following conditions:

    1. If virtualizationType is IPVirtualizationType.Virtual, then addressSpaceType is IPAddressSpaceType.Customer.

    2. If virtualizationType is IPVirtualizationType.Fabric, then addressSpaceType is not IPAddressSpaceType.Provider.

    3. If virtualizationType is IPVirtualizationType.NonVirtualized, then Param_IPSubnet.addressSpaceRecordId is ProviderAddressSpace.DefaultProviderAddressSpaceRecordId.

  9. Param_IPSubnet.vsId is greater than or equal to 0 and less than 16777215.