Allocating identifiers with minimal fragmentation
First Claim
1. A computer-implemented method, comprising:
- receiving a request to allocate an Internet Protocol (IP) address for an entity;
processing a plurality of blocks of IP addresses to determine a target block having at least as many unallocated IP addresses as any other block of the plurality of blocks;
processing, based at least in part on information with the entity, the target block to generate a first block and a second block, the first block comprising a first subset of the IP addresses of the target block, the second block comprising a second subset of the IP addresses, the second subset comprising a non-empty remainder of the IP addresses of the target block, the numerically lowest IP address of the second block being higher than the numerically highest IP address of the first block; and
allocating the second block to the entity.
1 Assignment
0 Petitions
Accused Products
Abstract
In certain embodiments, a system includes one or more memory units and one or more processing units. The memory units store blocks that each include a number of identifiers. The memory units include executable instructions that upon execution by the processing units cause the system to receive a request to allocate an identifier to an entity. The request includes data identifying the entity. A target block of identifiers is identified. The target block includes more unallocated identifiers than any other block. The target block is split into first and second blocks. The identifiers of the second block are each higher than any identifier of the first block. The second block is assigned to the entity, and a lowest identifier of the second block is allocated to the entity.
-
Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
receiving a request to allocate an Internet Protocol (IP) address for an entity; processing a plurality of blocks of IP addresses to determine a target block having at least as many unallocated IP addresses as any other block of the plurality of blocks; processing, based at least in part on information with the entity, the target block to generate a first block and a second block, the first block comprising a first subset of the IP addresses of the target block, the second block comprising a second subset of the IP addresses, the second subset comprising a non-empty remainder of the IP addresses of the target block, the numerically lowest IP address of the second block being higher than the numerically highest IP address of the first block; and allocating the second block to the entity. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
one or more processors; and memory that stores executable instructions that, when executed by the one or more processors, cause the one or more processors to at least; generate, for at least a first entity requesting allocation of a network identifier, a target block of network identifiers from a plurality of blocks of network identifiers, the target block having at least as many unallocated network identifiers as any other block of the plurality of blocks; determine a first block and a second block from the target block by at least; determining, based on information associated with the first entity, a size for the second block; processing the target block to generate the second block of the size, a lowest network identifier of the second block having a value higher than a lowest network identifier of the target blocks; and allocating a remainder of the network identifiers of the target block outside of the second block to the first block; and associate the second block with the first entity. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more non-transitory computer-readable media that stores executable instructions which, when executed by one or more processors of a computer system, cause the computer system to:
-
receive a request to allocate a block of network identifiers to an entity; select, based at least in part on information for the request, a target block from a plurality of blocks, the target block including at least as many unallocated network identifiers as any other block of the plurality of blocks; determine, based at least in part on the information, a size for the second block; generate, from the target block, the block having the determined size, a highest network identifier of the block having a value equal to a highest network identifier of the target block; allocate the block to the entity; and allocate at least some of a reminder of the target block outside of the block allocated to the entity to a different entity. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification