| module openconfig-policy-forwarding { |
| yang-version "1"; |
| |
| namespace "http://openconfig.net/yang/policy-forwarding"; |
| |
| 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; |
| |
| organization |
| "OpenConfig working group"; |
| |
| contact |
| "OpenConfig working group |
| www.openconfig.net"; |
| |
| description |
| "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 |
| interface. |
| |
| 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" { |
| description |
| "Amend policy forwarding model based on ACL changes."; |
| reference "0.2.0"; |
| } |
| |
| revision "2017-02-28" { |
| description |
| "Initial public release of policy forwarding."; |
| reference "0.1.0"; |
| } |
| |
| revision "2016-11-08" { |
| description |
| "Initial revision."; |
| reference "0.0.1"; |
| } |
| |
| |
| grouping policy-forwarding-top { |
| description |
| "Top-level grouping for Policy Forwarding"; |
| |
| container policy-forwarding { |
| description |
| "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; |
| } |
| } |
| } |