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