Opened 8 years ago

Closed 3 years ago

#24 closed enhancement (fixed)

Block munging - "reserve space for growth"

Reported by: kdeugau Owned by:
Priority: minor Milestone: 3.0
Version: Keywords:


In case of an allocation for a customer who may require more address space in the near future, and would like to keep that address space contiguous, allow a flag to be set on the original allocation (and the resulting free space blocks) that the free space immediately after the original allocation should be reserved to allow for this expansion.

Needs to have a method to manually return this reserved space to the free pool in case of running low on available free blocks.

Related to #8, and peripherally #7.

Change History (10)

comment:1 Changed 8 years ago by kdeugau

This is somewhat more important for IPv6, since it's officially recommended best practice.


  • Radio button defaulting to 1 bit (double), allow "no expansion" and 2 bits (quadruple)
  • or a dropdown with 0-8? 0-4? (4 == 16x - can't see anyone knowing they'll need that much later but not yet, soon enough to matter... mostly.)
  • expand routing column in freeblocks: value "e<n>" shows freeblock reserved for expansion, at <n> bits

comment:2 Changed 3 years ago by kdeugau

  • Milestone set to 3.0

comment:3 Changed 3 years ago by kdeugau

(In [692]) /trunk

Start adding support for advisory "reserved block" assignments - when
creating a new assignment, flag an equal-sized block ahead or behind
to expand the assignment in the future. See #24.

  • free block assignment
  • guided assignment (still needs tweaking to dodge existing reserved blocks)
  • note flagged blocks in free block list

comment:4 Changed 3 years ago by kdeugau

(In [693]) /trunk

Exclude reserved freeblocks from guided assignment. See #24.

comment:5 Changed 3 years ago by kdeugau

(In [695]) /trunk

Mostly fix up edge case of extending an IP pool allocation. See #24.

comment:6 Changed 3 years ago by kdeugau

(In [696]) /trunk

Fix most of the edge cases for initPool() being called on extending a
pool. Callers would be responsible for cleaning up parent_id in the
case of eg "merge pools". See #24.

comment:7 Changed 3 years ago by kdeugau

This seems to be complete in the case of "reserve an equal-sized space". Leaving open for a little while to ponder whether it's worth trying to support larger reserve spaces.

I decided that hiding the reserve block would only confuse things (based on reported preferred methods of netblock assignment), but the "guided" assignment will honour the reserved blocks. This could arguably have a flag available to consider reserved blocks, or consider reserved blocks if no other blocks are available.

comment:8 Changed 3 years ago by kdeugau

(In [698]) /trunk

Missed an added field for adding a reserved block on a container on the
call to add the container's contained freeblock in r692. See #24.

comment:9 Changed 3 years ago by kdeugau

(In [721]) /trunk

Fix bug adding new freeblocks after splitting a free block for a new
assignment; the free block that would be reserved would (almost?) always
be flagged, even when that wasn't requested.
See #24.

comment:10 Changed 3 years ago by kdeugau

  • Resolution set to fixed
  • Status changed from new to closed

Resolving as "Feature Implemented"; there are refinements and enhancements possible but none critical.

Note: See TracTickets for help on using tickets.