Annotation of embedaddon/quagga/doc/protocol.texi, revision 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>