3 namespace "urn:packetcable";
6 import ietf-yang-types { prefix yang; }
7 import ietf-inet-types { prefix inet; }
9 description "This module contains the PCMM Converged Cable Access Platform (CCAP) definitions";
10 organization "OpenDaylight Project";
13 description "Corrected pluralization of containers/lists and added containers around lists where needed";
16 description "Initial revision of PCMM CCAP definitions";
21 typedef service-class-name {
22 type string { length "2..16"; }
23 description "The Service Class Name is MUST be 2-16 bytes.";
25 typedef service-flow-direction {
29 description "Upstream service flow.";
33 description "Downstream service flow.";
36 description "This value represents the service flow direction.";
39 type uint16 {range "0..257";}
40 description "This value represents the IP transport protocol (or Next Header) where 256 is any protocol and 257 is TCP or UDP";
44 description "TOS/TC byte or mask";
52 CCAP devices are known by their network name which is any string.
53 Each CCAP device has a network address:port, a list of subscriber IP subnets,
54 and a list of available Service Class Names.
59 description "CCAP Identity";
65 grouping ccap-attributes {
67 Each CCAP device has a COPS connection address:port,
68 a list of subscriber IP subnets, and
69 a list of available Service Class Names.
71 container connection {
74 description "IP Address of CCAP";
77 type inet:port-number;
78 description "COPS session TCP port number";
85 description "Application Manager Tag -- unique for this operator";
89 description "Application Manager Type -- unique for this AM tag";
92 leaf-list subscriber-subnets {
95 leaf-list upstream-scns {
96 type service-class-name;
98 leaf-list downstream-scns {
99 type service-class-name;
106 PCMM QoS Gates are organized as a tree by Application/Subscriber/Gate:
107 Each Application is known by its appId which is any string.
108 Each Subscriber is known by its subId which is a CPE IP address in either IPv4 or IPv6 format.
109 Each Gate is known by its gateId which is any string.
111 The subscriber's CPE IP address is used to locate the CCAP device that is currently hosting the
112 the Cable Modem that is connected to the subscriber's device. Therefore, it is not necessary
113 for the PCMM applications to know the topology of the CCAP devices and CMs in the network path
114 to their subscriber devices.
116 Note that each CCAP entry contains a list of connected subscriber IP subnets as well as a list
117 of all Service Class Names (SCNs) available on the CCAP device.
122 grouping pcmm-qos-gates {
128 description "Application Identity";
130 container subscribers {
135 description "Subscriber Identity -- must be a CM or CPE IP address";
142 description "Qos Gate Identity";
144 uses pcmm-qos-gate-attributes;
153 grouping pcmm-qos-gate-attributes {
154 uses pcmm-qos-gate-spec;
155 uses pcmm-qos-traffic-profile;
156 uses pcmm-qos-classifier;
157 uses pcmm-qos-ext-classifier;
158 uses pcmm-qos-ipv6-classifier;
161 grouping pcmm-qos-gate-spec {
162 container gate-spec {
164 type service-flow-direction;
165 description "Gate Direction (ignored for traffic profile SCN)";
167 leaf dscp-tos-overwrite {
169 description "Optional DSCP/TOS overwrite value";
173 description "Optional DSCP/TOS overwrite AND mask";
178 grouping pcmm-qos-traffic-profile {
179 container traffic-profile {
180 leaf service-class-name {
181 type service-class-name;
182 description "The Service Class Name (SCN). This SCN must be pre-provisioned on the target CCAP";
187 grouping tp-port-match-ranges {
189 type inet:port-number;
190 description "TCP/UDP source port range start.";
193 type inet:port-number;
194 description "TCP/UDP source port range end.";
197 type inet:port-number;
198 description "TCP/UDP destination port range start.";
201 type inet:port-number;
202 description "TCP/UDP destination port range end.";
206 grouping pcmm-qos-classifier {
207 container classifier {
209 type inet:ipv4-address;
210 description "Source IPv4 address (exact match)";
213 type inet:ipv4-address;
214 description "Destination IPv4 address (exact match)";
218 description "TOS/DSCP match";
222 description "TOS/DSCP mask";
226 description "IPv4 transport protocol";
229 type inet:port-number;
230 description "TCP/UDP source port (exact match).";
233 type inet:port-number;
234 description "TCP/UDP destination port (exact match).";
239 grouping pcmm-qos-ext-classifier {
240 container ext-classifier {
242 type inet:ipv4-address;
243 description "Source IPv4 address match";
246 type inet:ipv4-address;
247 description "Source IPv4 mask";
250 type inet:ipv4-address;
251 description "Destination IPv4 address match";
254 type inet:ipv4-address;
255 description "Destination IPv4 mask";
259 description "TOS/DSCP match";
263 description "TOS/DSCP mask";
267 description "IPv4 transport protocol";
269 uses tp-port-match-ranges;
273 grouping pcmm-qos-ipv6-classifier {
274 container ipv6-classifier {
276 type inet:ipv6-prefix;
277 description "Source IPv6 prefix match in <address/len> notation";
280 type inet:ipv6-prefix;
281 description "Destination IPv6 prefix match in <address/len> notation";
285 description "TC low range match";
289 description "TC high range match";
293 description "TC mask";
297 description "IPv6 Next Header";
301 range "0 .. 1048575";
303 description "IPv6 Flow Label (20 bits)";
305 uses tp-port-match-ranges;