summaryrefslogtreecommitdiff
path: root/doc/protocol.texi
blob: 234766512c1e7f6fdd70716b1e78675344063ddf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@node  Zebra Protocol
@appendix Zebra Protocol

Zebra Protocol is a protocol which is used between protocol daemon and
zebra.  Each protocol daemon sends selected routes to zebra daemon.  Then
zebra manages which route is installed into the forwarding table.

Zebra Protocol is a TCP-based protocol.  Below is common header of Zebra
Protocol.

@example
@group
0                   1                   2                   3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Length (2)          |   Command (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@end group
@end example

Length is total packet length including this header length.  So minimum
length is three.  Command is Zebra Protocol command.

@example
ZEBRA_INTERFACE_ADD                1
ZEBRA_INTERFACE_DELETE             2
ZEBRA_INTERFACE_ADDRESS_ADD        3
ZEBRA_INTERFACE_ADDRESS_DELETE     4
ZEBRA_INTERFACE_UP                 5
ZEBRA_INTERFACE_DOWN               6
ZEBRA_IPV4_ROUTE_ADD               7
ZEBRA_IPV4_ROUTE_DELETE            8
ZEBRA_IPV6_ROUTE_ADD               9
ZEBRA_IPV6_ROUTE_DELETE           10
ZEBRA_REDISTRIBUTE_ADD            11
ZEBRA_REDISTRIBUTE_DELETE         12
ZEBRA_REDISTRIBUTE_DEFAULT_ADD    13
ZEBRA_REDISTRIBUTE_DEFAULT_DELETE 14
ZEBRA_IPV4_NEXTHOP_LOOKUP         15
ZEBRA_IPV6_NEXTHOP_LOOKUP         16
@end example

@example
@group
0                   1                   2                   3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |             Flags             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@end group
@end example