diff options
author | gdt <gdt> | 2005-02-15 17:10:03 +0000 |
---|---|---|
committer | gdt <gdt> | 2005-02-15 17:10:03 +0000 |
commit | b72d185dc7d3764a42c030ea2196180a629eb82d (patch) | |
tree | b539b22d9da6260da914654801072b50d3c5b3e4 | |
parent | 9c5d75f1746ee7db6bc74adaf63a02451c7c520d (diff) | |
download | quagga-b72d185dc7d3764a42c030ea2196180a629eb82d.tar.bz2 quagga-b72d185dc7d3764a42c030ea2196180a629eb82d.tar.xz |
Adjust size complexity estimates. Still not quite right, but closer.
-rw-r--r-- | bgpd/IMPLEMENTATION.txt | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bgpd/IMPLEMENTATION.txt b/bgpd/IMPLEMENTATION.txt index 782b51d3..ac087a38 100644 --- a/bgpd/IMPLEMENTATION.txt +++ b/bgpd/IMPLEMENTATION.txt @@ -150,10 +150,18 @@ bgpd.c Question: How much memory does quagga's bgpd use as a function of state received from peers? -It seems that a struct bgp_info is kept for each prefix, and this has -its own struct attr. aspath, etc. are 'interned' and shared. -So, it seems that 144 bytes are used per received prefix, plus storage -for all unique aspaths received. +It seems that a struct bgp_info is kept for each prefix. The "struct +attr *" is interned, and variables within that are interned. So, 40 +bytes are kept per received prefix, plus interned shared values. This +could be 36 if 'int suppress' where changed to a u_char and moved to +be with the other u_chars. Without MPLS, this could be 32 bytes. +Note that 8 bytes of this is linked list overhead, meaning that 24 +bytes are the raw per-prefix storage requirements. + +Also, a struct bgp_damp_info is apparently maintained per route; this +is fairly large (about 44 bytes). + +[TODO: the role of struct bgp_node.] * TIME COMPLEXITY |