Patent ID: 9009273
Filing Date: 2015-04-14
Classification: G06F,H04L

Abstract:
1. An apparatus comprising: a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to: receive a request for a number of network addresses from a first requesting entity, thereby forming a requested number of network addresses; compare a length of one or more continuous ranges of unreserved and available network addresses in the memory to the requested number of network addresses, wherein all unreserved and available addresses are described as the one or more continuous unreserved and available network address ranges, each network address range being respectively defined by a start address and an end address; select 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; define a first new range comprising the requested number of network addresses excised from the selected range of unreserved and available network addresses; define 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; attribute 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, determine 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, disregard 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, determine 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, attribute one or more of the network addresses in the reserved network address range for the use of the first requesting entity; identify 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.