aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-aft.yang
blob: ef3374d33e4689c64d2cc6a05726820d0dc88534 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
module openconfig-aft {

  yang-version "1";

  namespace "http://openconfig.net/yang/aft";

  prefix "oc-aft";

  import openconfig-extensions { prefix "oc-ext"; }

  // Include IPv4 AFT submodule.
  include openconfig-aft-ipv4;
  // Include IPv6 AFT submodule.
  include openconfig-aft-ipv6;
  // Include MPLS AFT submodule.
  include openconfig-aft-mpls;
  // Include policy forwarding AFT submodule.
  include openconfig-aft-pf;
  // Include the ethernet AFT submodule.
  include openconfig-aft-ethernet;
  // Include the common cross-AFT entities.
  include openconfig-aft-common;

  organization
    "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "A model describing the forwarding entries installed on a network
    element. It should be noted that this model is not expected to
    align 1:1 with the underlying structure used directly by a
    forwarding element (e.g., linecard), but rather provide an
    abstraction that can be consumed by an NMS to observe, and in some
    cases manipulate, the internal forwarding database in a simplified
    manner. Since the underlying model of the forwarding table is not
    expected to align with this model, the structure described herein
    is referred to as an Abstract Forwarding Table (AFT), rather than
    the FIB.";

  oc-ext:openconfig-version "0.3.1";

  revision 2017-08-24 {
    description
      "Formatting fixes";
    reference "0.3.1";
  }

  revision 2017-05-10 {
    description
      "Refactor to provide concretised per-AF schemas per AFT.";
    reference "0.3.0";
  }

  // config + state groupings

  // structural groupings

  grouping aft-top {
    description
      "Top-level grouping allowing per-protocol instantiation of the
      AFT.";

    container afts {
      description
        "The abstract forwarding tables (AFTs) that are associated
        with the network instance. An AFT is instantiated per-protocol
        running within the network-instance - such that one exists for
        IPv4 Unicast, IPv6 Unicast, MPLS, L2 forwarding entries, etc.
        A forwarding entry within the FIB has a set of next-hops,
        which may be a reference to an entry within another table -
        e.g., where a Layer 3 next-hop has an associated Layer 2
        forwarding entry.";

      container ipv4-unicast {
        description
          "The abstract forwarding table for IPv4 unicast. Entries
          within this table are uniquely keyed on the IPv4 unicast
          destination prefix which is matched by ingress packets.

          The data set represented by the IPv4 Unicast AFT is the set
          of entries from the IPv4 unicast RIB that have been selected
          for installation into the FIB of the device exporting the
          data structure.";

        uses aft-ipv4-unicast-structural;
      }

      container ipv6-unicast {
        description
          "The abstract forwarding table for IPv6 unicast. Entries
          within this table are uniquely keyed on the IPv6 unicast
          destination prefix which is matched by ingress packets.

          The data set represented by the IPv6 Unicast AFTis the set
          of entries within the IPv6 RIB that ";

        uses aft-ipv6-unicast-structural;

      }

      container policy-forwarding {
        description
          "The abstract forwarding table for policy-based forwarding
          entries. Since multiple match criteria can be utilised
          within a policy-based forwarding rule, this AFT provides a
          flexible match criteria, and is indexed based on an
          arbitrary 64-bit index. Entries within the AFT may match on
          multiple field types (e.g., L4 header fields, as well as L2
          fields).

          Examples of entries within this table are:
            - IPv4 policy-based routing based on DSCP.
            - MPLS policy-based forwarding entries.";

        uses aft-pf-structural;
      }

      container mpls {
        description
          "The abstract forwarding table for MPLS label based
          forwarding entries. Entries within the table are keyed based
          on the top-most MPLS label in the stack on the ingress
          packet.";

        uses aft-mpls-structural;
      }

      container ethernet {
        description
          "The abstract forwarding table for Ethernet based forwarding
          entries. Entries within the table are keyed based on the
          destination MAC address on the ingress packet.";

        uses aft-ethernet-structural;
      }

      uses aft-next-hop-groups-structural;
      uses aft-nhop-structural;
    }
  }
}