From 52276996063bc4a0fbcb642f5075df1cde7ce684 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Mon, 17 Apr 2000 16:51:28 +0000 Subject: Few bugs removed from sgml, makefile added. --- doc/Makefile | 30 ++++++++++++++++++++++++++++++ doc/bird.sgml | 12 ++++++------ 2 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 doc/Makefile (limited to 'doc') diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..cef98bf3 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,30 @@ +# Makefile for bird documentation system + + +SHELL = /bin/sh + +all: bird.html + +clean: + rm *.html *.tex *.dvi *.log + +%.html: %.sgml + ./sgml2html $< + +dnl INFO format: + +%.info: %.sgml + sgml2info $< + +dnl TXT format: + +%.txt: %.sgml + sgml2txt $< + +dnl LATEX format: + +%.dvi: %.sgml + ./sgml2latex $< + +%.tex: %.sgml + ./sgml2latex --output=tex $< diff --git a/doc/bird.sgml b/doc/bird.sgml index 4b744d0c..50da577a 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -95,9 +95,9 @@ no equivalent of while() or for() command, and recursive functions are not permi

You can find sources of filters language in filter/ directory. filter/config.Y contains filter gramar, and basically translates source from user into tree of -f_inst structures. These trees are later interpreted using +f_inst structures. These trees are later interpreted using code in filter/filter.c. Filters internally work with -values/variables in struct f_val, which contains type of +values/variables in struct f_val, which contains type of value and value.

Filter basically looks like this: @@ -161,10 +161,10 @@ booleans (that is to prevent you from shooting in the foot). set int looks like + but you can not modify them. Constant of type set int looks like [ 1, 2, 5..7 ]. As you can see, both simple values and ranges are permitted in sets. Sets of prefixes are special: you can specify which prefixes should match them by - using [ 1.0.0.0/8+, 2.0.0.0/8-, 3.0.0.0/8{5,6} ]. 3.0.0.0/8{5,6} matches + using [ 1.0.0.0/8+, 2.0.0.0/8-, 3.0.0.0/8{5,6} ]. 3.0.0.0/8{5,6} matches prefixes 3.X.X.X, whose prefixlength is 5 to 6. 3.0.0.0/8+ is shorthand for 3.0.0.0/{0,8}, 3.0.0.0/8- is shorthand for 3.0.0.0/{0,7}. @@ -211,7 +211,7 @@ parameters. They get route table entry as implicit parameter.

Filters support two control structures: if/then/else and case. Syntax of if/then/else is if expression then -command; else command; and you can use { +command; else command; and you can use { command_1; command_2; ... } instead of one or both commands. else clause may be ommited. Case is used like this: @@ -255,7 +255,7 @@ HREF="fixme">rfc1234. all, password means that plaintext password is embedded into each packet, and md5 means that packets are authenticated using md5 cryptographics hash. See rfc1234. If you set authentication to non-none, it is good idea to add - passwords { } section. + passwords { } section.

There are two options that can be specified per-interface. First is metric, with -- cgit v1.2.3