Third-Party Software For Cisco Routers?

Oct 28, 2010 3 Replies

Hi All,



I have been assuming for years that Cisco will not allow third-party software to run on their routers, then realized tonight that I should ask instead of assuming.



Two questions:


  1. Has IOS morphed into a full-blown operating system or is it stil what it was 20 years ago?


  1. Is there any way of getting 3rd-party software onto a commercial Cisco router? More than 99% of the software would be written in The Purest C++, but the remaining 1% would require robust synchronization primitives from the underlying OS, including threads, mutexes, events, semaphores, etc. Gutting the router just to get my software onto it would not be an option. I would need to add the software to already- deployed routers.



Ideally, Cisco would offer somthing like Juniper's JunOS SDK:



formatting link
TIA,


-Le Chaud Lapin-


IOS is a narrow view of what Cisco is using now, so you can't be so generic. Ie. they have NX-OS for switches (which is linux underneath). Samething with the ASA's as of version 8.2+ or so. There are also two more variations of IOS.

Configs are simular enough from one varient to another.

I'd say it is a full blown OS, but they don't give you access beyond their command shell and probably never will, so its probably not moot to what you want.

Cisco came out with kind of a product for you. Its not cheap though. I also don't know the future path of it, since its only listed for the ISR and not the ISR G2.

formatting link
Basicly a PC on a card, that lets you write sandboxed code to run on it that can interface to the router in interesting ways. Probably not tight enough integration for you though.

Cisco also has the EEM system that could launch TCL scripts based on certain conditions.

Well, JunOS has it easy, since its FreeBSD running on a PC, just with a whole lotta hardware ASIC muscle behind that. Cisco isn't going to let you interface to the linux kernel that hides behind some of its newer IOS lines though.

As Doug says:- Many/most/all routers now have TCL. It has a lot of hooks into the underlying OS and seems quite capable. You need a fancy Feature Set.

To start to learn TCL a few years ago I wrote a Game Of Life that ran on TCL on IOS. I didn't get the job and so never did any more.

Hmmm. My code won't run now.

Very odd, I did all the development by editing off-line and pasting the code in to a VTY to run it but that no longer works since IOS does not seem to correctly buffer the input and code is getting lost.

Probably a bug that has been fixed. I am on c870-advipservicesk9-mz.124-15.T7.bin at present.

Oh yes; the Game of Life was done on dynamips. I can't remember whether I used a VTY or the console.

Quite cool.

Game of Life on TCL on IOS on Dynamips router emulator (likes Linux) on Cygwin linux emulator (dynamips on windows always uses cygwin) on Windows Vista

Miracle it worked at all but it really did. Just shows how robust modern software can be.

Here is what happens on an 877 I have here.

tt#tclsh

Then pasting this in:-

set x "a b c" puts "Item at index 2 of the list {$x} is: [lindex $x 2]\n"

Produces this

tt(tcl)#set x "a b c" a b c tt(tcl)#]\n" invalid command name "] "" ^ % Invalid input detected at '^' marker.

tt(tcl)#

Pasting the lines seperately does work as expected.

Years ago someone did a linux build for IOS that could be put on a 2500 router. No use at all but I understand it did run.

[snip]

How unfortunate.

Knowing that the back end for Cisco has beciome, in some cases, Linux, is still useful, however.

I guess I will take what I can and focus on Juniper.

-Le Chaud Lapin-

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required