aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-aft-mpls.yang
blob: 1772fe0eb3bb8b47ab4ae67a0a3e23d404871cb0 (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
submodule openconfig-aft-mpls {
  belongs-to "openconfig-aft" {
    prefix "oc-aft";
  }

  import openconfig-extensions { prefix "oc-ext"; }
  import openconfig-mpls-types { prefix "oc-mplst"; }

  // 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 for MPLS label forwarding.";

  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";
  }

  grouping aft-mpls-structural {
    description
      "Structural grouping defining the schema for the MPLS
      abstract forwarding table.";

    list label-entry {
      key "label";

      description
        "List of the MPLS entries within the abstract
        forwarding table. This list is keyed by the top-most MPLS
        label.";

      leaf label {
        type leafref {
          path "../config/label";
        }
        description
          "Reference to the top-most MPLS label matched by the
          entry.";
      }

      container config {
        description
          "Configuration parameters for the MPLS AFT entry.";
        uses aft-mpls-entry-config;
      }

      container state {
        config false;
        description
          "Operational state parameters for the MPLS AFT
          entry.";
        uses aft-mpls-entry-config;
        uses aft-mpls-entry-state;
      }
    }
  }

  grouping aft-mpls-entry-config {
    description
      "Configuration parameters for the MPLS entry.";

    leaf label {
        type oc-mplst:mpls-label;
        description
          "The top-most MPLS label that should be matched to
          utilise the AFT entry.";
    }
  }

  grouping aft-mpls-entry-state {
    description
      "Operational state parameters for the MPLS entry.";
    uses aft-common-entry-state;

    leaf-list popped-mpls-label-stack {
      type oc-mplst:mpls-label;
      description
        "The MPLS label stack to be popped from the packet when
        switched by the system. The stack is encoded as a leaf-list
        such that the first entry is the label that is outer-most (i.e.,
        furthest from the bottom of the stack).

        If the local system pops the outer-most label 400, then the
        value of this list is [400,]. If the local system removes two
        labels, the outer-most being 500, and the second of which is
        400, then the value of the list is [500, 400].

        A swap operation is reflected by entries in the
        popped-mpls-label-stack and pushed-mpls-label-stack nodes.";
    }
  }
}