summaryrefslogtreecommitdiffstats
path: root/srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang
blob: 2820d627f76a7a9a3621a0139115d05c9a014336 (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
module policy-context {
    yang-version 1;
    namespace "urn:honeycomb:params:xml:ns:yang:policy:context";
    prefix "policy-ctx";

    import hc2vpp-oc-srte-policy {
       prefix "oc-srte";
       revision-date 2017-09-18;
    }

    import ietf-inet-types {
       prefix "inet";
    }

    import naming-context {
       prefix "nc";
    }

    import yang-ext {
       prefix "ext";
    }

    organization
        "FD.io - The Fast Data Project";

    contact
        "Hc2vpp Wiki <https://wiki.fd.io/view/Hc2vpp>
         Mailing List <hc2vpp@lists.fd.io>";

    description
        "This module provides mapping between SRV6 policy identifiers (color and endpoint)
         defined in the hc2vpp-oc-srte-policy module and identifiers used by the VPP SRV6
         policy plugin. VPP uses BSID as policy identifier, which is mapped to color and
         endpoint identifiers in the model.

         The mapping is managed internally by the HC SRV6 plugin.
         It is exposed as operational state data for debugging purposes.

         Copyright (c) 2018 Bell Canada, Pantheon Technologies and/or its affiliates.

         Licensed under the Apache License, Version 2.0 (the 'License');
         you may not use this file except in compliance with the License.
         You may obtain a copy of the License at:

         http://www.apache.org/licenses/LICENSE-2.0

         Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an 'AS IS' BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.";

    revision "2018-06-07" {
        description "Initial revision.";
    }

    grouping srv6-policy-context-attributes {
        container srv6-policy-mappings {
            list srv6-policy-mapping {
                key "bsid";

                leaf name {
                    type string;
                    description "Srv6 policy name";
                }

                leaf color {
                    type uint32;
                    description "Srv6 policy color";
                }

                leaf endpoint {
                    type inet:ipv6-address;
                    description "Policy endpoint represented by IPv6 address";
                }

                leaf bsid {
                    type inet:ipv6-address;
                    description "Policy represented by IPv6 address";
                }
            }
        }

    }

    grouping srv6-candidate-path-context-attributes {
        container srv6-candidate-path-mappings {
            list srv6-candidate-path-mapping {
                key "bsid";

                leaf name {
                    type string;
                    description "Srv6 policy candidate path name";
                }

                leaf provisioning-method {
                    type identityref {
                        base oc-srte:provisioning-method-type;
                    }
                    description "Srv6 policy candidate path provisioning-method";
                }

                leaf preference {
                    type uint32;
                    description "Srv6 policy candidate path preference";
                }

                leaf distinguisher {
                    type uint32;
                    description "Srv6 policy candidate path distinguisher";
                }

                leaf bsid {
                    type inet:ipv6-address;
                    description "Candidate path represented by IPv6 address";
                }
            }
        }
    }

    augment /nc:contexts {
        ext:augment-identifier "srv6-policy-context-augmentation";
        uses srv6-policy-context-attributes;
        uses srv6-candidate-path-context-attributes;
    }
}