blob: 8f37245bb057e34e4b02c494fb86b1eb2b3d5f2f [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2019 Ericsson Telecom AB
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
// File: PFCP_Types.ttcn
// Description: PFCP protocol module
// Rev: <RnXnn>
// Prodnr: CNL 113 875
// Contact: http://ttcn.ericsson.se
// Reference: 3GPP TS 29.244 v15.1.0
//
module PFCP_Types{
import from General_Types all;
external function enc_PDU_PFCP(in PDU_PFCP pdu) return octetstring
with { extension "prototype(convert)" extension "encode(RAW)" }
external function dec_PDU_PFCP(in octetstring stream) return PDU_PFCP
with { extension "prototype(convert)" extension "decode(RAW)" }
external function enc_PDU_PFCP_fast(in PDU_PFCP pdu, out octetstring stream)
with { extension "prototype(fast) encode(RAW)" }
external function dec_PDU_PFCP_backtrack(in octetstring stream, out PDU_PFCP pdu) return integer
with { extension "prototype(backtrack) decode(RAW)" }
// Information Elements
// 8.2.1 Cause
type record Cause {
LIN2_BO_LAST elementIdentifier(19),
LIN2_BO_LAST lengthIndicator,
OCT1 causeValue
} with {
variant "PRESENCE (elementIdentifier = 19; )"
variant (lengthIndicator) "LENGTHTO(causeValue )"
}
//8.2.2 Source Interface
type record Source_Interface {
LIN2_BO_LAST elementIdentifier(20),
LIN2_BO_LAST lengthIndicator,
INT4b interfacevalue,
BIT4 spare
} with {
variant "PRESENCE (elementIdentifier = 20; )"
variant (lengthIndicator) "LENGTHTO(interfacevalue, spare)"
}
// 8.2.3 F-TEID
type record F_TEID {
LIN2_BO_LAST elementIdentifier(21),
LIN2_BO_LAST lengthIndicator,
BIT1 v4,
BIT1 v6,
BIT1 ch,
BIT1 chid,
BIT4 spare,
OCT4 teid optional,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional,
OCT1 choose_id optional
} with {
variant (ipv4_address) "PRESENCE (v4 = '1'B )"
variant (ipv6_address) "PRESENCE (v6 = '1'B )"
variant (choose_id) "PRESENCE (chid = '1'B )"
variant "PRESENCE (elementIdentifier = 21; )"
variant (lengthIndicator) "LENGTHTO(v4,v6,ch,chid,spare,teid,ipv4_address,ipv6_address,choose_id)"
}
// 8.2.4 PDN Instance
type Network_Instance PDN_Instance
type record Network_Instance {
LIN2_BO_LAST elementIdentifier(22),
LIN2_BO_LAST lengthIndicator,
octetstring pdn_instance
} with {
variant "PRESENCE (elementIdentifier = 22; )"
variant (lengthIndicator) "LENGTHTO(pdn_instance )"
}
// 8.2.5 SDF Filter
type record SDF_Filter {
LIN2_BO_LAST elementIdentifier(23),
LIN2_BO_LAST lengthIndicator,
BIT1 fd,
BIT1 ttc,
BIT1 spi,
BIT1 fl,
BIT1 bid,
BIT11 spare,
LIN2_BO_LAST lengthFlowDesc optional,
octetstring flow_description optional,
OCT2 ToS_Traffic_Class optional,
OCT4 security_parameter_index optional,
OCT3 flow_label optional,
LIN4_BO_LAST SDF_filter_id optional
} with {
variant "PRESENCE (elementIdentifier = 23; )"
variant (lengthFlowDesc) "PRESENCE (fd = '1'B )"
variant (flow_description) "PRESENCE (fd = '1'B )"
variant (ToS_Traffic_Class) "PRESENCE (ttc = '1'B )"
variant (SDF_filter_id) "PRESENCE (bid = '1'B )"
variant (security_parameter_index) "PRESENCE (spi = '1'B )"
variant (flow_label) "PRESENCE (fl = '1'B )"
variant (lengthFlowDesc) "LENGTHTO(flow_description)"
variant (lengthIndicator) "LENGTHTO(fd,ttc,spi,fl,bid,spare,lengthFlowDesc,flow_description,ToS_Traffic_Class,security_parameter_index,flow_label, SDF_filter_id)"
}
type record of SDF_Filter SDF_Filter_list;
// 8.2.6 Application ID
type record Application_ID {
LIN2_BO_LAST elementIdentifier(24),
LIN2_BO_LAST lengthIndicator,
octetstring application_id
} with {
variant "PRESENCE (elementIdentifier = 24; )"
variant (lengthIndicator) "LENGTHTO(application_id )"
}
// 8.2.7 Gate Status
type record Gate_Status {
LIN2_BO_LAST elementIdentifier(25),
LIN2_BO_LAST lengthIndicator,
INT2b dl_gate,
INT2b ul_gate,
BIT4 spare
} with {
variant "PRESENCE (elementIdentifier = 25; )"
variant (lengthIndicator) "LENGTHTO(dl_gate,ul_gate,spare )"
}
// 8.2.8 MBR
type record MBR {
LIN2_BO_LAST elementIdentifier(26),
LIN2_BO_LAST lengthIndicator,
OCT5 ul_mbr,
OCT5 dl_mbr
} with {
variant "PRESENCE (elementIdentifier = 26; )"
variant (lengthIndicator) "LENGTHTO(ul_mbr,dl_mbr )"
}
// 8.2.9 GBR
type record GBR {
LIN2_BO_LAST elementIdentifier(27),
LIN2_BO_LAST lengthIndicator,
OCT5 ul_gbr,
OCT5 dl_gbr
} with {
variant "PRESENCE (elementIdentifier = 27; )"
variant (lengthIndicator) "LENGTHTO(ul_gbr,dl_gbr )"
}
// 8.2.10 QER Correlation ID
type record QER_Correlation_ID {
LIN2_BO_LAST elementIdentifier(28),
LIN2_BO_LAST lengthIndicator,
octetstring qer
} with {
variant "PRESENCE (elementIdentifier = 28; )"
variant (lengthIndicator) "LENGTHTO(qer )"
}
// 8.2.11 Precedence
type record Precedence {
LIN2_BO_LAST elementIdentifier(29),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST precedence_value
} with {
variant "PRESENCE (elementIdentifier = 29; )"
variant (lengthIndicator) "LENGTHTO(precedence_value )"
}
// 8.2.12 DL Transport Level Marking
type record DL_Transport_Level_Marking {
LIN2_BO_LAST elementIdentifier(30),
LIN2_BO_LAST lengthIndicator,
OCT2 ToS_traffic_class
} with {
variant "PRESENCE (elementIdentifier = 30; )"
variant (lengthIndicator) "LENGTHTO( ToS_traffic_class)"
}
// 8.2.13 Volume Threshold
type record Volume_Threshold {
LIN2_BO_LAST elementIdentifier(31),
LIN2_BO_LAST lengthIndicator,
BIT1 tovol,
BIT1 ulvol,
BIT1 dlvol,
BIT5 spare,
LIN8_BO_LAST total_volume optional,
LIN8_BO_LAST uplink_volume optional,
LIN8_BO_LAST downlink_volume optional
} with {
variant "PRESENCE (elementIdentifier = 31; )"
variant (total_volume) "PRESENCE ( tovol= '1'B )"
variant (uplink_volume) "PRESENCE ( ulvol= '1'B )"
variant (downlink_volume) "PRESENCE ( dlvol= '1'B )"
variant (lengthIndicator) "LENGTHTO(tovol,ulvol,dlvol,spare,total_volume,uplink_volume,downlink_volume )"
}
// 8.2.14 Time Threshold
type record Time_Threshold {
LIN2_BO_LAST elementIdentifier(32),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_threshold
} with {
variant "PRESENCE (elementIdentifier = 32; )"
variant (lengthIndicator) "LENGTHTO(time_threshold )"
}
// 8.2.15 Monitoring Time
type record Monitoring_Time {
LIN2_BO_LAST elementIdentifier(33),
LIN2_BO_LAST lengthIndicator,
OCT4 monitoring_time
} with {
variant "PRESENCE (elementIdentifier = 33; )"
variant (lengthIndicator) "LENGTHTO(monitoring_time )"
}
// 8.2.16 Subsequent Volume Threshold
type record Subsequent_Volume_Threshold {
LIN2_BO_LAST elementIdentifier(34),
LIN2_BO_LAST lengthIndicator,
BIT1 tovol,
BIT1 ulvol,
BIT1 dlvol,
BIT5 spare,
LIN8_BO_LAST total_volume optional,
LIN8_BO_LAST uplink_volume optional,
LIN8_BO_LAST downlink_volume optional
} with {
variant "PRESENCE (elementIdentifier = 34; )"
variant (total_volume) "PRESENCE ( tovol= '1'B )"
variant (uplink_volume) "PRESENCE ( ulvol= '1'B )"
variant (downlink_volume) "PRESENCE ( dlvol= '1'B )"
variant (lengthIndicator) "LENGTHTO(tovol,ulvol,dlvol,spare,total_volume,uplink_volume,downlink_volume )"
}
// 8.2.17 Subsequent Time Threshold
type record Subsequent_Time_Threshold {
LIN2_BO_LAST elementIdentifier(35),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_threshold
} with {
variant "PRESENCE (elementIdentifier = 35; )"
variant (lengthIndicator) "LENGTHTO(time_threshold )"
}
// 8.2.18 Inactivity Detection Time
type record Inactivity_Detection_Time {
LIN2_BO_LAST elementIdentifier(36),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST inactivity_detection_time
} with {
variant "PRESENCE (elementIdentifier = 36; )"
variant (lengthIndicator) "LENGTHTO(inactivity_detection_time )"
}
// 8.2.19 Reporting Triggers
type record Reporting_Triggers {
LIN2_BO_LAST elementIdentifier(37),
LIN2_BO_LAST lengthIndicator,
BIT1 perio,
BIT1 volth,
BIT1 timth,
BIT1 quhti,
BIT1 start_,
BIT1 stop_,
BIT1 droth,
BIT1 liusa,
BIT1 volqu,
BIT1 timqu,
BIT1 envcl,
BIT5 spare
} with {
variant "PRESENCE (elementIdentifier = 37; )"
variant (lengthIndicator) "LENGTHTO( perio,volth,timth,quhti,start_,stop_,droth,liusa,volqu,timqu,envcl,spare)"
}
// 8.2.20 Redirect Information
type record Redirect_Information {
LIN2_BO_LAST elementIdentifier(38),
LIN2_BO_LAST lengthIndicator,
INT4b redirect_address_type,
LIN2_BO_LAST addresslength,
octetstring redirect_server_address
} with {
variant "PRESENCE (elementIdentifier = 38; )"
variant (addresslength) "LENGTHTO(redirect_server_address)"
variant (lengthIndicator) "LENGTHTO( redirect_address_type,addresslength,redirect_server_address)"
}
// 8.2.21 Report Type
type record Report_Type {
LIN2_BO_LAST elementIdentifier(39),
LIN2_BO_LAST lengthIndicator,
BIT1 dldr,
BIT1 usar,
BIT1 erir,
BIT1 upir,
BIT4 spare
} with {
variant "PRESENCE (elementIdentifier = 39; )"
variant (lengthIndicator) "LENGTHTO( dldr,usar,erir,upir,spare)"
}
//8.2.22 Offending IE
type record Offending_IE {
LIN2_BO_LAST elementIdentifier(40),
LIN2_BO_LAST lengthIndicator,
LIN2_BO_LAST offendingIE
} with {
variant "PRESENCE (elementIdentifier = 40; )"
variant (lengthIndicator) "LENGTHTO( offendingIE)"
}
// 8.2.23 Forwarding Policy
type record Forwarding_Policy {
LIN2_BO_LAST elementIdentifier(41),
LIN2_BO_LAST lengthIndicator,
LIN1 policyIdlength,
octetstring forwarding_policy_id length(0..255)
} with {
variant "PRESENCE (elementIdentifier = 41; )"
variant (policyIdlength) "LENGTHTO( forwarding_policy_id)"
variant (lengthIndicator) "LENGTHTO( policyIdlength,forwarding_policy_id)"
}
// 8.2.24 Destination Interface
type record Destination_Interface {
LIN2_BO_LAST elementIdentifier(42),
LIN2_BO_LAST lengthIndicator,
INT4b interface_value,
BIT4 spare
} with {
variant "PRESENCE (elementIdentifier = 42; )"
variant (lengthIndicator) "LENGTHTO(interface_value,spare )"
}
// 8.2.25 UP Function Features
type record UP_Function_Features {
LIN2_BO_LAST elementIdentifier(43),
LIN2_BO_LAST lengthIndicator,
BIT8 oct5,
BIT8 oct6
} with {
variant "PRESENCE (elementIdentifier = 43; )"
variant (lengthIndicator) "LENGTHTO(oct5,oct6 )"
}
// 8.2.26 Apply Action
type record Apply_Action {
LIN2_BO_LAST elementIdentifier(44),
LIN2_BO_LAST lengthIndicator,
BIT1 drop,
BIT1 forw,
BIT1 buff,
BIT1 nocp,
BIT1 dupl,
BIT3 spare
} with {
variant "PRESENCE (elementIdentifier = 44; )"
variant (lengthIndicator) "LENGTHTO(drop,forw,buff,nocp,dupl,spare)"
}
// 8.2.27 Downlink Data Service
type record Downlink_Data_Service_Information {
LIN2_BO_LAST elementIdentifier(45),
LIN2_BO_LAST lengthIndicator,
BIT1 ppi,
BIT7 spare,
BIT6 ppi_value optional,
BIT2 spare2 optional
} with {
variant "PRESENCE (elementIdentifier = 45; )"
variant (ppi_value) "PRESENCE(ppi = '1'B)"
variant (spare) "PRESENCE(ppi = '1'B)"
variant (lengthIndicator) "LENGTHTO(ppi,spare,ppi_value,spare2)"
}
// 8.2.28 Downlink Data Notification Delay
type record Downlink_Data_Notification_Delay {
LIN2_BO_LAST elementIdentifier(46),
LIN2_BO_LAST lengthIndicator,
INT1 delay_value
} with {
variant "PRESENCE (elementIdentifier = 46; )"
variant (lengthIndicator) "LENGTHTO(delay_value)"
}
// 8.2.29 DL Buffering Duration
type record DL_Buffering_Duration {
LIN2_BO_LAST elementIdentifier(47),
LIN2_BO_LAST lengthIndicator,
BIT5 timer_value,
BIT3 timer_unit
} with {
variant "PRESENCE (elementIdentifier = 47; )"
variant (lengthIndicator) "LENGTHTO(timer_value,timer_unit)"
}
// 8.2.30 DL Buffering Suggested Packet Count
type record DL_Buffering_Suggested_Packet_Count {
LIN2_BO_LAST elementIdentifier(48),
LIN2_BO_LAST lengthIndicator,
octetstring packet_count_value
} with {
variant "PRESENCE (elementIdentifier = 48; )"
variant (lengthIndicator) "LENGTHTO(packet_count_value)"
}
// 8.2.31 PFCPSMReq-Flags
type record PFCPSMReq_Flags {
LIN2_BO_LAST elementIdentifier(49),
LIN2_BO_LAST lengthIndicator,
BIT1 drobu,
BIT1 sndem,
BIT1 qaurr,
BIT5 spare
} with {
variant "PRESENCE (elementIdentifier = 49; )"
variant (lengthIndicator) "LENGTHTO(drobu,sndem,qaurr,spare)"
}
// 8.2.32 PFCPSMRsp-Flags
type record PFCPSMRsp_Flags {
LIN2_BO_LAST elementIdentifier(50),
LIN2_BO_LAST lengthIndicator,
BIT1 drobu,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 50; )"
variant (lengthIndicator) "LENGTHTO(drobu,spare)"
}
// 8.2.33 Sequence Number
type record Sequence_Number {
LIN2_BO_LAST elementIdentifier(52),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST sequence_number
} with {
variant "PRESENCE (elementIdentifier = 52; )"
variant (lengthIndicator) "LENGTHTO(sequence_number)"
}
// 8.2.34 Metric
type record Metric {
LIN2_BO_LAST elementIdentifier(53),
LIN2_BO_LAST lengthIndicator,
OCT1 metric
} with {
variant "PRESENCE (elementIdentifier = 53; )"
variant (lengthIndicator) "LENGTHTO(metric)"
}
// 8.2.35 Timer
type record Timer_IE {
LIN2_BO_LAST elementIdentifier(55),
LIN2_BO_LAST lengthIndicator,
BIT5 timer_value,
BIT3 timer_unit
} with {
variant "PRESENCE (elementIdentifier = 55; )"
variant (lengthIndicator) "LENGTHTO(timer_value,timer_unit)"
}
// 8.2.36 PDR ID
type record PDR_ID {
LIN2_BO_LAST elementIdentifier(56),
LIN2_BO_LAST lengthIndicator,
OCT2 rule_id
} with {
variant "PRESENCE (elementIdentifier = 56; )"
variant (lengthIndicator) "LENGTHTO(rule_id)"
}
// 8.2.37 F-SEID
type record F_SEID {
LIN2_BO_LAST elementIdentifier(57),
LIN2_BO_LAST lengthIndicator,
BIT1 v6,
BIT1 v4,
BIT6 spare,
OCT8 seid,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional
} with {
variant (ipv4_address) "PRESENCE (v4 = '1'B )"
variant (ipv6_address) "PRESENCE (v6 = '1'B )"
variant "PRESENCE (elementIdentifier = 57; )"
variant (lengthIndicator) "LENGTHTO(v4,v6,spare,seid,ipv4_address,ipv6_address)"
}
// 8.2.38 Node ID
type record Node_ID {
LIN2_BO_LAST elementIdentifier(60),
LIN2_BO_LAST lengthIndicator,
INT4b node_id_type,
BIT4 spare,
octetstring node_id_value
} with {
variant "PRESENCE (elementIdentifier = 60; )"
variant (lengthIndicator) "LENGTHTO(node_id_type,spare,node_id_value)"
}
// 8.2.39 PFD Contents
type record PFD_Contents {
LIN2_BO_LAST elementIdentifier(61),
LIN2_BO_LAST lengthIndicator,
BIT1 fd,
BIT1 url_flag,
BIT1 dn,
BIT1 cp,
BIT12 spare,
LIN2_BO_LAST lengthFlowDesc optional,
octetstring flow_description optional,
LIN2_BO_LAST lengthurl optional,
octetstring url optional,
LIN2_BO_LAST lengthdomain_name optional,
octetstring domain_name optional,
LIN2_BO_LAST lengthcustom_pfd optional,
octetstring custom_pfd optional
} with {
variant "PRESENCE (elementIdentifier = 61; )"
variant (lengthFlowDesc) "PRESENCE (fd = '1'B )"
variant (flow_description) "PRESENCE (fd = '1'B )"
variant (lengthFlowDesc) "LENGTHTO(flow_description)"
variant (lengthurl) "PRESENCE (url_flag = '1'B )"
variant (url) "PRESENCE (url_flag = '1'B )"
variant (lengthurl) "LENGTHTO(url)"
variant (lengthdomain_name) "PRESENCE (dn = '1'B )"
variant (domain_name) "PRESENCE (dn = '1'B )"
variant (lengthdomain_name) "LENGTHTO(domain_name)"
variant (lengthcustom_pfd) "PRESENCE (cp = '1'B )"
variant (custom_pfd) "PRESENCE (cp = '1'B )"
variant (lengthcustom_pfd) "LENGTHTO(custom_pfd)"
variant (lengthIndicator) "LENGTHTO(fd,url_flag,dn,cp,spare,lengthFlowDesc,flow_description,lengthurl,url,lengthdomain_name,domain_name,lengthcustom_pfd,custom_pfd )"
}
// 8.2.40 Measurement Method
type record Measurement_Method {
LIN2_BO_LAST elementIdentifier(62),
LIN2_BO_LAST lengthIndicator,
BIT1 durat,
BIT1 volum,
BIT1 event,
BIT5 spare
} with {
variant "PRESENCE (elementIdentifier = 62; )"
variant (lengthIndicator) "LENGTHTO(durat,volum,event,spare)"
}
// 8.2.41 Usage Report Trigger
type record Usage_Report_Trigger {
LIN2_BO_LAST elementIdentifier(63),
LIN2_BO_LAST lengthIndicator,
BIT1 perio,
BIT1 volth,
BIT1 timth,
BIT1 quhti,
BIT1 start_,
BIT1 stop_,
BIT1 droth,
BIT1 immer,
BIT1 volqu,
BIT1 timqu,
BIT1 liusa,
BIT1 termr,
BIT1 monit,
BIT1 envcl,
BIT2 spare
} with {
variant "PRESENCE (elementIdentifier = 63; )"
variant (lengthIndicator) "LENGTHTO( perio,volth,timth,quhti,start_,stop_,droth,immer,volqu,timqu,liusa,termr,monit,envcl,spare)"
}
// 8.2.42 Measurement Period
type record Measurement_Period {
LIN2_BO_LAST elementIdentifier(64),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST period
} with {
variant "PRESENCE (elementIdentifier = 64; )"
variant (lengthIndicator) "LENGTHTO(period)"
}
// 8.2.43 Fully qualified PDN Connection Set Identifier (FQ-CSID)
type record FQ_CSID {
LIN2_BO_LAST elementIdentifier(65),
LIN2_BO_LAST lengthIndicator,
INT4b num_of_CSIDs,
INT4b node_id_type,
union {
OCT4 ipv4,
OCT16 ipv6,
OCT4 addr
} node_address,
record of OCT2 pdn_id_list
} with {
variant "PRESENCE (elementIdentifier = 65; )"
variant (node_address) "CROSSTAG(ipv4,node_id_type=0; ipv6,node_id_type=1;addr,node_id_type=2; )"
variant (num_of_CSIDs) "LENGTHTO(pdn_id_list),UNIT(elements)"
variant (lengthIndicator) "LENGTHTO(num_of_CSIDs,node_id_type,node_address,pdn_id_list)"
}
type record of FQ_CSID FQ_CSID_list;
// 8.2.44 Volume Measurement
type record Volume_Measurement {
LIN2_BO_LAST elementIdentifier(66),
LIN2_BO_LAST lengthIndicator,
BIT1 tovol,
BIT1 ulvol,
BIT1 dlvol,
BIT5 spare,
LIN8_BO_LAST total_volume optional,
LIN8_BO_LAST uplink_volume optional,
LIN8_BO_LAST downlink_volume optional
} with {
variant "PRESENCE (elementIdentifier = 66; )"
variant (total_volume) "PRESENCE ( tovol= '1'B )"
variant (uplink_volume) "PRESENCE ( ulvol= '1'B )"
variant (downlink_volume) "PRESENCE ( dlvol= '1'B )"
variant (lengthIndicator) "LENGTHTO(tovol,ulvol,dlvol,spare,total_volume,uplink_volume,downlink_volume )"
}
// 8.2.45 Duration Measurement
type record Duration_Measurement {
LIN2_BO_LAST elementIdentifier(67),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST duration
} with {
variant "PRESENCE (elementIdentifier = 67; )"
variant (lengthIndicator) "LENGTHTO(duration )"
}
// 8.2.46 Time of First Packet
type record Time_of_First_Packet {
LIN2_BO_LAST elementIdentifier(69),
LIN2_BO_LAST lengthIndicator,
OCT4 time_of_packet
} with {
variant "PRESENCE (elementIdentifier = 69; )"
variant (lengthIndicator) "LENGTHTO(time_of_packet )"
}
// 8.2.47 Time of Last Packet
type record Time_of_Last_Packet {
LIN2_BO_LAST elementIdentifier(70),
LIN2_BO_LAST lengthIndicator,
OCT4 time_of_packet
} with {
variant "PRESENCE (elementIdentifier = 70; )"
variant (lengthIndicator) "LENGTHTO(time_of_packet )"
}
// 8.2.48 Quota Holding Time
type record Quota_Holding_Time {
LIN2_BO_LAST elementIdentifier(71),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_value
} with {
variant "PRESENCE (elementIdentifier = 71; )"
variant (lengthIndicator) "LENGTHTO(time_value )"
}
// 8.2.49 Dropped DL Traffic Threshold
type record Dropped_DL_Traffic_Threshold {
LIN2_BO_LAST elementIdentifier(72),
LIN2_BO_LAST lengthIndicator,
BIT1 dlpa,
BIT7 spare,
LIN8_BO_LAST packets optional
} with {
variant "PRESENCE (elementIdentifier = 72; )"
variant (packets) "PRESENCE (dlpa = '1'B; )"
variant (lengthIndicator) "LENGTHTO( dlpa,spare,packets)"
}
// 8.2.50 Volume Quota
type record Volume_Quota {
LIN2_BO_LAST elementIdentifier(73),
LIN2_BO_LAST lengthIndicator,
BIT1 tovol,
BIT1 ulvol,
BIT1 dlvol,
BIT5 spare,
LIN8_BO_LAST total_volume optional,
LIN8_BO_LAST uplink_volume optional,
LIN8_BO_LAST downlink_volume optional
} with {
variant "PRESENCE (elementIdentifier = 73; )"
variant (total_volume) "PRESENCE ( tovol= '1'B )"
variant (uplink_volume) "PRESENCE ( ulvol= '1'B )"
variant (downlink_volume) "PRESENCE ( dlvol= '1'B )"
variant (lengthIndicator) "LENGTHTO(tovol,ulvol,dlvol,spare,total_volume,uplink_volume,downlink_volume )"
}
// 8.2.51 Time Quota
type record Time_Quota {
LIN2_BO_LAST elementIdentifier(74),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_value
} with {
variant "PRESENCE (elementIdentifier = 74; )"
variant (lengthIndicator) "LENGTHTO(time_value )"
}
// 8.2.52 Start Time
type record Start_Time {
LIN2_BO_LAST elementIdentifier(75),
LIN2_BO_LAST lengthIndicator,
OCT4 start_time
} with {
variant "PRESENCE (elementIdentifier = 75; )"
variant (lengthIndicator) "LENGTHTO(start_time )"
}
// 8.2.53 End Time
type record End_Time {
LIN2_BO_LAST elementIdentifier(76),
LIN2_BO_LAST lengthIndicator,
OCT4 end_time
} with {
variant "PRESENCE (elementIdentifier = 76; )"
variant (lengthIndicator) "LENGTHTO(end_time )"
}
// 8.2.54 URR ID
type record URR_ID {
LIN2_BO_LAST elementIdentifier(81),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST id_value
} with {
variant "PRESENCE (elementIdentifier = 81; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
type record of URR_ID URR_ID_list;
// 8.2.55 Linked URR ID
type record Linked_URR_ID {
LIN2_BO_LAST elementIdentifier(82),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST id_value
} with {
variant "PRESENCE (elementIdentifier = 82; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
// 8.2.56 Outer Header Creation
type record Outer_Header_Creation {
LIN2_BO_LAST elementIdentifier(84),
LIN2_BO_LAST lengthIndicator,
BIT8 ohc_description_oct5,
BIT8 ohc_description_oct6,
OCT4 teid optional,
OCT4 ipv4 optional,
OCT16 ipv6 optional,
OCT2 udp_port optional
} with {
variant "PRESENCE (elementIdentifier = 84; )"
variant (teid) "PRESENCE({ohc_description_oct5 = '00000001'B, ohc_description_oct5 = '00000010'B, ohc_description_oct5 = '00000011'B})"
variant (ipv4) "PRESENCE({ohc_description_oct5 = '00000001'B, ohc_description_oct5 = '00000100'B, ohc_description_oct5 = '00000011'B})"
variant (ipv6) "PRESENCE({ohc_description_oct5 = '00000010'B, ohc_description_oct5 = '00001000'B, ohc_description_oct5 = '00000011'B})"
variant (lengthIndicator) "LENGTHTO(ohc_description_oct5,ohc_description_oct6,teid,ipv4,ipv6,udp_port )"
}
// 8.2.57 BAR ID
type record BAR_ID {
LIN2_BO_LAST elementIdentifier(88),
LIN2_BO_LAST lengthIndicator,
OCT1 id_value
} with {
variant "PRESENCE (elementIdentifier = 88; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
// 8.2.58 CP Function Features
type record CP_Function_Features {
LIN2_BO_LAST elementIdentifier(89),
LIN2_BO_LAST lengthIndicator,
OCT1 features
} with {
variant "PRESENCE (elementIdentifier = 89; )"
variant (lengthIndicator) "LENGTHTO( features)"
}
// 8.2.59 Usage Information
type record Usage_Information {
LIN2_BO_LAST elementIdentifier(90),
LIN2_BO_LAST lengthIndicator,
BIT1 bef,
BIT1 aft,
BIT1 uae,
BIT1 ube,
BIT4 spare
} with {
variant "PRESENCE (elementIdentifier = 90; )"
variant (lengthIndicator) "LENGTHTO(bef,aft,uae,ube,spare)"
}
// 8.2.60 Application Instance ID
type record Application_Instance_ID {
LIN2_BO_LAST elementIdentifier(91),
LIN2_BO_LAST lengthIndicator,
octetstring id_value
} with {
variant "PRESENCE (elementIdentifier = 91; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
// 8.2.61 Flow Information
type record Flow_Information {
LIN2_BO_LAST elementIdentifier(92),
LIN2_BO_LAST lengthIndicator,
INT3b flow_direction,
BIT5 spare,
LIN2_BO_LAST lengthFlowDesc,
octetstring flow_description
} with {
variant "PRESENCE (elementIdentifier = 92; )"
variant (lengthFlowDesc) "LENGTHTO(flow_description)"
variant (lengthIndicator) "LENGTHTO(flow_direction,spare,lengthFlowDesc,flow_description )"
}
// 8.2.62 UE IP Address
type record UE_IP_Address {
LIN2_BO_LAST elementIdentifier(93),
LIN2_BO_LAST lengthIndicator,
BIT1 v6,
BIT1 v4,
BIT1 sd,
BIT5 spare,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional
} with {
variant (ipv4_address) "PRESENCE (v4 = '1'B )"
variant (ipv6_address) "PRESENCE (v6 = '1'B )"
variant "PRESENCE (elementIdentifier = 93; )"
variant (lengthIndicator) "LENGTHTO(v4,v6,sd,spare,ipv4_address,ipv6_address)"
}
// 8.2.63 Packet Rate
type record Packet_Rate {
LIN2_BO_LAST elementIdentifier(94),
LIN2_BO_LAST lengthIndicator,
BIT1 ulpr,
BIT1 dlpr,
BIT6 spare,
BIT3 uplink_time_unit optional,
BIT5 spare2 optional,
LIN2_BO_LAST max_uplink_rate optional,
BIT3 downlink_time_unit optional,
BIT5 spare3 optional,
LIN2_BO_LAST max_donwlink_rate optional
} with {
variant (uplink_time_unit,spare2,max_uplink_rate) "PRESENCE (ulpr = '1'B )"
variant (downlink_time_unit,spare3,max_donwlink_rate) "PRESENCE (dlpr = '1'B )"
variant "PRESENCE (elementIdentifier = 94; )"
variant (lengthIndicator) "LENGTHTO(ulpr,dlpr,spare,uplink_time_unit,spare2,max_uplink_rate,downlink_time_unit,spare3,max_donwlink_rate)"
}
// 8.2.64 Outer Header Removal
type record Outer_Header_Removal {
LIN2_BO_LAST elementIdentifier(95),
LIN2_BO_LAST lengthIndicator,
INT1 ohc_description
} with {
variant "PRESENCE (elementIdentifier = 95; )"
variant (lengthIndicator) "LENGTHTO(ohc_description )"
}
// 8.2.65 Recovery Time Stamp
type record Recovery_Time_Stamp {
LIN2_BO_LAST elementIdentifier(96),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_value
} with {
variant "PRESENCE (elementIdentifier = 96; )"
variant (lengthIndicator) "LENGTHTO(time_value )"
}
// 8.2.66 DL Flow Level Marking
type record DL_Flow_Level_Marking {
LIN2_BO_LAST elementIdentifier(97),
LIN2_BO_LAST lengthIndicator,
BIT1 ttc,
BIT1 sci,
BIT6 spare,
OCT2 tos optional,
OCT2 sci_val optional
} with {
variant (tos) "PRESENCE (ttc = '1'B )"
variant (sci_val) "PRESENCE (sci = '1'B )"
variant "PRESENCE (elementIdentifier = 97; )"
variant (lengthIndicator) "LENGTHTO(ttc,sci,spare,tos,sci_val)"
}
// 8.2.67 Header Enrichment
type record Header_Enrichment {
LIN2_BO_LAST elementIdentifier(98),
LIN2_BO_LAST lengthIndicator,
INT5b header_type,
BIT3 spare,
INT1 header_name_length,
octetstring header_name,
INT1 header_val_length,
octetstring header_val
} with {
variant "PRESENCE (elementIdentifier = 98; )"
variant (header_val_length) "LENGTHTO( header_val)"
variant (header_name_length) "LENGTHTO( header_name)"
variant (lengthIndicator) "LENGTHTO(header_type,spare,header_name_length,header_name,header_val_length,header_val)"
}
// 8.2.68 Measurement Information
type record Measurement_Information {
LIN2_BO_LAST elementIdentifier(100),
LIN2_BO_LAST lengthIndicator,
BIT1 mbqe,
BIT1 inam,
BIT1 radi,
BIT5 spare
} with {
variant "PRESENCE (elementIdentifier = 100; )"
variant (lengthIndicator) "LENGTHTO(mbqe,inam,radi,spare)"
}
// 8.2.69 Node Report Type
type record Node_Report_Type {
LIN2_BO_LAST elementIdentifier(101),
LIN2_BO_LAST lengthIndicator,
BIT1 upfr,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 101; )"
variant (lengthIndicator) "LENGTHTO(upfr,spare)"
}
// 8.2.70 Remote GTP-U Peer
type record Remote_GTP_U_Peer {
LIN2_BO_LAST elementIdentifier(103),
LIN2_BO_LAST lengthIndicator,
BIT1 v4,
BIT1 v6,
BIT6 spare,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional
} with {
variant (ipv4_address) "PRESENCE (v4 = '1'B )"
variant (ipv6_address) "PRESENCE (v6 = '1'B )"
variant "PRESENCE (elementIdentifier = 103; )"
variant (lengthIndicator) "LENGTHTO(v4,v6,spare,ipv4_address,ipv6_address)"
}
// 8.2.71 UR-SEQN
type record UR_SEQN {
LIN2_BO_LAST elementIdentifier(104),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST ur_seqn
} with {
variant "PRESENCE (elementIdentifier = 104; )"
variant (lengthIndicator) "LENGTHTO( ur_seqn)"
}
// 8.2.72 Activate Predefined Rules
type record Activate_Predefined_Rules {
LIN2_BO_LAST elementIdentifier(106),
LIN2_BO_LAST lengthIndicator,
octetstring rule_bame
} with {
variant "PRESENCE (elementIdentifier = 106; )"
variant (lengthIndicator) "LENGTHTO( rule_bame)"
}
// 8.2.73 Deactivate Predefined Rules
type record Deactivate_Predefined_Rules {
LIN2_BO_LAST elementIdentifier(107),
LIN2_BO_LAST lengthIndicator,
octetstring rule_bame
} with {
variant "PRESENCE (elementIdentifier = 107; )"
variant (lengthIndicator) "LENGTHTO( rule_bame)"
}
// 8.2.74 FAR ID
type record FAR_ID {
LIN2_BO_LAST elementIdentifier(108),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST id_value
} with {
variant "PRESENCE (elementIdentifier = 108; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
// 8.2.75 QER ID
type record QER_ID {
LIN2_BO_LAST elementIdentifier(109),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST id_value
} with {
variant "PRESENCE (elementIdentifier = 109; )"
variant (lengthIndicator) "LENGTHTO(id_value )"
}
type record of QER_ID QER_ID_list;
// 8.2.76 OCI Flags
type record OCI_Flags {
LIN2_BO_LAST elementIdentifier(110),
LIN2_BO_LAST lengthIndicator,
BIT1 aoci,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 110; )"
variant (lengthIndicator) "LENGTHTO(aoci,spare)"
}
// 8.2.77 PFCP Association Release Request
type record PFCP_Association_Release_Request_IE {
LIN2_BO_LAST elementIdentifier(111),
LIN2_BO_LAST lengthIndicator,
BIT1 sarr,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 111; )"
variant (lengthIndicator) "LENGTHTO(sarr,spare)"
}
// 8.2.78 Graceful Release Period
type record Graceful_Release_Period {
LIN2_BO_LAST elementIdentifier(112),
LIN2_BO_LAST lengthIndicator,
BIT5 timer_value,
BIT3 timer_unit
} with {
variant "PRESENCE (elementIdentifier = 112; )"
variant (lengthIndicator) "LENGTHTO(timer_value,timer_unit)"
}
// 8.2.79 PDN Type
type record PDN_Type {
LIN2_BO_LAST elementIdentifier(113),
LIN2_BO_LAST lengthIndicator,
INT3b pdn_type,
BIT5 spare
} with {
variant "PRESENCE (elementIdentifier = 113; )"
variant (lengthIndicator) "LENGTHTO(pdn_type,spare)"
}
// 8.2.80 Failed Rule ID
type record Failed_Rule_ID {
LIN2_BO_LAST elementIdentifier(114),
LIN2_BO_LAST lengthIndicator,
INT5b rule_id_type,
BIT3 spare,
octetstring rule_id_val
} with {
variant "PRESENCE (elementIdentifier = 114; )"
variant (lengthIndicator) "LENGTHTO(rule_id_type,spare,rule_id_val)"
}
// 8.2.81 Time Quota Mechanism
type record Time_Quota_Mechanism {
LIN2_BO_LAST elementIdentifier(115),
LIN2_BO_LAST lengthIndicator,
INT2b btit,
BIT6 spare,
LIN4_BO_LAST base_time_interval
} with {
variant "PRESENCE (elementIdentifier = 115; )"
variant (lengthIndicator) "LENGTHTO(btit,spare,base_time_interval)"
}
// 8.2.82 UP_IP_Resource_Information
type record UP_IP_Resource_Information {
LIN2_BO_LAST elementIdentifier(116),
LIN2_BO_LAST lengthIndicator,
BIT1 v4,
BIT1 v6,
INT3b teidri,
BIT1 assoni,
BIT2 spare,
OCT1 teid_range optional,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional,
octetstring network_instance optional
} with {
variant (ipv4_address) "PRESENCE(v4 = '1'B)"
variant (ipv6_address) "PRESENCE(v6 = '1'B)"
variant (network_instance) "PRESENCE(assoni = '1'B)"
variant (teid_range) "PRESENCE({teidri=1,teidri=2,teidri=3,teidri=4,teidri=5,teidri=6,teidri=7})"
variant "PRESENCE (elementIdentifier = 116; )"
variant (lengthIndicator) "LENGTHTO(v4,v6,teidri,assoni,spare,teid_range,ipv4_address,ipv6_address,network_instance)"
}
type record of UP_IP_Resource_Information UP_IP_Resource_Information_list;
// 8.2.83 UP_Inactivity_Timer
type record UP_Inactivity_Timer {
LIN2_BO_LAST elementIdentifier(117),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST UP_inactivity_timer
} with {
variant "PRESENCE (elementIdentifier = 117; )"
variant (lengthIndicator) "LENGTHTO(UP_inactivity_timer)"
}
// 8.2.84 Multiplier
type record Multiplier {
LIN2_BO_LAST elementIdentifier(119),
LIN2_BO_LAST lengthIndicator,
integer value_digits,
integer exponent
} with {
variant "PRESENCE (elementIdentifier = 119; )"
variant (value_digits) "FIELDLENGTH(64), BYTEORDER(last)"
variant (exponent) "FIELDLENGTH(32), BYTEORDER(last)"
variant (lengthIndicator) "LENGTHTO(value_digits,exponent)"
}
// 8.2.85 Aggregated_URR_ID_IE
type record Aggregated_URR_ID {
LIN2_BO_LAST elementIdentifier(120),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST id_value
} with {
variant "PRESENCE (elementIdentifier = 120; )"
variant (lengthIndicator) "LENGTHTO(id_value)"
}
// 8.2.86 Subsequent_Volume_Quota
type record Subsequent_Volume_Quota {
LIN2_BO_LAST elementIdentifier(121),
LIN2_BO_LAST lengthIndicator,
BIT1 tovol,
BIT1 ulvol,
BIT1 dlvol,
BIT5 spare,
LIN8_BO_LAST total_volume optional,
LIN8_BO_LAST uplink_volume optional,
LIN8_BO_LAST downlink_volume optional
} with {
variant "PRESENCE (elementIdentifier = 121; )"
variant (total_volume) "PRESENCE ( tovol= '1'B )"
variant (uplink_volume) "PRESENCE ( ulvol= '1'B )"
variant (downlink_volume) "PRESENCE ( dlvol= '1'B )"
variant (lengthIndicator) "LENGTHTO(tovol,ulvol,dlvol,spare,total_volume,uplink_volume,downlink_volume )"
}
// 8.2.87 Subsequent_Time_Quota
type record Subsequent_Time_Quota {
LIN2_BO_LAST elementIdentifier(122),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST time_qouta_value
} with {
variant "PRESENCE (elementIdentifier = 122; )"
variant (lengthIndicator) "LENGTHTO(time_qouta_value)"
}
// 8.2.88 RQI
type record RQI {
LIN2_BO_LAST elementIdentifier(123),
LIN2_BO_LAST lengthIndicator,
BIT1 rqi,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 123; )"
variant (lengthIndicator) "LENGTHTO(rqi,spare)"
}
// 8.2.89 QFI
type record QFI {
LIN2_BO_LAST elementIdentifier(124),
LIN2_BO_LAST lengthIndicator,
octetstring qfi_value
} with {
variant "PRESENCE (elementIdentifier = 124; )"
variant (lengthIndicator) "LENGTHTO(qfi_value)"
}
// 8.2.90 Query URR Reference
type record Query_URR_Reference {
LIN2_BO_LAST elementIdentifier(125),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST query_URR_reference_value
} with {
variant "PRESENCE (elementIdentifier = 125; )"
variant (lengthIndicator) "LENGTHTO(query_URR_reference_value)"
}
// 8.2.91 Additional Usage Reports Information
type record Additional_Usage_Reports_Information {
LIN2_BO_LAST elementIdentifier(126),
LIN2_BO_LAST lengthIndicator,
BIT1 auri,
integer no_aur_value
} with {
variant "PRESENCE (elementIdentifier = 126; )"
variant (auri,no_aur_value) "FIELDORDER(msb)"
variant (no_aur_value) "FIELDLENGTH(15), COMP(nosign), BYTEORDER(last)"
variant (lengthIndicator) "LENGTHTO(auri,no_aur_value)"
}
// 8.2.92 Traffic Endpoint ID
type record Traffic_Endpoint_ID {
LIN2_BO_LAST elementIdentifier(131),
LIN2_BO_LAST lengthIndicator,
INT1 endpoint_id
} with {
variant "PRESENCE (elementIdentifier = 131; )"
variant (lengthIndicator) "LENGTHTO(endpoint_id)"
}
// 8.2.93 MAC address
type record MAC_address {
LIN2_BO_LAST elementIdentifier(133),
LIN2_BO_LAST lengthIndicator,
BIT1 sour,
BIT1 dest,
BIT1 usou,
BIT1 udes,
BIT4 spare,
OCT6 source_mac_adress optional,
OCT6 dest_mac_adress optional,
OCT6 upper_source_mac_adress optional,
OCT6 upper_dest_mac_adress optional
} with {
variant "PRESENCE (elementIdentifier = 133; )"
variant (source_mac_adress) "PRESENCE(sour='1'B)"
variant (dest_mac_adress) "PRESENCE(dest='1'B)"
variant (upper_dest_mac_adress) "PRESENCE(udes='1'B)"
variant (upper_source_mac_adress) "PRESENCE(usou='1'B)"
variant (lengthIndicator) "LENGTHTO(sour,dest,usou,udes,spare,source_mac_adress,dest_mac_adress,upper_source_mac_adress,upper_dest_mac_adress)"
}
// 8.2.94 C-Tag
type record C_TAG {
LIN2_BO_LAST elementIdentifier(134),
LIN2_BO_LAST lengthIndicator,
BIT1 pcp,
BIT1 dei,
BIT1 vid,
BIT5 spare,
BIT3 pcp_value,
BIT1 dei_flag,
BIT12 c_vid_value
} with {
variant "PRESENCE (elementIdentifier = 134; )"
variant (lengthIndicator) "LENGTHTO(pcp,dei,vid,spare,pcp_value,dei_flag,c_vid_value)"
}
// 8.2.95 S-Tag
type record S_TAG {
LIN2_BO_LAST elementIdentifier(135),
LIN2_BO_LAST lengthIndicator,
BIT1 pcp,
BIT1 dei,
BIT1 vid,
BIT5 spare,
BIT3 pcp_value,
BIT1 dei_flag,
BIT12 c_vid_value
} with {
variant "PRESENCE (elementIdentifier = 135; )"
variant (lengthIndicator) "LENGTHTO(pcp,dei,vid,spare,pcp_value,dei_flag,c_vid_value)"
}
// 8.2.96 Ether Type
type record Ether_Type {
LIN2_BO_LAST elementIdentifier(136),
LIN2_BO_LAST lengthIndicator,
OCT2 ethertype
} with {
variant "PRESENCE (elementIdentifier = 136; )"
variant (lengthIndicator) "LENGTHTO(ethertype)"
}
// 8.2.97 Proxying
type record Proxying {
LIN2_BO_LAST elementIdentifier(137),
LIN2_BO_LAST lengthIndicator,
BIT1 arp,
BIT1 ins,
BIT6 spare
} with {
variant "PRESENCE (elementIdentifier = 137; )"
variant (lengthIndicator) "LENGTHTO(arp,ins,spare)"
}
// 8.2.98 Ether Filter ID
type record Ethernet_Filter_ID {
LIN2_BO_LAST elementIdentifier(138),
LIN2_BO_LAST lengthIndicator,
LIN4_BO_LAST ether_filter_ID_value
} with {
variant "PRESENCE (elementIdentifier = 138; )"
variant (lengthIndicator) "LENGTHTO(ether_filter_ID_value)"
}
// 8.2.99 Ethernet Filter Properties
type record Ethernet_Filter_Properties {
LIN2_BO_LAST elementIdentifier(139),
LIN2_BO_LAST lengthIndicator,
BIT1 bide,
BIT7 spare
} with {
variant "PRESENCE (elementIdentifier = 139; )"
variant (lengthIndicator) "LENGTHTO(bide,spare)"
}
// Message Header
// 7.2
type record PDU_PFCP {
BIT1 s_flag,
BIT1 mp,
BIT3 spare,
INT3b version,
INT1 message_type,
LIN2_BO_LAST lengthIndicator,
OCT8 seid optional,
LIN3_BO_LAST sequence_number,
BIT4 spare2,
BIT4 mp_or_spare, // valid only if mp == '1'B, should be '0000'B otherwise
PFCP_message_body message_body
} with {
variant (seid) "PRESENCE(s_flag = '1'B)"
variant (lengthIndicator) "LENGTHTO(seid,sequence_number,spare2,mp_or_spare,message_body)"
variant (message_body) " CROSSTAG(
heartbeat_request, message_type = 1;
heartbeat_response, message_type = 2;
pfcp_PFD_management_request, message_type = 3;
pfcp_PFD_management_response, message_type = 4;
pfcp_association_setup_request, message_type = 5;
pfcp_association_setup_response, message_type = 6;
pfcp_association_update_request, message_type = 7;
pfcp_association_update_response, message_type = 8;
pfcp_association_release_request, message_type = 9;
pfcp_association_release_response, message_type = 10;
pfcp_version_not_supported_response, message_type = 11;
pfcp_node_report_request, message_type = 12;
pfcp_node_report_response, message_type = 13;
pfcp_session_set_deletion_request, message_type = 14;
pfcp_session_set_deletion_response, message_type = 15;
pfcp_session_establishment_request, message_type = 50;
pfcp_session_establishment_response, message_type = 51;
pfcp_session_modification_request, message_type = 52;
pfcp_session_modification_response, message_type = 53;
pfcp_session_deletion_request, message_type = 54;
pfcp_session_deletion_response, message_type = 55;
pfcp_session_report_request, message_type = 56;
pfcp_session_report_response, message_type = 57;
)"
}
// 7.4 PFCP Node Related Messages
// 7.4.2.1 Heartbeat Request
type set Heartbeat_Request {
Recovery_Time_Stamp recovery_time_stamp
}
// 7.4.2.1 Heartbeat Response
type set Heartbeat_Response {
Recovery_Time_Stamp recovery_time_stamp
}
// 7.4.3.2 PFCP PFD Management Request
type set PFCP_PFD_Management_Request {
record of Application_IDs_PFDs application_IDs_PFDs_list optional
} with {
variant (application_IDs_PFDs_list) "REPEATABLE(yes)"
}
// 7.4.3.1-2 Application ID's PFDs
type record Application_IDs_PFDs {
LIN2_BO_LAST elementIdentifier(58),
LIN2_BO_LAST lengthIndicator,
set {
Application_ID application_id,
record of PFD PFDs optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 58; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.PFDs) "REPEATABLE(yes)"
}
// 7.4.3.1-3
type record PFD {
LIN2_BO_LAST elementIdentifier(59),
LIN2_BO_LAST lengthIndicator,
set {
record of PFD_Contents PFD_Contents_list
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 59; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.PFD_Contents_list) "REPEATABLE(yes)"
}
// 7.4.3.2 PFCP PFD Management Response
type set PFCP_PFD_Management_Response {
Cause cause,
Offending_IE offending_ie optional
}
// 7.4.4.1 PFCP Association Setup Request
type set PFCP_Association_Setup_Request{
Node_ID node_id,
Recovery_Time_Stamp time_stamp,
UP_Function_Features up_function_features optional,
CP_Function_Features cp_function_features optional,
UP_IP_Resource_Information_list UP_IP_resource_list optional
} with {
variant (UP_IP_resource_list) "REPEATABLE(yes)"
}
// 7.4.4.2 PFCP Association Setup Response
type set PFCP_Association_Setup_Response{
Node_ID node_id,
Cause cause,
Recovery_Time_Stamp time_stamp,
UP_Function_Features up_function_features optional,
CP_Function_Features cp_function_features optional,
UP_IP_Resource_Information_list UP_IP_resource_list optional
} with {
variant (UP_IP_resource_list) "REPEATABLE(yes)"
}
// 7.4.4.3 PFCP Association Update Request
type set PFCP_Association_Update_Request{
Node_ID node_id,
UP_Function_Features up_function_features optional,
CP_Function_Features cp_function_features optional,
PFCP_Association_Release_Request_IE sarr optional,
Graceful_Release_Period graceful_release_period optional,
UP_IP_Resource_Information_list UP_IP_resource_list optional
} with {
variant (UP_IP_resource_list) "REPEATABLE(yes)"
}
// 7.4.4.4 PFCP Association Setup Response
type set PFCP_Association_Update_Response{
Node_ID node_id,
Cause cause,
UP_Function_Features up_function_features optional,
CP_Function_Features cp_function_features optional
}
// 7.4.4.5 PFCP Association Release Request
type set PFCP_Association_Release_Request{
Node_ID node_id
}
// 7.4.4.6 PFCP Association Release Response
type set PFCP_Association_Release_Response{
Node_ID node_id,
Cause cause
}
// 7.4.4.7 PFCP Version Not Supported Response
type set PFCP_Version_Not_Supported_Response{
}
// 7.4.5.1 PFCP Node Report Request
type set PFCP_Node_Report_Request{
Node_ID node_id,
Node_Report_Type node_report_type,
User_Plane_Path_Failure_Report failure_report optional
}
// User Plane Path Failure IE within PFCP Node Report Request
type record User_Plane_Path_Failure_Report {
LIN2_BO_LAST elementIdentifier(102),
LIN2_BO_LAST lengthIndicator,
set {
record of Remote_GTP_U_Peer remote_GTP_U_peer_list
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 102; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.remote_GTP_U_peer_list) "REPEATABLE(yes)"
}
// 7.4.5.2 PFCP Node Report Response
type set PFCP_Node_Report_Response{
Node_ID node_id,
Cause cause,
Offending_IE offending_IE optional
}
// 7.4.6.1 PFCP Session Set Deletion Request
type set PFCP_Session_Set_Deletion_Request{
Node_ID node_id,
FQ_CSID_list node_list optional
} with {
variant (node_list) "REPEATABLE(yes)"
}
// 7.4.6.2 PFCP Session Set Deletion Response
type set PFCP_Session_Set_Deletion_Response{
Node_ID node_id,
Cause cause,
Offending_IE offending_IE optional
}
// 7.5.2 PFCP Session Establishment Request
type set PFCP_Session_Establishment_Request{
Node_ID node_id,
F_SEID CP_F_SEID,
Create_PDR_list create_PDR_list,
Create_FAR_list create_FAR_list,
Create_URR_list create_URR_list optional,
Create_QER_list create_QER_list optional,
Create_BAR create_BAR optional,
record of Create_Traffic_Endpoint create_traffic_endpoint_list optional,
PDN_Type pdn_type optional,
FQ_CSID_list node_list optional,
UP_Inactivity_Timer up_inactivity_timer optional
} with {
variant (create_PDR_list) "REPEATABLE(yes)"
variant (create_FAR_list) "REPEATABLE(yes)"
variant (create_URR_list) "REPEATABLE(yes)"
variant (create_QER_list) "REPEATABLE(yes)"
variant (node_list) "REPEATABLE(yes)"
}
type record Create_Traffic_Endpoint {
LIN2_BO_LAST elementIdentifier(127),
LIN2_BO_LAST lengthIndicator,
set {
Traffic_Endpoint_ID traffic_endpint_id,
F_TEID local_F_TEID optional,
Network_Instance network_instance optional,
UE_IP_Address ue_ip_address optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 127; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Create_PDR{
LIN2_BO_LAST elementIdentifier(1),
LIN2_BO_LAST lengthIndicator,
set {
PDR_ID pdr_id,
Precedence precedence optional,
PDI_IE pdi,
Outer_Header_Removal outer_header_removal optional,
record of FAR_ID FAR_ID_list optional,
URR_ID_list uRR_ID_list optional,
QER_ID_list qER_ID_list optional,
Activate_Predefined_Rules activate_predefined_rules optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 1; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.FAR_ID_list) "REPEATABLE(yes)"
variant (grouped_ie.uRR_ID_list) "REPEATABLE(yes)"
variant (grouped_ie.qER_ID_list) "REPEATABLE(yes)"
}
type record of Create_PDR Create_PDR_list;
type record PDI_IE {
LIN2_BO_LAST elementIdentifier(2),
LIN2_BO_LAST lengthIndicator,
set {
Source_Interface source_interface,
F_TEID local_F_TEID optional,
PDN_Instance pdn_instance optional,
UE_IP_Address ue_ip_address optional,
Traffic_Endpoint_ID traffic_endpoint_id optional,
SDF_Filter_list sdf_filter_list optional,
Application_ID application_id optional,
record of Ethernet_Packet_Filter ethernet_packet_filter_list optional,
record of QFI qfi_list optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 2; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.sdf_filter_list) "REPEATABLE(yes)"
variant (grouped_ie.ethernet_packet_filter_list) "REPEATABLE(yes)"
variant (grouped_ie.qfi_list) "REPEATABLE(yes)"
}
type record Ethernet_Packet_Filter {
LIN2_BO_LAST elementIdentifier(132),
LIN2_BO_LAST lengthIndicator,
set {
Ethernet_Filter_ID ethernet_filter_id optional,
Ethernet_Filter_Properties ethernet_filter_properties optional,
MAC_address mac_address optional,
Ether_Type ethertype optional,
C_TAG c_tag optional,
S_TAG s_tag optional,
SDF_Filter_list sdf_filter_list optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 132; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.sdf_filter_list) "REPEATABLE(yes)"
}
type record of Create_FAR Create_FAR_list;
type record Create_FAR{
LIN2_BO_LAST elementIdentifier(3),
LIN2_BO_LAST lengthIndicator,
set {
FAR_ID far_id,
Apply_Action apply_action,
Forwarding_Parameters forwarding_parameters optional,
Duplicating_Parameters duplicating_parameters optional,
BAR_ID bar_id optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 3; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Forwarding_Parameters {
LIN2_BO_LAST elementIdentifier(4),
LIN2_BO_LAST lengthIndicator,
set {
Destination_Interface destination_interface,
PDN_Instance pdn_Instance optional,
Redirect_Information redirect_information optional,
Outer_Header_Creation outer_header_creation optional,
DL_Transport_Level_Marking transport_level_marking optional,
Forwarding_Policy forwarding_policy optional,
Header_Enrichment header_enrichment optional,
Traffic_Endpoint_ID traffic_endpoint_ID optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 4; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Duplicating_Parameters {
LIN2_BO_LAST elementIdentifier(5),
LIN2_BO_LAST lengthIndicator,
set {
Destination_Interface destination_interface,
Outer_Header_Creation outer_header_creation optional,
DL_Transport_Level_Marking transport_level_marking optional,
Forwarding_Policy forwarding_policy optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 5; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Create_URR{
LIN2_BO_LAST elementIdentifier(6),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id,
Measurement_Method measurement_method,
Reporting_Triggers reporting_triggers,
Measurement_Period measurement_period optional,
Volume_Threshold volume_threshold optional,
Volume_Quota volume_quota optional,
Time_Threshold time_threshold optional,
Time_Quota time_quota optional,
Quota_Holding_Time quota_holding_time optional,
Dropped_DL_Traffic_Threshold dropped_dl_traffic_threshold optional,
Monitoring_Time monitoring_time optional,
Subsequent_Volume_Threshold subsequent_volume_threshold optional,
Subsequent_Time_Threshold subsequent_time_threshold optional,
Subsequent_Volume_Quota subsequent_volume_quota optional,
Subsequent_Time_Quota subsequent_time_quota optional,
Inactivity_Detection_Time inactivity_detection_time optional,
Linked_URR_ID linked_urr_id optional,
Measurement_Information measurement_information optional,
Time_Quota_Mechanism time_qouta_mechanism optional,
Aggregated_URR_list aggregated_urrs optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 6; )"
variant (grouped_ie.aggregated_urrs) "REPEATABLE(yes)"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record of Create_URR Create_URR_list;
type record Aggregated_URR{
LIN2_BO_LAST elementIdentifier(118),
LIN2_BO_LAST lengthIndicator,
set {
Aggregated_URR_ID aggregated_urr_id,
Multiplier multiplier
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 118; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record of Aggregated_URR Aggregated_URR_list;
type record Create_QER{
LIN2_BO_LAST elementIdentifier(7),
LIN2_BO_LAST lengthIndicator,
set {
QER_ID qer_id,
QER_Correlation_ID qer_correlation_id optional,
Gate_Status gate_status,
MBR mbr optional,
GBR gbr optional,
Packet_Rate packet_rate optional,
DL_Transport_Level_Marking dl_transport_level_marking optional,
QFI qfi optional,
RQI rqi optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 7; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record of Create_QER Create_QER_list;
type record Create_BAR{
LIN2_BO_LAST elementIdentifier(85),
LIN2_BO_LAST lengthIndicator,
set {
BAR_ID bar_id,
Downlink_Data_Notification_Delay downlink_data_notification_delay optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 85; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.3 PFCP Session Establishment Response
type set PFCP_Session_Establishment_Response {
Node_ID node_id,
Cause cause,
Offending_IE offending_ie optional,
F_SEID UP_F_SEID,
record of Created_PDR created_PDR_list,
Load_Control_Information load_control_information optional,
Overload_Control_Information overload_control_information optional,
FQ_CSID_list node_list optional,
Failed_Rule_ID failed_rule_id optional,
record of Created_Traffic_Endpoint created_traffic_endpoint_list optional
} with {
variant (created_PDR_list) "REPEATABLE(yes)"
variant (node_list) "REPEATABLE(yes)"
variant (created_traffic_endpoint_list) "REPEATABLE(yes)"
}
type record Created_PDR{
LIN2_BO_LAST elementIdentifier(8),
LIN2_BO_LAST lengthIndicator,
set {
PDR_ID pdr_id,
F_TEID local_F_TEID optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 8; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Load_Control_Information{
LIN2_BO_LAST elementIdentifier(50),
LIN2_BO_LAST lengthIndicator,
set {
Sequence_Number sequence_number,
Metric local_metric
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 50; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Overload_Control_Information{
LIN2_BO_LAST elementIdentifier(54),
LIN2_BO_LAST lengthIndicator,
set {
Sequence_Number sequence_number,
Metric overload_reduction_metric,
Timer_IE period_of_validity,
OCI_Flags oci_flags
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 54; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Created_Traffic_Endpoint {
LIN2_BO_LAST elementIdentifier(128),
LIN2_BO_LAST lengthIndicator,
set {
Traffic_Endpoint_ID traffic_endpint_id,
F_TEID local_F_TEID optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 128; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.4 PFCP Session Modification Request
type set PFCP_Session_Modification_Request {
F_SEID f_seid optional,
record of Remove_PDR remove_PDR_list optional,
record of Remove_FAR remove_FAR_list optional,
record of Remove_URR remove_URR_list optional,
record of Remove_QER remove_QER_list optional,
Remove_BAR remove_BAR optional,
Remove_Traffic_Endpoint remove_traffic_endpoint optional,
Create_PDR_list create_PDR_list optional,
Create_FAR_list create_FAR_list optional,
Create_URR_list create_URR_list optional,
Create_QER_list create_QER_list optional,
Create_BAR create_BAR optional,
Create_Traffic_Endpoint create_traffic_endpoint optional,
record of Update_PDR update_PDR_list optional,
record of Update_FAR update_FAR_list optional,
record of Update_URR update_URR_list optional,
record of Update_QER update_QER_list optional,
Update_BAR update_BAR optional,
Update_Traffic_Endpoint update_traffic_endpoint optional,
PFCPSMReq_Flags pfcpSMReq_flags optional,
record of Query_URR query_URR_list optional,
FQ_CSID_list node_list optional,
UP_Inactivity_Timer up_inactivity_timer optional,
Query_URR_Reference querry_urr_reference optional
} with {
variant (remove_PDR_list) "REPEATABLE(yes)"
variant (remove_FAR_list) "REPEATABLE(yes)"
variant (remove_URR_list) "REPEATABLE(yes)"
variant (remove_QER_list) "REPEATABLE(yes)"
variant (update_PDR_list) "REPEATABLE(yes)"
variant (update_FAR_list) "REPEATABLE(yes)"
variant (update_URR_list) "REPEATABLE(yes)"
variant (update_QER_list) "REPEATABLE(yes)"
variant (query_URR_list) "REPEATABLE(yes)"
variant (create_PDR_list) "REPEATABLE(yes)"
variant (create_FAR_list) "REPEATABLE(yes)"
variant (create_URR_list) "REPEATABLE(yes)"
variant (create_QER_list) "REPEATABLE(yes)"
variant (node_list) "REPEATABLE(yes)"
}
type record Update_PDR{
LIN2_BO_LAST elementIdentifier(9),
LIN2_BO_LAST lengthIndicator,
set {
PDR_ID pdr_id,
Outer_Header_Removal outer_header_removal optional,
Precedence precedence optional,
PDI_IE pdi optional,
FAR_ID far_id optional,
URR_ID_list uRR_ID_list optional,
QER_ID_list qER_ID_list optional,
Activate_Predefined_Rules activate_predefined_rules optional,
Deactivate_Predefined_Rules deactivate_predefined_rules optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 9; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
variant (grouped_ie.uRR_ID_list) "REPEATABLE(yes)"
variant (grouped_ie.qER_ID_list) "REPEATABLE(yes)"
}
type record Update_FAR{
LIN2_BO_LAST elementIdentifier(10),
LIN2_BO_LAST lengthIndicator,
set {
FAR_ID far_id,
Apply_Action apply_action optional,
Update_Forwarding_Parameters forwarding_parameters optional,
Update_Duplicating_Parameters duplicating_parameters optional,
BAR_ID bar_id optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 10; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_Forwarding_Parameters {
LIN2_BO_LAST elementIdentifier(11),
LIN2_BO_LAST lengthIndicator,
set {
Destination_Interface destination_interface optional,
PDN_Instance pdn_Instance optional,
Redirect_Information redirect_information optional,
Outer_Header_Creation outer_header_creation optional,
DL_Transport_Level_Marking transport_level_marking optional,
Forwarding_Policy forwarding_policy optional,
Header_Enrichment header_enrichment optional,
PFCPSMReq_Flags pfcpSMReq_flags optional,
Traffic_Endpoint_ID traffic_endpoint_id optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 11; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_Duplicating_Parameters {
LIN2_BO_LAST elementIdentifier(105),
LIN2_BO_LAST lengthIndicator,
set {
Destination_Interface destination_interface optional,
Outer_Header_Creation outer_header_creation optional,
DL_Transport_Level_Marking transport_level_marking optional,
Forwarding_Policy forwarding_policy optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 105; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_URR{
LIN2_BO_LAST elementIdentifier(13),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id,
Measurement_Method measurement_method optional,
Reporting_Triggers reporting_triggers optional,
Measurement_Period measurement_period optional,
Volume_Threshold volume_threshold optional,
Volume_Quota volume_quota optional,
Time_Threshold time_threshold optional,
Time_Quota time_quota optional,
Quota_Holding_Time quota_holding_time optional,
Dropped_DL_Traffic_Threshold dropped_dl_traffic_threshold optional,
Monitoring_Time monitoring_time optional,
Subsequent_Volume_Threshold subsequent_volume_threshold optional,
Subsequent_Time_Threshold subsequent_time_threshold optional,
Subsequent_Volume_Quota subsequent_volume_quota optional,
Subsequent_Time_Quota subsequent_time_quota optional,
Inactivity_Detection_Time inactivity_detection_time optional,
Linked_URR_ID linked_urr_id optional,
Measurement_Information measurement_information optional,
Time_Quota_Mechanism time_qouta_mechanism optional,
Aggregated_URR_list aggregated_urrs optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 13; )"
variant (grouped_ie.aggregated_urrs) "REPEATABLE(yes)"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_QER{
LIN2_BO_LAST elementIdentifier(14),
LIN2_BO_LAST lengthIndicator,
set {
QER_ID qer_id,
QER_Correlation_ID qer_correlation_id optional,
Gate_Status gate_status optional,
MBR mbr optional,
GBR gbr optional,
Packet_Rate packet_rate optional,
DL_Flow_Level_Marking dl_flow_level_marking optional,
QFI qfi optional,
RQI rqi optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 14; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_BAR{
LIN2_BO_LAST elementIdentifier(86),
LIN2_BO_LAST lengthIndicator,
set {
BAR_ID bar_id,
Downlink_Data_Notification_Delay downlink_data_notification_delay optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 86; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_PDR{
LIN2_BO_LAST elementIdentifier(15),
LIN2_BO_LAST lengthIndicator,
set {
PDR_ID pdr_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 15; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_FAR{
LIN2_BO_LAST elementIdentifier(16),
LIN2_BO_LAST lengthIndicator,
set {
FAR_ID far_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 16; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_URR{
LIN2_BO_LAST elementIdentifier(17),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 17; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_QER{
LIN2_BO_LAST elementIdentifier(18),
LIN2_BO_LAST lengthIndicator,
set {
QER_ID qer_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 18; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Query_URR{
LIN2_BO_LAST elementIdentifier(77),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 77; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_BAR{
LIN2_BO_LAST elementIdentifier(87),
LIN2_BO_LAST lengthIndicator,
set {
BAR_ID bar_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 87; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Update_Traffic_Endpoint {
LIN2_BO_LAST elementIdentifier(129),
LIN2_BO_LAST lengthIndicator,
set {
Traffic_Endpoint_ID traffic_endpint_id,
F_TEID local_F_TEID optional,
Network_Instance network_instance optional,
UE_IP_Address ue_ip_address optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 129; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Remove_Traffic_Endpoint {
LIN2_BO_LAST elementIdentifier(130),
LIN2_BO_LAST lengthIndicator,
set {
Traffic_Endpoint_ID traffic_endpint_id
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 130; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.5 PFCP Session Modification Response
type set PFCP_Session_Modification_Response {
Cause cause,
Offending_IE offending_IE optional,
Created_PDR created_PDR optional,
Load_Control_Information load_control_information optional,
Overload_Control_Information overload_control_information optional,
record of Usage_Report_Modification_Response usage_report optional,
Failed_Rule_ID failed_rule_id optional,
Additional_Usage_Reports_Information additional_usage_reports_information optional,
Created_Traffic_Endpoint created_updated_traffic_endpoint optional
} with {
variant (usage_report) "REPEATABLE(yes)"
}
type record Usage_Report_Modification_Response {
LIN2_BO_LAST elementIdentifier(78),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id,
UR_SEQN ur_seqn,
Usage_Report_Trigger usage_report_trigger,
Start_Time start_time optional,
End_Time end_time optional,
Volume_Measurement volume_measurement optional,
Duration_Measurement duration_measurement optional,
Time_of_First_Packet time_of_first_packet optional,
Time_of_Last_Packet time_of_last_packet optional,
Usage_Information usage_information optional,
Query_URR_Reference query_urr_reference optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 78; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.6 PFCP Session Deletion Request
type set PFCP_Session_Deletion_Request{
}
// 7.5.7 PFCP Session Deletion Response
type set PFCP_Session_Deletion_Response {
Cause cause,
Offending_IE offending_IE optional,
Load_Control_Information load_control_information optional,
Overload_Control_Information overload_control_information optional,
record of Usage_Report_Deletion_Response usage_report optional
} with {
variant (usage_report) "REPEATABLE(yes)"
}
type record Usage_Report_Deletion_Response {
LIN2_BO_LAST elementIdentifier(79),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id,
UR_SEQN ur_seqn,
Usage_Report_Trigger usage_report_trigger,
Start_Time start_time optional,
End_Time end_time optional,
Volume_Measurement volume_measurement optional,
Duration_Measurement duration_measurement optional,
Time_of_First_Packet time_of_first_packet optional,
Time_of_Last_Packet time_of_last_packet optional,
Usage_Information usage_information optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 79; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.8 PFCP Session Report Request
type set PFCP_Session_Report_Request {
Report_Type report_type,
Downlink_Data_Report downlink_data_report optional,
record of Usage_Report_Report_Request usage_report optional,
Error_Indication_Report error_indication_report optional,
Load_Control_Information load_control_information optional,
Overload_Control_Information overload_control_information optional,
Additional_Usage_Reports_Information additional_usage_reports_information optional
} with {
variant (usage_report) "REPEATABLE(yes)"
}
type record Downlink_Data_Report {
LIN2_BO_LAST elementIdentifier(83),
LIN2_BO_LAST lengthIndicator,
set {
record of PDR_ID pdr_id_list,
record of Downlink_Data_Service_Information dl_service_information_list optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 83; )"
variant (grouped_ie.pdr_id_list) "REPEATABLE(yes)"
variant (grouped_ie.dl_service_information_list) "REPEATABLE(yes)"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Usage_Report_Report_Request {
LIN2_BO_LAST elementIdentifier(80),
LIN2_BO_LAST lengthIndicator,
set {
URR_ID urr_id,
UR_SEQN ur_seqn,
Usage_Report_Trigger usage_report_trigger,
Start_Time start_time optional,
End_Time end_time optional,
Volume_Measurement volume_measurement optional,
Duration_Measurement duration_measurement optional,
Application_Detection_Information application_detection_information optional,
UE_IP_Address ue_ip_address optional,
PDN_Instance pdn_instance optional,
Time_of_First_Packet time_of_first_packet optional,
Time_of_Last_Packet time_of_last_packet optional,
Usage_Information usage_information optional,
Query_URR_Reference query_urr_reference optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 80; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Application_Detection_Information {
LIN2_BO_LAST elementIdentifier(68),
LIN2_BO_LAST lengthIndicator,
set {
Application_ID application_id,
Application_Instance_ID application_instance_id optional,
Flow_Information flow_information optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 68; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type record Error_Indication_Report {
LIN2_BO_LAST elementIdentifier(99),
LIN2_BO_LAST lengthIndicator,
set {
record of F_TEID f_teid_list
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 99; )"
variant (grouped_ie.f_teid_list) "REPEATABLE(yes)"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
// 7.5.9 PFCP Session Report Response
type set PFCP_Session_Report_Response {
Cause cause,
Offending_IE offending_IE optional,
Update_BAR_Report_Response update_BAR optional,
PFCPSMRsp_Flags pfcpSMRsp_flags optional
}
type record Update_BAR_Report_Response{
LIN2_BO_LAST elementIdentifier(12),
LIN2_BO_LAST lengthIndicator,
set {
BAR_ID bar_id,
Downlink_Data_Notification_Delay downlink_data_notification_delay optional,
DL_Buffering_Duration dl_buffering_duration optional,
DL_Buffering_Suggested_Packet_Count dl_buffering_suggested_packet_count optional
} grouped_ie
} with {
variant "PRESENCE (elementIdentifier = 12; )"
variant (lengthIndicator) "LENGTHTO(grouped_ie)"
}
type union PFCP_message_body{
Heartbeat_Request heartbeat_request,
Heartbeat_Response heartbeat_response,
PFCP_PFD_Management_Request pfcp_PFD_management_request,
PFCP_PFD_Management_Response pfcp_PFD_management_response,
PFCP_Association_Setup_Request pfcp_association_setup_request,
PFCP_Association_Setup_Response pfcp_association_setup_response,
PFCP_Association_Update_Request pfcp_association_update_request,
PFCP_Association_Update_Response pfcp_association_update_response,
PFCP_Association_Release_Request pfcp_association_release_request,
PFCP_Association_Release_Response pfcp_association_release_response,
PFCP_Version_Not_Supported_Response pfcp_version_not_supported_response,
PFCP_Node_Report_Request pfcp_node_report_request,
PFCP_Node_Report_Response pfcp_node_report_response,
PFCP_Session_Set_Deletion_Request pfcp_session_set_deletion_request,
PFCP_Session_Set_Deletion_Response pfcp_session_set_deletion_response,
PFCP_Session_Establishment_Request pfcp_session_establishment_request,
PFCP_Session_Establishment_Response pfcp_session_establishment_response,
PFCP_Session_Modification_Request pfcp_session_modification_request,
PFCP_Session_Modification_Response pfcp_session_modification_response,
PFCP_Session_Deletion_Request pfcp_session_deletion_request,
PFCP_Session_Deletion_Response pfcp_session_deletion_response,
PFCP_Session_Report_Request pfcp_session_report_request,
PFCP_Session_Report_Response pfcp_session_report_response,
octetstring dummy
}
} with { encode "RAW"}