ClickP4

Policy-Aware Modular Programming Architecture for P4


Find Out More View Source Code

Background of ClickP4

P4 has started a new era of programming networks for its ability of defining data plane behaviors. By building P4 programs, network operators can introduce diverse novel features such as network telemetry, stateful packet filtering and novel routing protocols into network devices.

Motivations of ClickP4

  • Complexity: Developing monolithic P4 programs from scratch is prone to errors and can be a source of complexity.
  • Inflexibility: Features implemented by a P4 program can hardly be re-orchestrated at runtime, which reduces the flexibility of programmable networks.
  • Unreliability: There is no isolation mechanism for network policies to protect themselves from being enforced by undesired features.

ClickP4 Offers

ClickP4 is proposed as a policy-aware modular programming architecture for P4.

  • Simplicity for building P4 programs
  • Flexibility for orchestrating program features
  • Reliability for enforcing network policies

ClickP4 Framework


ClickP4 Core

The core code of ClickP4 framework. It supports for composition of modules and defines the special nodes in ClickP4, such as Rewinder and Initializer.

Learn More

ClickP4 Modules

The module repository of ClickP4. Operators can composes various modules to a static P4 program by registering the required modules in the configuretion files.

Learn More

ClickP4 Module Context

Context of the modules. All components in the context and shared globally. And the context can beused to express dependencies among modules.

Learn More

ClickP4 Protocol

Protocol definitions for ClickP4. Developers can extend the protocol stack by adding componennts into ClickP4. Besides, it also defines the packets parser.

Learn More