747 KB
/srv/reproducible-results/rbuild-debian/r-b-build.R55WpcOC/b1/bird_1.6.8-2.1_armhf.changes vs.
/srv/reproducible-results/rbuild-debian/r-b-build.R55WpcOC/b2/bird_1.6.8-2.1_armhf.changes
450 B
Files
    
Offset 1, 5 lines modifiedOffset 1, 5 lines modified
  
1 ·066eb5595aaabcb50a3798e1c1a6698e·222352·oldlibs·optional·bird-bgp_1.6.8-2.1_all.deb1 ·066eb5595aaabcb50a3798e1c1a6698e·222352·oldlibs·optional·bird-bgp_1.6.8-2.1_all.deb
2 ·6b48574abb327332e8f40850eb41a8b1·1906304·debug·optional·bird-dbgsym_1.6.8-2.1_armhf.deb2 ·6b48574abb327332e8f40850eb41a8b1·1906304·debug·optional·bird-dbgsym_1.6.8-2.1_armhf.deb
3 ·bca4308fab7847e06f3035d0aeda9492·1137208·doc·optional·bird-doc_1.6.8-2.1_all.deb3 ·a4b2db16c4cab1640ea52da969fc7594·1136688·doc·optional·bird-doc_1.6.8-2.1_all.deb
4 ·1b471acbf9e30c590e6713a8f9e707d0·548480·net·optional·bird_1.6.8-2.1_armhf.deb4 ·1b471acbf9e30c590e6713a8f9e707d0·548480·net·optional·bird_1.6.8-2.1_armhf.deb
746 KB
bird-doc_1.6.8-2.1_all.deb
367 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2021-01-02·16:40:39.000000·debian-binary1 -rw-r--r--···0········0········0········4·2021-01-02·16:40:39.000000·debian-binary
2 -rw-r--r--···0········0········0·····1160·2021-01-02·16:40:39.000000·control.tar.xz2 -rw-r--r--···0········0········0·····1160·2021-01-02·16:40:39.000000·control.tar.xz
3 -rw-r--r--···0········0········0··1135856·2021-01-02·16:40:39.000000·data.tar.xz3 -rw-r--r--···0········0········0··1135336·2021-01-02·16:40:39.000000·data.tar.xz
629 B
control.tar.xz
601 B
control.tar
531 B
./control
    
Offset 1, 13 lines modifiedOffset 1, 13 lines modified
1 Package:·bird-doc1 Package:·bird-doc
2 Source:·bird2 Source:·bird
3 Version:·1.6.8-2.13 Version:·1.6.8-2.1
4 Architecture:·all4 Architecture:·all
5 Maintainer:·Ondřej·Surý·<ondrej@debian.org>5 Maintainer:·Ondřej·Surý·<ondrej@debian.org>
6 Installed-Size:·19316 Installed-Size:·1934
7 Section:·doc7 Section:·doc
8 Priority:·optional8 Priority:·optional
9 Homepage:·http://bird.network.cz/9 Homepage:·http://bird.network.cz/
10 Description:·Internet·Routing·Daemon·-·documentation10 Description:·Internet·Routing·Daemon·-·documentation
11 ·BIRD·is·an·Internet·routing·daemon·with·full·support·for·all·the·major11 ·BIRD·is·an·Internet·routing·daemon·with·full·support·for·all·the·major
12 ·routing·protocols.·It·allows·redistribution·between·protocols·with·a12 ·routing·protocols.·It·allows·redistribution·between·protocols·with·a
13 ·powerful·route·filtering·syntax·and·an·easy-to-use·configuration13 ·powerful·route·filtering·syntax·and·an·easy-to-use·configuration
48.0 B
./md5sums
30.0 B
./md5sums
Files differ
745 KB
data.tar.xz
745 KB
data.tar
2.92 KB
file list
    
