# A Survey on Efforts to Evolve the Control Plane of Inter-Domain Routing
## 3 Background
### BGP Control Plane  
The BGP Control Plane is the place where decisions about how to handle the network traffic are made and where the traffic is sent. Figure 1 presents an abstraction of a BGP router in which the BGP control plane is modeled. The responsibilities of the control plane are managing network traffic, setting system configuration and the exchange of routing information. To set up the control plane, an _User Interface_ is provided and is often the command line of the network appliance. The BGP control plane uses UPDATE messages to exchange Network Layer Reachability Information (NLRI) with other routers to create the topology view of the network state and to build the routing table. The BGP configuration reflects the business model of the organization that executes it. The main goal of the BGP is to reflect the desired inter-domain routing policy of a particular AS. The BGP routing decision process applies the filtering and export for a given AS to learn routes fromits neighbor and re-advertise them. The final goal of this BGP decision process defines one \"best\" route per prefix. Once a TCP connection of the BGP is established and the route information is exchanged, the Routing Information Base (RIB) is filled. The adjacency table _Adj-RIB-Int_ is the input for the BGP routing decision process, and it is where the attribute manipulation is also carried out (such as checking _communities_ values). Then, the import policy/filter determines which routes are acceptable from each BGP peer. This generates a new database called the Local Routing Information Base _Local RIB_ that stores all acceptable routes learned from all BGP peers plus the internal routes, which are routes that belong to the AS and were learned through intra-domain routing protocols. Thereby, to construct the Local RIB, the control plane compiles information of the BGP, and all other routing protocols (for example, injected by OSPF and RIP) and static routes enter by the network operator. Once the routes are learned, the BGP control plane has to decide a single \"best\" next hop of each destination. First, if the prefixes learned are unique, then they are installed in the forwarding table of the BGP appliance, and the longest prefix matching is applied. However, if some prefixes have the same subnet mask, but different next hops, then the BGP uses its tie-break algorithm to decide what is the next hop for a given network prefix. Table 2 presents that algorithm, where the priority indicates the sequence of the criterion used in this process. The first criterion for the BGP route selection process is preferred high _Local preference_ values, which is a numerical value that a network operator, in the local AS, can assign to a particular route. If the _Local preference_ value is equal for more than one route, then the BGP will follow another tie-break criterion. This way, the BGP decision process selects just one _best_ route towards each destination. The finalization of the BGP decision process is the export policy/filter that determines which routes can be sent to each _Peer_. Again, the attribute manipulation is also applied on the routes, and then, they are stored in the _Adj-RIB-Out_ database. Then, other _Peers_ can learn the routes available for them. All the routing information is then processed to update the routing tables of the BGP router. The control plane functions do not process each individual packet of the device. This responsibility belongs to the data plane elements. The _Data Plane_ is also known as the _Forwarding Plane_. It forwards network traffic to the next hop along the route to the selected destination following the logic given by the control plane. The Forwarding Information Base (FIB) stores the information of which interface packets should be forward to. Thus, the _Data Plane_ elements (e.g., routers or switches) use the FIB to forward incoming and outgoing packets or frames to one of its interfaces. For a BGP router, all packets pass through the _Data Plane_ of the router. Figure 1: Model of the BGP control plane.