/*
* Copyright (c) 2015 Cable Television Laboratories, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.pcmm.gates;
import java.util.List;
/**
*
* A PacketCable Multimedia Gate is a logical representation of a policy
* decision that has been installed on the CMTS. A Gate is used to control
* access by a single IP flow to enhanced QoS Services provided by a DOCSIS
* cable network. Gates are unidirectional; a single Gate controls access to a
* flow in either the upstream or the downstream direction, but not both. For a
* bi-directional IP session, two Gates are required, one for upstream and one
* for downstream, each identified by a unique GateID. It is important to
* recognize that this is a fundamental difference from PacketCable 1.x, in
* which a single GateID may reference both an upstream and a downstream Gate.
*
*
* In PacketCable Multimedia, each Gate has a separate GateID. The Gate defines
*
*
*
*
*
*
*/
public interface IPCMMGate {
/**
*
* @return whether this gate is multicast or unicast.
*/
boolean isMulticast();
/**
* GateID is the handle for the Gate.
*
*/
void setGateID(IGateID gateid);
/**
* gateState is the handle for the Gate State.
*
*/
void setGateState(IGateState gateState);
/**
* (i.e., QoS limits, timers, etc.).
*
*/
void setGateSpec(IGateSpec gateSpec);
/**
* Classifier describes the IP flow(s) that will be mapped to the DOCSIS
* Service Flow.
*
*/
void setClassifiers(List classifiers);
/**
* Traffic Profile describes the QoS attributes of the Service Flow used to
* support the IP flow.
*/
void setTrafficProfile(ITrafficProfile profile);
void setTransactionID(ITransactionID transactionID);
void setError(IPCMMError error);
void setGateTimeInfo(IGateTimeInfo gateTimeInfo);
void setGateUsageInfo(IGateUsageInfo gateUsageInfo);
ITransactionID getTransactionID();
/**
* GateID is the handle for the Gate.
*
* @return gateID
*/
IGateID getGateID();
/**
* GateState is the handle for the GateState.
*
* @return gateSTATE
*/
IGateState getGateState();
/**
* AMID is the handle that identifies the Application Manager and
* Application Type
*
* @return AMID handle.
*/
IAMID getAMID();
/**
* SubscriberID uniquely identifies the Client for which the policy is being
* set.
*
* @return unique subscriber ID.
*/
ISubscriberID getSubscriberID();
/**
* (i.e., QoS limits, timers, etc.).
*
* @return gateSpec object.
*/
IGateSpec getGateSpec();
/**
* Classifier describes the IP flow(s) that will be mapped to the DOCSIS
* Service Flow.
*
* @return Classifier object.
*/
List getClassifiers();
/**
* Traffic Profile describes the QoS attributes of the Service Flow used to
* support the IP flow.
*/
ITrafficProfile getTrafficProfile();
/**
* The PacketCable Error object contains information on the type of error that has occurred.
*/
IPCMMError getError();
IGateTimeInfo getGateTimeInfo();
IGateUsageInfo getGateUsageInfo();
/**
*
* @return cops data
*/
byte[] getData();
// Event Generation Info (optional)
// Time-Based Usage Limit (optional)
// Volume-Based Usage Limit (optional)
// Opaque Data (optional)
// UserID (optional)
// SharedResourceID (optional)
}