R
Roedy Green
I expect there will be great interest in efficiently solving the
banding problem as we move to IPv6.
It is akin to the problem of adding case ranges to Java.
See http://mindprod.com/projects/caserange.html
A router in IPv6 has packets coming in each labelled with an 128-bit
destination. The router is directly connected to N other nodes. You
have a giant table of IP bands/ranges, and which node each range goes
to.
You might also have some pseudo nodes which mean "alternate between
node a and b".
You have to very rapidly take the ultimate destination address and
find which band/range it belongs in.
There might not be enough molecules in the universe to build a direct
RAM table lookup. You need something clever to home in on it.
How would you do it?
Can you do better than binary search?
Perhaps some sort of nested partitioning by the high order bits with
direct RAM lookup.
If I let you design some parallel hardware, can you think of how it
might work? If you don't know anything about hardware design, imagine
how you might solve this with a Java machine with 1024 cpus and a
multithreaded design where synchronisation overhead was negligible.
If you think of something terribly clever, you might NOT want to post
it, but have a talk with a lawyer, then go see Cisco.
banding problem as we move to IPv6.
It is akin to the problem of adding case ranges to Java.
See http://mindprod.com/projects/caserange.html
A router in IPv6 has packets coming in each labelled with an 128-bit
destination. The router is directly connected to N other nodes. You
have a giant table of IP bands/ranges, and which node each range goes
to.
You might also have some pseudo nodes which mean "alternate between
node a and b".
You have to very rapidly take the ultimate destination address and
find which band/range it belongs in.
There might not be enough molecules in the universe to build a direct
RAM table lookup. You need something clever to home in on it.
How would you do it?
Can you do better than binary search?
Perhaps some sort of nested partitioning by the high order bits with
direct RAM lookup.
If I let you design some parallel hardware, can you think of how it
might work? If you don't know anything about hardware design, imagine
how you might solve this with a Java machine with 1024 cpus and a
multithreaded design where synchronisation overhead was negligible.
If you think of something terribly clever, you might NOT want to post
it, but have a talk with a lawyer, then go see Cisco.