3.1.4.8 ValidateIpamIPAddress

This section captures the common processing rules involved in validating an IpamIPAddress specified in the form of IpamIPv4Address or IpamIPv6Address. The address data that needs to be validated is assumed to be present as a variable Param_address.

  1. The following are the mandatory properties of IpamIPAddress and MUST be specified with valid values.

    • IPAddress

    • MacAddress

    • CustomFieldValues

  2. The Param_address MUST contain the following mandatory custom fields.

    • DeviceType

    • ManagedBy

    • ManagedByEntity

    • IPAddressState

      This is checked by ensuring that the Param_address contains the CustomFieldValue entries in CustomFieldValues, which contain the ParentCustomFieldNumber to be the values of the following enumeration respectively:

    • BuiltinCustomField.DeviceType

    • BuiltinCustomField.ManagedBy

    • BuiltinCustomField.ManagedByEntity

    • BuiltinCustomField.IPAddressState

  3. If Param_address.DnsForwardLookupZoneDnsServerId is specified, Param_address.DnsZoneId MUST NOT be null.

  4. If Param_address.DnsReverseLookupZoneDnsServerId != null, Param_address.DnsReverseLookupZoneId MUST NOT be null.

  5. If both DnsZoneId and DnsForwardLookupZoneDnsServerId are specified in Param_address, a row MUST exist in ADM_DNSServerForwardLookupZoneTable which meets the following conditions.

    • ServerRecordId equals Param_address.DnsForwardLookupZoneDnsServerId.

    • DnsZoneId equals Param_address.DnsZoneId.

  6. If both DnsReverseLookupZoneId and DnsReverseLookupZoneDnsServerId are specified in Param_address, a row MUST exist in ADM_DNSServerReverseLookupZoneTable that meets the following conditions:

    • ServerRecordId equals Param_address.DnsReverseLookupZoneDnsServerId.

    • DnsReverseZoneId equals Param_address.DnsReverseLookupZoneId.

  7. If Param_address.DnsReverseLookupZoneId is specified, validate if the specified zone can host the reverse lookup zone for the address by performing the following checks. The following MUST be met for the reverse lookup zone information to be valid.

    • Call the procedure GetDnsReverseLookupZoneFromTable in ADM_DNSReverseLookupTable passing Param_address.DnsReverseLookupZoneId as Param_recordId.

    • Result_reverseLookupZone.IPType MUST be equal to address family of Param_address.

    • Param_address.IPAddress MUST lie between Result_reverseLookupZone.StartIP and Result_reverseLookupZone.EndIP.

  8. If Param_address.AssignedDate is specified as well as the Param_address.ExpiryDate, Param_address.AssignedDate MUST be lesser than or equal to Param_address.ExpiryDate.