ISR 4000s have the capability to “license” throughput.
the solution was built this way with clear goal in mind. previously it was hard to estimate how given router will perform under some random set of features. the CPU driven routers by themselves have a lot of challenges to address, so measuring performance and then sticking to it with each and every new software release was simply unrealistic. we published “kpps” numbers, but then got heat from our Customers, when performance was lower with each and every enabled service. with ISR 4000 we decided to go different route - the router is “good” for up to specific bandwidth - with all services enabled. that means it can go faster, but initially we limited this capability.
each and every router in Cisco portfolio is clearly a workhouse - you can run literally thousands of features on them from stateful firewalls, application filtering, QoS, VPNs, web proxy caches (WCCP) redirection for local and global (thanks to cooperation with Akamai), voice services… it’s hard to even list in one place. so, while all older routers of ISR G2 family were positioned as small/medium branch routers capable of doing up to 25Mbps (Cisco ISR 19xx series), up to 75Mbps (Cisco ISR 29xx series) or 350Mbps (Cisco ISR 39xx series), the real traffic mix and feature mix was hard to guess in advance. of course, some of our Customers used those boxes in line with their positioning, while some others used them (mainly 29xx and 39xx) to operate SP networks, reaching (with only bare features) throughput at 400-800Mbps level. that in turn was hard for Partners and Network Consulting Engineers, as performance was always “it depends” - nobody likes that.
with ISR 4000 we baseline and position any given model. you can be sure, that for typical services positioned on this router, even in the worst case, performance will be upheld. with recent changes, you can also open up the router scheduler “to the eleven”. how it’s done?
IOS-XE, multiple cores and virtualization
first of all, IOS-XE running on ISR 4000 series is using multi-core x86 CPU. we’re assigning cores to different functions as router boots. IOSd process is running as VM, responsible for major IOS functions. it is provisioned and run by IOS-XE on one of assigned cores for “control plane” operations. by extension, we’re designating specific CPU cores for data plane operations (traffic forwarding), and there’s also option to designate some of them along with memory for services (essentially, running VMs on top of your router).
Shaper or performance protection
next, there’s built in shaper. it’s designed in a way, that will limit possible load of CPU cores to specified amount. this is done to enforce limits to internal queues, RAM access times and physical interface load. that way we’re protecting the platform stable performance envelope - if your ISR 4321 is licensed to 50Mbps, even forwarding to it 500Mbps will result in 450Mbps of traffic dropped at input as per shaper specification. you can however reconfigure this sheduler:
c4321-r6(config)#platform hardware throughput level ? 100000 throughput in kbps 50000 throughput in kbps boost Enables unthrottled throughput traffic
with “boost” license activated, 4321 can forward easily more than 1Gbps worth of traffic. bear in mind however, it’s not magic - enabling features will cause performance drop.
if you are looking for different layers of your routing domain, bear in mind we’re offering also other platforms for routing - from fully virtualized IOS-XE router - CSR 1000v, small routers - ISR 1000 series, up to whole enterprise and service provider platform for NfV (Network function Virtualization) - ENCS 5000 - capable of running simultaneously different VMs and virtualized devices.