X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=packetcable-driver%2Fsrc%2Fmain%2Fjava%2Forg%2Fpcmm%2Fgates%2FIGateSpec.java;h=b31c98e3eb6ff1f9704fbc7b77edad097a59e479;hb=3e6a8ae8c2dcfa808502f9acf94cad3ba2e28716;hp=e81d1dc98cca2b6b8417378aebb23020c79c6f26;hpb=a06a930e945e767e04f20486711a666d86d85e4c;p=packetcable.git diff --git a/packetcable-driver/src/main/java/org/pcmm/gates/IGateSpec.java b/packetcable-driver/src/main/java/org/pcmm/gates/IGateSpec.java index e81d1dc..b31c98e 100644 --- a/packetcable-driver/src/main/java/org/pcmm/gates/IGateSpec.java +++ b/packetcable-driver/src/main/java/org/pcmm/gates/IGateSpec.java @@ -1,24 +1,61 @@ -/** - @header@ +/* + * (c) 2015 Cable Television Laboratories, Inc. All rights reserved. */ - package org.pcmm.gates; import org.pcmm.base.IPCMMBaseObject; /** - *

- * The GateSpec describes some high-level attributes of the Gate, and contains - * information regarding the treatment of other objects specified in the Gate - * message. - *

+ * 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; /** *

@@ -67,46 +104,6 @@ public interface IGateSpec extends IPCMMBaseObject { } - /** - * - */ - 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; - - } - /** *

* provides a way for the Application Manager and the Policy Server to group @@ -121,36 +118,12 @@ public interface IGateSpec extends IPCMMBaseObject { */ ISessionClassID getSessionClassID(); - /** - *

- * sets the session class ID; - *

- *

- * 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 - *

- */ - 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 @@ -159,14 +132,6 @@ public interface IGateSpec extends IPCMMBaseObject { */ 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 @@ -175,13 +140,6 @@ public interface IGateSpec extends IPCMMBaseObject { */ 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. @@ -190,14 +148,6 @@ public interface IGateSpec extends IPCMMBaseObject { */ 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 @@ -207,28 +157,11 @@ public interface IGateSpec extends IPCMMBaseObject { */ 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(); /** * @@ -236,10 +169,4 @@ public interface IGateSpec extends IPCMMBaseObject { */ byte getDSCP_TOSMask(); - /** - * - * @param dscp_tos_mask - */ - void setDSCP_TOSMask(byte dscp_tos_mask); - }