\contentsline {chapter}{\numberline {1}BIRD Design}{4}
\contentsline {section}{\numberline {1.1}Introduction}{4}
\contentsline {section}{\numberline {1.2}Design goals}{4}
\contentsline {section}{\numberline {1.3}Architecture}{5}
\contentsline {section}{\numberline {1.4}Implementation}{5}
\contentsline {chapter}{\numberline {2}Core}{7}
\contentsline {section}{\numberline {2.1}Forwarding Information Base}{7}
\contentsline {section}{\numberline {2.2}Routing tables}{9}
\contentsline {section}{\numberline {2.3}Route attribute cache}{14}
\contentsline {section}{\numberline {2.4}Routing protocols}{18}
\contentsline {subsection}{\numberline {2.4.1}Introduction}{18}
\contentsline {subsection}{\numberline {2.4.2}Protocol states}{18}
\contentsline {subsection}{\numberline {2.4.3}Functions of the protocol module}{19}
\contentsline {section}{\numberline {2.5}Protocol hooks}{21}
\contentsline {section}{\numberline {2.6}Interfaces}{28}
\contentsline {section}{\numberline {2.7}Neighbor cache}{30}
\contentsline {section}{\numberline {2.8}Command line interface}{32}
\contentsline {section}{\numberline {2.9}Object locks}{33}
\contentsline {chapter}{\numberline {3}Configuration}{34}
\contentsline {section}{\numberline {3.1}Configuration manager}{34}
\contentsline {section}{\numberline {3.2}Lexical analyzer}{36}
\contentsline {section}{\numberline {3.3}Parser}{37}
\contentsline {chapter}{\numberline {4}Filters}{38}
\contentsline {section}{\numberline {4.1}Filters}{38}
\contentsline {chapter}{\numberline {5}Protocols}{41}
\contentsline {section}{\numberline {5.1}Border Gateway Protocol}{41}
\contentsline {section}{\numberline {5.2}Open Shortest Path First (OSPF)}{44}
\contentsline {section}{\numberline {5.3}Pipe}{50}
\contentsline {section}{\numberline {5.4}Routing Information Protocol}{50}
\contentsline {section}{\numberline {5.5}Static}{51}
\contentsline {section}{\numberline {5.6}Direct}{51}
\contentsline {chapter}{\numberline {6}System dependent parts}{52}
\contentsline {section}{\numberline {6.1}Introduction}{52}
\contentsline {section}{\numberline {6.2}Logging}{52}
\contentsline {section}{\numberline {6.3}Kernel synchronization}{53}
\contentsline {chapter}{\numberline {7}Library functions}{54}
\contentsline {section}{\numberline {7.1}IP addresses}{54}
\contentsline {section}{\numberline {7.2}Linked lists}{59}
\contentsline {section}{\numberline {7.3}Miscellaneous functions.}{60}
\contentsline {chapter}{\numberline {8}Resources}{64}
\contentsline {section}{\numberline {8.1}Introduction}{64}
\contentsline {section}{\numberline {8.2}Resource pools}{64}
\contentsline {section}{\numberline {8.3}Memory blocks}{66}
\contentsline {section}{\numberline {8.4}Linear memory pools}{67}
\contentsline {section}{\numberline {8.5}Slabs}{68}
\contentsline {section}{\numberline {8.6}Events}{69}
\contentsline {section}{\numberline {8.7}Timers}{70}
\contentsline {section}{\numberline {8.8}Sockets}{72}
