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
17 public interface IGateSpec extends IPCMMBaseObject {
25 * Direction indicates whether the Gate is for an upstream or downstream
26 * flow. Depending on this direction, the CMTS MUST reserve and activate the
27 * DOCSIS flows accordingly. For Multicast Gates the CMTS needs to only
28 * support flows or gates in the downstream direction.
35 UPSTREAM((byte) 1), DOWNSTREAM((byte) 0);
37 Direction(byte value) {
41 public byte getValue() {
46 public String toString() {
57 public static Direction valueOf(byte v) {
60 return Direction.DOWNSTREAM;
62 return Direction.UPSTREAM;
64 throw new IllegalArgumentException("not supported value");
75 ENABLE((byte) 2), OVERRIDE((byte) 0);
81 public byte getValue() {
86 public String toString() {
95 public static DSCPTOS valueOf(byte v) {
98 return DSCPTOS.OVERRIDE;
100 return DSCPTOS.ENABLE;
102 throw new IllegalArgumentException("not supported value");
112 * provides a way for the Application Manager and the Policy Server to group
113 * Gates into different classes with different authorization
114 * characteristics. For example, one could use the SessionClassID to
115 * represent some prioritization or preemption scheme that would allow
116 * either the Policy Server or the CMTS to preempt a pre-authorized Gate in
117 * favor of allowing a new Gate with a higher priority to be authorized.
120 * @return session class ID;
122 ISessionClassID getSessionClassID();
126 * sets the session class ID;
129 * SessionClassID is a 1-byte unsigned integer value which identifies the
130 * proper admission control policy or parameters to be applied for this
131 * Gate. The SessionClassID is a bit field, defined as follows: Bit 0-2:
132 * Priority, a number from 0 to 7, where 0 is low priority and 7 is high.
133 * Bit 3: Preemption, set to enable preemption of bandwidth allocated to
134 * lower priority sessions if necessary (if supported). Bit 4-7:
135 * Configurable, default to 0
138 void setSessionClassID(ISessionClassID id);
144 Direction getDirection();
152 void setDirection(Direction direction);
155 * Authorized Timer limits the amount of time the authorization must remain
156 * valid before it is reserved
158 * @return time in ms;
163 * sets the authorized timer
168 void setTimerT1(short authTimer);
171 * Reserved Timer limits the amount of time the reservation must remain
172 * valid before the resources are committed
174 * @return time in ms;
179 * sets the reserved timer.
183 void setTimerT2(short timer);
186 * Committed Timer limits the amount of time a committed service flow may
189 * @return time in ms;
194 * sets the committed timer.
199 void setTimerT3(short t);
202 * Committed Recovery Timer limits the amount of time that a committed
203 * service flow can remain without a subsequent refresh message from the
204 * PS/AM once the PS/AM has been notified of inactivity
206 * @return time in ms;
211 * sets the Committed Recovery Timer.
216 void setTimerT4(short t);
220 * @param dscpTos - the object used to overwrite
222 void setDSCP_TOSOverwrite(DSCPTOS dscpTos);
224 // set the DSCP_TOS value
225 void setDSCP_TOSOverwrite(byte dscpTos);
231 DSCPTOS getDSCP_TOSOverwrite();
237 byte getDSCP_TOSMask();
241 * @param dscp_tos_mask
243 void setDSCP_TOSMask(byte dscp_tos_mask);