3 namespace "urn:packetcable";
6 import ietf-yang-types { prefix yang; revision-date "2010-09-24"; }
7 import ietf-inet-types { prefix inet; revision-date "2010-09-24"; }
8 import yang-ext { prefix ext; revision-date "2013-07-09"; }
10 description "This module contains the PCMM Converged Cable Access Platform (CCAP) definitions";
11 organization "OpenDaylight Project";
14 description "Corrected pluralization of containers/lists and added containers around lists where needed";
17 description "Initial revision of PCMM CCAP definitions";
22 typedef service-class-name {
23 type string { length "2..16"; }
24 description "The Service Class Name is MUST be 2-16 bytes.";
26 typedef service-flow-direction {
30 description "Upstream service flow.";
34 description "Downstream service flow.";
37 description "This value represents the service flow direction.";
40 type uint16 {range "0..257";}
41 description "This value represents the IP transport protocol (or Next Header) where 256 is any protocol and 257 is TCP or UDP";
45 description "TOS/TC byte or mask";
48 identity ccap-context {
49 description "Identity used to mark ccap context";
52 identity app-context {
53 description "Identity used to mark app context";
60 CCAP devices are known by their network name which is any string.
61 Each CCAP device has a network address:port, a list of subscriber IP subnets,
62 and a list of available Service Class Names.
65 ext:context-instance "ccap-context";
68 description "CCAP Identity";
75 grouping ccap-connection {
78 description "IP Address of CCAP";
82 type inet:port-number;
83 description "COPS session TCP port number";
89 description "COPS session state";
95 description "Operational errors";
99 // description "COPS connection idle timer (seconds)";
105 // description "COPS connection idle state";
111 type yang:date-and-time;
112 description "Last update timestamp";
117 grouping ccap-attributes {
119 Each CCAP device has a COPS connection address:port,
120 a list of subscriber IP subnets, and
121 a list of available Service Class Names.
123 container connection {
124 uses ccap-connection;
129 description "Application Manager Tag -- unique for this operator";
134 description "Application Manager Type -- unique for this AM tag";
138 leaf-list subscriber-subnets {
141 leaf-list upstream-scns {
142 type service-class-name;
144 leaf-list downstream-scns {
145 type service-class-name;
150 description "ccap data errors";
157 PCMM QoS Gates are organized as a tree by Application/Subscriber/Gate:
158 Each Application is known by its appId which is any string.
159 Each Subscriber is known by its subId which is a CPE IP address in either IPv4 or IPv6 format.
160 Each Gate is known by its gateId which is any string.
162 The subscriber's CPE IP address is used to locate the CCAP device that is currently hosting the
163 the Cable Modem that is connected to the subscriber's device. Therefore, it is not necessary
164 for the PCMM applications to know the topology of the CCAP devices and CMs in the network path
165 to their subscriber devices.
167 Note that each CCAP entry contains a list of connected subscriber IP subnets as well as a list
168 of all Service Class Names (SCNs) available on the CCAP device.
173 grouping pcmm-qos-gates {
177 ext:context-instance "app-context";
180 description "Application Identity";
182 container subscribers {
187 description "Subscriber Identity -- must be a CM or CPE IP address";
195 description "Qos Gate Identity";
198 uses gate-operational-attributes;
199 uses pcmm-qos-gate-attributes;
208 grouping gate-operational-attributes {
212 description "FQ Gate path app/subscriber/gate";
218 description "CCAP Identity";
224 description "Gate operational COPS state";
230 description "Gate operational COPS Id";
236 description "Gate operational error";
240 type yang:date-and-time;
241 description "Gate operational attributes timestamp";
246 grouping pcmm-qos-gate-attributes {
247 uses pcmm-qos-gate-spec;
248 uses pcmm-qos-traffic-profile;
249 uses pcmm-qos-classifier;
250 uses pcmm-qos-ext-classifier;
251 uses pcmm-qos-ipv6-classifier;
254 grouping pcmm-qos-gate-spec {
255 container gate-spec {
257 type service-flow-direction;
258 description "Gate Direction (ignored for traffic profile SCN)";
260 leaf dscp-tos-overwrite {
262 description "Optional DSCP/TOS overwrite value";
266 description "Optional DSCP/TOS overwrite AND mask";
271 grouping pcmm-qos-traffic-profile {
272 container traffic-profile {
273 leaf service-class-name {
274 type service-class-name;
275 description "The Service Class Name (SCN). This SCN must be pre-provisioned on the target CCAP";
281 grouping tp-port-match-ranges {
283 type inet:port-number;
284 description "TCP/UDP source port range start.";
288 type inet:port-number;
289 description "TCP/UDP source port range end.";
293 type inet:port-number;
294 description "TCP/UDP destination port range start.";
298 type inet:port-number;
299 description "TCP/UDP destination port range end.";
304 grouping pcmm-qos-classifier {
305 container classifier {
307 type inet:ipv4-address;
308 description "Source IPv4 address (exact match)";
312 type inet:ipv4-address;
313 description "Destination IPv4 address (exact match)";
318 description "TOS/DSCP match";
323 description "TOS/DSCP mask";
328 description "IPv4 transport protocol";
332 type inet:port-number;
333 description "TCP/UDP source port (exact match).";
337 type inet:port-number;
338 description "TCP/UDP destination port (exact match).";
344 grouping pcmm-qos-ext-classifier {
345 container ext-classifier {
347 type inet:ipv4-address;
348 description "Source IPv4 address match";
352 type inet:ipv4-address;
353 description "Source IPv4 mask";
357 type inet:ipv4-address;
358 description "Destination IPv4 address match";
362 type inet:ipv4-address;
363 description "Destination IPv4 mask";
368 description "TOS/DSCP match";
373 description "TOS/DSCP mask";
378 description "IPv4 transport protocol";
381 uses tp-port-match-ranges;
385 grouping pcmm-qos-ipv6-classifier {
386 container ipv6-classifier {
388 type inet:ipv6-prefix;
389 description "Source IPv6 prefix match in 'address/len' notation";
393 type inet:ipv6-prefix;
394 description "Destination IPv6 prefix match in 'address/len' notation";
399 description "TC low range match";
404 description "TC high range match";
409 description "TC mask";
414 description "IPv6 Next Header";
419 range "0 .. 1048575";
421 description "IPv6 Flow Label (20 bits)";
424 uses tp-port-match-ranges;