learn by doing

Cisco SDM

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.

comments powered by Disqus