Offset 6, 22 lines modifiedOffset 6, 22 lines modified
6 -rw-r--r--···0·root·········(0)·root·········(0)·····9127·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-1.html6 -rw-r--r--···0·root·········(0)·root·········(0)·····9127·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-1.html
7 -rw-r--r--···0·root·········(0)·root·········(0)·····4473·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-2.html7 -rw-r--r--···0·root·········(0)·root·········(0)·····4473·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-2.html
8 -rw-r--r--···0·root·········(0)·root·········(0)····25706·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-3.html8 -rw-r--r--···0·root·········(0)·root·········(0)····25706·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-3.html
9 -rw-r--r--···0·root·········(0)·root·········(0)····12630·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-4.html9 -rw-r--r--···0·root·········(0)·root·········(0)····12630·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-4.html
10 -rw-r--r--···0·root·········(0)·root·········(0)····27163·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-5.html10 -rw-r--r--···0·root·········(0)·root·········(0)····27163·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-5.html
11 -rw-r--r--···0·root·········(0)·root·········(0)···138087·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-6.html11 -rw-r--r--···0·root·········(0)·root·········(0)···138087·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-6.html
12 -rw-r--r--···0·root·········(0)·root·········(0)·····2368·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-7.html12 -rw-r--r--···0·root·········(0)·root·········(0)·····2368·2019-09-11·18:24:49.000000·./usr/share/doc/bird-doc/bird-7.html
13 -rw-r--r--···0·root·········(0)·root·········(0)···404523·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/bird.html13 -rw-r--r--···0·root·········(0)·root·········(0)···214250·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/bird.html
14 -rw-r--r--···0·root·········(0)·root·········(0)···354380·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/bird.pdf.gz14 -rw-r--r--···0·root·········(0)·root·········(0)···354380·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/bird.pdf.gz
15 -rw-r--r--···0·root·········(0)·root·········(0)······530·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/changelog.Debian.gz15 -rw-r--r--···0·root·········(0)·root·········(0)······530·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/changelog.Debian.gz
16 -rw-r--r--···0·root·········(0)·root·········(0)···218404·2019-09-11·18:24:51.000000·./usr/share/doc/bird-doc/changelog.gz16 -rw-r--r--···0·root·········(0)·root·········(0)···218404·2019-09-11·18:24:51.000000·./usr/share/doc/bird-doc/changelog.gz
17 -rw-r--r--···0·root·········(0)·root·········(0)·····2204·2021-01-02·16:15:10.000000·./usr/share/doc/bird-doc/copyright17 -rw-r--r--···0·root·········(0)·root·········(0)·····2204·2021-01-02·16:15:10.000000·./usr/share/doc/bird-doc/copyright
18 -rw-r--r--···0·root·········(0)·root·········(0)·····8865·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-1.html18 -rw-r--r--···0·root·········(0)·root·········(0)·····8865·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-1.html
19 -rw-r--r--···0·root·········(0)·root·········(0)····88673·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-2.html19 -rw-r--r--···0·root·········(0)·root·········(0)····88673·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-2.html
20 -rw-r--r--···0·root·········(0)·root·········(0)····15475·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-3.html20 -rw-r--r--···0·root·········(0)·root·········(0)····15475·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-3.html
21 -rw-r--r--···0·root·········(0)·root·········(0)····13306·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-4.html21 -rw-r--r--···0·root·········(0)·root·········(0)····13306·2019-09-11·18:24:45.000000·./usr/share/doc/bird-doc/prog-4.html
22 -rw-r--r--···0·root·········(0)·root·········(0)····66702·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-5.html22 -rw-r--r--···0·root·········(0)·root·········(0)····66702·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-5.html
23 -rw-r--r--···0·root·········(0)·root·········(0)·····6594·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-6.html23 -rw-r--r--···0·root·········(0)·root·········(0)·····6594·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-6.html
24 -rw-r--r--···0·root·········(0)·root·········(0)····25846·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-7.html24 -rw-r--r--···0·root·········(0)·root·········(0)····25846·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-7.html
25 -rw-r--r--···0·root·········(0)·root·········(0)····28326·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-8.html25 -rw-r--r--···0·root·········(0)·root·········(0)····28326·2019-09-11·18:24:46.000000·./usr/share/doc/bird-doc/prog-8.html
26 -rw-r--r--···0·root·········(0)·root·········(0)····55213·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/prog.html26 -rw-r--r--···0·root·········(0)·root·········(0)···248478·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/prog.html
27 -rw-r--r--···0·root·········(0)·root·········(0)···450103·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/prog.pdf.gz27 -rw-r--r--···0·root·········(0)·root·········(0)···450103·2021-01-02·16:40:39.000000·./usr/share/doc/bird-doc/prog.pdf.gz
367 KB
./usr/share/doc/bird-doc/bird.html
    
Offset 319, 34 lines modifiedOffset 319, 14 lines modified
319 ········import·all;319 ········import·all;
320 ········interface·"*";320 ········interface·"*";
321 }321 }
322 </PRE>322 </PRE>
323 <HR>323 <HR>
324 <P>324 <P>
325 <P>325 <P>
326 <H2><A·NAME="s1">1.·BIRD·Design</A></H2> 
  
327 <H2><A·NAME="ss1.1">1.1·Introduction</A> 
328 </H2> 
  
329 <P>This·document·describes·the·internal·workings·of·BIRD,·its·architecture, 
330 design·decisions·and·rationale·behind·them.·It·also·contains·documentation·on 
331 all·the·essential·components·of·the·system·and·their·interfaces. 
332 <P> 
333 <P>Routing·daemons·are·complicated·things·which·need·to·act·in·real·time 
334 to·complex·sequences·of·external·events,·respond·correctly·even·to·the·most·erroneous·behavior 
335 of·their·environment·and·still·handle·enormous·amount·of·data·with·reasonable 
336 speed.·Due·to·all·of·this,·their·design·is·very·tricky·as·one·needs·to·carefully 
337 balance·between·efficiency,·stability·and·(last,·but·not·least)·simplicity·of 
338 the·program·and·it·would·be·possible·to·write·literally·hundreds·of·pages·about 
339 all·of·these·issues.·In·accordance·to·the·famous·quote·of·Anton·Chekhov·"Shortness 
340 is·a·sister·of·talent",·we've·tried·to·write·a·much·shorter·document·highlighting 
341 the·most·important·stuff·and·leaving·the·boring·technical·details·better·explained 
342 by·the·program·source·itself·together·with·comments·contained·therein. 
343 <P> 
344 <H2><A·NAME="ss3.2">3.2·Global·options</A>326 <H2><A·NAME="ss3.2">3.2·Global·options</A>
345 <@@label>global-opts</H2>327 <@@label>global-opts</H2>
  
346 <P>328 <P>
347 <DL>329 <DL>
348 <DT><CODE>330 <DT><CODE>
349 <@@label>opt-include331 <@@label>opt-include
Offset 526, 155 lines modifiedOffset 506, 14 lines modified
526 <P>506 <P>
527 <DT><CODE>507 <DT><CODE>
528 <@@label>opt-eval508 <@@label>opt-eval
529 eval·<I>expr</I></CODE><DD><P>Evaluates·given·filter·expression.·It·is·used·by·us·for···testing·of·filters.509 eval·<I>expr</I></CODE><DD><P>Evaluates·given·filter·expression.·It·is·used·by·us·for···testing·of·filters.
530 </DL>510 </DL>
531 <P>511 <P>
532 <P>512 <P>
533 <H2><A·NAME="ss1.2">1.2·Design·goals</A> 
534 </H2> 
  
