Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The DiscoverySubnetEnumerationParameters processing is done when the EnumInputParameters contains data of type DiscoverySubnetEnumerationParameters. The ObjectType MUST be EnumerationObjectType.DiscoveredSubnets. The following processing steps identify the rows to be returned as a part of the enumeration:
Enumerate the rows in ADM_ServersTable that meet the following conditions:
If DiscoverySubnetEnumerationParameters.InclusionStatus is specified, ServerInfoDetails.ManagementStatus MUST be equal to DiscoverySubnetEnumerationParameters.InclusionStatus.
If DiscoverySubnetEnumerationParameters.MultipleRole is specified and has the value of ServerMultipleRole.DhcpOrDns, for the row in ADM_ServersTable being enumerated, there MUST be a row in ADM_ServerRolesTable whose ServerRecordId is the RecordId of the row in ADM_ServersTable and ServerRoleFlag is either ServerRoleType.Dhcp or ServerRoleFlag.Dns.
If DiscoverySubnetEnumerationParameters.ServerRole is specified, for the row in the ADM_ServersTable being enumerated, there MUST be a row in ADM_ServerRolesTable whose ServerRecordId is the RecordId of the row in ADM_ServersTable and the ServerRoleFlag is DiscoverySubnetEnumerationParameters.ServerRole.
For each of the rows enumerated that meet the previously mentioned condition, get the addresses specified by ServerInfoDetails.IPAddresses. For each of the addresses, perform the following processing:
If DiscoverySubnetEnumerationParameters.SubnetType is specified, filter the addresses based on the address family:
If it is of value ServerInfoIPType.IPv4:
Filter addresses that are of address family of InterNetwork.
Get the subnet with a /16 prefix.
Ensure it was not already added to EnumOutputData and if not, add it to EnumOutputData.
Similarly, if it is of value ServerInfoIPType.IPv6:
Filter addresses that are of address family InterNetworkV6.
Get the subnet with a /16 prefix.
Ensure it was not already added to EnumOutputData and if not, add it to EnumOutputData.