The major difference between CoPP and CPPr is that CPPr allows for more granular restricting of control plane traffic by separating the control plane traffic into three categories(also called Sub-Interfaces):
- Control Plane Host sub-interface
- Control Plane Transit sub-interface
- Control Plane CEF-Exception sub-interface
The first and third are defined by Cisco as follows:
Control plane host subinterface: This interface receives all control plane IP traffic that is directly destined for one of the router interfaces (physical and loopback). Examples of control plane host IP traffic include tunnel termination traffic; management traffic; and routing protocols such as SSH, SNMP, internal BGP (iBGP), and EIGRP
Control plane CEF-exception subinterface: This control plane subinterface receives all traffic that is either redirected as a result of a configured input feature in the CEF packet forwarding path for process switching or directly enqueued in the control plane input queue by the interface driver (that is, ARP, external BGP (eBGP), OSPF, LDP, Layer 2 keepalives, and all non-IP host traffic). Control Plane Protection allows specific aggregate policing of this type of control plane traffic.
Why are some routing protocols considered Control Plane Host Subinterface, and others considered Control Plane CEF-Exception subinterface?
Namely from the document above: iBGP and EIGRP are Host subinterface, and eBGP and OSPF are CEF-Exception subinterface. Despite iBGP and eBGP both using TCP/179 unicast as their transports.
I'm trying to understand the different functions of all three categories/sub-interfaces, and the Routing Protocols being split across two of them confuses me.