Project Proposals/processing pipeline

Jump to: navigation, search

Processing and forward


Processing Pipeline with SRv6

Project Contact Name and Email

Andre Surcouf (
Clarence Filsfils (

Repository Name



Thank to this project it will be possible to create complex processing pipeline in which each node applies some transformation not at the IP packet level but rather at “application data level” which represents several IP packet payloads. For any given node in the processing pipeline the input and the output data sizes can be different. The idea is to create a generic and extensible framework to allow additional functionality to be provided. Media processing is a natural application of this framework. The framework itself can be divided in three parts:

  • The input plug-in responsible for receiving incoming traffic and make it available to the processing application through e.g. a piece of memory
  • The output plug-in responsible for sending outgoing traffic from one processing application.
  • A third control plugin is used to configure the other plug-ins.

  • The input as well as output plugins are actually split in two parts the application domain specific (e.g. Media) part and the ip specific part. (A fully detailed description of the involved mechanisms is accessible in a separate document)


      - Processing
            - Transform
            - Forward

    Initial Committers

    Axel Taldir (
    Eyal Shalev (
    Francois Clad (

    Vendor Neutral

    There is no need for any particular hardware. However some implementation could use dedicated hardware to increase the performances. No driver required for any specific hardware

    The code of each plugin is itself divided in two parts:

  • A fully generic part which is responsible for IP packetization and depacketization. This part exposes a configuration API totally agnostic from the application specific part. This part is also responsible for maintaining IP continuity across processing applications which are not IP aware. This fully generic part is actually an extension of the existing v6SR development project which is meant to become an extensible framework to allow additional functionality to be provided.
  • An application domain (e.g. Media) specific part which is responsible for implementing the communication with the external application. In the media particular case shared memory are used for this purpose. This domain specific part is new and could be considered either as an extension of the v6SR work or as a separate sub-project.
  • Meets Board Policy (including IPR, being within Board defined Scope etc)

    Meets board policy as expressed in Technical Community Charter and IP Policy