\contentsline {chapter}{\numberline {1}BIRD Design}{4}{chapter.1}
\contentsline {section}{\numberline {1.1}Introduction}{4}{section.1.1}
\contentsline {section}{\numberline {1.2}Design goals}{4}{section.1.2}
\contentsline {section}{\numberline {1.3}Architecture}{5}{section.1.3}
\contentsline {section}{\numberline {1.4}Implementation}{5}{section.1.4}
\contentsline {chapter}{\numberline {2}Core}{7}{chapter.2}
\contentsline {section}{\numberline {2.1}Forwarding Information Base}{7}{section.2.1}
\contentsline {section}{\numberline {2.2}Routing tables}{9}{section.2.2}
\contentsline {section}{\numberline {2.3}Route attribute cache}{15}{section.2.3}
\contentsline {section}{\numberline {2.4}Routing protocols}{20}{section.2.4}
\contentsline {subsection}{\numberline {2.4.1}Introduction}{20}{subsection.2.4.1}
\contentsline {subsection}{\numberline {2.4.2}Protocol states}{21}{subsection.2.4.2}
\contentsline {subsection}{\numberline {2.4.3}Functions of the protocol module}{21}{subsection.2.4.3}
\contentsline {section}{\numberline {2.5}Graceful restart recovery}{24}{section.2.5}
\contentsline {section}{\numberline {2.6}Protocol hooks}{27}{section.2.6}
\contentsline {section}{\numberline {2.7}Interfaces}{34}{section.2.7}
\contentsline {section}{\numberline {2.8}Neighbor cache}{36}{section.2.8}
\contentsline {section}{\numberline {2.9}Command line interface}{38}{section.2.9}
\contentsline {section}{\numberline {2.10}Object locks}{40}{section.2.10}
\contentsline {chapter}{\numberline {3}Configuration}{41}{chapter.3}
\contentsline {section}{\numberline {3.1}Configuration manager}{41}{section.3.1}
\contentsline {section}{\numberline {3.2}Lexical analyzer}{44}{section.3.2}
\contentsline {section}{\numberline {3.3}Parser}{46}{section.3.3}
\contentsline {chapter}{\numberline {4}Filters}{47}{chapter.4}
\contentsline {section}{\numberline {4.1}Filters}{47}{section.4.1}
\contentsline {section}{\numberline {4.2}Trie for prefix sets}{49}{section.4.2}
\contentsline {chapter}{\numberline {5}Protocols}{52}{chapter.5}
\contentsline {section}{\numberline {5.1}The Babel protocol}{52}{section.5.1}
\contentsline {section}{\numberline {5.2}Bidirectional Forwarding Detection}{55}{section.5.2}
\contentsline {section}{\numberline {5.3}Border Gateway Protocol}{56}{section.5.3}
\contentsline {section}{\numberline {5.4}Multi-Threaded Routing Toolkit (MRT) protocol}{63}{section.5.4}
\contentsline {section}{\numberline {5.5}Open Shortest Path First (OSPF)}{63}{section.5.5}
\contentsline {section}{\numberline {5.6}Pipe}{70}{section.5.6}
\contentsline {section}{\numberline {5.7}Routing Information Protocol (RIP)}{70}{section.5.7}
\contentsline {section}{\numberline {5.8}Router Advertisements}{73}{section.5.8}
\contentsline {section}{\numberline {5.9}Static}{73}{section.5.9}
\contentsline {section}{\numberline {5.10}Direct}{74}{section.5.10}
\contentsline {chapter}{\numberline {6}System dependent parts}{75}{chapter.6}
\contentsline {section}{\numberline {6.1}Introduction}{75}{section.6.1}
\contentsline {section}{\numberline {6.2}Logging}{75}{section.6.2}
\contentsline {section}{\numberline {6.3}Kernel synchronization}{76}{section.6.3}
\contentsline {chapter}{\numberline {7}Library functions}{78}{chapter.7}
\contentsline {section}{\numberline {7.1}IP addresses}{78}{section.7.1}
\contentsline {section}{\numberline {7.2}Linked lists}{82}{section.7.2}
\contentsline {section}{\numberline {7.3}Miscellaneous functions.}{84}{section.7.3}
\contentsline {section}{\numberline {7.4}Message authentication codes}{88}{section.7.4}
\contentsline {chapter}{\numberline {8}Resources}{91}{chapter.8}
\contentsline {section}{\numberline {8.1}Introduction}{91}{section.8.1}
\contentsline {section}{\numberline {8.2}Resource pools}{91}{section.8.2}
\contentsline {section}{\numberline {8.3}Memory blocks}{93}{section.8.3}
\contentsline {section}{\numberline {8.4}Linear memory pools}{94}{section.8.4}
\contentsline {section}{\numberline {8.5}Slabs}{95}{section.8.5}
\contentsline {section}{\numberline {8.6}Events}{96}{section.8.6}
\contentsline {section}{\numberline {8.7}Timers}{97}{section.8.7}
\contentsline {section}{\numberline {8.8}Sockets}{99}{section.8.8}
