Merge commit 'remotes/jocke/ospf_neighbour'; commit 'remotes/jocke/snmp_crosscompile'
[jleu-quagga.git] / doc / draft-zebra-00.ms
blob25994727a0d4ceab16e11c8bf49972edb42846fd
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
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>
106 .in 0
108 +----------------------+
109 |Subnet mask (1 octet) |
110 +----------------------+
111 |IPv4 prefix (variable)|
112 +----------------------+
115 .in 0
116 .ne 4
117 IPv6 reply message formats
119 .in 0
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
136 .in 3
137 Type field specify route's origin type.
139 .in 0
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
150 .in 0
152 +----------------------+
153 |  ifindex   (4 octet) |
154 +----------------------+
155 |  prefixlen  (1 octet)|
156 +----------------------+
157 |IPv6 prefix (variable)|
158 +----------------------+
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.
166 I have added ifindex field to specify IPv6 routes interface
167 index. If this index is value zero, it will ignored.
169 .in 0
170 .ne 4
171 Interface information message format.
173 .in 0
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
192 .in 3
193 Address message format.
195 .in 0
196 .ne 4
197 Host inforamtion message format.
199 .in 0
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
208 .in 3
209 Host information contain IPv4/IPv6 forwarding information.