Traffic is destined to or originates from the PIC interface’s address(es).
Data traffic, which processes packets, uses an internal library built on the Services SDK (formerly MP SDK) packet driver to obtain and send each packet; it does not use sockets to gain access to each packet. Services SDK applications can manipulate packets directly by calling zero-copy functions at line rate. The extent of parallel processing is controllable. The application can be considered a step on the packet processing pipeline.
Packet traffic is always from a Multiservices PIC, through the Packet Forwarding Engine, to another Multiservices PIC:
Packet Flow Overview
Packets are routed through the Multiservices PIC as follows:
ms-interface. (This address can be externally visible; Network Address Translation is also an option.) The IP address you configure in turn translates into a route for that address, pointing to the PIC.
ms-interface or routing table (
vrf_id) to use. The driver forwards the traffic to the Packet Forwarding Engine.
Packet flow within the Multiservices PIC depends on whether the packet is going through a control or a data CPU.
Control Packet Flow
ms-interfaces. A default route is identified for every routing instance. At least one
ms-x/y/zinterface is expected to have been configured in a routing instance.
One of these
ms- interfaces in a routing instance is used for the default route. When data is transmitted using socket send, the routing instance associated with the socket is identified and the
ms- interface associated with the default route of the routing instance is used to output the packet to the Packet Forwarding Engine on the router. The packet is then forwarded out of the router using the forwarding tables in the Packet Forwarding Engine.
The embedded JUNOS system on the Services SDK platform does not maintain forwarding tables: instead, it relies on the Packet Forwarding Engine to forward packets.
Data Packet Flow
Polling CPUs place packets in the application FIFO queue. The remaining hardware CPUs in the Multiservices PIC are expected to run an application in a WHILE loop that consumes the packets from the application FIFO queue.
The application threads can either process the packets and transmit them or hand them over to additional CPUs/PICs for further processing.
The application can add information to the packet header to specify which routing instance or
ms- interface should be used for sending the packet back to the Packet Forwarding Engine. This capability allows the application to control which routing instance is used to forward the packet out of the router.
ms-interface. Packets destined for IP addresses hosted on
ms-interfaces are always delivered to control CPUs.
libssdlibrary. In this case, the packets are delivered to data CPUs. For more information, see Route Configuration, ssd-page, and Route Manager Application.
sampleaction in a firewall filter. For more information, see Applying Services to Sampled Packets.
For additional details about creating routes and handling packets, see the following topics: