-/**
- @header@
+/*
+ * (c) 2015 Cable Television Laboratories, Inc. All rights reserved.
*/
-
package org.pcmm.gates;
import org.pcmm.base.IPCMMBaseObject;
/**
- * <p>
- * The GateSpec describes some high-level attributes of the Gate, and contains
- * information regarding the treatment of other objects specified in the Gate
- * message.
- * </p>
+ * GateSpec describes specific authorization parameters defining a Gate (i.e., QoS limits, timers, etc.).
+ *
+ * From the Packetcable Multimedia specification section 6.1.4
+ *
+ * The GateSpec describes some high-level attributes of the Gate, and contains information regarding the treatment of
+ * other objects specified in the Gate message. Information contained in a GateSpec is outlined below.
+ *
+ * * SessionClassID
+ * * Direction
+ * * Authorized Timer
+ * * Reserved Timer
+ * * Committed Timer
+ * * Committed Recovery Timer
+ * * DSCP/TOS Overwrite
+ * * DSCP/TOS Mask
+ *
+ * SessionClassID provides a way for the Application Manager and the Policy Server to group Gates into different
+ * classes with different authorization characteristics. For example, one could use the SessionClassID to represent
+ * some prioritization or preemption scheme that would allow either the Policy Server or the CMTS to preempt a preauthorized
+ * Gate in favor of allowing a new Gate with a higher priority to be authorized.
+ *
+ * Direction indicates whether the Gate is for an upstream or downstream flow. Depending on this direction, the CMTS
+ * MUST reserve and activate the DOCSIS flows accordingly. For Multicast Gates the CMTS needs to only support
+ * flows or gates in the downstream direction.
+ *
+ * Authorized Timer limits the amount of time the authorization must remain valid before it is reserved (see
+ * Section 6.2).
+ *
+ * Reserved Timer limits the amount of time the reservation must remain valid before the resources are committed (see
+ * Section 6.2).
+ *
+ * Committed Timer limits the amount of time a committed service flow may remain idle.
+ *
+ * Committed Recovery Timer limits the amount of time that a committed service flow can remain without a
+ * subsequent refresh message from the PS/AM once the PS/AM has been notified of inactivity (see Section 6.2).
+ * DSCP/TOS Overwrite field can be used to overwrite the DSCP/TOS field of packets associated with the DOCSIS
+ * Service Flow that corresponds to the Gate. This field may be unspecified in which case the DSCP/TOS field in the
+ * packet is not over-written by the CMTS. This field may be used in both the upstream and downstream directions.
+ * The CMTS MUST support DSCP/TOS overwrite for upstream gates. The CMTS MAY support DSCP/TOS
+ * overwrite for downstream gates. If DSCP/TOS is enabled in a downstream gate and the CMTS does not support that
+ * function, then the field is ignored. The manner in which the CMTS interprets the DSCP/TOS Overwrite & Mask
+ * fields and transforms it into the corresponding DOCSIS Service Flow Parameters is defined in Section 6.4.2.5.
*/
public interface IGateSpec extends IPCMMBaseObject {
- byte SNUM = 5;
+ /**
+ * The S-Type for Gate Specifications
+ */
byte STYPE = 1;
- short LENGTH = 16;
/**
* <p>
}
- /**
- *
- */
- enum DSCPTOS {
-
- ENABLE((byte) 2), OVERRIDE((byte) 0);
-
- DSCPTOS(byte value) {
- this.value = value;
- }
-
- public byte getValue() {
- return value;
- }
-
- @Override
- public String toString() {
- switch (value) {
- case 1:
- return "Enable";
- default:
- return "Override";
- }
- }
-
- public static DSCPTOS valueOf(byte v) {
- switch (v) {
- case 0:
- return DSCPTOS.OVERRIDE;
- case 1:
- return DSCPTOS.ENABLE;
- default:
- throw new IllegalArgumentException("not supported value");
- }
- }
-
- private byte value;
-
- }
-
/**
* <p>
* provides a way for the Application Manager and the Policy Server to group
*/
ISessionClassID getSessionClassID();
- /**
- * <p>
- * sets the session class ID;
- * </p>
- * <p>
- * SessionClassID is a 1-byte unsigned integer value which identifies the
- * proper admission control policy or parameters to be applied for this
- * Gate. The SessionClassID is a bit field, defined as follows: Bit 0-2:
- * Priority, a number from 0 to 7, where 0 is low priority and 7 is high.
- * Bit 3: Preemption, set to enable preemption of bandwidth allocated to
- * lower priority sessions if necessary (if supported). Bit 4-7:
- * Configurable, default to 0
- * </p>
- */
- void setSessionClassID(ISessionClassID id);
-
/**
*
* @return direction.
*/
Direction getDirection();
- /**
- * sets the direction
- *
- * @param direction
- * Direction
- */
- void setDirection(Direction direction);
-
/**
* Authorized Timer limits the amount of time the authorization must remain
* valid before it is reserved
*/
short getTimerT1();
- /**
- * sets the authorized timer
- *
- * @param authTimer
- * : authorized timer
- */
- void setTimerT1(short authTimer);
-
/**
* Reserved Timer limits the amount of time the reservation must remain
* valid before the resources are committed
*/
short getTimerT2();
- /**
- * sets the reserved timer.
- *
- * @param timer
- */
- void setTimerT2(short timer);
-
/**
* Committed Timer limits the amount of time a committed service flow may
* remain idle.
*/
short getTimerT3();
- /**
- * sets the committed timer.
- *
- * @param t
- * timer
- */
- void setTimerT3(short t);
-
/**
* Committed Recovery Timer limits the amount of time that a committed
* service flow can remain without a subsequent refresh message from the
*/
short getTimerT4();
- /**
- * sets the Committed Recovery Timer.
- *
- * @param t
- * timer
- */
- void setTimerT4(short t);
-
- /**
- *
- * @param dscpTos - the object used to overwrite
- */
- void setDSCP_TOSOverwrite(DSCPTOS dscpTos);
-
- // set the DSCP_TOS value
- void setDSCP_TOSOverwrite(byte dscpTos);
-
/**
*
* @return DSCP/TOS
*/
- DSCPTOS getDSCP_TOSOverwrite();
+ byte getDSCP_TOSOverwrite();
/**
*
*/
byte getDSCP_TOSMask();
- /**
- *
- * @param dscp_tos_mask
- */
- void setDSCP_TOSMask(byte dscp_tos_mask);
-
}