8 .ds RF FORMFEED[Page %]
15 Network Working Group K. Ishiguro
16 Request for Comments: DRAFT Digital Magic Labs, Inc.
27 This draft is very eary beta version.
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.
40 Request message formats
43 zebra is TCP-based protocol.
45 Below is request packet format.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57 Length is total packet length.
59 Here is summary of command list.
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
74 IPv4 reply message formats
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
82 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
84 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
88 Type field specify route's origin type.
92 1 - ZEBRA_ROUTE_RESERVE
93 2 - ZEBRA_ROUTE_CONNECT
94 3 - ZEBRA_ROUTE_STATIC
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,
108 +----------------------+
109 |Subnet mask (1 octet) |
110 +----------------------+
111 |IPv4 prefix (variable)|
112 +----------------------+
117 IPv6 reply message formats
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
125 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
127 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
137 Type field specify route's origin type.
141 1 - ZEBRA_ROUTE_RESERVE
142 2 - ZEBRA_ROUTE_CONNECT
143 3 - ZEBRA_ROUTE_STATIC
145 5 - ZEBRA_ROUTE_RIPNG
147 7 - ZEBRA_ROUTE_RADIX
152 +----------------------+
153 | ifindex (4 octet) |
154 +----------------------+
155 | prefixlen (1 octet)|
156 +----------------------+
157 |IPv6 prefix (variable)|
158 +----------------------+
162 I am not sure but it seems some operation systems IPv6
163 implementation may need interface index when add and delete
166 I have added ifindex field to specify IPv6 routes interface
167 index. If this index is value zero, it will ignored.
171 Interface information message format.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
181 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
182 | Inteface flag (4) |
183 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
184 | Inteface metric (4) |
185 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
187 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
188 | Inteface Address count (4) |
189 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
193 Address message format.
197 Host inforamtion message format.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
209 Host information contain IPv4/IPv6 forwarding information.