Talk about your narrow market niche.
In biology, a “niche” is defined as a specific, well-defined region where life can exist. Swordfish like water with a particular temperature, salinity, and depth. They have a narrow ecological niche. Koalas live only in eucalyptus trees, which in turn, grow only at certain temperatures, soil conditions, and climate. Cockroaches, well, they can live most anywhere.
In the embedded software world, there’s a small company that’s worked out its narrow market niche. If you’re looking for IPv6 packet processing for multicore processors running embedded Linux, 6Wind is the company you want to talk to.
As small as the company is, it serves a big ecosystem of customers. Ericsson, Motorola, Alcatel, Nokia, Hitachi, and other communications heavyweights all use 6Wind’s software in their products. You can also find 6Wind’s network software on board-level product from RadiSys, Emerson, and others.
The group numbers about 40 individuals, split 50/50 between France and China (with one token American for marketing). It’s been profitable since 2008, which is more than a lot of smallish software startups can say. That’s especially surprising given 6Wind’s narrowly defined niche. There are only so many people who need multicore Linux packet-processing software.
Especially since Linux does packet processing already. And it’s free. How much better can 6wind’s commercial alternative be?
Quite a bit better, says the company (somewhat predictably). Expect something like 7x the performance of your current Linux distribution but with the same APIs. Since the processing interfaces don’t change, your application software won’t know the difference, and neither will the kernel. It’s essentially a drop-in replacement for the open-source packet-processing stack, but better.
You’ll pay for this goodness, of course. There’s an up-front license fee and then downstream royalties when you start shipping product. The company will be happy to discuss the size of those fees if you ask them nicely.
The programmers at 6Wind aren’t religious about processor architecture, either. They currently support multicore MIPS chips from Cavium and NetLogic/RMI (formerly Raza), PowerPC-based chips from Freescale, and x86 processor from the usual suspects. They’re amenable to supporting other CPU architectures, too, if you make it worth their while.
All in all, 6Wind is a company that’s found a small but profitable niche to occupy. Their stuff isn’t for everyone, but if you’re designing network-enabled gizmos on multicore processors – and who isn’t? – then these might be your guys. One of the charms of Linux is that it’s almost infinitely adjustable and extendable, so replacing a small part of the standard network stack is not only possible, but encouraged. And offloading this arcane piece of plumbing to outside experts is also a good example of design reuse. They’ve performance-tuned the packet processing so you don’t have to. And if your product is sensitive to network performance, it just might be worth the money.