Taken from frr-6.0.2/lib/zebra.h Reordered them according to their value for easier reading
/* Default Administrative Distance of each protocol. */ #define ZEBRA_KERNEL_DISTANCE_DEFAULT 0 #define ZEBRA_CONNECT_DISTANCE_DEFAULT 0 #define ZEBRA_STATIC_DISTANCE_DEFAULT 1 #define ZEBRA_TABLE_DISTANCE_DEFAULT 15 #define ZEBRA_EBGP_DISTANCE_DEFAULT 20 #define ZEBRA_OSPF_DISTANCE_DEFAULT 110 #define ZEBRA_OSPF6_DISTANCE_DEFAULT 110 #define ZEBRA_ISIS_DISTANCE_DEFAULT 115 #define ZEBRA_RIP_DISTANCE_DEFAULT 120 #define ZEBRA_RIPNG_DISTANCE_DEFAULT 120 #define ZEBRA_IBGP_DISTANCE_DEFAULT 200
Also documentation from latest release is available here FRR administrative distance
Administrative distance allows FRR to make decisions about what routes should be installed in the rib based upon the originating protocol. The lowest Admin Distance is the route selected. This is purely a subjective decision about ordering and care has been taken to choose the same distances that other routing suites have choosen.
Protocol Distance System 0 Kernel 0 Connect 0 Static 1 NHRP 10 EBGP 20 EIGRP 90 BABEL 100 OSPF 110 ISIS 115 OPENFABRIC 115 RIP 120 Table 150 SHARP 150 IBGP 200 PBR 200
An admin distance of 255 indicates to Zebra that the route should not be installed into the Data Plane. Additionally routes with an admin distance of 255 will not be redistributed.
Zebra does treat Kernel routes as special case for the purposes of Admin Distance. Upon learning about a route that is not originated by FRR we read the metric value as a uint32_t. The top byte of the value is interpreted as the Administrative Distance and the low three bytes are read in as the metric. This special case is to facilitate VRF default routes.