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.
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) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Length is total packet length including this header length. So minimum length is three. Command is Zebra Protocol command.
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
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+