File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / draft-zebra-00.ms
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:11 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v1_0_20160315, v0_99_22p0, v0_99_22, v0_99_21, v0_99_20_1, v0_99_20, HEAD
quagga

    1: .pl 10.0i
    2: .po 0
    3: .ll 7.2i
    4: .lt 7.2i
    5: .nr LL 7.2i
    6: .nr LT 7.2i
    7: .ds LF Ishiguro
    8: .ds RF FORMFEED[Page %]
    9: .ds CF
   10: .ds LH RFC DRAFT
   11: .ds RH March 1998
   12: .ds CH
   13: .hy 0
   14: .ad l
   15: Network Working Group                                        K. Ishiguro
   16: Request for Comments: DRAFT                     Digital Magic Labs, Inc.
   17:                                                               March 1998
   18: .sp 2
   19: .ce
   20: Zebra Protocol Draft
   21: .sp 2
   22: .fi
   23: .ne 4
   24: Status of this Memo
   25: .sp
   26: .in 3
   27: This draft is very eary beta version.
   28: .sp
   29: .in 0
   30: .ne 4
   31: Introduction
   32: .sp
   33: .in 3
   34: The zebra protocol is a communication protocol between kernel
   35: routing table manager and routing protocol daemon. It is built over
   36: TCP/IP protocol suite.
   37: .sp
   38: .in 0
   39: .ne 4
   40: Request message formats
   41: .sp
   42: .in 3
   43: zebra is TCP-based protocol.
   44: .sp
   45: Below is request packet format.
   46: .sp
   47: .in 0
   48: .DS
   49: 0                   1                   2                   3
   50: 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
   51: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   52: |           Length (2)          |   Command (1) |
   53: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   54: .DE
   55: .sp
   56: .in 3
   57: Length is total packet length.
   58: .sp
   59: Here is summary of command list.
   60: .sp
   61: .in 0
   62: .DS
   63: 1 - ZEBRA_IPV4_ROUTE_ADD
   64: 2 - ZEBRA_IPV4_ROUTE_DELETE
   65: 3 - ZEBRA_IPV6_ROUTE_ADD
   66: 4 - ZEBRA_IPV6_ROUTE_DELETE
   67: 5 - ZEBRA_GET_ONE_INTERFACE
   68: 6 - ZEBRA_GET_ALL_INTERFACE
   69: 7 - ZEBRA_GET_HOSTINFO
   70: .DE
   71: .sp
   72: .in 0
   73: .ne 4
   74: IPv4 reply message formats
   75: .sp
   76: .in 0
   77: .DS
   78: 0                   1                   2                   3
   79: 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
   80: +-+-+-+-+-+-+-+-+
   81: |    Type (1)   |
   82: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   83: |                            Gateway (4)                        |
   84: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   85: .DE
   86: .sp
   87: .in 3
   88: Type field specify route's origin type.
   89: .sp
   90: .in 0
   91: .DS
   92: 1 - ZEBRA_ROUTE_RESERVE
   93: 2 - ZEBRA_ROUTE_CONNECT
   94: 3 - ZEBRA_ROUTE_STATIC
   95: 4 - ZEBRA_ROUTE_RIP
   96: 5 - ZEBRA_ROUTE_RIPNG
   97: 6 - ZEBRA_ROUTE_BGP
   98: 7 - ZEBRA_ROUTE_RADIX
   99: .DE
  100: .sp
  101: .in 3
  102: After above message there can be variale length IPv4 prefix data.
  103: Each IPv4 prefix is encoded as a two tuple of the form <masklength,
  104: prefix>
  105: .sp
  106: .in 0
  107: .DS
  108: +----------------------+
  109: |Subnet mask (1 octet) |
  110: +----------------------+
  111: |IPv4 prefix (variable)|
  112: +----------------------+
  113: .DE
  114: .sp
  115: .in 0
  116: .ne 4
  117: IPv6 reply message formats
  118: .sp
  119: .in 0
  120: .DS
  121: 0                   1                   2                   3
  122: 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
  123: +-+-+-+-+-+-+-+-+
  124: |    Type (1)   |
  125: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  126: |                                                               |
  127: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  128: |                           Gateway (16)                        |
  129: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  130: |                                                               |
  131: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  132: |                                                               |
  133: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  134: .DE
  135: .sp
  136: .in 3
  137: Type field specify route's origin type.
  138: .sp
  139: .in 0
  140: .DS
  141: 1 - ZEBRA_ROUTE_RESERVE
  142: 2 - ZEBRA_ROUTE_CONNECT
  143: 3 - ZEBRA_ROUTE_STATIC
  144: 4 - ZEBRA_ROUTE_RIP
  145: 5 - ZEBRA_ROUTE_RIPNG
  146: 6 - ZEBRA_ROUTE_BGP
  147: 7 - ZEBRA_ROUTE_RADIX
  148: .DE
  149: .sp
  150: .in 0
  151: .DS
  152: +----------------------+
  153: |  ifindex   (4 octet) |
  154: +----------------------+
  155: |  prefixlen  (1 octet)|
  156: +----------------------+
  157: |IPv6 prefix (variable)|
  158: +----------------------+
  159: .DE
  160: .sp
  161: .in 3
  162: I am not sure but it seems some operation systems IPv6
  163: implementation may need interface index when add and delete
  164: linklocal routes.
  165: .sp
  166: I have added ifindex field to specify IPv6 routes interface
  167: index. If this index is value zero, it will ignored.
  168: .sp
  169: .in 0
  170: .ne 4
  171: Interface information message format.
  172: .sp
  173: .in 0
  174: .DS
  175: 0                   1                   2                   3
  176: 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
  177: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  178: |                      Interface name (20)                      |
  179: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  180: |   Index (1)   |
  181: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  182: |                       Inteface flag (4)                       |
  183: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  184: |                      Inteface metric (4)                      |
  185: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  186: |                        Inteface MTU (4)                       |
  187: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  188: |                    Inteface Address count (4)                 |
  189: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  190: .DE
  191: .sp
  192: .in 3
  193: Address message format.
  194: .sp
  195: .in 0
  196: .ne 4
  197: Host inforamtion message format.
  198: .sp
  199: .in 0
  200: .DS
  201: 0                   1                   2                   3
  202: 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
  203: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  204: |IPv4 forwarding|IPv6 forwarding|
  205: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  206: .DE
  207: .sp
  208: .in 3
  209: Host information contain IPv4/IPv6 forwarding information.

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