summaryrefslogtreecommitdiffstats
path: root/actn-interface-tools/actn-model/src/main/yang/ietf-trans-client-service@2021-01-11.yang
blob: f3a02a4a1f5e19290cd8f4540f5554baf089c2f7 (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
module ietf-trans-client-service {
  /* TODO: FIXME */
    yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-trans-client-service";
  prefix "clntsvc";

  import ietf-te-types {
    prefix "te-types";
    //reference "RFC 8776 - Traffic Engineering Common YANG Types";
  }

  import ietf-layer1-types {
    prefix "layer1-types";
    //reference "RFC ZZZZ - A YANG Data Model for Layer 1 Types";
  }

  import ietf-yang-types {
    prefix "yang";
    //reference "RFC 6991 - Common YANG Data Types";
  }

 import ietf-trans-client-svc-types {
   prefix "clntsvc-types";
   //reference "RFC XXXX - A YANG Data Model for
   //           Transport Network Client Signals";
 }

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      ID-draft editor:
        Haomian Zheng (zhenghaomian@huawei.com);
        Aihua Guo (aihuaguo.ietf@gmail.com);
        Italo Busi (italo.busi@huawei.com);
        Anton Snitser (antons@sedonasys.com);
        Francesco Lazzeri (francesco.lazzeri@ericsson.com);
        Yunbin Xu (xuyunbin@caict.ac.cn);
        Yang Zhao (zhaoyangyjy@chinamobile.com);
        Xufeng Liu (Xufeng_Liu@jabil.com);
        Giuseppe Fioccola (giuseppe.fioccola@huawei.com);
    ";

  description
    "This module defines a YANG data model for describing
     transport network client services. The model fully conforms
     to the Network Management Datastore Architecture (NMDA).

     Copyright (c) 2021 IETF Trust and the persons
     identified as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";
  revision 2021-01-11 {
    description
      "version -04 as a WG document";
    reference
      "draft-ietf-ccamp-client-signal-yang";
  }

  /*
   * Groupings
   */
  grouping client-svc-access-parameters {
    description
      "Transport network client signals access parameters";

    leaf access-node-id {
      type te-types:te-node-id;
      description
        "The identifier of the access node in the underlying
         transport network topology.";
    }

    leaf access-ltp-id {
      type te-types:te-tp-id;
      description
        "The TE link termination point identifier, used together with
         access-node-id to identify the access LTP.";
    }

    leaf client-signal {
      type identityref {
        base layer1-types:client-signal;
      }
      description
        "Identify the client signal type associated with this port";
    }

  }

  grouping client-svc-tunnel-parameters {
    description
      "Transport network client signals tunnel parameters";

    leaf tunnel-name {
      type string;
      description
        "TE tunnel instance name.";
    }
  }

  grouping  client-svc-instance-config {
    description
      "Configuration parameters for client services.";
    leaf client-svc-name {
      type string;
      description
        "Identifier of the p2p transport network client signals.";
    }

    leaf client-svc-title {
      type string;
      description
        "Name of the p2p transport network client signals.";
    }

    leaf client-svc-descr {
      type string;
      description
        "Description of the transport network client signals.";
    }

    leaf client-svc-customer {
      type string;
      description
        "Customer of the transport network client signals.";
    }

    container resilience {
      description "Place holder for resilience functionalities";
    }

    uses te-types:te-topology-identifier;

    leaf admin-status {
      type identityref {
        base te-types:tunnel-admin-state-type;
      }
      default te-types:tunnel-admin-state-up;
      description "Client signals administrative state.";
    }

    container src-access-ports {
      description
        "Source access port of a client signal.";
      uses client-svc-access-parameters;
    }
    container dst-access-ports {
      description
        "Destination access port of a client signal.";
      uses client-svc-access-parameters;
    }

    leaf direction {
      type identityref {
        base clntsvc-types:direction;
      }
      description "Uni-dir or Bi-dir for the client signal.";
    }

    list svc-tunnels {
      key tunnel-name;
      description
        "List of the TE Tunnels supporting the client signal.";
      uses client-svc-tunnel-parameters;
    }
  }

  grouping  client-svc-instance-state {
    description
      "State parameters for client services.";
    leaf operational-state {
      type identityref {
            base te-types:tunnel-state-type;
      }
      config false;
      description "Client signal operational state.";
    }
    leaf provisioning-state {
      type identityref {
            base te-types:lsp-state-type;
      }
      config false;
      description "Client signal provisioning state.";
    }
    leaf creation-time {
      type yang:date-and-time;
      config false;
      description "The time of the client signal be created.";
    }
    leaf last-updated-time {
      type yang:date-and-time;
      config false;
      description "The time of the client signal's latest update.";
    }
    leaf created-by {
      type string;
      config false;
      description
        "The client signal is created by whom,
         can be a system or staff ID.";
    }
    leaf last-updated-by {
      type string;
      config false;
      description
        "The client signal is last updated by whom,
         can be a system or staff ID.";
    }
    leaf owned-by {
      type string;
      config false;
      description
        "The client signal is owned by whom,
         can be a system ID.";
    }
  }

  /*
   * Data nodes
   */

  container client-svc {
    description
      "Transport client services.";

    list client-svc-instances {
      key client-svc-name;
      description
        "The list of p2p transport client service instances";

          uses client-svc-instance-config;
          uses client-svc-instance-state;
    }
  }
}