4.3 Enumerating the Address Ranges

This section captures the enumeration sequence between the client and server for enumerating the address ranges.

The following is the SOAP message request for enumerating all the address ranges.

 <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/InitializeEnumeration</a:Action>
     <a:MessageID>urn:uuid:33923ed6-9a09-4c54-bd39-4e7b13f370e8</a:MessageID>
     <a:ReplyTo>
       <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
     </a:ReplyTo>
   </s:Header>
   <s:Body>
     <InitializeEnumeration xmlns="http://Microsoft.Windows.Ipam">
       <parameters xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="IPRangeRootEnumerationParameters">
         <ObjectType>IPRange</ObjectType>
         <AddressCategory i:nil="true" />
         <AddressFamily>InterNetwork</AddressFamily>
       </parameters>
     </InitializeEnumeration>
   </s:Body>
 </s:Envelope>

The following is the SOAP response to the above request denoting the successful processing of the request.

 <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/InitializeEnumerationResponse</a:Action>
     <a:RelatesTo>urn:uuid:33923ed6-9a09-4c54-bd39-4e7b13f370e8</a:RelatesTo>
     <a:To s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/anonymous</a:To>
   </s:Header>
   <s:Body>
     <InitializeEnumerationResponse xmlns="http://Microsoft.Windows.Ipam"></InitializeEnumerationResponse>
   </s:Body>
 </s:Envelope>
 The client sends the following message to start the enumeration.
 <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/StartEnumeration</a:Action>
   </s:Header>
   <s:Body>
     <StartEnumeration xmlns="http://Microsoft.Windows.Ipam" />
   </s:Body>
 </s:Envelope>

The server sends the following message to denote the start of the enumeration.

 <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/NotifyEnumerationStart</a:Action>
     <a:To s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/anonymous</a:To>
   </s:Header>
   <s:Body>
     <NotifyEnumerationStart xmlns="http://Microsoft.Windows.Ipam"></NotifyEnumerationStart>
   </s:Body>
 </s:Envelope>

