Patent ID: 8862703
Filing Date: 2014-10-14
Classification: G06F,H04L

Abstract:
1. A method, in a data processing system, of attributing network addresses to virtual machines, wherein all available network addresses are described as one or more continuous network address ranges, each network address range being respectively defined by a start address and an end address, the method comprising: receiving a request for a number of network addresses from a first requesting entity, thereby forming a requested number of network addresses; comparing a length of the one or more continuous ranges of unreserved and available network addresses in the memory to the requested number of network addresses; selecting a range of unreserved and available addresses from the one or more continuous unreserved and available network address ranges in the memory comprising a number of network addresses greater than the requested number of network addresses, thereby forming a selected range of available network addresses; defining a first new range comprising the requested number of network addresses excised from the selected range of unreserved and available network addresses; defining one or more further new ranges comprising the remainder of the selected range of unreserved and available network addresses not belonging to the first new range as a reserved network address range for the first requesting entity; attributing the first new range for the use of the first requesting entity; responsive to receiving a new request for a new number of network addresses from a second requesting entity, determining whether the second requesting entity is the same as the first requesting entity; responsive to the second requesting entity not being same as the first requesting entity, disregarding the reserved network address range in comparing the length of that range of available network addresses to the requested number of network addresses; responsive to the second requesting entity being the same as the first requesting entity, determining whether the reserved network address range is greater than or equal to the newly requested number of network addresses; responsive to the reserved network address range being greater than or equal to the newly requested number of network addresses, attributing one or more of the network addresses in the reserved network address range for the use of the first requesting entity; identifying contiguous reserved and available network address ranges or contiguous network address ranges attributed to the first requesting entity; and merging together identified adjacent network address ranges to form a single network address range, wherein successive requests for a same requested number of network addresses are cyclically attributed different ranges of network addresses, even in a case where network address ranges that had previously been attributed have been released before the next request.