Foreword

This document describes the usage and input syntax of the Unix Vax-11 assembler As. As is designed for assembling code produced by the ‘C’ compiler; certain concessions have been made to handle code written directly by people, but in general little sympathy has been extended.

— Berkeley Vax/Unix Assembler Reference Manual (1983)

Designing software for embedded communication systems is mostly mysterious for an ordinary software developer even though such systems have been designed, developed, and deployed for decades in many different environments. Typically, knowledge about the specific challenges and issues encountered in designing and building embedded communications software is known in terms of anecdotes and folklore among the developers of embedded systems. Conferences like Communications Design Conference have recently started elevating this topic to the center stage, but this specific area of software design continues to remain mysterious. In contrast, popularity of the Web and Web- based services over less than a decade has spawned a wealth of technical literature on software design and development for Web Services.

Design and development of communication systems has experienced a major trend in recent years. Increasing emphasis on reducing the R&D costs has led to adoption of both merchant silicon and merchant (or third-party) software for building embedded communication systems. This trend has wide-spread ramifications requiring a new breed of software developers that understand building and integrating a wide variety of reusable software components that come together in networking systems such as switches, routers, traffic aggregators (DSLAM, CMTS), and load balancers. A variety of vendors, currently offering network processors, co-processors, and software stacks or individual protocol suites, attests to this trend.

For this trend to scale up, formal knowledge of how to design and develop embedded communication software for networking systems is necessary for beginners as well as experienced professionals. I am delighted to see that T. Sridhar, with his extensive experience in product development, has stepped up to fill the void with this book.

This is a very well organized book. It serves the needs of both a novice and an experienced programmer. For example, it first starts with an overview of the OSI Reference model, role of protocol software components, device drivers, and a list of design considerations that must be taken into account in early stages of product design. It then systematically walks the reader through the considerations specific to the communications software design including issues related to partitioning of functionality in communications software.

Once the reader has grasped these concepts, Sridhar walks the reader through the details of data structure design, buffer and timer management which form the backbone of any communications software component and are important for achieving a high-performance product. I really enjoyed the chapter on multi-board development which addresses an often ignored but difficult part of software design in this area. Finally, the book introduces the reader to the different phases of software development process and finishes with real-life examples of communication software design used in two of the most popular commercial products.

At Intel, we are excited at the opportunity to transform the networking industry by providing programmable building blocks. A part of this goal is to build a strong ecosystem of communication software providers that allow integration of complete networking systems out of merchant software and silicon. This book makes a significant contribution by de-mystifying important aspects of communications software design. Curricula at many universities today lack a good introduction to communication software design. In addition, for professional developers looking to participate in the emerging ecosystem of communication software design and development, this book is a perfect starting point to understand the basic principles and issues encountered in this area. I strongly recommend this book for both types of audience.

Raj Yavatkar
Chief Software Architect
Network Processing Group
Intel Corporation
May 2003



Designing Embedded Communications Software
Designing Embedded Communications Software
ISBN: 157820125X
EAN: 2147483647
Year: 2003
Pages: 126
Authors: T. Sridhar

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net