0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

Better explanation for if/case, and RFC pointers for rip. Still searching for

RIPv2 rfc number!
This commit is contained in:
Pavel Machek 2000-06-07 14:39:34 +00:00
parent 8dcf254499
commit 074a166d94

View File

@ -282,7 +282,7 @@ protocol rip {
<descrip> <descrip>
<tag>passwords { password "<m/password/" from <m/time/ to <m/time/ passive <m/time/ id <tag>passwords { password "<m/password/" from <m/time/ to <m/time/ passive <m/time/ id
<m/num/ [...] }</tag> Specifies passwords to be used with this protocol. <cf>Passive <m/time/</cf> is <m/num/ [...] }</tag> Specifies passwords to be used with this protocol. <cf>Passive <m/time/</cf> is
time from which the password is not used for sending, but it is recognized on reception. <cf/id/ is password id, as needed by time from which the password is not used for sending, but it is recognized on reception. <cf/id/ is password ID, as needed by
certain protocols. certain protocols.
<tag>interface "<m/mask/"|<m/prefix/ [ { <m/option/ ; [ ... ] } ]</tag> Specifies which <tag>interface "<m/mask/"|<m/prefix/ [ { <m/option/ ; [ ... ] } ]</tag> Specifies which
@ -480,19 +480,16 @@ prefix and prefix (returning true if first prefix is more specific than second)
<p>Filters support two control structures: conditions and case switches. <p>Filters support two control structures: conditions and case switches.
<!-- fixme: say explicitly what if and case does -->
<p>Syntax of condition is <cf>if <p>Syntax of condition is <cf>if
<M>boolean expression</M> then <M>command</M>; else <M>command</M>;</cf> and you can use <cf>{ <M>boolean expression</M> then <M>command1</M>; else <M>command2</M>;</cf> and you can use <cf>{
<M>command_1</M>; <M>command_2</M>; <M>...</M> }</cf> instead of one or both commands. <cf>else</cf> <M>command_1</M>; <M>command_2</M>; <M>...</M> }</cf> instead of one or both commands. <cf>else</cf>
clause may be omitted. clause may be omitted. If <cf><m>boolean expression</m></cf> is true, <cf><m>command1</m></cf> is executed, otherwise <cf><m>command2</m></cf> is executed.
<p><cf>case</cf> is similar to case from Pascal. Syntax is <cf>case <m/expr/ { else | <p><cf>case</cf> is similar to case from Pascal. Syntax is <cf>case <m/expr/ { else |
<m/num_or_prefix [ .. num_or_prefix]/: <m/statement/ ; [ ... ] }</cf>. Expression after <m/num_or_prefix [ .. num_or_prefix]/: <m/statement/ ; [ ... ] }</cf>. Expression after
<cf>case</cf> can be of any type that can be on the left side of the &tilde; operator, and anything that could <cf>case</cf> can be of any type that can be on the left side of the &tilde; operator, and anything that could
be a member of a set is allowed before <cf/:/. Multiple commands are allowed without <cf/{}/ grouping be a member of a set is allowed before <cf/:/. Multiple commands are allowed without <cf/{}/ grouping
and break is implicit before each case. If argument and break is implicit before each case. If <cf><m/expr/</cf> matches one of <cf/:/ clauses, statements between it and next <cf/:/ statement are executed. If <cf><m/expr/</cf> matches neither of <cf/:/ clauses, <cf/else:/ statements after <cf/else:/ are executed.
matches neither of <cf/:/ clauses, <cf/else:/ clause is used.
<p>Here is example that uses <cf/if/ and <cf/case/ structures: <p>Here is example that uses <cf/if/ and <cf/case/ structures:
@ -1191,8 +1188,9 @@ RIP) and all routers know that network is unreachable. RIP tries to minimize sit
counting to infinity is necessary, because it is slow. Due to infinity being 16, you can't use counting to infinity is necessary, because it is slow. Due to infinity being 16, you can't use
RIP on networks where maximal distance is higher than 15 hosts. You can read more about rip at <HTMLURL RIP on networks where maximal distance is higher than 15 hosts. You can read more about rip at <HTMLURL
URL="http://www.ietf.org/html.charters/rip-charter.html" name="http://www.ietf.org/html.charters/rip-charter.html">. Both IPv4 URL="http://www.ietf.org/html.charters/rip-charter.html" name="http://www.ietf.org/html.charters/rip-charter.html">. Both IPv4
and IPv6 versions of RIP are supported by BIRD, historical RIPv1 is (RFC ????<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc????.txt">)
currently not fully supported. and IPv6 (RFC 2080<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc2080.txt">) versions of RIP are supported by BIRD, historical RIPv1 (RFC 1058<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc1058.txt">)is
not currently supported. RIPv4 md5 authentication (RFC 2082<htmlurl url="ftp://ftp.rfc-editor.org/in-notes/rfc2082.txt">) is supported.
<p>RIP is a very simple protocol, and it has a lot of shortcomings. Slow <p>RIP is a very simple protocol, and it has a lot of shortcomings. Slow
convergence, big network load and inability to handle larger networks convergence, big network load and inability to handle larger networks