535 <P>When·planning·the·architecture·of·BIRD,·we've·taken·a·close·look·at·the·other·existing·routing 
536 daemons·and·also·at·some·of·the·operating·systems·used·on·dedicated·routers,·gathered·all·important 
537 features·and·added·lots·of·new·ones·to·overcome·their·shortcomings·and·to·better·match·the·requirements 
538 of·routing·in·today's·Internet:·IPv6,·policy·routing,·route·filtering·and·so·on.·From·this 
539 planning,·the·following·set·of·design·goals·has·arisen: 
540 <P> 
541 <UL> 
542 <LI><I>Support·all·the·standard·routing·protocols·and·make·it·easy·to·add·new·ones.</I> 
543 This·leads·to·modularity·and·clean·separation·between·the·core·and·the·protocols. 
544 </LI> 
545 <LI><I>Support·both·IPv4·and·IPv6·in·the·same·source·tree,·re-using·most·of·the·code.</I> 
546 This·leads·to·abstraction·of·IP·addresses·and·operations·on·them. 
547 </LI> 
548 <LI><I>Minimize·OS·dependent·code·to·make·porting·as·easy·as·possible.</I> 
549 Unfortunately,·such·code·cannot·be·avoided·at·all·as·the·details·of·communication·with 
550 the·IP·stack·differ·from·OS·to·OS·and·they·often·vary·even·between·different 
551 versions·of·the·same·OS.·But·we·can·isolate·such·code·in·special·modules·and 
552 do·the·porting·by·changing·or·replacing·just·these·modules. 
553 Also,·don't·rely·on·specific·features·of·various·operating·systems,·but·be·able 
554 to·make·use·of·them·if·they·are·available. 
555 </LI> 
556 <LI><I>Allow·multiple·routing·tables.</I> 
557 Easily·solvable·by·abstracting·out·routing·tables·and·the·corresponding·operations. 
558 </LI> 
559 <LI><I>Offer·powerful·route·filtering.</I> 
560 There·already·were·several·attempts·to·incorporate·route·filters·to·a·dynamic·router, 
561 but·most·of·them·have·used·simple·sequences·of·filtering·rules·which·were·very·inflexible 
562 and·hard·to·use·for·non-trivial·filters.·We've·decided·to·employ·a·simple·loop-free 
563 programming·language·having·access·to·all·the·route·attributes·and·being·able·to 
564 modify·the·most·of·them. 
565 </LI> 
566 <LI><I>Support·easy·configuration·and·re-configuration.</I> 
567 Most·routers·use·a·simple·configuration·language·designed·ad·hoc·with·no·structure·at·all 
568 and·allow·online·changes·of·configuration·by·using·their·command-line·interface,·thus 
569 any·complex·re-configurations·are·hard·to·achieve·without·replacing·the·configuration 
570 file·and·restarting·the·whole·router.·We've·decided·to·use·a·more·general·approach:·to 
571 have·a·configuration·defined·in·a·context-free·language·with·blocks·and·nesting,·to 
572 perform·all·configuration·changes·by·editing·the·configuration·file,·but·to·be·able 
573 to·read·the·new·configuration·and·smoothly·adapt·to·it·without·disturbing·parts·of 
574 the·routing·process·which·are·not·affected·by·the·change. 
575 </LI> 
576 <LI><I>Be·able·to·be·controlled·online.</I> 
577 In·addition·to·the·online·reconfiguration,·a·routing·daemon·should·be·able·to·communicate 
578 with·the·user·and·with·many·other·programs·(primarily·scripts·used·for·network·maintenance) 
579 in·order·to·make·it·possible·to·inspect·contents·of·routing·tables,·status·of·all 
580 routing·protocols·and·also·to·control·their·behavior·(disable,·enable·or·reset·a·protocol·without·restarting·all·the·others).·To·achieve 
581 this,·we·implement·a·simple·command-line·protocol·based·on·those·used·by·FTP·and·SMTP 
582 (that·is·textual·commands·and·textual·replies·accompanied·by·a·numeric·code·which·makes 
583 them·both·readable·to·a·human·and·easy·to·recognize·in·software). 
584 </LI> 
585 <LI><I>Respond·to·all·events·in·real·time.</I> 
586 A·typical·solution·to·this·problem·is·to·use·lots·of·threads·to·separate·the·workings 
587 of·all·the·routing·protocols·and·also·of·the·user·interface·parts·and·to·hope·that 
588 the·scheduler·will·assign·time·to·them·in·a·fair·enough·manner.·This·is·surely·a·good 
589 solution,·but·we·have·resisted·the·temptation·and·preferred·to·avoid·the·overhead·of·threading 
590 and·the·large·number·of·locks·involved·and·preferred·a·event·driven·architecture·with 
591 our·own·scheduling·of·events.·An·unpleasant·consequence·of·such·an·approach 
592 is·that·long·lasting·tasks·must·be·split·to·more·parts·linked·by·special 
593 events·or·timers·to·make·the·CPU·available·for·other·tasks·as·well. 
594 </LI> 
595 </UL> 
596 <P> 
597 <H2><A·NAME="ss1.3">1.3·Architecture</A> 
598 </H2> 
  
599 <P>The·requirements·set·above·have·lead·to·a·simple·modular·architecture·containing 
600 the·following·types·of·modules: 
601 <P> 
602 <DL> 
603 <P> 
604 <DT>Core·modules<DD><P>implement·the·core·functions·of·BIRD:·taking·care 
605 of·routing·tables,·keeping·protocol·status,·interacting·with·the·user·using 
606 the·Command-Line·Interface·(to·be·called·CLI·in·the·rest·of·this·document) 
607 etc. 
608 <P> 
609 <DT>Library·modules<DD><P>form·a·large·set·of·various·library·functions 
610 implementing·several·data·abstractions,·utility·functions·and·also·functions 
611 which·are·a·part·of·the·standard·libraries·on·some·systems,·but·missing·on·other 
612 ones. 
613 <P> 
614 <DT>Resource·management·modules<DD><P>take·care·of·resources,·their·allocation 
615 and·automatic·freeing·when·the·module·having·requested·shuts·itself·down. 
Max diff block lines reached; 203043/211930 bytes (95.81%) of diff not shown.
160 KB
html2text {}
    
Offset 221, 30 lines modifiedOffset 221, 14 lines modified
  
