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 "Initial revision of PCMM CCAP definitions";
18 typedef service-class-name {
19 type string { length "2..16"; }
20 description "The Service Class Name is MUST be 2-16 bytes.";
22 typedef service-flow-direction {
26 description "Upstream service flow.";
30 description "Downstream service flow.";
33 description "This value represents the service flow direction.";
36 type uint16 {range "0..257";}
37 description "This value represents the IP transport protocol (or Next Header) where 256 is any protocol and 257 is TCP or UDP";
41 description "TOS/TC byte or mask";
49 CCAP devices are known by their network name which is any string.
50 Each CCAP device has a network address:port, a list of subscriber IP subnets,
51 and a list of available Service Class Names.
56 description "CCAP Identity";
62 grouping ccap-attributes {
64 Each CCAP device has a COPS connection address:port,
65 a list of subscriber IP subnets, and
66 a list of available Service Class Names.
68 container connection {
71 description "IP Address of CCAP";
74 type inet:port-number;
75 description "COPS session TCP port number";
82 description "Application Manager Tag -- unique for this operator";
86 description "Application Manager Type -- unique for this AM tag";
89 leaf-list subscriber-subnets {
92 leaf-list upstream-scns {
93 type service-class-name;
95 leaf-list downstream-scns {
96 type service-class-name;
100 description "HTTP response from the PUT operation provided by the API";
107 PCMM QoS Gates are organized as a tree by Application/Subscriber/Gate:
108 Each Application is known by its appId which is any string.
109 Each Subscriber is known by its subId which is a CPE IP address in either IPv4 or IPv6 format.
110 Each Gate is known by its gateId which is any string.
112 The subscriber's CPE IP address is used to locate the CCAP device that is currently hosting the
113 the Cable Modem that is connected to the subscriber's device. Therefore, it is not necessary
114 for the PCMM applications to know the topology of the CCAP devices and CMs in the network path
115 to their subscriber devices.
117 Note that each CCAP entry contains a list of connected subscriber IP subnets as well as a list
118 of all Service Class Names (SCNs) available on the CCAP device.
123 grouping pcmm-qos-gates {
128 description "Application Identity";
134 description "Subscriber Identity -- must be a CM or CPE IP address";
140 description "Qos Gate Identity";
142 uses pcmm-qos-gate-attributes;
148 grouping pcmm-qos-gate-attributes {
149 uses pcmm-qos-gate-spec;
150 uses pcmm-qos-traffic-profile;
151 uses pcmm-qos-classifier;
152 uses pcmm-qos-ext-classifier;
153 uses pcmm-qos-ipv6-classifier;
156 description "HTTP response from the PUT operation provided by the API";
160 grouping pcmm-qos-gate-spec {
161 container gate-spec {
163 type service-flow-direction;
164 description "Gate Direction (ignored for traffic profile SCN)";
166 leaf dscp-tos-overwrite {
168 description "Optional DSCP/TOS overwrite value";
172 description "Optional DSCP/TOS overwrite AND mask";
177 grouping pcmm-qos-traffic-profile {
178 container traffic-profile {
179 leaf service-class-name {
180 type service-class-name;
181 description "The Service Class Name (SCN). This SCN must be pre-provisioned on the target CCAP";
186 grouping tp-port-match-ranges {
188 type inet:port-number;
189 description "TCP/UDP source port range start.";
192 type inet:port-number;
193 description "TCP/UDP source port range end.";
196 type inet:port-number;
197 description "TCP/UDP destination port range start.";
200 type inet:port-number;
201 description "TCP/UDP destination port range end.";
205 grouping pcmm-qos-classifier {
206 container classifier {
208 type inet:ipv4-address;
209 description "Source IPv4 address (exact match)";
212 type inet:ipv4-address;
213 description "Destination IPv4 address (exact match)";
217 description "TOS/DSCP match";
221 description "TOS/DSCP mask";
225 description "IPv4 transport protocol";
228 type inet:port-number;
229 description "TCP/UDP source port (exact match).";
232 type inet:port-number;
233 description "TCP/UDP destination port (exact match).";
238 grouping pcmm-qos-ext-classifier {
239 container ext-classifier {
241 type inet:ipv4-address;
242 description "Source IPv4 address match";
245 type inet:ipv4-address;
246 description "Source IPv4 mask";
249 type inet:ipv4-address;
250 description "Destination IPv4 address match";
253 type inet:ipv4-address;
254 description "Destination IPv4 mask";
258 description "TOS/DSCP match";
262 description "TOS/DSCP mask";
266 description "IPv4 transport protocol";
268 uses tp-port-match-ranges;
272 grouping pcmm-qos-ipv6-classifier {
273 container ipv6-classifier {
275 type inet:ipv6-prefix;
276 description "Source IPv6 prefix match in <address/len> notation";
279 type inet:ipv6-prefix;
280 description "Destination IPv6 prefix match in <address/len> notation";
284 description "TC low range match";
288 description "TC high range match";
292 description "TC mask";
296 description "IPv6 Next Header";
300 range "0 .. 1048575";
302 description "IPv6 Flow Label (20 bits)";
304 uses tp-port-match-ranges;