Annotation of embedaddon/quagga/doc/protocol.texi, revision 1.1.1.1

1.1       misho       1: @node  Zebra Protocol
                      2: @appendix Zebra Protocol
                      3: @appendixsection Overview of the Zebra Protocol
                      4: 
                      5: Zebra Protocol is used by protocol daemons to communicate with the
                      6: zebra daemon.
                      7: 
                      8: Each protocol daemon may request and send information to and from the
                      9: zebra daemon such as interface states, routing state,
                     10: nexthop-validation, and so on. Protocol daemons may also install routes
                     11: with zebra. The zebra daemon manages which route is installed into the
                     12: forwarding table with the kernel.
                     13: 
                     14: Zebra Protocol is a streaming protocol, with a common header. Two
                     15: versions of the header are in use. Version 0 is implicitely versioned.
                     16: Version 1 has an explicit version field. Version 0 can be distinguished
                     17: from all other versions by examining the 3rd byte of the header, which
                     18: contains a marker value for all versions bar version 0. The marker byte
                     19: corresponds to the command field in version 0, and the marker value is
                     20: a reserved command in version 0.
                     21: 
                     22: We do not anticipate there will be further versions of the header for
                     23: the foreseeable future, as the command field in version 1 is wide
                     24: enough to allow for future extensions to done compatibly through
                     25: seperate commands.
                     26: 
                     27: Version 0 is used by all versions of GNU Zebra as of this writing, and
                     28: versions of Quagga up to and including Quagga 0.98. Version 1 will be
                     29: used as of Quagga 1.0.
                     30: 
                     31: @appendixsection Zebra Protocol Definition
                     32: @appendixsubsec Zebra Protocol Header (version 0)
                     33: @example
                     34: @group
                     35: 0                   1                   2                   3
                     36: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                     37: +-------------------------------+---------------+
                     38: |           Length (2)          |   Command (1) |
                     39: +-------------------------------+---------------+
                     40: @end group
                     41: @end example
                     42: 
                     43: @appendixsubsec Zebra Protocol Common Header (version 1)
                     44: @example
                     45: @group
                     46: 0                   1                   2                   3
                     47: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                     48: +-------------------------------+---------------+-------------+
                     49: |           Length (2)          |   Marker (1)  | Version (1) |
                     50: +-------------------------------+---------------+-------------+
                     51: |          Command (2)          |
                     52: +-------------------------------+
                     53: @end group
                     54: @end example
                     55: 
                     56: @appendixsubsec Zebra Protocol Header Field Definitions
                     57: @table @samp
                     58: @item Length
                     59: Total packet length including this header. The minimum length is 3
                     60: bytes for version 0 messages and 6 bytes for version 1 messages.
                     61: 
                     62: @item Marker
                     63: Static marker with a value of 255 always. This is to allow version 0
                     64: Zserv headers (which do not include version explicitely) to be
                     65: distinguished from versioned headers. Not present in version 0
                     66: messages.
                     67: 
                     68: @item Version
                     69: Version number of the Zserv message. Clients should not continue
                     70: processing messages past the version field for versions they do not
                     71: recognise. Not present in version 0 messages.
                     72: 
                     73: @item Command
                     74: The Zebra Protocol command.
                     75: @end table
                     76: 
                     77: @appendixsubsec Zebra Protocol Commands
                     78: @multitable {ZEBRA_REDISTRIBUTE_DEFAULT_DELETE_WHATEVER} {99999}
                     79: @headitem Command @tab Value
                     80: @item ZEBRA_INTERFACE_ADD      
                     81: @tab 1
                     82: @item ZEBRA_INTERFACE_DELETE
                     83: @tab 2
                     84: @item ZEBRA_INTERFACE_ADDRESS_ADD
                     85: @tab 3
                     86: @item ZEBRA_INTERFACE_ADDRESS_DELETE
                     87: @tab 4
                     88: @item ZEBRA_INTERFACE_UP
                     89: @tab 5
                     90: @item ZEBRA_INTERFACE_DOWN
                     91: @tab 6
                     92: @item ZEBRA_IPV4_ROUTE_ADD
                     93: @tab 7
                     94: @item ZEBRA_IPV4_ROUTE_DELETE
                     95: @tab 8
                     96: @item ZEBRA_IPV6_ROUTE_ADD
                     97: @tab 9
                     98: @item ZEBRA_IPV6_ROUTE_DELETE
                     99: @tab 10
                    100: @item ZEBRA_REDISTRIBUTE_ADD
                    101: @tab 11
                    102: @item ZEBRA_REDISTRIBUTE_DELETE
                    103: @tab 12
                    104: @item ZEBRA_REDISTRIBUTE_DEFAULT_ADD
                    105: @tab 13
                    106: @item ZEBRA_REDISTRIBUTE_DEFAULT_DELETE
                    107: @tab 14
                    108: @item ZEBRA_IPV4_NEXTHOP_LOOKUP
                    109: @tab 15
                    110: @item ZEBRA_IPV6_NEXTHOP_LOOKUP
                    111: @tab 16
                    112: @end multitable

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