221 protocol·rip·{221 protocol·rip·{
222 ········export·all;222 ········export·all;
223 ········import·all;223 ········import·all;
224 ········interface·"*";224 ········interface·"*";
225 }225 }
226 ===============================================================================226 ===============================================================================
227 *****·1.·BIRD·Design·***** 
228 *****·1.1·Introduction·***** 
229 This·document·describes·the·internal·workings·of·BIRD,·its·architecture,·design 
230 decisions·and·rationale·behind·them.·It·also·contains·documentation·on·all·the 
231 essential·components·of·the·system·and·their·interfaces. 
232 Routing·daemons·are·complicated·things·which·need·to·act·in·real·time·to 
233 complex·sequences·of·external·events,·respond·correctly·even·to·the·most 
234 erroneous·behavior·of·their·environment·and·still·handle·enormous·amount·of 
235 data·with·reasonable·speed.·Due·to·all·of·this,·their·design·is·very·tricky·as 
236 one·needs·to·carefully·balance·between·efficiency,·stability·and·(last,·but·not 
237 least)·simplicity·of·the·program·and·it·would·be·possible·to·write·literally 
238 hundreds·of·pages·about·all·of·these·issues.·In·accordance·to·the·famous·quote 
239 of·Anton·Chekhov·"Shortness·is·a·sister·of·talent",·we've·tried·to·write·a·much 
240 shorter·document·highlighting·the·most·important·stuff·and·leaving·the·boring 
241 technical·details·better·explained·by·the·program·source·itself·together·with 
242 comments·contained·therein. 
243 *****·3.2·Global·options·<@@label>global-opts·*****227 *****·3.2·Global·options·<@@label>global-opts·*****
244 ··<@@label>opt-roa-table·roa·table·name·[·{·roa·table·options·...·}·]228 ··<@@label>opt-roa-table·roa·table·name·[·{·roa·table·options·...·}·]
245 ······Create·a·new·ROA·(Route·Origin·Authorization)·table.·ROA·tables·can·be229 ······Create·a·new·ROA·(Route·Origin·Authorization)·table.·ROA·tables·can·be
246 ······used·to·validate·route·origination·of·BGP·routes.·A·ROA·table·contains230 ······used·to·validate·route·origination·of·BGP·routes.·A·ROA·table·contains
247 ······ROA·entries,·each·consist·of·a·network·prefix,·a·max·prefix·length·and·an231 ······ROA·entries,·each·consist·of·a·network·prefix,·a·max·prefix·length·and·an
248 ······AS·number.·A·ROA·entry·specifies·prefixes·which·could·be·originated·by232 ······AS·number.·A·ROA·entry·specifies·prefixes·which·could·be·originated·by
249 ······that·AS·number.·ROA·tables·could·be·filled·with·data·from·RPKI·(RFC_6480)233 ······that·AS·number.·ROA·tables·could·be·filled·with·data·from·RPKI·(RFC_6480)
Offset 253, 124 lines modifiedOffset 237, 14 lines modified
253 ······Currently,·there·is·just·one·option,·roa·prefix·max·num·as·num,·which·can237 ······Currently,·there·is·just·one·option,·roa·prefix·max·num·as·num,·which·can
254 ······be·used·to·populate·the·ROA·table·with·static·ROA·entries.·The·option·may238 ······be·used·to·populate·the·ROA·table·with·static·ROA·entries.·The·option·may
255 ······be·used·multiple·times.·Other·entries·can·be·added·dynamically·by·add·roa239 ······be·used·multiple·times.·Other·entries·can·be·added·dynamically·by·add·roa
256 ······command.240 ······command.
257 ··<@@label>opt-eval·eval·expr241 ··<@@label>opt-eval·eval·expr
258 ······Evaluates·given·filter·expression.·It·is·used·by·us·for·testing·of242 ······Evaluates·given·filter·expression.·It·is·used·by·us·for·testing·of
259 ······filters.243 ······filters.
260 *****·1.2·Design·goals·***** 
261 When·planning·the·architecture·of·BIRD,·we've·taken·a·close·look·at·the·other 
262 existing·routing·daemons·and·also·at·some·of·the·operating·systems·used·on 
263 dedicated·routers,·gathered·all·important·features·and·added·lots·of·new·ones 
264 to·overcome·their·shortcomings·and·to·better·match·the·requirements·of·routing 
265 in·today's·Internet:·IPv6,·policy·routing,·route·filtering·and·so·on.·From·this 
266 planning,·the·following·set·of·design·goals·has·arisen: 
267 ····*·Support·all·the·standard·routing·protocols·and·make·it·easy·to·add·new 
268 ······ones.·This·leads·to·modularity·and·clean·separation·between·the·core·and 
269 ······the·protocols. 
270 ····*·Support·both·IPv4·and·IPv6·in·the·same·source·tree,·re-using·most·of·the 
271 ······code.·This·leads·to·abstraction·of·IP·addresses·and·operations·on·them. 
272 ····*·Minimize·OS·dependent·code·to·make·porting·as·easy·as·possible. 
273 ······Unfortunately,·such·code·cannot·be·avoided·at·all·as·the·details·of 
274 ······communication·with·the·IP·stack·differ·from·OS·to·OS·and·they·often·vary 
275 ······even·between·different·versions·of·the·same·OS.·But·we·can·isolate·such 
276 ······code·in·special·modules·and·do·the·porting·by·changing·or·replacing·just 
277 ······these·modules.·Also,·don't·rely·on·specific·features·of·various·operating 
278 ······systems,·but·be·able·to·make·use·of·them·if·they·are·available. 
279 ····*·Allow·multiple·routing·tables.·Easily·solvable·by·abstracting·out·routing 
280 ······tables·and·the·corresponding·operations. 
281 ····*·Offer·powerful·route·filtering.·There·already·were·several·attempts·to 
282 ······incorporate·route·filters·to·a·dynamic·router,·but·most·of·them·have·used 
283 ······simple·sequences·of·filtering·rules·which·were·very·inflexible·and·hard 
284 ······to·use·for·non-trivial·filters.·We've·decided·to·employ·a·simple·loop- 
285 ······free·programming·language·having·access·to·all·the·route·attributes·and 
286 ······being·able·to·modify·the·most·of·them. 
287 ····*·Support·easy·configuration·and·re-configuration.·Most·routers·use·a 
288 ······simple·configuration·language·designed·ad·hoc·with·no·structure·at·all 
289 ······and·allow·online·changes·of·configuration·by·using·their·command-line 
290 ······interface,·thus·any·complex·re-configurations·are·hard·to·achieve·without 
291 ······replacing·the·configuration·file·and·restarting·the·whole·router.·We've 
292 ······decided·to·use·a·more·general·approach:·to·have·a·configuration·defined 
293 ······in·a·context-free·language·with·blocks·and·nesting,·to·perform·all 
294 ······configuration·changes·by·editing·the·configuration·file,·but·to·be·able 
295 ······to·read·the·new·configuration·and·smoothly·adapt·to·it·without·disturbing 
296 ······parts·of·the·routing·process·which·are·not·affected·by·the·change. 
297 ····*·Be·able·to·be·controlled·online.·In·addition·to·the·online 
298 ······reconfiguration,·a·routing·daemon·should·be·able·to·communicate·with·the 
299 ······user·and·with·many·other·programs·(primarily·scripts·used·for·network 
300 ······maintenance)·in·order·to·make·it·possible·to·inspect·contents·of·routing 
301 ······tables,·status·of·all·routing·protocols·and·also·to·control·their 
302 ······behavior·(disable,·enable·or·reset·a·protocol·without·restarting·all·the 
303 ······others).·To·achieve·this,·we·implement·a·simple·command-line·protocol 
304 ······based·on·those·used·by·FTP·and·SMTP·(that·is·textual·commands·and·textual 
305 ······replies·accompanied·by·a·numeric·code·which·makes·them·both·readable·to·a 
306 ······human·and·easy·to·recognize·in·software). 
307 ····*·Respond·to·all·events·in·real·time.·A·typical·solution·to·this·problem·is 
308 ······to·use·lots·of·threads·to·separate·the·workings·of·all·the·routing 
309 ······protocols·and·also·of·the·user·interface·parts·and·to·hope·that·the 
310 ······scheduler·will·assign·time·to·them·in·a·fair·enough·manner.·This·is 
311 ······surely·a·good·solution,·but·we·have·resisted·the·temptation·and·preferred 
312 ······to·avoid·the·overhead·of·threading·and·the·large·number·of·locks·involved 
313 ······and·preferred·a·event·driven·architecture·with·our·own·scheduling·of 
314 ······events.·An·unpleasant·consequence·of·such·an·approach·is·that·long 
315 ······lasting·tasks·must·be·split·to·more·parts·linked·by·special·events·or 
316 ······timers·to·make·the·CPU·available·for·other·tasks·as·well. 
317 *****·1.3·Architecture·***** 
318 The·requirements·set·above·have·lead·to·a·simple·modular·architecture 
319 containing·the·following·types·of·modules: 
320 ··Core·modules 
321 ······implement·the·core·functions·of·BIRD:·taking·care·of·routing·tables, 
322 ······keeping·protocol·status,·interacting·with·the·user·using·the·Command-Line 
323 ······Interface·(to·be·called·CLI·in·the·rest·of·this·document)·etc. 
324 ··Library·modules 
325 ······form·a·large·set·of·various·library·functions·implementing·several·data 
326 ······abstractions,·utility·functions·and·also·functions·which·are·a·part·of 
327 ······the·standard·libraries·on·some·systems,·but·missing·on·other·ones. 
328 ··Resource·management·modules 
329 ······take·care·of·resources,·their·allocation·and·automatic·freeing·when·the 
330 ······module·having·requested·shuts·itself·down. 
331 ··Configuration·modules 
332 ······are·fragments·of·lexical·analyzer,·grammar·rules·and·the·corresponding 
333 ······snippets·of·C·code.·For·each·group·of·code·modules·(core,·each·protocol, 
334 ······filters)·there·exist·a·configuration·module·taking·care·of·all·the 
335 ······related·configuration·stuff. 
336 ··The·filter 
337 ······implements·the·route·filtering·language. 
338 ··Protocol·modules 
339 ······implement·the·individual·routing·protocols. 
340 ··System-dependent·modules 
341 ······implement·the·interface·between·BIRD·and·specific·operating·systems. 
342 ··The·client 
343 ······is·a·simple·program·providing·an·easy,·though·friendly·interface·to·the 
344 ······CLI. 
345 *****·1.4·Implementation·***** 
346 BIRD·has·been·written·in·GNU·C.·We've·considered·using·C++,·but·we've·preferred 
347 the·simplicity·and·straightforward·nature·of·C·which·gives·us·fine·control·over 
348 all·implementation·details·and·on·the·other·hand·enough·instruments·to·build 
Max diff block lines reached; 153973/163422 bytes (94.22%) of diff not shown.
376 KB
./usr/share/doc/bird-doc/prog.html
    
