diff --git a/doc/kernel-doc b/doc/kernel-doc index b9e872d2..c3237f09 100755 --- a/doc/kernel-doc +++ b/doc/kernel-doc @@ -275,7 +275,7 @@ sub output_html { } print "\n"; foreach $section (@{$args{'sectionlist'}}) { - print "

$section

\n"; + print "

$section

\n"; print "\n"; @@ -291,7 +291,7 @@ sub output_intro_html { my $count; foreach $section (@{$args{'sectionlist'}}) { - print "

$section

\n"; + print "

$section

\n"; print "\n"; diff --git a/filter/filter.c b/filter/filter.c index 76c01197..f70474ad 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -7,6 +7,25 @@ * */ +/** + * DOC: Filters + * + * Filter consists of tree of &f_inst structures, one structure per + * "instruction". Each &f_inst contains code, aux value which is + * usually type of data this instruction operates on, and two generic + * arguments (a1, a2). Some instructinos contain pointer(s) to other + * instructions in their (a1, a2) fields. + * + * Filters use structure &f_val for its variables. Each &f_val + * contains type and value. Types are constants prefixed with %T_. Few + * of types are special; %T_RETURN can be or-ed with type to indicate + * that return from function/from whole filter should be + * forced. Important thing about &f_val s is that they may be copied + * with simple =. That's fine for all currently defined types: strings + * are read-only (and therefore okay), paths are copied for each + * operation (okay too). + */ + #define LOCAL_DEBUG #include "nest/bird.h" @@ -624,21 +643,6 @@ i_same(struct f_inst *f1, struct f_inst *f2) * @filter: pointer to filter to run * @rte: pointer to pointer to rte being filtered. When route is modified, this is changed with rte_cow. * @tmp_pool: all filter allocations go from this pool - * - * Filter consists of tree of &f_inst structures, one structure per - * "instruction". Each &f_inst contains code, aux value which is - * usually type of data this instruction operates on, and two generic - * arguments (a1, a2). Some instructinos contain pointer(s) to other - * instructions in their (a1, a2) fields. - * - * Filters use structure &f_val for its variables. Each &f_val - * contains type and value. Types are constants prefixed with %T_. Few - * of types are special; %T_RETURN can be or-ed with type to indicate - * that return from function/from whole filter should be - * forced. Important thing about &f_val s is that they may be copied - * with simple =. That's fine for all currently defined types: strings - * are read-only (and therefore okay), paths are copied for each - * operation (okay too). */ int f_run(struct filter *filter, struct rte **rte, struct ea_list **tmp_attrs, struct linpool *tmp_pool, int flags) diff --git a/proto/rip/rip.c b/proto/rip/rip.c index 54627d5c..2826de7f 100644 --- a/proto/rip/rip.c +++ b/proto/rip/rip.c @@ -18,6 +18,30 @@ */ +/** + * DOC: Routing information protocol + * + * Rip is pretty simple protocol so half of this code is interface + * with core. We maintain our own linklist of &rip_entry - it serves + * as our small routing table. Within rip_tx(), this list is + * walked, and packet is generated using rip_tx_prepare(). This gets + * tricky because we may need to send more than one packet to one + * destination. Struct &rip_connection is used to hold info such as how + * many of &rip_entry ies we already send, and is also used to protect + * from two concurrent sends to one destination. Each &rip_interface has + * at most one &rip_connection. + * + * We are not going to honour requests for sending part of + * routing table. That would need to turn split horizon off, + * etc. + * + * Triggered updates. RFC says: when triggered update was sent, don't send + * new one for something between 1 and 5 seconds (and send one + * after that). We do something else: once in 5 second + * we look for any changed routes and broadcast them. + */ + + #define LOCAL_DEBUG #include "nest/bird.h" @@ -450,25 +474,6 @@ rip_timer(timer *t) /** * rip_start - initialize instance of rip - * - * Rip is pretty simple protocol so half of this code is interface - * with core. We maintain our own linklist of &rip_entry - it serves - * as our small routing table. Within rip_tx(), this list is - * walked, and packet is generated using rip_tx_prepare(). This gets - * tricky because we may need to send more than one packet to one - * destination. Struct &rip_connection is used to hold info such as how - * many of &rip_entry ies we already send, and is also used to protect - * from two concurrent sends to one destination. Each &rip_interface has - * at most one &rip_connection. - * - * We are not going to honour requests for sending part of - * routing table. That would need to turn split horizon off, - * etc. - * - * Triggered updates. RFC says: when triggered update was sent, don't send - * new one for something between 1 and 5 seconds (and send one - * after that). We do something else: once in 5 second - * we look for any changed routes and broadcast them. */ static int rip_start(struct proto *p)