3.3.4.123 RemapRange

The RemapRange operation is used to specifically map a particular range from a list of possible overlapping ranges to an address block.

 <wsdl:operation name="RemapRange">
   <wsdl:input wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/RemapRange" message="ipam:IIpamServer_RemapRange_InputMessage" />
   <wsdl:output wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/RemapRangeResponse" message="ipam:IIpamServer_RemapRange_OutputMessage" />
 </wsdl:operation>

Upon receiving the IIpamServer_RemapRange_InputMessage request message, the server performs the following processing steps. Upon successful completion of these steps, the server MUST respond with IIpamServer_RemapRange_OutputMessage. In the event of a failure, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1

  1. Get the IPRange corresponding to the RemapRange.rangeRecordId by calling the GetIPRangeFromTable procedure of the ADM_IPRangeTable passing the RemapRange.rangeRecordId as Param_id input parameter and RemapRange.addressFamily as the Param_addressfamily input parameter. Store the result output parameter as rangeToRemap

  2. If the rangeToRemap is NULL, return an appropriate SOAP fault to the client. 

  3. If the rangeToRemap.IPBlockId is already set, the rangeToRemap is already mapped to an address block and no further processing is required. 

  4. Get the IP address block that maps to this range by calling the GetParentBlockIdForRange procedure of ADM_IPBlocksTable with the following input parameters: 

  5. Param_StartIPAddress is assigned the value of rangeToRemap.StartIPAddress

  6. Param_EndIPAddress is assigned the value of rangeToRemap.EndIPAddress

  7. Param_PrefixLength is assigned the value of rangeToRemap.PrefixLength

  8. Param_RecordIdToExclude is set to 0. 

  9. The Result_MappingBlockRecordId returned by the above procedure is stored as ParentIPBlockId

  10. If ParentIPBlockId is 0, there are no valid blocks to remap the range to. Return an appropriate SOAP fault to the client. 

  11. Get the list of overlapping ranges for the rangeToRemap by calling the GetOverlappingRanges procedure of the ADM_IPRangeTable with the following input parameters: 

  12. Param_StartIPAddress is assigned the value of rangeToRemap.StartIPAddress

  13. Param_EndIPAddress is assigned the value of rangeToRemap.EndIPAddress

  14. Param_ExclusionRanges is assigned the value of rangeToRemap.ExclusionRanges

  15. Param_RecordIdToExclude is assigned the value of rangeToRemap.RecordId

  16. Result_OverlappingRows returned by the preceding steps is stored in PossibleOverlappingRanges

  17. For each row in the PossibleOverlappingRanges, set the IPBlockId to 0 and update the rows in the ADM_IPRangeTable

  18. Set the rangeToRemap.IPBlockId to ParentIPBlockId and update the row in the ADM_IPRangeTable