Film at 11:00

BTW, really all data incorporated from BGP protocl for
3 - 8 core routings do not need more than 32MB RAM; the fact CISCO
need more than 32MB ram for core routing is due to inefficient data
structures... Exactly it's because they (I think) have solved some
other task (not minimize memory, but CPU and development time).

What is really 100K routes?


Of cource, it's not true - really we can expect about 64 bytes/route.

64 bytes * 100K = 6 Mb RAM. I can propose it's nessesary 128bytes - it'll be

Umm - also, you have memory used for the IP routing table. I don't know
how big any of these data structures are - but I do know that it seems that
the IP routing table representation uses even more ram than than the BGP
routing table version.

Also, what about overhead? OK, let's say you can share memory for common
AS-PATHs. But how do you find them? How do you store them? Remember,
you want to be able to add or delete 14k routes in a few seconds at most.

Then, what about buffering? If a switch you're hooked to burps, you need
to (want to) have enough memory to buffer that (though Ciscos like to do
it on the cards, I think).

But anyway, if somebody designes specially INTERNET CORE router,
he can hold any core routing tables in 16 MB RAM, not more. There is
a lot of different ways to minimise memory usage.

A 2501 is/was within a few k of being able to hold a core routing table in
16mb (w/ the OS image running out of flash). But it lacks memory and
cpu to then switch packets - and if someone adds a few K extra routes
god help you.

Aleksei Roudnev, Network Operations Center, Relcom, Moscow

tli or pferguso might be able to shed some light on the actual numbers,
assuming he has the time and interest :slight_smile:


tli or pferguso might be able to shed some light on the actual numbers,
   assuming he has the time and interest :slight_smile:

cisco might consider those numbers a trade secret, so I'll decline. I'll
simply point out that yours truly worked quite hard at conserving memory.
As you correctly point out, there is indeed the inevitable time space
tradeoff, and so some memory inefficiency is inevitable as there's only a
finite amount of time (always insufficient, natch ;-).

You might also recall that there's forwarding table, the cache, and then
the SSE data structures. BGP is very efficient as a whole. The problem is
that it's just a big messy problem.