com.mobius.software.telco.protocols.diameter.primitives.s9.SubsessionDecisionInfo Maven / Gradle / Ivy
package com.mobius.software.telco.protocols.diameter.primitives.s9;
/*
* Mobius Software LTD
* Copyright 2023, Mobius Software LTD and individual contributors
* by the @authors tag.
*
* This program is free software: you can redistribute it and/or modify
* under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see
*/
import java.net.InetAddress;
import java.util.Date;
import java.util.List;
import com.mobius.software.telco.protocols.diameter.TgppAvpCodes;
import com.mobius.software.telco.protocols.diameter.VendorIDs;
import com.mobius.software.telco.protocols.diameter.annotations.DiameterAvpDefinition;
import com.mobius.software.telco.protocols.diameter.exceptions.AvpOccursTooManyTimesException;
import com.mobius.software.telco.protocols.diameter.exceptions.MissingAvpException;
import com.mobius.software.telco.protocols.diameter.primitives.DiameterGroupedAvp;
import com.mobius.software.telco.protocols.diameter.primitives.gx.BearerControlModeEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.ChargingRuleInstall;
import com.mobius.software.telco.protocols.diameter.primitives.gx.ChargingRuleRemove;
import com.mobius.software.telco.protocols.diameter.primitives.gx.DefaultEPSBearerQoS;
import com.mobius.software.telco.protocols.diameter.primitives.gx.EventReportIndication;
import com.mobius.software.telco.protocols.diameter.primitives.gx.EventTriggerEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.IPCANTypeEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.NBIFOMModeEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.NBIFOMSupportEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.OfflineEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.OnlineEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.QoSInformation;
import com.mobius.software.telco.protocols.diameter.primitives.gx.RANRuleSupportEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.RemovalOfAccessEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.RoutingRuleReport;
import com.mobius.software.telco.protocols.diameter.primitives.gx.SessionReleaseCauseEnum;
import com.mobius.software.telco.protocols.diameter.primitives.gx.UsageMonitoringInformation;
import com.mobius.software.telco.protocols.diameter.primitives.gxx.QoSRuleInstall;
import com.mobius.software.telco.protocols.diameter.primitives.gxx.QoSRuleRemove;
import io.netty.buffer.ByteBuf;
/**
*
* @author yulian oifa
*
*/
/*
* 5.3.1 Subsession-Decision-Info
The Subsession-Decision-Info AVP (AVP code 2200) is of type Grouped, and it is used to manage PCC/QoS rules and event information within an S9 subsession from the H-PCRF to the V-PCRF.
The information contained within this grouped AVP pertains only to the subsession identified by the Subsession-Id AVP.
The Session-Release-Cause AVP is only applicable when the Subsession-Decision-Info AVP is provided in a RAR.
The Result-Code AVP and Experimental-Result-Code AVP are only applicable when the Subsession-Decision-Info AVP is provided in a CCA. The Result-Code AVP or Experimental-Result-Code AVP may be provided to inform the V-PCRF of possible errors when processing subsession information that was provided in a corresponding CCR command.
AVP Format:
Subsession-Decision-Info ::= < AVP Header: 2200 >
{ Subsession-Id }
0*2[ AN-GW-Address ]
[ Result-Code ]
[ Experimental-Result-Code ]
*[ Charging-Rule-Remove ]
*[ Charging-Rule-Install ]
[ Event-Report-Indication ]
*[ QoS-Rule-Install ]
*[ QoS-Rule-Remove ]
[ Default-EPS-Bearer-QoS ]
[ Framed-Ipv6-Prefix ]
*[ Usage-Monitoring-Information ]
[ Session-Release-Cause ]
[ Bearer-Control-Mode ]
*[ Event-Trigger ]
[ Revalidation-Time ]
[ Default-Access ]
[ NBIFOM-Support ]
[ NBIFOM-Mode ]
[ RAN-Rule-Support ]
*[ Routing-Rule-Report]
[ Removal-Of-Access ]
[ IP-CAN-Type ]
[ Online ]
[ Offline ]
*[ QoS-Information ]
*[ AVP ]
*/
@DiameterAvpDefinition(code = TgppAvpCodes.SUBSESSION_DECISION_INFO, vendorId = VendorIDs.TGPP_ID, name = "Subsession-Decision-Info")
public interface SubsessionDecisionInfo extends DiameterGroupedAvp
{
Long getSubsessionId();
void setSubsessionId(Long value) throws MissingAvpException;
List getANGWAddress();
void setANGWAddress(List value) throws AvpOccursTooManyTimesException;
public Long getResultCode();
void setResultCode(Long value);
Long getExperimentalResultCode();
void setExperimentalResultCode(Long experimentalResultCode);
List getChargingRuleRemove();
void setChargingRuleRemove(List value);
List getChargingRuleInstall();
void setChargingRuleInstall(List value);
EventReportIndication getEventReportIndication();
void setEventReportIndication(EventReportIndication value);
List getQoSRuleRemove();
void setQoSRuleRemove(List value);
List getQoSRuleInstall();
void setQoSRuleInstall(List value);
public DefaultEPSBearerQoS getDefaultEPSBearerQoS();
void setDefaultEPSBearerQoS(DefaultEPSBearerQoS value);
ByteBuf getFramedIPv6Prefix();
void setFramedIPv6Prefix(ByteBuf value);
List getUsageMonitoringInformation();
void setUsageMonitoringInformation(List value);
SessionReleaseCauseEnum getSessionReleaseCause();
void setSessionReleaseCause(SessionReleaseCauseEnum value);
BearerControlModeEnum getBearerControlMode();
void setBearerControlMode(BearerControlModeEnum value);
List getEventTrigger();
void setEventTrigger(List value);
public Date getRevalidationTime();
void setRevalidationTime(Date value);
IPCANTypeEnum getDefaultAccess();
void setDefaultAccess(IPCANTypeEnum value);
NBIFOMModeEnum getNBIFOMMode();
void setNBIFOMMode(NBIFOMModeEnum value);
NBIFOMSupportEnum getNBIFOMSupport();
void setNBIFOMSupport(NBIFOMSupportEnum value);
RANRuleSupportEnum getRANRuleSupport();
void setRANRuleSupport(RANRuleSupportEnum value);
List getRoutingRuleReport();
void setRoutingRuleReport(List value);
RemovalOfAccessEnum getRemovalOfAccess();
void setRemovalOfAccess(RemovalOfAccessEnum value);
IPCANTypeEnum getIPCANType();
void setIPCANType(IPCANTypeEnum value);
OnlineEnum getOnline();
void setOnline(OnlineEnum value);
OfflineEnum getOffline();
void setOffline(OfflineEnum value);
List getQoSInformation();
void setQoSInformation(List value);
}