mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-11-04 04:50:35 +00:00 
			
		
		
		
	* Move all developer related docs into developer/ * Move all figures into their own directory * Move manpages to own directory Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
		
			
				
	
	
		
			210 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			210 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.pl 10.0i
 | 
						|
.po 0
 | 
						|
.ll 7.2i
 | 
						|
.lt 7.2i
 | 
						|
.nr LL 7.2i
 | 
						|
.nr LT 7.2i
 | 
						|
.ds LF Ishiguro
 | 
						|
.ds RF FORMFEED[Page %]
 | 
						|
.ds CF
 | 
						|
.ds LH RFC DRAFT
 | 
						|
.ds RH March 1998
 | 
						|
.ds CH
 | 
						|
.hy 0
 | 
						|
.ad l
 | 
						|
Network Working Group                                        K. Ishiguro
 | 
						|
Request for Comments: DRAFT                     Digital Magic Labs, Inc.
 | 
						|
                                                              March 1998
 | 
						|
.sp 2
 | 
						|
.ce
 | 
						|
Zebra Protocol Draft
 | 
						|
.sp 2
 | 
						|
.fi
 | 
						|
.ne 4
 | 
						|
Status of this Memo
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
This draft is very eary beta version.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
Introduction
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
The zebra protocol is a communication protocol between kernel
 | 
						|
routing table manager and routing protocol daemon. It is built over
 | 
						|
TCP/IP protocol suite.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
Request message formats
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
zebra is TCP-based protocol.
 | 
						|
.sp
 | 
						|
Below is request packet format.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
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) |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
Length is total packet length.
 | 
						|
.sp
 | 
						|
Here is summary of command list.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
1 - ZEBRA_IPV4_ROUTE_ADD
 | 
						|
2 - ZEBRA_IPV4_ROUTE_DELETE
 | 
						|
3 - ZEBRA_IPV6_ROUTE_ADD
 | 
						|
4 - ZEBRA_IPV6_ROUTE_DELETE
 | 
						|
5 - ZEBRA_GET_ONE_INTERFACE
 | 
						|
6 - ZEBRA_GET_ALL_INTERFACE
 | 
						|
7 - ZEBRA_GET_HOSTINFO
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
IPv4 reply message formats
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
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 (1)   |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                            Gateway (4)                        |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
Type field specify route's origin type.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
1 - ZEBRA_ROUTE_RESERVE
 | 
						|
2 - ZEBRA_ROUTE_CONNECT
 | 
						|
3 - ZEBRA_ROUTE_STATIC
 | 
						|
4 - ZEBRA_ROUTE_RIP
 | 
						|
5 - ZEBRA_ROUTE_RIPNG
 | 
						|
6 - ZEBRA_ROUTE_BGP
 | 
						|
7 - ZEBRA_ROUTE_RADIX
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
After above message there can be variale length IPv4 prefix data.
 | 
						|
Each IPv4 prefix is encoded as a two tuple of the form <masklength,
 | 
						|
prefix>
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
+----------------------+
 | 
						|
|Subnet mask (1 octet) |
 | 
						|
+----------------------+
 | 
						|
|IPv4 prefix (variable)|
 | 
						|
+----------------------+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
IPv6 reply message formats
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
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 (1)   |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                                                               |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                           Gateway (16)                        |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                                                               |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                                                               |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
Type field specify route's origin type.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
1 - ZEBRA_ROUTE_RESERVE
 | 
						|
2 - ZEBRA_ROUTE_CONNECT
 | 
						|
3 - ZEBRA_ROUTE_STATIC
 | 
						|
4 - ZEBRA_ROUTE_RIP
 | 
						|
5 - ZEBRA_ROUTE_RIPNG
 | 
						|
6 - ZEBRA_ROUTE_BGP
 | 
						|
7 - ZEBRA_ROUTE_RADIX
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
+----------------------+
 | 
						|
|  ifindex   (4 octet) |
 | 
						|
+----------------------+
 | 
						|
|  prefixlen  (1 octet)|
 | 
						|
+----------------------+
 | 
						|
|IPv6 prefix (variable)|
 | 
						|
+----------------------+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
I am not sure but it seems some operation systems IPv6
 | 
						|
implementation may need interface index when add and delete
 | 
						|
linklocal routes.
 | 
						|
.sp
 | 
						|
I have added ifindex field to specify IPv6 routes interface
 | 
						|
index. If this index is value zero, it will ignored.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
Interface information message format.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
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
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                      Interface name (20)                      |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|   Index (1)   |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                       Inteface flag (4)                       |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                      Inteface metric (4)                      |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                        Inteface MTU (4)                       |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|                    Inteface Address count (4)                 |
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
Address message format.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.ne 4
 | 
						|
Host inforamtion message format.
 | 
						|
.sp
 | 
						|
.in 0
 | 
						|
.DS
 | 
						|
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
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
|IPv4 forwarding|IPv6 forwarding|
 | 
						|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
.DE
 | 
						|
.sp
 | 
						|
.in 3
 | 
						|
Host information contain IPv4/IPv6 forwarding information.
 |