6 package org.pcmm.gates;
8 import org.pcmm.base.IPCMMBaseObject;
12 * The GateSpec describes some high-level attributes of the Gate, and contains
13 * information regarding the treatment of other objects specified in the Gate
21 public interface IGateSpec extends IPCMMBaseObject {
23 static final byte SNUM = 5;
24 static final byte STYPE = 1;
25 static final short LENGTH = 16;
29 * Direction indicates whether the Gate is for an upstream or downstream
30 * flow. Depending on this direction, the CMTS MUST reserve and activate the
31 * DOCSIS flows accordingly. For Multicast Gates the CMTS needs to only
32 * support flows or gates in the downstream direction.
37 public enum Direction {
39 UPSTREAM((byte) 1), DOWNSTREAM((byte) 0);
41 private Direction(byte value) {
45 public byte getValue() {
50 public String toString() {
61 public static Direction valueOf(byte v) {
64 return Direction.DOWNSTREAM;
66 return Direction.UPSTREAM;
68 throw new IllegalArgumentException("not supported value");
79 ENABLE((byte) 1), OVERRIDE((byte) 0);
81 private DSCPTOS(byte value) {
85 public byte getValue() {
90 public String toString() {
99 public static DSCPTOS valueOf(byte v) {
102 return DSCPTOS.OVERRIDE;
104 return DSCPTOS.ENABLE;
106 throw new IllegalArgumentException("not supported value");
116 * provides a way for the Application Manager and the Policy Server to group
117 * Gates into different classes with different authorization
118 * characteristics. For example, one could use the SessionClassID to
119 * represent some prioritization or preemption scheme that would allow
120 * either the Policy Server or the CMTS to preempt a pre-authorized Gate in
121 * favor of allowing a new Gate with a higher priority to be authorized.
124 * @return session class ID;
126 ISessionClassID getSessionClassID();
130 * sets the session class ID;
133 * SessionClassID is a 1-byte unsigned integer value which identifies the
134 * proper admission control policy or parameters to be applied for this
135 * Gate. The SessionClassID is a bit field, defined as follows: Bit 0-2:
136 * Priority, a number from 0 to 7, where 0 is low priority and 7 is high.
137 * Bit 3: Preemption, set to enable preemption of bandwidth allocated to
138 * lower priority sessions if necessary (if supported). Bit 4-7:
139 * Configurable, default to 0
142 void setSessionClassID(ISessionClassID id);
148 Direction getDirection();
156 void setDirection(Direction direction);
159 * Authorized Timer limits the amount of time the authorization must remain
160 * valid before it is reserved
162 * @return time in ms;
167 * sets the authorized timer
172 void setTimerT1(short authTimer);
175 * Reserved Timer limits the amount of time the reservation must remain
176 * valid before the resources are committed
178 * @return time in ms;
183 * sets the reserved timer.
187 void setTimerT2(short timer);
190 * Committed Timer limits the amount of time a committed service flow may
193 * @return time in ms;
198 * sets the committed timer.
203 void setTimerT3(short t);
206 * Committed Recovery Timer limits the amount of time that a committed
207 * service flow can remain without a subsequent refresh message from the
208 * PS/AM once the PS/AM has been notified of inactivity
210 * @return time in ms;
215 * sets the Committed Recovery Timer.
220 void setTimerT4(short t);
226 void setDSCP_TOSOverwrite(DSCPTOS dscpTos);
232 DSCPTOS getDSCP_TOSOverwrite();
238 byte getDSCP_TOSMask();
242 * @param dscp_tos_mask
244 void setDSCP_TOSMask(byte dscp_tos_mask);