2 * Copyright (c) 2015 Cable Television Laboratories, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.pcmm.gates;
11 import org.pcmm.base.IPCMMBaseObject;
14 * GateSpec describes specific authorization parameters defining a Gate (i.e., QoS limits, timers, etc.).
16 * From the Packetcable Multimedia specification section 6.1.4
18 * The GateSpec describes some high-level attributes of the Gate, and contains information regarding the treatment of
19 * other objects specified in the Gate message. Information contained in a GateSpec is outlined below.
26 * * Committed Recovery Timer
27 * * DSCP/TOS Overwrite
30 * SessionClassID provides a way for the Application Manager and the Policy Server to group Gates into different
31 * classes with different authorization characteristics. For example, one could use the SessionClassID to represent
32 * some prioritization or preemption scheme that would allow either the Policy Server or the CMTS to preempt a preauthorized
33 * Gate in favor of allowing a new Gate with a higher priority to be authorized.
35 * Direction indicates whether the Gate is for an upstream or downstream flow. Depending on this direction, the CMTS
36 * MUST reserve and activate the DOCSIS flows accordingly. For Multicast Gates the CMTS needs to only support
37 * flows or gates in the downstream direction.
39 * Authorized Timer limits the amount of time the authorization must remain valid before it is reserved (see
42 * Reserved Timer limits the amount of time the reservation must remain valid before the resources are committed (see
45 * Committed Timer limits the amount of time a committed service flow may remain idle.
47 * Committed Recovery Timer limits the amount of time that a committed service flow can remain without a
48 * subsequent refresh message from the PS/AM once the PS/AM has been notified of inactivity (see Section 6.2).
49 * DSCP/TOS Overwrite field can be used to overwrite the DSCP/TOS field of packets associated with the DOCSIS
50 * Service Flow that corresponds to the Gate. This field may be unspecified in which case the DSCP/TOS field in the
51 * packet is not over-written by the CMTS. This field may be used in both the upstream and downstream directions.
52 * The CMTS MUST support DSCP/TOS overwrite for upstream gates. The CMTS MAY support DSCP/TOS
53 * overwrite for downstream gates. If DSCP/TOS is enabled in a downstream gate and the CMTS does not support that
54 * function, then the field is ignored. The manner in which the CMTS interprets the DSCP/TOS Overwrite & Mask
55 * fields and transforms it into the corresponding DOCSIS Service Flow Parameters is defined in Section 6.4.2.5.
57 public interface IGateSpec extends IPCMMBaseObject {
60 * The S-Type for Gate Specifications
66 * Direction indicates whether the Gate is for an upstream or downstream
67 * flow. Depending on this direction, the CMTS MUST reserve and activate the
68 * DOCSIS flows accordingly. For Multicast Gates the CMTS needs to only
69 * support flows or gates in the downstream direction.
76 UPSTREAM((byte) 1), DOWNSTREAM((byte) 0);
78 Direction(byte value) {
82 public byte getValue() {
87 public String toString() {
98 public static Direction valueOf(byte v) {
101 return Direction.DOWNSTREAM;
103 return Direction.UPSTREAM;
105 throw new IllegalArgumentException("not supported value");
113 * provides a way for the Application Manager and the Policy Server to group
114 * Gates into different classes with different authorization
115 * characteristics. For example, one could use the SessionClassID to
116 * represent some prioritization or preemption scheme that would allow
117 * either the Policy Server or the CMTS to preempt a pre-authorized Gate in
118 * favor of allowing a new Gate with a higher priority to be authorized.
121 * @return session class ID;
123 ISessionClassID getSessionClassID();
129 Direction getDirection();
132 * Authorized Timer limits the amount of time the authorization must remain
133 * valid before it is reserved
135 * @return time in ms;
140 * Reserved Timer limits the amount of time the reservation must remain
141 * valid before the resources are committed
143 * @return time in ms;
148 * Committed Timer limits the amount of time a committed service flow may
151 * @return time in ms;
156 * Committed Recovery Timer limits the amount of time that a committed
157 * service flow can remain without a subsequent refresh message from the
158 * PS/AM once the PS/AM has been notified of inactivity
160 * @return time in ms;
168 byte getDSCP_TOSOverwrite();
174 byte getDSCP_TOSMask();