interoperability testing

Recently, one customer prospect asked the Contrail team to build a POC lab using only non-Juniper network gear. The team managed to find a cisco ASR 900 as a loaner device and we had to make that device work as a data-center gateway.

Typically we use the Juniper MX as a the data-center gateway in our clusters. When you use an MX, the system somehow feels dated. It does feel like a 10+ year old design, which it is. But it is incredibly solid and feature rich. So one ends up accepting that it feels a bit dated as a tradeoff to its “swiss army knife” powers.

The cisco ASR 900 belongs to the 1k family and runs IOS as a user space process on Linux. I’d not used IOS in 3 years. My first impression was: this artifact belongs to the Computer History Museum. In fact the CHM (which is a fantastic museum) has several pieces in exhibition that are more recent that 1984, the year IOS debuted.

And IOS (even the version 15 in this loaner box) is a history trip. You get to see a routing table that precedes classes internet addresses, the config still outputs “bgp no-synchronization” despite the fact that IGP synchronization was already an obsolete concept in 1995 when i first started using IOS.

It took us forever to get to the configuration we needed. The online documentation is visibly incorrect to the point where some examples contain names of configuration objects which are presented with as “some_name” in one line and “some name” a few lines bellow. IOS “show running-config” is this magic entity that “eats up” configuration that is typed in when it believes it to be a default; “show” commands are broken. It is just awfull.

Cisco does have second and third operating systems: IOS XR and NXOS, which i don’t have direct experience using myself. However judging from the configuration guides available online, they look like a small incremental improvement rather than systems that re-thought some of the initial assumptions of IOS. They hardly look like next-generation systems.

The problem is that whether one likes or not cisco is the thought leader of the networking industry. If cisco doesn’t really believe in software engineering as a discipline, putting all emphasis in domain-experise, that thought is copied and carried over. If cisco does system level-test only (often only automated as an after-thought), that is the methodology adopted across the industry. Thus is cisco does a poor job, then typically the rest of the industry follows.

The interesting bit here is not to bash a specific company or product; my apologies for the direct criticism which is necessarily unfair. The question is whether that particular observation (my shock after a long time not using this software) has greater significance to the industry.

In a previous post i’ve argued that networking companies sell software cheaply compared to enterprise software. If one considers “average sales price” (ASP) networking gear has an approximately 65% margin. Servicing the hardware devices themselves will probably require a 30% margin: lets not forget that the vendor must do qualification, repair defective units and handle a large number of logistical challenges.

Thus the argument that networking software is actually inexpensive and that there is very little room for a vendor to enter the software market along with a whitebox strategy. The major flaw is that logic is an assumption that the quality of such software is good or at least acceptable.

I’m starting to question whether there isn’t indeed the market opportunity to build a networking software centric company that is successful. Not based on price but solely based on software quality (or lack thereof).


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s