A Tree-Based Packet Routing Table for Berkeley Unix

Packet forwarding for OSI poses strong challenges for routing lookups: the algorithm must be able to efficiently accommodate variable length, and potentially very long addresses. The 4.3 Reno release of Berkeley UNIX† uses a reduced radix tree to make decisions about forwarding packets. This data structure is general enough to encompass protocol to link layer address translation such as the Address Resolution Protocol (ARP), and the End System to Intermediate System Protocol (ES−IS), and should apply to any hierarchical routing scheme, such as source and quality-of-service routing, or choosing between multiple Datakits on a single system. The system uses a message oriented mechanism to communicate between the kernel and user processes to maintain the routing database, inform user processes of spontaneous events such as redirects, routing lookup failures, and suspected timeouts through gateways.

[1]  Robert Sedgewick,et al.  Algorithms in C , 1990 .

[2]  N. S. Barnett,et al.  Private communication , 1969 .

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.