Cisco SDM14 Apr 2013
This week I was required to configure for a client a Cisco 3550 remotely, via a console cable connected between his actual router (linux with Quagga) to this new router. His setup was with 2 BGP sessions, on each having the metro table (about 15K routes) + default route - quite easy in theory, but overall, I spent more time with this project that I was planning initially.
The problems began when I asked him to connect firstly the backup cable / session, to test the functionality. Although the BGP session was UP, the console and the log were filled with messages regarding 'memory fragmentation', 'bad allocation' and stuff like that. After a quick inspection, I thought the issue was caused by the IOS version, so I changed it. When I tested again, the warnings reappeared.
Well, Cisco has some memory allocation algorithm on several equipment families, like 3550, 3750,2950 etc, called SDM - Switching Database Manager.
In this way you can allocate the memory of the router / switch based on your desired goals:
Router(config)#sdm prefer ?
access multicast and qos/acl bias, drop unicast
extended-match Using extended match for unicast routing
routing unicast bias, drop qos/acl
vlan vlan bias, drop routing
In my case, it was a gigabit 3550, so the routing template was perfect for my scenario. The last step was to reboot the router and then all was functioning without any errors. In the end, I had this memory allocation:
Router#sh sdm prefer | i route
number of unicast routes: 24K
number of multicast routes: 6K
You can find a lot of documentation on Cisco's website, regarding the differences between templates and further explanations on this topic.