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