| submodule openconfig-aft-pf { |
| belongs-to "openconfig-aft" { |
| prefix "oc-aft"; |
| } |
| |
| import openconfig-extensions { prefix "oc-ext"; } |
| import openconfig-inet-types { prefix "oc-inet"; } |
| import openconfig-yang-types { prefix "oc-yang"; } |
| import openconfig-mpls-types { prefix "oc-mplst"; } |
| import openconfig-packet-match-types { |
| prefix "oc-pkt-match-types"; |
| } |
| |
| // Include common cross-AFT groupings from the common submodule. |
| include openconfig-aft-common; |
| |
| organization |
| "OpenConfig working group"; |
| |
| contact |
| "OpenConfig working group |
| www.openconfig.net"; |
| |
| description |
| "Submodule containing definitions of groupings for the abstract |
| forwarding table(s) for policy forwarding entries. These are |
| defined to be forwarding tables that allow matches on |
| fields other than the destination address that is used in |
| other forwarding tables."; |
| |
| oc-ext:openconfig-version "0.3.0"; |
| |
| revision 2017-05-10 { |
| description |
| "Refactor to provide concretised per-AF schemas per AFT."; |
| reference "0.3.0"; |
| } |
| |
| grouping aft-pf-structural { |
| description |
| "Structural grouping defining the schema for the policy |
| forwarding abstract forwarding table."; |
| |
| list policy-forwarding-entry { |
| key "index"; |
| |
| description |
| "List of the policy forwarding entries within the abstract |
| forwarding table. Each entry is uniquely identified by an |
| index on the system, due to the arbitrary match conditions |
| that may be implemented within the policy forwarding AFT. |
| The index may change upon changes of the entry if, and only |
| if, the device exporting the AFT replaces the entire entry |
| by removing the previous entry and replacing it with a |
| subsequent updated version."; |
| |
| leaf index { |
| type leafref { |
| path "../config/index"; |
| } |
| description |
| "Reference to the arbitary index for the policy forwarding |
| AFT entry."; |
| } |
| |
| container config { |
| description |
| "Configuration parameters for the Policy forwarding |
| AFT entry."; |
| uses aft-pf-entry-config; |
| } |
| |
| container state { |
| config false; |
| description |
| "Operational state parameters for the Policy Forwarding |
| AFT entry."; |
| uses aft-pf-entry-config; |
| uses aft-pf-entry-state; |
| } |
| |
| uses aft-common-nhop-structural; |
| } |
| } |
| |
| grouping aft-pf-entry-config { |
| description |
| "Configuration parameters for the Policy Forwarding |
| AFT entry."; |
| |
| leaf index { |
| type uint64; |
| description |
| "An arbitrary 64-bit index identifying the policy forwarding |
| AFT entry."; |
| } |
| |
| leaf ip-prefix { |
| type oc-inet:ip-prefix; |
| description |
| "The IP prefix that the forwarding entry matches."; |
| } |
| |
| leaf mac-address { |
| type oc-yang:mac-address; |
| description |
| "The MAC address that the forwarding entry matches. Used for |
| Layer 2 forwarding entries, e.g., within a VSI instance."; |
| } |
| |
| leaf mpls-label { |
| type oc-mplst:mpls-label; |
| description |
| "The MPLS label that the forwarding entry matches. Used for |
| MPLS forwarding entries, whereby the local device acts as an |
| LSR."; |
| } |
| |
| leaf mpls-tc { |
| type oc-mplst:mpls-tc; |
| description |
| "The value of the MPLS Traffic Class bits (formerly known as |
| the MPLS experimental bits) that are to be matched by the AFT |
| entry."; |
| reference |
| "RFC5462: Multiprotocol Label Switching (MPLS) Label Stack |
| Entry: 'EXP' Field Renamed to 'Traffic Class' Field"; } |
| |
| leaf ip-dscp { |
| type oc-inet:dscp; |
| description |
| "The value of the differentiated services code point (DSCP) to |
| be matched for the forwarding entry. The value is specified in |
| cases where specific class-based forwarding based on IP is |
| implemented by the device."; |
| } |
| |
| leaf ip-protocol { |
| type oc-pkt-match-types:ip-protocol-type; |
| description |
| "The value of the IP protocol field of an IPv4 packet, or the |
| next-header field of an IPv6 packet which is to be matched by |
| the AFT entry. This field is utilised where forwarding is |
| performed based on L4 information."; |
| } |
| |
| leaf l4-src-port { |
| type oc-inet:port-number; |
| description |
| "The value of the source port field of the transport header |
| that is to be matched by the AFT entry."; |
| } |
| |
| leaf l4-dst-port { |
| type oc-inet:port-number; |
| description |
| "The value of the destination port field of the transport |
| header that is to be matched by the AFT entry."; |
| } |
| } |
| |
| grouping aft-pf-entry-state { |
| description |
| "Operational state parameters for the Policy Forwarding |
| AFT entry."; |
| uses aft-common-entry-state; |
| } |
| } |