28.06.2014 Views

Discussion

Discussion

Discussion

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Throughout 1997 and early 1998, all the Juniper engineering teams worked pretty<br />

much flat-out to finish the M40. The engineering labs were seldom quiet, and it was<br />

hard to tell the weekends from the weekdays by counting cars in the parking lot. The<br />

software teams designed and implemented a truly astonishing amount of code in a<br />

very short period of time. FreeBSD kernel extensions were added to provide support<br />

for chassis management and new Juniper network interfaces. A clean user interface<br />

was designed and implemented to provide a seamless interface to the system and prevent<br />

users from having to edit raw configuration files by hand. An entire embedded<br />

microkernel was written to manage the packet-forwarding engine boards in the system<br />

(a fully-loaded M40 would have nine PFE-related boards), which would allow<br />

users to exchange configuration and status messages with the routing engine and<br />

each other. Drivers for the embedded microkernel were written to manage the ASICs<br />

and to allow the route engine to configure the PFE. The size and complexity of the<br />

software required to manage just the various control boards eventually grew to rival<br />

the route engine itself.<br />

The real headache for the software team was that the hardware wasn’t available to<br />

test with. It can take many months after a system is assembled in the engineering lab<br />

to get it to a usable state as a complete system. But Juniper couldn’t afford for us to<br />

spend six months in the lab; there just wasn’t enough money or time. The solution<br />

was to get extremely creative with test equipment, evaluation boards, and generic<br />

PCs before the final hardware was available. All sorts of emulation environments<br />

were developed to allow the new routing engine and embedded software to be<br />

debugged ahead of the actual hardware. For months, we used a motley collection of<br />

machines cobbled together from parts and equipment that emulated the final hardware.<br />

We didn’t really have to disguise the lab for external visitors—they wouldn’t<br />

have been able to guess that each ratty bundle of machines was a virtual M40.<br />

The payback from this approach was enormous. When the hardware finally arrived,<br />

it took just one week in the engineering lab for the first network packets to be forwarded<br />

successfully! Considering the complexity of the routing engine and PFE<br />

interaction, this was a monumental achievement and meant that we could quickly<br />

verify that the hardware worked before shipping the systems to our early test customers<br />

in September of 1998.<br />

Designing and implementing the first release of the JUNOS software was an unforgettable<br />

time. Although the reader may think I’ve concentrated way too much on the<br />

hardware, the JUNOS software is intrinsically the way it is because of the hardware.<br />

That it has gone through so many iterations since then, and continues to evolve with<br />

the advancement of Juniper routers, is the first item you should learn in this book.<br />

The second thing that you should know is that although creating the JUNOS software<br />

really was a team effort, Aviva Garrett had the dubious task of documenting<br />

our efforts. In fact, she wrote the first manual. And then, as the manager of Juniper<br />

Networks technical publications, she led the effort from Version 1.0 until very<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2008 O’Reilly & Associates, Inc. All rights reserved.<br />

Foreword | xv

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!