7e4cd96a49cbfb57a5f6cf0c853fe888168f246b
[packetcable.git] / packetcable-driver / src / main / java / org / pcmm / gates / IPCMMGate.java
1 /**
2  @header@
3  */
4
5
6 package org.pcmm.gates;
7
8
9 import java.util.List;
10
11 /**
12  * <p>
13  * A PacketCable Multimedia Gate is a logical representation of a policy
14  * decision that has been installed on the CMTS. A Gate is used to control
15  * access by a single IP flow to enhanced QoS Services provided by a DOCSIS
16  * cable network. Gates are unidirectional; a single Gate controls access to a
17  * flow in either the upstream or the downstream direction, but not both. For a
18  * bi-directional IP session, two Gates are required, one for upstream and one
19  * for downstream, each identified by a unique GateID. It is important to
20  * recognize that this is a fundamental difference from PacketCable 1.x, in
21  * which a single GateID may reference both an upstream and a downstream Gate.
22  * </p>
23  * <p>
24  * In PacketCable Multimedia, each Gate has a separate GateID. The Gate defines
25  * </p>
26  * <p>
27  *
28  * </p>
29  *
30  *
31  */
32 public interface IPCMMGate {
33
34
35     /**
36      *
37      * @return whether this gate is multicast or unicast.
38      */
39     boolean isMulticast();
40
41     /**
42      * GateID is the handle for the Gate.
43      *
44      */
45     void setGateID(IGateID gateid);
46
47     /**
48      * (i.e., QoS limits, timers, etc.).
49      *
50      */
51     void setGateSpec(IGateSpec gateSpec);
52
53     /**
54      * Classifier describes the IP flow(s) that will be mapped to the DOCSIS
55      * Service Flow.
56      *
57      */
58     void setClassifiers(List<IClassifier> classifiers);
59
60     /**
61      * Traffic Profile describes the QoS attributes of the Service Flow used to
62      * support the IP flow.
63      */
64     void setTrafficProfile(ITrafficProfile profile);
65
66     void setTransactionID(ITransactionID transactionID);
67
68     void setError(IPCMMError error);
69
70     ITransactionID getTransactionID();
71
72     /**
73      * GateID is the handle for the Gate.
74      *
75      * @return gateID
76      */
77     IGateID getGateID();
78
79     /**
80      * AMID is the handle that identifies the Application Manager and
81      * Application Type
82      *
83      * @return AMID handle.
84      */
85     IAMID getAMID();
86
87     /**
88      * SubscriberID uniquely identifies the Client for which the policy is being
89      * set.
90      *
91      * @return unique subscriber ID.
92      */
93     ISubscriberID getSubscriberID();
94
95     /**
96      * (i.e., QoS limits, timers, etc.).
97      *
98      * @return gateSpec object.
99      */
100     IGateSpec getGateSpec();
101
102     /**
103      * Classifier describes the IP flow(s) that will be mapped to the DOCSIS
104      * Service Flow.
105      *
106      * @return Classifier object.
107      */
108     List<IClassifier> getClassifiers();
109
110     /**
111      * Traffic Profile describes the QoS attributes of the Service Flow used to
112      * support the IP flow.
113      */
114     ITrafficProfile getTrafficProfile();
115
116     /**
117      * The PacketCable Error object contains information on the type of error that has occurred.
118      */
119     IPCMMError getError();
120
121
122     /**
123      *
124      * @return cops data
125      */
126     byte[] getData();
127     // Event Generation Info (optional)
128     // Time-Based Usage Limit (optional)
129     // Volume-Based Usage Limit (optional)
130     // Opaque Data (optional)
131     // UserID (optional)
132     // SharedResourceID (optional)
133 }