Offset 10, 14 lines modifiedOffset 10, 4889 lines modified
10 <H2>Ondrej·Filip·<I>&lt;feela@network.cz&gt;</I>,10 <H2>Ondrej·Filip·<I>&lt;feela@network.cz&gt;</I>,
11 Pavel·Machek·<I>&lt;pavel@ucw.cz&gt;</I>,11 Pavel·Machek·<I>&lt;pavel@ucw.cz&gt;</I>,
12 Martin·Mares·<I>&lt;mj@ucw.cz&gt;</I>,12 Martin·Mares·<I>&lt;mj@ucw.cz&gt;</I>,
13 Ondrej·Zajicek·<I>&lt;santiago@crfreenet.org&gt;</I></H2>13 Ondrej·Zajicek·<I>&lt;santiago@crfreenet.org&gt;</I></H2>
14 <P><HR>14 <P><HR>
15 <EM>This·document·contains·programmer's·documentation·for·the·BIRD·Internet·Routing·Daemon·project.</EM>15 <EM>This·document·contains·programmer's·documentation·for·the·BIRD·Internet·Routing·Daemon·project.</EM>
16 <HR>16 <HR>
 17 <H2><A·NAME="s1">1.·BIRD·Design</A></H2>
  
 18 <H2><A·NAME="ss1.1">1.1·Introduction</A>
 19 </H2>
  
 20 <P>This·document·describes·the·internal·workings·of·BIRD,·its·architecture,
 21 design·decisions·and·rationale·behind·them.·It·also·contains·documentation·on
 22 all·the·essential·components·of·the·system·and·their·interfaces.
 23 <P>
 24 <P>Routing·daemons·are·complicated·things·which·need·to·act·in·real·time
 25 to·complex·sequences·of·external·events,·respond·correctly·even·to·the·most·erroneous·behavior
 26 of·their·environment·and·still·handle·enormous·amount·of·data·with·reasonable
 27 speed.·Due·to·all·of·this,·their·design·is·very·tricky·as·one·needs·to·carefully
 28 balance·between·efficiency,·stability·and·(last,·but·not·least)·simplicity·of
 29 the·program·and·it·would·be·possible·to·write·literally·hundreds·of·pages·about
 30 all·of·these·issues.·In·accordance·to·the·famous·quote·of·Anton·Chekhov·"Shortness
 31 is·a·sister·of·talent",·we've·tried·to·write·a·much·shorter·document·highlighting
 32 the·most·important·stuff·and·leaving·the·boring·technical·details·better·explained
 33 by·the·program·source·itself·together·with·comments·contained·therein.
 34 <P>
 35 <H2><A·NAME="ss1.2">1.2·Design·goals</A>
 36 </H2>
  
 37 <P>When·planning·the·architecture·of·BIRD,·we've·taken·a·close·look·at·the·other·existing·routing
 38 daemons·and·also·at·some·of·the·operating·systems·used·on·dedicated·routers,·gathered·all·important
 39 features·and·added·lots·of·new·ones·to·overcome·their·shortcomings·and·to·better·match·the·requirements
 40 of·routing·in·today's·Internet:·IPv6,·policy·routing,·route·filtering·and·so·on.·From·this
 41 planning,·the·following·set·of·design·goals·has·arisen:
 42 <P>
 43 <UL>
 44 <LI><I>Support·all·the·standard·routing·protocols·and·make·it·easy·to·add·new·ones.</I>
 45 This·leads·to·modularity·and·clean·separation·between·the·core·and·the·protocols.
 46 </LI>
 47 <LI><I>Support·both·IPv4·and·IPv6·in·the·same·source·tree,·re-using·most·of·the·code.</I>
 48 This·leads·to·abstraction·of·IP·addresses·and·operations·on·them.
 49 </LI>
 50 <LI><I>Minimize·OS·dependent·code·to·make·porting·as·easy·as·possible.</I>
 51 Unfortunately,·such·code·cannot·be·avoided·at·all·as·the·details·of·communication·with
 52 the·IP·stack·differ·from·OS·to·OS·and·they·often·vary·even·between·different
 53 versions·of·the·same·OS.·But·we·can·isolate·such·code·in·special·modules·and
 54 do·the·porting·by·changing·or·replacing·just·these·modules.
 55 Also,·don't·rely·on·specific·features·of·various·operating·systems,·but·be·able
 56 to·make·use·of·them·if·they·are·available.
 57 </LI>
 58 <LI><I>Allow·multiple·routing·tables.</I>
 59 Easily·solvable·by·abstracting·out·routing·tables·and·the·corresponding·operations.
 60 </LI>
 61 <LI><I>Offer·powerful·route·filtering.</I>
 62 There·already·were·several·attempts·to·incorporate·route·filters·to·a·dynamic·router,
 63 but·most·of·them·have·used·simple·sequences·of·filtering·rules·which·were·very·inflexible
 64 and·hard·to·use·for·non-trivial·filters.·We've·decided·to·employ·a·simple·loop-free
 65 programming·language·having·access·to·all·the·route·attributes·and·being·able·to
 66 modify·the·most·of·them.
 67 </LI>
 68 <LI><I>Support·easy·configuration·and·re-configuration.</I>
 69 Most·routers·use·a·simple·configuration·language·designed·ad·hoc·with·no·structure·at·all
 70 and·allow·online·changes·of·configuration·by·using·their·command-line·interface,·thus
 71 any·complex·re-configurations·are·hard·to·achieve·without·replacing·the·configuration
 72 file·and·restarting·the·whole·router.·We've·decided·to·use·a·more·general·approach:·to
 73 have·a·configuration·defined·in·a·context-free·language·with·blocks·and·nesting,·to
 74 perform·all·configuration·changes·by·editing·the·configuration·file,·but·to·be·able
 75 to·read·the·new·configuration·and·smoothly·adapt·to·it·without·disturbing·parts·of
 76 the·routing·process·which·are·not·affected·by·the·change.
 77 </LI>
 78 <LI><I>Be·able·to·be·controlled·online.</I>
 79 In·addition·to·the·online·reconfiguration,·a·routing·daemon·should·be·able·to·communicate
 80 with·the·user·and·with·many·other·programs·(primarily·scripts·used·for·network·maintenance)
 81 in·order·to·make·it·possible·to·inspect·contents·of·routing·tables,·status·of·all
 82 routing·protocols·and·also·to·control·their·behavior·(disable,·enable·or·reset·a·protocol·without·restarting·all·the·others).·To·achieve
 83 this,·we·implement·a·simple·command-line·protocol·based·on·those·used·by·FTP·and·SMTP
 84 (that·is·textual·commands·and·textual·replies·accompanied·by·a·numeric·code·which·makes
 85 them·both·readable·to·a·human·and·easy·to·recognize·in·software).
 86 </LI>
 87 <LI><I>Respond·to·all·events·in·real·time.</I>
 88 A·typical·solution·to·this·problem·is·to·use·lots·of·threads·to·separate·the·workings
 89 of·all·the·routing·protocols·and·also·of·the·user·interface·parts·and·to·hope·that
 90 the·scheduler·will·assign·time·to·them·in·a·fair·enough·manner.·This·is·surely·a·good
 91 solution,·but·we·have·resisted·the·temptation·and·preferred·to·avoid·the·overhead·of·threading
 92 and·the·large·number·of·locks·involved·and·preferred·a·event·driven·architecture·with
 93 our·own·scheduling·of·events.·An·unpleasant·consequence·of·such·an·approach
 94 is·that·long·lasting·tasks·must·be·split·to·more·parts·linked·by·special
 95 events·or·timers·to·make·the·CPU·available·for·other·tasks·as·well.
 96 </LI>
 97 </UL>
 98 <P>
 99 <H2><A·NAME="ss1.3">1.3·Architecture</A>
 100 </H2>
  
 101 <P>The·requirements·set·above·have·lead·to·a·simple·modular·architecture·containing
 102 the·following·types·of·modules:
 103 <P>
 104 <DL>
 105 <P>
 106 <DT>Core·modules<DD><P>implement·the·core·functions·of·BIRD:·taking·care
 107 of·routing·tables,·keeping·protocol·status,·interacting·with·the·user·using
 108 the·Command-Line·Interface·(to·be·called·CLI·in·the·rest·of·this·document)
 109 etc.
 110 <P>
 111 <DT>Library·modules<DD><P>form·a·large·set·of·various·library·functions
 112 implementing·several·data·abstractions,·utility·functions·and·also·functions
 113 which·are·a·part·of·the·standard·libraries·on·some·systems,·but·missing·on·other
 114 ones.
 115 <P>
 116 <DT>Resource·management·modules<DD><P>take·care·of·resources,·their·allocation
 117 and·automatic·freeing·when·the·module·having·requested·shuts·itself·down.
 118 <P>
 119 <DT>Configuration·modules<DD><P>are·fragments·of·lexical·analyzer,
 120 grammar·rules·and·the·corresponding·snippets·of·C·code.·For·each·group
 121 of·code·modules·(core,·each·protocol,·filters)·there·exist·a·configuration
 122 module·taking·care·of·all·the·related·configuration·stuff.
 123 <P>
 124 <DT>The·filter<DD><P>implements·the·route·filtering·language.
 125 <P>
 126 <DT>Protocol·modules<DD><P>implement·the·individual·routing·protocols.
 127 <P>
 128 <DT>System-dependent·modules<DD><P>implement·the·interface·between·BIRD
 129 and·specific·operating·systems.
 130 <P>
 131 <DT>The·client<DD><P>is·a·simple·program·providing·an·easy,·though·friendly
 132 interface·to·the·CLI.
