Initial revision
diff --git a/doc/protocol.texi b/doc/protocol.texi
new file mode 100644
index 0000000..7cae9c9
--- /dev/null
+++ b/doc/protocol.texi
@@ -0,0 +1,52 @@
+@node  Zebra Protocol, Packet Binary Dump Format, SNMP Support, Top
+@comment  node-name,  next,  previous,  up
+@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