The following is the EnumeratedRowsCallback message generated by the server to pass the requested data to the client.

 <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/EnumeratedRowsCallback</a:Action>
     <a:To s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/anonymous</a:To>
   </s:Header>
   <s:Body>
     <EnumeratedRowsCallback xmlns="http://Microsoft.Windows.Ipam">
       <data xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
         <IpamObject z:Id="i1" i:type="IPv4Range" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
           <ModifiedProperties i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"></ModifiedProperties>
           <SetProperties i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"></SetProperties>
           <AddressAssignment>Static</AddressAssignment>
           <AddressCategory>Private</AddressCategory>
           <CustomFieldValues>
             <CustomFieldValue z:Id="i2">
               <ModifiedProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </ModifiedProperties>
               <SetProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </SetProperties>
               <BuiltInCustomFieldValueId>1</BuiltInCustomFieldValueId>
               <ParentCustomFieldName>Region</ParentCustomFieldName>
               <ParentCustomFieldNumber>2</ParentCustomFieldNumber>
               <ParentCustomFieldRecordId>2</ParentCustomFieldRecordId>
               <RecordId>6</RecordId>
               <Value>Asia</Value>
             </CustomFieldValue>
             <CustomFieldValue z:Id="i3">
               <ModifiedProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </ModifiedProperties>
               <SetProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </SetProperties>
               <BuiltInCustomFieldValueId>1</BuiltInCustomFieldValueId>
               <ParentCustomFieldName>Managed by Service</ParentCustomFieldName>
               <ParentCustomFieldNumber>8</ParentCustomFieldNumber>
               <ParentCustomFieldRecordId>8</ParentCustomFieldRecordId>
               <RecordId>298</RecordId>
               <Value>IPAM</Value>
             </CustomFieldValue>
             <CustomFieldValue z:Id="i4">
               <ModifiedProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </ModifiedProperties>
               <SetProperties xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                 <b:string>ParentCustomFieldRecordId</b:string>
                 <b:string>ParentCustomFieldName</b:string>
                 <b:string>ParentCustomFieldNumber</b:string>
                 <b:string>Value</b:string>
               </SetProperties>
               <BuiltInCustomFieldValueId>1</BuiltInCustomFieldValueId>
               <ParentCustomFieldName>Service Instance</ParentCustomFieldName>
               <ParentCustomFieldNumber>9</ParentCustomFieldNumber>
               <ParentCustomFieldRecordId>9</ParentCustomFieldRecordId>
               <RecordId>303</RecordId>
               <Value>Localhost</Value>
             </CustomFieldValue>
           </CustomFieldValues>
           <DefaultGateway i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/System.Net"></DefaultGateway>
           <Description i:nil="true"></Description>
           <DhcpScopeName i:nil="true"></DhcpScopeName>
           <DhcpServerGuid i:nil="true"></DhcpServerGuid>
           <DhcpServerName i:nil="true"></DhcpServerName>
           <EndIPAddress xmlns:b="http://schemas.datacontract.org/2004/07/System.Net">
             <b:m_Address>4261521600</b:m_Address>
             <b:m_Family>InterNetwork</b:m_Family>
             <b:m_HashCode>0</b:m_HashCode>
             <b:m_Numbers xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
             </b:m_Numbers>
             <b:m_ScopeId>0</b:m_ScopeId>
           </EndIPAddress>
           <ExclusionRanges></ExclusionRanges>
           <IsOverlapping>false</IsOverlapping>
           <LastAssignedDate i:nil="true"></LastAssignedDate>
           <LastChangeDate>2012-01-10T02:05:54.8438966</LastChangeDate>
           <LastReclaimRuntime i:nil="true"></LastReclaimRuntime>
           <NumberOfChildAddresses>0</NumberOfChildAddresses>
           <Owner i:nil="true"></Owner>
           <ParentIPBlockRecordId i:nil="true"></ParentIPBlockRecordId>
           <PartialCustomFieldValues>
             <CustomFieldPartialValue>
               <ParentCustomFieldId>2</ParentCustomFieldId>
               <ParentCustomFieldType>Multivalued</ParentCustomFieldType>
               <Value>Asia</Value>
               <ValueId>6</ValueId>
             </CustomFieldPartialValue>
             <CustomFieldPartialValue>
               <ParentCustomFieldId>8</ParentCustomFieldId>
               <ParentCustomFieldType>Multivalued</ParentCustomFieldType>
               <Value>IPAM</Value>
               <ValueId>298</ValueId>
             </CustomFieldPartialValue>
             <CustomFieldPartialValue>
               <ParentCustomFieldId>9</ParentCustomFieldId>
               <ParentCustomFieldType>Multivalued</ParentCustomFieldType>
               <Value>Localhost</Value>
               <ValueId>303</ValueId>
             </CustomFieldPartialValue>
           </PartialCustomFieldValues>
           <PrefixLength>24</PrefixLength>
           <RecordId>451</RecordId>
           <ScopeRecordId i:nil="true"></ScopeRecordId>
           <StartIPAddress xmlns:b="http://schemas.datacontract.org/2004/07/System.Net">
             <b:m_Address>16885952</b:m_Address>
             <b:m_Family>InterNetwork</b:m_Family>
             <b:m_HashCode>0</b:m_HashCode>
             <b:m_Numbers xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
             </b:m_Numbers>
             <b:m_ScopeId>0</b:m_ScopeId>
           </StartIPAddress>
           <SubnetId xmlns:b="http://schemas.datacontract.org/2004/07/System.Net">
             <b:m_Address>108736</b:m_Address>
             <b:m_Family>InterNetwork</b:m_Family>
             <b:m_HashCode>0</b:m_HashCode>
             <b:m_Numbers xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
             </b:m_Numbers>
             <b:m_ScopeId>0</b:m_ScopeId>
           </SubnetId>
           <SubnetMask xmlns:b="http://schemas.datacontract.org/2004/07/System.Net">
             <b:m_Address>16777215</b:m_Address>
             <b:m_Family>InterNetwork</b:m_Family>
             <b:m_HashCode>0</b:m_HashCode>
             <b:m_Numbers xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
               <c:unsignedShort>0</c:unsignedShort>
             </b:m_Numbers>
             <b:m_ScopeId>0</b:m_ScopeId>
           </SubnetMask>
           <UtilizationCalculationType>Auto</UtilizationCalculationType>
           <UtilizationEventLogStatus>None</UtilizationEventLogStatus>
           <UtilizationStatistics z:Id="i5" i:type="IPv4Utilization">
             <EndTime i:nil="true"></EndTime>
             <IsValid>true</IsValid>
             <StartTime i:nil="true"></StartTime>
             <TotalAssignedAddresses>0</TotalAssignedAddresses>
             <TotalAvailableAddresses>0</TotalAvailableAddresses>
             <TotalUtilizedAddresses>0</TotalUtilizedAddresses>
           </UtilizationStatistics>
         </IpamObject>
       </data>
     </EnumeratedRowsCallback>
   </s:Body>
 </s:Envelope>

The following is the enumeration completion notification by the server to the client.

 <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://Microsoft.Windows.Ipam/IIpamEnumerator/NotifyEnumerationComplete</a:Action>
     <a:To s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/anonymous</a:To>
   </s:Header>
   <s:Body>
     <NotifyEnumerationComplete xmlns="http://Microsoft.Windows.Ipam">
       <result i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"></result>
       <exception i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"></exception>
     </NotifyEnumerationComplete>
   </s:Body>
 </s:Envelope>