blob: 63dbf7843570ddebf1bd7145c0a628c30491791e [file] [log] [blame]
module openconfig-policy-forwarding {
yang-version "1";
namespace "";
prefix "oc-pf";
import openconfig-extensions { prefix "oc-ext"; }
// Include submodules.
include openconfig-pf-forwarding-policies;
include openconfig-pf-path-groups;
include openconfig-pf-interfaces;
"OpenConfig working group";
"OpenConfig working group";
"This module defines configuration and operational state data
relating to policy-based forwarding. Policy-based forwarding is
utilised when a system chooses how to forward packets (including
applying data-plane operations such as encapsulation or
decapsulation) based on policies other than destination L2 or L3
header. Typically, systems may implement:
- IP policy-based routing, where routing may be done based on the
source plus destination of an IP packet; information within the
L4 header; or some combination of both.
- Encapsulation or decapsulation based on certain policy
information - for example, matching particular IP destinations
and decapsulating GRE headers.
- Class-based selection of egress routes - such as class-based
selection of an egress MPLS path.
The policies that are defined in this model are applied to a
particular ingress context of a network element (e.g., interface)
and are defined to apply following other interface policy such as
QoS classification and access control lists.
This module defines:
- policy-forwarding
|--- policies
| |-- policy
| |-- [match criteria] How packets are defined to
| | match policy.
| |-- [forwarding-action] How packets matching should
| be forwarded.
|--- interfaces
| |-- interfaces
| | -- apply-forwarding-policy Forwarding policy to
| used on the interface.
|--- path-selection-groups
|-- path-selection-group A group of forwarding resources
that are grouped for purposes
of next-hop selection.
A forwarding-policy specifies the match criteria that it intends
to use to determine the packets that it reroutes - this may
consist of a number of criteria, such as DSCP. The action of the
policy results in a forwarding action being applied to matching
packets. For example, decapsulating the packet from a GRE header.
In order to enact the policy based on particular interfaces - the
forwarding-policy is applied to an interface via referencing it
within an 'apply-forwarding-policy' statement associated with an
In some cases (e.g., Class-Based Tunnel Selection) the forwarding
action does not resolve to a single egress action, and rather
normal forwarding rules are to be applied but considering a subset
of forwarding resources. In these cases, a path-selection-group
can be created, referencing the subset of forwarding paths that
should be used for the egress selection. In the case that a subset
of MPLS LSPs are eligible for, say, DSCP 46 marked packets, a
path-selection-group is created, referencing the subset of LSPs.
The forwarding action of the corresponding policy is set to
PATH_GROUP and references the configured group of LSPs.";
oc-ext:openconfig-version "0.2.0";
revision "2017-06-21" {
"Amend policy forwarding model based on ACL changes.";
reference "0.2.0";
revision "2017-02-28" {
"Initial public release of policy forwarding.";
reference "0.1.0";
revision "2016-11-08" {
"Initial revision.";
reference "0.0.1";
grouping policy-forwarding-top {
"Top-level grouping for Policy Forwarding";
container policy-forwarding {
"Configuration and operational state relating to policy-forwarding within
a network instance.";
uses pf-forwarding-policy-structural;
uses pf-interfaces-structural;
uses pf-path-groups-structural;