Diff for /embedaddon/bird/doc/prog-2.html between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2017/08/22 12:33:54 version 1.1.1.2, 2021/03/17 19:50:23
Line 38  are automatically moved to the next node in the table. Line 38  are automatically moved to the next node in the table.
 <P>Basic FIB operations are performed by functions defined by this module,  <P>Basic FIB operations are performed by functions defined by this module,
 enumerating of FIB contents is accomplished by using the <B>FIB_WALK()</B> macro  enumerating of FIB contents is accomplished by using the <B>FIB_WALK()</B> macro
 or <B>FIB_ITERATE_START()</B> if you want to do it asynchronously.  or <B>FIB_ITERATE_START()</B> if you want to do it asynchronously.
   <P>For simple iteration just place the body of the loop between <B>FIB_WALK()</B> and
   <B>FIB_WALK_END()</B>. You can't modify the FIB during the iteration (you can modify
   data in the node, but not add or remove nodes).
   <P>If you need more freedom, you can use the FIB_ITERATE_*() group of macros.
   First, you initialize an iterator with <B>FIB_ITERATE_INIT()</B>. Then you can put
   the loop body in between <B>FIB_ITERATE_START()</B> and <B>FIB_ITERATE_END()</B>. In
   addition, the iteration can be suspended by calling <B>FIB_ITERATE_PUT()</B>.
   This'll link the iterator inside the FIB. While suspended, you may modify the
   FIB, exit the current function, etc. To resume the iteration, enter the loop
   again. You can use <B>FIB_ITERATE_UNLINK()</B> to unlink the iterator (while
   iteration is suspended) in cases like premature end of FIB iteration.
   <P>Note that the iterator must not be destroyed when the iteration is suspended,
   the FIB would then contain a pointer to invalid memory. Therefore, after each
   <B>FIB_ITERATE_INIT()</B> or <B>FIB_ITERATE_PUT()</B> there must be either
   <B>FIB_ITERATE_START()</B> or <B>FIB_ITERATE_UNLINK()</B> before the iterator is destroyed.
 <P>  <P>
 <P><HR><H3>Function</H3>  <P><HR><H3>Function</H3>
 <P><I>void</I>  <P><I>void</I>
Line 1346  startup code. Line 1361  startup code.
   
 <HR><H3>Function</H3>  <HR><H3>Function</H3>
 <P><I>void</I>  <P><I>void</I>
   <B>proto_set_message</B>
   (<I>struct proto *</I> <B>p</B>, <I>char *</I> <B>msg</B>, <I>int</I> <B>len</B>) --     set administrative message to protocol
   <P>
   <H3>Arguments</H3>
   <P>
   <DL>
   <DT><I>struct proto *</I> <B>p</B><DD><P>protocol
   <DT><I>char *</I> <B>msg</B><DD><P>message
   <DT><I>int</I> <B>len</B><DD><P>message length (-1 for NULL-terminated string)
   </DL>
   <H3>Description</H3>
   <P>The function sets administrative message (string) related to protocol state
   change. It is called by the nest code for manual enable/disable/restart
   commands all routes to the protocol, and by protocol-specific code when the
   protocol state change is initiated by the protocol. Using NULL message clears
   the last message. The message string may be either NULL-terminated or with an
   explicit length.
   
   
   <HR><H3>Function</H3>
   <P><I>void</I>
 <B>proto_request_feeding</B>  <B>proto_request_feeding</B>
 (<I>struct proto *</I> <B>p</B>) --     request feeding routes to the protocol  (<I>struct proto *</I> <B>p</B>) --     request feeding routes to the protocol
 <P>  <P>
Line 2066  processing of interface change events). Inactive entri Line 2102  processing of interface change events). Inactive entri
 when the protocol has explicitly requested it via the <I>NEF_STICKY</I>  when the protocol has explicitly requested it via the <I>NEF_STICKY</I>
 flag because it wishes to be notified when the node will again become  flag because it wishes to be notified when the node will again become
 a neighbor. Such entries are enqueued in a special list which is walked  a neighbor. Such entries are enqueued in a special list which is walked
whenever an interface changes its state to up.whenever an interface changes its state to up. Neighbor entry VRF
 association is implied by respective protocol.
 <P>When a neighbor event occurs (a neighbor gets disconnected or a sticky  <P>When a neighbor event occurs (a neighbor gets disconnected or a sticky
 inactive neighbor becomes connected), the protocol hook <B>neigh_notify()</B>  inactive neighbor becomes connected), the protocol hook <B>neigh_notify()</B>
 is called to advertise the change.  is called to advertise the change.

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>