IPCP

IP Control Protocol

Protocol →
Introduced in Rel-8

IPCP is the Network Control Protocol within PPP used to configure, enable, and disable IPv4 protocol modules on both ends of a point-to-point link for establishing IPv4 connectivity.

Category
Protocol
Introduced
Rel-8
Where
Core Network › Legacy Core
Specifications
2 specs
IPCP Description Purpose Related Classification Detected Changes Specifications

Description

The IP Control Protocol (IPCP) is defined by the IETF in RFC 1332 and is a crucial component of the Point-to-Point Protocol (PPP) framework. PPP itself provides a standard method for transporting multi-protocol datagrams over point-to-point links. IPCP operates as a sibling to other NCPs like IPv6CP (for IPv6) and operates in the PPP Network Layer phase. Its sole purpose is to negotiate IPv4-specific parameters for the PPP link, transitioning it from a mere data link to a functional network layer connection capable of carrying IPv4 packets.

IPCP works through a simple symmetric state machine using a similar packet exchange mechanism as the Link Control Protocol (LCP). After the PPP link is established and authenticated (via LCP and potentially PAP/CHAP), IPCP negotiation begins. The two peers exchange Configure-Request packets containing configuration options they desire. The most critical option is the IP-Address, where a peer can request a specific address, suggest an address for the remote end, or indicate it will provide an address later. Other options include Primary DNS Server address, Primary NBNS (NetBIOS Name Server) address, and IP-Compression-Protocol for Van Jacobson TCP/IP header compression. Each peer responds with a Configure-Ack (acceptance), Configure-Nak (rejection with a counter-proposal), or Configure-Reject (rejection of an unrecognized option). This exchange continues until both sides send and receive Configure-Acks.

Once IPCP reaches the Opened state, the IPv4 protocol is considered configured for this PPP link. All IPv4 packets are then encapsulated within PPP frames (Protocol field 0x0021) and transmitted. IPCP also handles the termination of the IPv4 network layer connection through Terminate-Request and Terminate-Ack packets, and can re-negotiate parameters dynamically via Configure-Request at any time while the link is active. In 3GPP contexts, IPCP historically played a role in the early PS data services (GPRS) where the terminal-to-network interface (e.g., over Um/Gb interfaces) could use PPP, and it remains relevant for certain legacy interworking functions and specific backhaul link configurations.

Purpose & Motivation

IPCP was created as part of the IETF's PPP suite to solve the problem of automating the configuration of network-layer parameters over simple point-to-point links. Before PPP and IPCP, establishing an IP connection over a serial line (like a dial-up modem connection) required manual configuration of IP addresses on both ends, which was error-prone and impractical for large-scale deployments like Internet Service Providers (ISPs). IPCP provided a lightweight, standardized protocol to dynamically negotiate these parameters, enabling 'plug-and-play' IP connectivity.

Within 3GPP, the adoption of IPCP was driven by the need for a reliable, standardized data link protocol for early packet-switched services. In GPRS and early UMTS releases, the connection between the Mobile Station (MS) and the network across the radio interface could be established using PPP, with IPCP performing the crucial task of assigning the MS its IPv4 address from the network. This integrated the mobile device seamlessly into the IP network. While later 3GPP systems (EPS, 5GS) moved towards a pure GTP-based model where IP address assignment is handled by the core network (DHCPv4 or from the PGW/UPF) during PDN/PDU Session establishment, IPCP remains specified for certain interworking scenarios, legacy support, and for specific access types where PPP is still the underlying link protocol.

Classification

Part ofPPP
Related approachesIPV6CPLCP

Detected Changes Across Releases

from 3GPP Change Requests

Specific changes extracted from the „Change history“ tables of 3GPP specifications (1 CRs across 1 releases). Complements the general historical overview above with the evidence-based evolution of this function.

Studied in Rel-8, normative work from Rel-15.

Rel-15 1 change

In Release 15, the IP Control Protocol (IPCP) function was enhanced to support rate control for Mobile Originated exception data. This allows the network to apply specific policy and charging controls to manage the flow of such excepted data traffic. The implementation leverages existing Policy and Charging Control (PCC) architecture mechanisms to enforce these rate limits.

  • Rate control for MO exception data TS 29.061CR0498

Explore further

Broader topics and technologies where IPCP plays a role.

Defining Specifications

3GPP specifications that define or reference IPCP, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 23.852 vc00 Study on GTP-based S2a for WLAN Access Rel-12
TS 29.061 vj00 Packet Domain Interworking for PLMN Rel-19