Open, High-Level language for developing feature-rich
solutions for programmable networking platforms

Networking platforms have steadily become more programmable in response to today’s increasingly complex networks with rapidly changing requirements.

At the same time, there is a recognition that the language used to program them needs to provide a rich set of constructs that balance the need for efficient implementation and high-level abstractions for ease of programming. The result is NPL.

NPL is an open language for use by the community. It is designed to express the behavior of high performance, feature-rich networking platforms. It has sophisticated features that promote:

  • Customized table pipelines

  • Intelligent action processing

  • Parallelism

  • Advanced logical table capabilities

  • An integrated instrumentation plane

  • Simple, intuitive control flow

The Reasons You’ll Love NPL’s Unique Features

Advanced Logical Table Capabilities

• Eliminates need for multiple copies of on-chip databases

• Increases parallelism, reduces latency and power consumption

Function Primitives

• Enables table-independent actions

• Efficient usage of on-chip resources

• Eases development of modular building blocks

Runtime Programmability

• Field upgrades: new functionality without recompiling NPL program

• Provides quick responses to changing operational needs

Strength Based Resolution

• Allows dynamic action prioritization

• Enables high degree of parallelism

• Avoids unnecessary and inefficient usage of tables

Advanced Instrumentation

• Attachment of custom monitors/counters to logical tables

• User Defined Packet and Traffic Monitoring

Code Example

Want to learn more about NPL?
Join us on GitHub.