Extensible Policy Decision Framework Using Ahead of Time Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network devices face challenges in dynamically incorporating new policy objects and providing visibility into policy enforcement, as routing policies are typically static and hidden from users, limiting flexibility and expressiveness.

Innovation Solution

A policy server with a parser, engine, and dispatcher that constructs a dynamic acyclic graph from human-readable policy objects, generates code, and compiles binaries for asynchronous updates, allowing for extensible policy processing and visibility through a JSON format and Ahead of Time compilation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If routing policies are implemented as static applications or libraries, then policy enforcement is reliable and stable, but flexibility to incorporate new policy objects is poor

Engineering Contradiction:
Improveflexibility to incorporate new policy objectsVSAvoidpolicy generation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent transforms static routing policies into dynamic policies by implementing a policy generation system that can automatically create, modify, and compile policy objects at runtime. The system uses a policy data model with configurable parameters that can be adjusted without requiring complete policy rewriting, enabling flexible adaptation while maintaining structured generation processes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements ahead-of-time (AoT) compilation where policy code is pre-compiled into binaries before deployment. This preliminary action separates the complexity of policy generation from runtime execution, allowing flexible policy object incorporation while maintaining stable and efficient policy enforcement through pre-compiled code.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If policy objects are hidden from users, then policy enforcement is secure, but user visibility and control are reduced

Engineering Contradiction:
Improveuser visibility into policy codeVSAvoidpolicy enforcement security
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The patent introduces a policy data model as an intermediary layer between user-facing configuration and underlying policy enforcement code. This model exposes high-level, human-readable policy parameters that users can configure and monitor, while the AoT compilation process translates these into secure, optimized binaries for enforcement, maintaining both visibility and security.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If policy updates are performed synchronously, then policy consistency is maintained, but update speed and responsiveness are reduced

Engineering Contradiction:
Improvepolicy update speedVSAvoidpolicy consistency
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The patent implements AoT compilation where policy code is pre-compiled into binaries before deployment. This preliminary action separates the compilation step from the update step, allowing rapid policy updates to be deployed without performing lengthy compilation operations during synchronous updates, thereby improving update speed while maintaining consistency through pre-validated binaries.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10868725B2Extensible plug-n-play policy decision framework for network devices using ahead of time compilation
Publication Date: 2020.12.15 RTBRICK INC
  • US10868725B2 patent drawing
  • US10868725B2 patent drawing
  • US10868725B2 patent drawing

AI summary

A policy server may include a policy parser that is communicably coupled to a configuration database. The policy parser may identify a policy data model in the configuration database associated with a policy. The policy data model may include a policy object expressed in a human-readable format. The policy server may include a policy engine for constructing a dynamic acyclic graph (DAG) representing the policy data model. The policy engine may include a code generation engine for parsing the DAG to generate code in a high-level language. The policy engine may include a compiler for compiling the generated code to generate binaries for implementing the policy. The policy server may include a policy dispatcher for generating a notification to a policy client to dispatch the binaries to at least one subscriber of the policy following the code being compiled. The policy server may asynchronously update the policy for the subscribers.