Explains how Packet I/O provides communications between IOS XR interfaces and Linux applications using the Linux networking stack.
A Packet I/O communication is a framework that
-
exposes IOS XR network interfaces as standard Linux kernel interfaces
-
enables Linux applications running on the router to send, receive, and manage traffic as if operating on a regular Linux system, and
-
allows off-the-shelf Linux tools to run alongside IOS XR without reconfiguration.
-
Exposed XR interfaces (EXIs): Interfaces that inherit IP address, MTU, and MAC address settings from the corresponding IOS XR configuration.
-
to_xr interface: Connects the Linux network stack to the IOS XR routing and forwarding infrastructure, enabling default reachability based on XR's Routing Information Base (RIB) and Forwarding Information Base (FIB).
Virtual IP address support
Virtual IP addresses allow a single IP address to connect to the active route processor (RP) after an RP switchover event. This supports third-party applications and IOS XR applications using the Linux networking stack, enabling management access from a network with a single virtual IP address through gRPC or similar protocols.
Automatic synchronization of secondary IP addresses
Secondary IPv4 and IPv6 addresses configured on IOS XR interfaces are automatically synchronized with the Linux operating system, removing the need for manual configuration in Linux. Third-party applications deployed on IOS XR can use these secondary addresses directly.
Supported interface types:
-
Exposed XR interfaces (EXIs): Secondary IP addresses are added to the corresponding Linux interface.
-
Address-only interfaces: Secondary IP addresses are added to the Linux loopback device.
Secondary IPv4 addresses are not synchronized from Linux to IOS XR for Linux-managed interfaces. Use the
ip addr showcommand to view all configured IPv4 and IPv6 addresses; theifconfigcommand displays only the first IPv4 address.
For more information on secondary IPv4 and IPv6 addresses, see ipv4 address (network) and ipv6 address.