Network Control Plane is a subsystem of Libnetwork to manage routing information and we need a protocol that converge quickly to do that job. For example, Libnetwork does not use BGP as the protocol (despite that BGP is great at scalability to support very large number of endpoints), because point BGP won't converge quick enough to use in the highly dynamic environment such as the software container environment.
In a container-centric world, the networking system is expected to change very quickly, especially for the new Docker service model, which requires a massive and fast IP assignation. We want the routing information to converge very rapidly as well, especially at a big scale, for example, for more than 10,000 containers. In Swarm2k and Swarm3k experiments, we really did start 10,000 containers at a time. Especially, in Swarm3k, we started 4,000 NGINX containers on the Ingress load-balancing network. Without a fine implementation, this number of scale won't work...