blob: 98b936286d0834e0a2ff75b644cd1808396df539 [file] [log] [blame]
Thomas Vachuska6655bee2017-08-24 16:12:59 -07001module openconfig-aft {
2
3 yang-version "1";
4
5 namespace "http://openconfig.net/yang/aft";
6
7 prefix "oc-aft";
8
9 import openconfig-extensions { prefix "oc-ext"; }
10
11 // Include IPv4 AFT submodule.
12 include openconfig-aft-ipv4;
13 // Include IPv6 AFT submodule.
14 include openconfig-aft-ipv6;
15 // Include MPLS AFT submodule.
16 include openconfig-aft-mpls;
17 // Include policy forwarding AFT submodule.
18 include openconfig-aft-pf;
19 // Include the ethernet AFT submodule.
20 include openconfig-aft-ethernet;
21 // Include the common cross-AFT entities.
22 include openconfig-aft-common;
23
24 organization
25 "OpenConfig working group";
26
27 contact
28 "OpenConfig working group
29 www.openconfig.net";
30
31 description
32 "A model describing the forwarding entries installed on a network
33 element. It should be noted that this model is not expected to
34 align 1:1 with the underlying structure used directly by a
35 forwarding element (e.g., linecard), but rather provide an
36 abstraction that can be consumed by an NMS to observe, and in some
37 cases manipulate, the internal forwarding database in a simplified
38 manner. Since the underlying model of the forwarding table is not
39 expected to align with this model, the structure described herein
40 is referred to as an Abstract Forwarding Table (AFT), rather than
41 the FIB.";
42
43 oc-ext:openconfig-version "0.3.0";
44
45 revision 2017-05-10 {
46 description
47 "Refactor to provide concretised per-AF schemas per AFT.";
48 reference "0.3.0";
49 }
50
51 // config + state groupings
52
53 // structural groupings
54
55 grouping aft-top {
56 description
57 "Top-level grouping allowing per-protocol instantiation of the
58 AFT.";
59
60 container afts {
61 description
62 "The abstract forwarding tables (AFTs) that are associated
63 with the network instance. An AFT is instantiated per-protocol
64 running within the network-instance - such that one exists for
65 IPv4 Unicast, IPv6 Unicast, MPLS, L2 forwarding entries, etc.
66 A forwarding entry within the FIB has a set of next-hops,
67 which may be a reference to an entry within another table -
68 e.g., where a Layer 3 next-hop has an associated Layer 2
69 forwarding entry.";
70
71 container ipv4-unicast {
72 description
73
74 "The abstract forwarding table for IPv4 unicast. Entries
75 within this table are uniquely keyed on the IPv4 unicast
76 destination prefix which is matched by ingress packets.
77
78 The data set represented by the IPv4 Unicast AFT is the set
79 of entries from the IPv4 unicast RIB that have been selected
80 for installation into the FIB of the device exporting the
81 data structure.";
82
83 uses aft-ipv4-unicast-structural;
84 }
85
86 container ipv6-unicast {
87 description
88 "The abstract forwarding table for IPv6 unicast. Entries
89 within this table are uniquely keyed on the IPv6 unicast
90 destination prefix which is matched by ingress packets.
91
92 The data set represented by the IPv6 Unicast AFTis the set
93 of entries within the IPv6 RIB that ";
94
95 uses aft-ipv6-unicast-structural;
96
97 }
98
99 container policy-forwarding {
100 description
101 "The abstract forwarding table for policy-based forwarding
102 entries. Since multiple match criteria can be utilised
103 within a policy-based forwarding rule, this AFT provides a
104 flexible match criteria, and is indexed based on an
105 arbitrary 64-bit index. Entries within the AFT may match on
106 multiple field types (e.g., L4 header fields, as well as L2
107 fields).
108
109 Examples of entries within this table are:
110 - IPv4 policy-based routing based on DSCP.
111 - MPLS policy-based forwarding entries.";
112
113 uses aft-pf-structural;
114 }
115
116 container mpls {
117 description
118 "The abstract forwarding table for MPLS label based
119 forwarding entries. Entries within the table are keyed based
120 on the top-most MPLS label in the stack on the ingress
121 packet.";
122
123 uses aft-mpls-structural;
124 }
125
126 container ethernet {
127 description
128 "The abstract forwarding table for Ethernet based forwarding
129 entries. Entries within the table are keyed based on the
130 destination MAC address on the ingress packet.";
131
132 uses aft-ethernet-structural;
133 }
134 }
135 }
136}