At the present time there exists an unmet need for a fully open source router running Linux or BSD that supports more than just Ethernet. While there is a plethora of Linux-based and BSD-based open source router products on the market today, the vast majority of them are effectively nothing more than Ethernet-to-Ethernet devices. However, traditional non-Ethernet WAN technologies like V.35, T1/E1 and DS3/E3 still exist despite the younger geek generation's desire to ignore them, and there is an unmet need to support them in a fully open source manner.
At the present time if one needs a robust well-supported WAN router with both Ethernet and non-Ethernet WAN ports, the only practical option is Cisco. But while Cisco makes some very good products, there is one distinct disadvantage: it is a proprietary closed source platform. Cisco's hardware interface for pluggable WAN modules is proprietary, and the software running on their routers is closed source. Thus those users who require a 100% open source solution and whose networking world view includes more than just Ethernet are currently left with an unmet need.
We have a design that is intended to fill this unmet need. It will be a 5-port modular router/gateway (an implementation of RFC 1009) supporting both Ethernet and non-Ethernet (WAN) network interfaces. It will run Linux or BSD as its OS and will be heavily based on open source hardware principles as well.
Specifically, HECGW will be based on one of the MPC86x (MPC860, MPC862 or MPC866) telecom PowerPC processors from Freescale. (Probably MPC866 if we go with the current plan, see below.) Each of these processors is effectively a router on a chip with 5 ports: 1 FEC (Fast Ethernet Controller) and 4 SCCs (Serial Communication Controllers). These processors are very open, very well documented and very well supported by both Linux and BSD. They are also a very solid and mature networking silicon product from a telecom industry leader.
In terms of the physical form factor HECGW is envisioned as a standard 19" rack width, 1U height appliance consisting of a custom motherboard with the MPC86x processor and 4 daughtercard slots for various network interface modules. The FEC port will be hard-wired as a 10/100 Mbps Ethernet jack whereas the SCC ports will be brought out to the daughtercard slots. This arrangement will support the following Ethernet and non-Ethernet WAN interfaces:
MPC86x SCC cores support HDLC, UART and serial ATM among other protocols. Physical interface glue modules (daughtercards to be installed inside the HECGW chassis) can be made for any number of WAN types including:
The summary description above mentions a custom motherboard with the MPC86x
processor on it, providing 4 daughtercard slots to which the SCC signals are
routed. The more detailed plan calls for this motherboard
to consist
of two components: a mostly-passive midplane and an MPC86x CPU card that may
potentially be reused in other projects.
The original plan was to use a CPU card from
Embedded Planet, specifically
their EP86x.
However, this plan has been changed when it came to light that Embedded Planet
is one of those shitty companies obsessed with intellectual property
and zealously guards their schematics.
(If a board is not an end user product but is meant to be incorporated into
other designs, schematics should be considered an essential documentation item
to be provided automatically to all customers, but Embedded Planet holds
otherwise: they refuse to provide schematics even to customers who have already
bought the physical hardware and forked over a big chunk of change for it.)
Instead of using the EP866 card we'll be making our own HECCPU-866 as a true Open Source Hardware module. However, we shall copy the general idea and even the form factor from EP86x; copying EP's form factor will allow us to build the midplane and bring up some basic HECGW functionality using an EP866 card we already have as a bring-up vehicle, well before tackling the considerably more difficult HECCPU project.
Thus the vision of the HECGW in the mind of its inventor consists of the following:
MPC866 CPU module: we'll use the existing sans-schematics one from Embedded Planet as our bring-up vehicle, then build our own Open Source Hardware replacement. This module contains the basic necessities like RAM and flash to get the CPU running as well as the 10/100 Mbps Ethernet PHY on the FEC port. Expansion connectors bring out the rest of the signals off the chip. (EP's version has some other on-board peripherals which we won't be using; they will be disabled on the bring-up vehicle and our HECCPU-866 won't have them at all.)
A custom midplane we are going to make which will host the MPC866 CPU module just mentioned and bring the SCC signals out to 4 identical daughtercard slots.
A defined form factor for the SCC daughtercards we are going to invent.
A custom chassis design will be needed to hold all this together.
Some off-the-shelf power supply mounted inside the chassis will take AC in and feed a set of standard DC voltages to the midplane; all other modules will take their power from the midplane. (We have a few miniature enclosed-frame power supplies which put out standard ATX: they seem perfect for this job.)
Software: a standard Linux build plus a few special kernel modules and configuration utilities to support the non-Ethernet WAN interfaces, all totally free and open source of course.
As mentioned in passing above, we already have a couple of MPC866 CPU modules from Embedded Planet, albeit without schematics. The plan is to make a functional HECGW prototype by building just the midplane, which should be a very simple board, mostly passive and few signals. The SCC daughtercard form factor (which remains to be specified) will be made such that our midplane will be able to hold both CPU and SCC daughtercards reasonably securely without a chassis; combining this design with the use of ATX power input to the midplane is expected to make it feasible to bring up something functional with many of the expenses (CPU card and chassis design, both time and money) cut out of the critical path.
If you would like to follow the progress of our project, you can check it out of our public CVS repository as follows:
cvs -d :pserver:anoncvs@ifctfvax.Harhan.ORG:/fs1/IFCTF-cvs co HECGW