Max diff block lines reached; 174/198702 bytes (0.09%) of diff not shown.
182 KB
html2text {}
    
Offset 1, 14 lines modifiedOffset 1, 3693 lines modified
1 ******·BIRD·Programmer's·Documentation·******1 ******·BIRD·Programmer's·Documentation·******
2 *****·Ondrej·Filip·<feela@network.cz>,·Pavel·Machek·<pavel@ucw.cz>,·Martin2 *****·Ondrej·Filip·<feela@network.cz>,·Pavel·Machek·<pavel@ucw.cz>,·Martin
3 Mares·<mj@ucw.cz>,·Ondrej·Zajicek·<santiago@crfreenet.org>·*****3 Mares·<mj@ucw.cz>,·Ondrej·Zajicek·<santiago@crfreenet.org>·*****
4 ===============================================================================4 ===============================================================================
5 This·document·contains·programmer's·documentation·for·the·BIRD·Internet·Routing5 This·document·contains·programmer's·documentation·for·the·BIRD·Internet·Routing
6 Daemon·project.6 Daemon·project.
7 ===============================================================================7 ===============================================================================
 8 *****·1.·BIRD·Design·*****
 9 *****·1.1·Introduction·*****
 10 This·document·describes·the·internal·workings·of·BIRD,·its·architecture,·design
 11 decisions·and·rationale·behind·them.·It·also·contains·documentation·on·all·the
 12 essential·components·of·the·system·and·their·interfaces.
 13 Routing·daemons·are·complicated·things·which·need·to·act·in·real·time·to
 14 complex·sequences·of·external·events,·respond·correctly·even·to·the·most
 15 erroneous·behavior·of·their·environment·and·still·handle·enormous·amount·of
 16 data·with·reasonable·speed.·Due·to·all·of·this,·their·design·is·very·tricky·as
 17 one·needs·to·carefully·balance·between·efficiency,·stability·and·(last,·but·not
 18 least)·simplicity·of·the·program·and·it·would·be·possible·to·write·literally
 19 hundreds·of·pages·about·all·of·these·issues.·In·accordance·to·the·famous·quote
 20 of·Anton·Chekhov·"Shortness·is·a·sister·of·talent",·we've·tried·to·write·a·much
 21 shorter·document·highlighting·the·most·important·stuff·and·leaving·the·boring
 22 technical·details·better·explained·by·the·program·source·itself·together·with
 23 comments·contained·therein.
 24 *****·1.2·Design·goals·*****
 25 When·planning·the·architecture·of·BIRD,·we've·taken·a·close·look·at·the·other
 26 existing·routing·daemons·and·also·at·some·of·the·operating·systems·used·on
 27 dedicated·routers,·gathered·all·important·features·and·added·lots·of·new·ones
 28 to·overcome·their·shortcomings·and·to·better·match·the·requirements·of·routing
 29 in·today's·Internet:·IPv6,·policy·routing,·route·filtering·and·so·on.·From·this
 30 planning,·the·following·set·of·design·goals·has·arisen:
 31 ····*·Support·all·the·standard·routing·protocols·and·make·it·easy·to·add·new
 32 ······ones.·This·leads·to·modularity·and·clean·separation·between·the·core·and
 33 ······the·protocols.
 34 ····*·Support·both·IPv4·and·IPv6·in·the·same·source·tree,·re-using·most·of·the
 35 ······code.·This·leads·to·abstraction·of·IP·addresses·and·operations·on·them.
 36 ····*·Minimize·OS·dependent·code·to·make·porting·as·easy·as·possible.
 37 ······Unfortunately,·such·code·cannot·be·avoided·at·all·as·the·details·of
 38 ······communication·with·the·IP·stack·differ·from·OS·to·OS·and·they·often·vary
 39 ······even·between·different·versions·of·the·same·OS.·But·we·can·isolate·such
 40 ······code·in·special·modules·and·do·the·porting·by·changing·or·replacing·just
 41 ······these·modules.·Also,·don't·rely·on·specific·features·of·various·operating
 42 ······systems,·but·be·able·to·make·use·of·them·if·they·are·available.
 43 ····*·Allow·multiple·routing·tables.·Easily·solvable·by·abstracting·out·routing
 44 ······tables·and·the·corresponding·operations.
 45 ····*·Offer·powerful·route·filtering.·There·already·were·several·attempts·to
 46 ······incorporate·route·filters·to·a·dynamic·router,·but·most·of·them·have·used
 47 ······simple·sequences·of·filtering·rules·which·were·very·inflexible·and·hard
 48 ······to·use·for·non-trivial·filters.·We've·decided·to·employ·a·simple·loop-
 49 ······free·programming·language·having·access·to·all·the·route·attributes·and
 50 ······being·able·to·modify·the·most·of·them.
 51 ····*·Support·easy·configuration·and·re-configuration.·Most·routers·use·a
 52 ······simple·configuration·language·designed·ad·hoc·with·no·structure·at·all
 53 ······and·allow·online·changes·of·configuration·by·using·their·command-line
 54 ······interface,·thus·any·complex·re-configurations·are·hard·to·achieve·without
 55 ······replacing·the·configuration·file·and·restarting·the·whole·router.·We've
 56 ······decided·to·use·a·more·general·approach:·to·have·a·configuration·defined
 57 ······in·a·context-free·language·with·blocks·and·nesting,·to·perform·all
 58 ······configuration·changes·by·editing·the·configuration·file,·but·to·be·able
 59 ······to·read·the·new·configuration·and·smoothly·adapt·to·it·without·disturbing
 60 ······parts·of·the·routing·process·which·are·not·affected·by·the·change.
 61 ····*·Be·able·to·be·controlled·online.·In·addition·to·the·online
 62 ······reconfiguration,·a·routing·daemon·should·be·able·to·communicate·with·the
 63 ······user·and·with·many·other·programs·(primarily·scripts·used·for·network
 64 ······maintenance)·in·order·to·make·it·possible·to·inspect·contents·of·routing
 65 ······tables,·status·of·all·routing·protocols·and·also·to·control·their
 66 ······behavior·(disable,·enable·or·reset·a·protocol·without·restarting·all·the
 67 ······others).·To·achieve·this,·we·implement·a·simple·command-line·protocol
 68 ······based·on·those·used·by·FTP·and·SMTP·(that·is·textual·commands·and·textual
 69 ······replies·accompanied·by·a·numeric·code·which·makes·them·both·readable·to·a
 70 ······human·and·easy·to·recognize·in·software).
 71 ····*·Respond·to·all·events·in·real·time.·A·typical·solution·to·this·problem·is
 72 ······to·use·lots·of·threads·to·separate·the·workings·of·all·the·routing
 73 ······protocols·and·also·of·the·user·interface·parts·and·to·hope·that·the
 74 ······scheduler·will·assign·time·to·them·in·a·fair·enough·manner.·This·is
 75 ······surely·a·good·solution,·but·we·have·resisted·the·temptation·and·preferred
 76 ······to·avoid·the·overhead·of·threading·and·the·large·number·of·locks·involved
 77 ······and·preferred·a·event·driven·architecture·with·our·own·scheduling·of
 78 ······events.·An·unpleasant·consequence·of·such·an·approach·is·that·long
 79 ······lasting·tasks·must·be·split·to·more·parts·linked·by·special·events·or
 80 ······timers·to·make·the·CPU·available·for·other·tasks·as·well.
 81 *****·1.3·Architecture·*****
 82 The·requirements·set·above·have·lead·to·a·simple·modular·architecture
 83 containing·the·following·types·of·modules:
 84 ··Core·modules
 85 ······implement·the·core·functions·of·BIRD:·taking·care·of·routing·tables,
 86 ······keeping·protocol·status,·interacting·with·the·user·using·the·Command-Line
 87 ······Interface·(to·be·called·CLI·in·the·rest·of·this·document)·etc.
 88 ··Library·modules
 89 ······form·a·large·set·of·various·library·functions·implementing·several·data
 90 ······abstractions,·utility·functions·and·also·functions·which·are·a·part·of
 91 ······the·standard·libraries·on·some·systems,·but·missing·on·other·ones.
 92 ··Resource·management·modules
 93 ······take·care·of·resources,·their·allocation·and·automatic·freeing·when·the
 94 ······module·having·requested·shuts·itself·down.
 95 ··Configuration·modules
 96 ······are·fragments·of·lexical·analyzer,·grammar·rules·and·the·corresponding
 97 ······snippets·of·C·code.·For·each·group·of·code·modules·(core,·each·protocol,
 98 ······filters)·there·exist·a·configuration·module·taking·care·of·all·the
 99 ······related·configuration·stuff.
 100 ··The·filter
 101 ······implements·the·route·filtering·language.
 102 ··Protocol·modules
 103 ······implement·the·individual·routing·protocols.
 104 ··System-dependent·modules
 105 ······implement·the·interface·between·BIRD·and·specific·operating·systems.
 106 ··The·client
 107 ······is·a·simple·program·providing·an·easy,·though·friendly·interface·to·the
 108 ······CLI.
 109 *****·1.4·Implementation·*****
 110 BIRD·has·been·written·in·GNU·C.·We've·considered·using·C++,·but·we've·preferred
 111 the·simplicity·and·straightforward·nature·of·C·which·gives·us·fine·control·over
 112 all·implementation·details·and·on·the·other·hand·enough·instruments·to·build
 113 the·abstractions·we·need.
 114 The·modules·are·statically·linked·to·produce·a·single·executable·file·(except
 115 for·the·client·which·stands·on·its·own).
 116 The·building·process·is·controlled·by·a·set·of·Makefiles·for·GNU·Make,
 117 intermixed·with·several·Perl·and·shell·scripts.
 118 The·initial·configuration·of·the·daemon,·detection·of·system·features·and
 119 selection·of·the·right·modules·to·include·for·the·particular·OS·and·the·set·of
 120 protocols·the·user·has·chosen·is·performed·by·a·configure·script·generated·by
 121 GNU·Autoconf.
 122 The·parser·of·the·configuration·is·generated·by·the·GNU·Bison.
 123 The·documentation·is·generated·using·SGMLtools·with·our·own·DTD·and·mapping
 124 rules·which·produce·both·an·online·version·in·HTML·and·a·neatly·formatted·one
 125 for·printing·(first·converted·from·SGML·to·LaTeX·and·then·processed·by·TeX·and
 126 dvips·to·get·a·PostScript·file).
 127 The·comments·from·C·sources·which·form·a·part·of·the·programmer's·documentation
Max diff block lines reached; 470/185967 bytes (0.25%) of diff not shown.