Assigning a prefix to a continent wouldn't be a good idea, because
that way every regional ISP has to
Well, that's what's been happening for a few years now...
But consider this:
announce the very large bitmap for the entire continent, while most of it
contains just zeros. Per metro area would be better. But two ISPs that
have many multi-homing customers in common could use a prefix for just the
two of them, regardless of geography.
Instead of a bit-vector with lots of zeros, do run-length encoding
of the bits you don't have, or the bits you do have.
Now compare that to doing automatic aggregation, so that instead
of 16 contiguous 1 bits you introduce a prefix of x.x.x.x/(n-4).
See what I mean by your bit-vector just being another representation
(possibly more efficient on the wire) of what's already there?
That is, you are noticing that for any given abstraction boundary
that is non-topological, exception routes (more specifics or
described with your bit-vector) have to be introduced when a black
hole would otherwise result, and may be desirable to optimize
This is why the RIRs' prefixes are announced as relatively long
chunks of /20s or so rather than the /8s or shorter as they are
gotten from IANA/ICANN/ASO/thin air/whatever.
If you try to take the same approach and have a "SRIR" (s = sub),
you will see a carving up of the prefixes over time, in the same fashion.
The ONLY way to avoid this right now is to have addressing exactly
match topology. The problem here of course is that nobody will
agree on which N entities are "top level".
I'm mostly trying to solve the memory problem, but it should also help
with (but certaintly not completely solve) the processing problem.
It doesn't really do either. You have made a few time-vs-space tradeoffs
which move the problems around a bit, but don't actually eliminate them.
Since an updated bitmap is always the same size and it updates many routes
at a time, it should take less CPU power to process the updates.
Parsing the received updates is not the major worry, and your
fix is targetted on the syntax of the updates, rather than
their semantics, which is where the problem lies.
I think the only way to really know what the processing benefits of all of
this are is implementing it, or run detailed simulations, but those
require pretty much an implementation as well.
Well, I won't stop you from testing an implementation or two. Write back
to the list (or better yet, the IDR list) when you're done.
Let me take some of your text out of context and agree with it fully:
[A permanently stable holes-in-CIDR-blocks environment exists]
Only if there is a limit on the number of ISPs. I don't think there
is such a [practical rather than absolute] limit
The problem with metro-based addressing is that the statement
above is equally true for it as for PA addressing.