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>