open5gs/lib/pfcp/support/cache/tlv-group-list.py

245 lines
56 KiB
Python
Raw Normal View History

2019-12-01 12:40:52 +00:00
ies = []
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the Application ID for which PFDs shall be provisioned in the UP function."})
ies.append({ "ie_type" : "PFD context", "ie_value" : "PFD", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the PFD needs to be provisioned in the UP function. When present, it shall describe the PFD to be provisioned in the UP function.Several IEs with the same IE type may be present to provision multiple PFDs for this Application ID. When this IE is absent, the UP function shall delete all the PFDs received and stored earlier in the UP function for this Application ID."})
group_list["Application ID's PFDs"] = { "type" : "58", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PFD contents", "ie_value" : "PFD Contents", "presence" : "M", "instance" : "0", "comment" : "This IE shall describe the PFD to be provisioned in the UP function. Several IEs with the same IE type may be present to provision multiple contents for this PFD."})
group_list["PFD context"] = { "type" : "59", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Packet Detection Rule ID", "ie_value" : "PDR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "Precedence", "ie_value" : "Precedence", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate the PDRs precedence to be applied by the UP function among all PDRs of the PFCP session, when looking for a PDR matching an incoming packet."})
ies.append({ "ie_type" : "PDI", "ie_value" : "PDI", "presence" : "M", "instance" : "0", "comment" : "This IE shall contain the PDI against which incoming packets will be matched. See Table 7.5.2.2-2."})
ies.append({ "ie_type" : "Outer Header Removal", "ie_value" : "Outer Header Removal", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to remove one or more outer header(s) from the packets matching this PDR."})
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Activate Predefined Rules IE is not included or if it is included but it does not result in activating a predefined FAR.When present this IE shall contain the FAR ID to be associated to the PDR."})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a measurement action shall be applied to packets matching this PDR.When present, this IE shall contain the URR IDs to be associated to the PDR. Several IEs within the same IE type may be present to represent a list of URRs to be associated to the PDR."})
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a QoS enforcement action shall be applied to packets matching this PDR.When present, this IE shall contain the QER IDs to be associated to the PDR. Several IEs within the same IE type may be present to represent a list of QERs to be associated to the PDR."})
ies.append({ "ie_type" : "Activate Predefined Rules", "ie_value" : "Activate Predefined Rules", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if Predefined Rule(s) shall be activated for this PDR. When present this IE shall contain one Predefined Rules name.Several IEs with the same IE type may be present to represent multiple Activate Predefined Rules names."})
group_list["Create PDR"] = { "type" : "1", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Source Interface", "ie_value" : "Source Interface", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the source interface of the incoming packet."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "O", "instance" : "0", "comment" : "If present, this IE shall identify the local F-TEID to match for an incoming packet. The CP function shall set the CHOOSE (CH) bit to 1 if the UP function supports the allocation of F-TEID and the CP function requests the UP function to assign a local F-TEID to the PDR."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "instance" : "0", "comment" : "If present, this IE shall identify the Network instance to match for the incoming packet. See NOTE 1, NOTE2."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "O", "instance" : "0", "comment" : "If present, this IE shall identify the source or destination IP address to match for the incoming packet. "})
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "SDF Filter", "presence" : "O", "instance" : "0", "comment" : "If present, this IE shall identify the SDF filter to match for the incoming packet. "})
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "O", "instance" : "0", "comment" : "If present, this IE shall identify the Application ID to match for the incoming packet. "})
group_list["PDI"] = { "type" : "2", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the FAR among all the FARs configured for that PFCP session."})
ies.append({ "ie_type" : "Apply Action", "ie_value" : "Apply Action", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate the action to apply to the packets, See subclauses 5.2.1 and 5.2.3."})
ies.append({ "ie_type" : "Forwarding Parameters", "ie_value" : "Forwarding Parameters", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present when the Apply-Action requests the packets to be forwarded. It may be present otherwise. When present, this IE shall contain the forwarding instructions to be applied by the UP function when the Apply-Action requests the packets to be forwarded. See table 7.5.2.3-2."})
ies.append({ "ie_type" : "Duplicating Parameters", "ie_value" : "Duplicating Parameters", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present when the Apply-Action requests the packets to be duplicated. It may be present otherwise. When present, this IE shall contain the forwarding instructions to be applied by the UP function for the traffic to be duplicated, when the Apply-Action requests the packets to be duplicated. See table 7.5.2.3-3."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "O", "instance" : "0", "comment" : "When present, this IE shall contain the BAR ID of the BAR defining the buffering instructions to be applied by the UP function when the Apply Action requests the packets to be buffered. See table 7.5.2.6-1."})
group_list["Create FAR"] = { "type" : "3", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "instance" : "0", "comment" : "When present, this IE shall identify the Network instance towards which to send the outgoing packet. See NOTE 1."})
ies.append({ "ie_type" : "Redirect Information", "ie_value" : "Redirect Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to enforce traffic redirection towards a redirect destination provided by the CP function. "})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to add one or more outer header(s) to the outgoing packet. If present, it shall contain the F-TEID of the remote GTP-U peer when adding a GTP-U/UDP/IP header, or the Destination IP address and Port Number when adding a UDP/IP header."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to mark the IP header with the DSCP marking as defined by IETFRFC2474[22]. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the QCI, and optionally the ARP priority level, of the associated EPS bearer, as described in sub-clause 4.7.3 of 3GPPTS23.214[2]."})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a specific forwarding policy is required to be applied to the packets. It shall be present if the Destination Interface IE is set to SGi-LAN. It may be present if the Destination Interface is set to Core. When present, it shall contain an Identifier of the Forwarding Policy locally configured in the UP function."})
ies.append({ "ie_type" : "Header Enrichment", "ie_value" : "Header Enrichment", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if the UP function indicated support of Header Enrichment of UL traffic. When present, it shall contain information for header enrichment."})
group_list["Forwarding Parameters"] = { "type" : "4", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to add one or more outer header(s) to the outgoing packet. If present, it shall contain the F-TEID of the remote GTP-U peer."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to mark the IP header with the DSCP marking as defined by IETFRFC2474[22]. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field. "})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a specific forwarding policy is required to be applied to the packets. When present, it shall contain an Identifier of the Forwarding Policy locally configured in the UP function."})
group_list["Duplicating Parameters"] = { "type" : "5", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the URR among all the URRs configured for this PFCP session."})
ies.append({ "ie_type" : "Measurement Method", "ie_value" : "Measurement Method", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate the method for measuring the network resources usage, i.e. whether the data volume, duration (i.e. time), combined volume/duration, or event shall be measured."})
ies.append({ "ie_type" : "Reporting Triggers", "ie_value" : "Reporting Triggers", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate the trigger(s) for reporting network resources usage to the CP function, e.g. periodic reporting or reporting upon reaching a threshold, or envelope closure."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if periodic reporting is required. When present, it shall indicate the period for generating and reporting usage reports. "})
ies.append({ "ie_type" : "Volume Threshold", "ie_value" : "Volume Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if volume-based measurement is used and reporting is required upon reaching a volume threshold. When present, it shall indicate the traffic volume value after which the UP function shall report network resources usage to the CP function for this URR."})
ies.append({ "ie_type" : "Volume Quota", "ie_value" : "Volume Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if volume-based measurement is used and the CP function needs to provision a Volume Quota in the UP function (see subclause 5.2.2.2) When present, it shall indicate the Volume Quota value."})
ies.append({ "ie_type" : "Time Threshold", "ie_value" : "Time Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if time-based measurement is used and reporting is required upon reaching a time threshold. When present, it shall indicate the time usage after which the UP function shall report network resources usage to the CP function for this URR."})
ies.append({ "ie_type" : "Time Quota", "ie_value" : "Time Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if time-based measurement is used and the CP function needs to provision a Time Quota in the UP function (see subclause 5.2.2.2) When present, it shall indicate the Time Quota value"})
ies.append({ "ie_type" : "Quota Holding Time", "ie_value" : "Quota Holding Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, for a time, volume or event-based measurement, if reporting is required and packets are no longer permitted to pass on when no packets are received during a given inactivity period. When present, it shall contain the duration of the inactivity period."})
ies.append({ "ie_type" : "Dropped DL Traffic Threshold", "ie_value" : "Dropped DL Traffic Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if reporting is required when the DL traffic being dropped exceeds a threshold. When present, it shall contain the threshold of the DL traffic being dropped."})
ies.append({ "ie_type" : "Monitoring Time", "ie_value" : "Monitoring Time", "presence" : "O", "instance" : "0", "comment" : "When present, this IE shall contain the time at which the UP function shall re-apply the volume or time threshold. "})
ies.append({ "ie_type" : "Subsequent Volume Threshold", "ie_value" : "Subsequent Volume Threshold", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if the Monitoring Time IE is present and volume-based measurement is used. When present, it shall indicate the traffic volume value after which the UP function shall report network resources usage to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Time Threshold", "ie_value" : "Subsequent Time Threshold", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if the Monitoring Time IE is present and time-based measurement is used. When present, it shall indicate the time usage after which the UP function shall report network resources usage to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Volume Quota", "ie_value" : "Subsequent Volume Quota", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if Monitoring Time IE is present and volume-based measurement is used (see subclause 5.2.2.2). When present, it shall indicate the Volume Quota value which the UP function shall use for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Time Quota", "ie_value" : "Subsequent Time Quota", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if Monitoring Time IE is present and time-based measurement is used (see subclause 5.2.2.2) When present, it shall indicate the Time Quota value which the UP function shall use for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Inactivity Detection Time", "ie_value" : "Inactivity Detection Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if time-based measurement is used and the time measurement need to be suspended when no packets are received during a given inactivity period. When present, it shall contain the duration of the inactivity period."})
ies.append({ "ie_type" : "Linked URR ID", "ie_value" : "Linked URR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if linked usage reporting is required. When present, this IE shall contain the linked URR ID which is related with this URR (see subclause 5.2.2.4). "})
ies.append({ "ie_type" : "Measurement Information", "ie_value" : "Measurement Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if any of the following flag is set to 1.Applicable flags are:- Measurement Before QoS Enforcement Flag: this flag shall be set to 1 if the traffic usage before any QoS Enforcement is requested to be measured. - Inactive Measurement Flag: this flag shall be set to 1 if the measurement shall be paused (inactive). The measurement shall be performed (active) if the bit is set to 0 or if the Measurement Information IE is not present in the Create URR IE.- Reduced Application Detection Information Flag: this flag may be set to 1, if the Reporting Triggers request to report the start or stop of application, to request the UP function to only report the Application ID in the Application Detection Information, e.g. for envelope reporting."})
ies.append({ "ie_type" : "Time Quota Mechanism", "ie_value" : "Time Quota Mechanism", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if time-based measurement based on CTP or DTP is used."})
ies.append({ "ie_type" : "Aggregated URRs", "ie_value" : "Aggregated URRs", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if the URR is used to support a Credit Pool.Several IEs with the same IE type may be present to provide multiple aggregated URRs."})
group_list["Create URR"] = { "type" : "6", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the QER among all the QER configured for that PFCP session"})
ies.append({ "ie_type" : "QER Correlation ID", "ie_value" : "QER Correlation ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to correlate the QERs of several PFCP sessions, for APN-AMBR enforcement of multiple UEs PDN connections to the same APN."})
ies.append({ "ie_type" : "Gate Status", "ie_value" : "Gate Status", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate whether the packets are allowed to be forwarded (the gate is open) or shall be discarded (the gate is closed) in the uplink and/or downlink directions."})
ies.append({ "ie_type" : "MBR", "ie_value" : "Maximum Bitrate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if an MBR enforcement action shall be applied to packets matching this PDR. When present, this IE shall indicate the uplink and/or downlink maximum bit rate to be enforced for packets matching the PDR.This IE may be set to the value of: - the APN-AMBR, for a QER that is referenced by all the PDRs of the non-GBR bearers of a PDN connection; - the TDF session MBR, for a QER that is referenced by all the PDRs of a TDF session;- the bearer MBR, for a QER that is referenced by all the PDRs of a bearer;- the SDF MBR, for a QER that is referenced by all the PDRs of a SDF."})
ies.append({ "ie_type" : "GBR", "ie_value" : "Guaranteed Bitrate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a GBR has been authorized to packets matching this PDR. When present, this IE shall indicate the authorized uplink and/or downlink guaranteed bit rate.This IE may be set to the value of: - the aggregate GBR, for a QER that is referenced by all the PDRs of a GBR bearer;- the SDF GBR, for a QER that is referenced by all the PDRs of a SDF."})
ies.append({ "ie_type" : "Packet Rate", "ie_value" : "Packet Rate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a Packet Rate enforcement action (in terms of number of packets per time interval) shall be applied to packets matching this PDR. When present, this IE shall indicate the uplink and/or downlink maximum packet rate to be enforced for packets matching the PDR.This IE may be set to the value of: - downlink packet rate for Serving PLMN Rate Control, for a QER that is referenced by all PDRs of the UE belonging to the PDN connection using CIoT EPS Optimizations as described in 3GPPTS23.401[2])- uplink and/or downlink packet rate for APN Rate Control, for a QER that is referenced by all the PDRs of the UE belonging to PDN connections to the same APN using CIoT EPS Optimizations as described in 3GPPTS23.401[2])."})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall be set if the UP function is required to mark the packets for QoS purposes: - by the TDF-C, for DL flow level marking for application indication (see subclause 5.4.5); - by the PGW-C, for setting the GTP-U Service Class Indicator extension header for service indication towards GERAN (see subclause 5.4.12)."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the QoS flow identifier shall be included by the UPF."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function is required to set Reflective QoS Identifier to request reflective QoS for uplink traffic."})
group_list["Create QER"] = { "type" : "7", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the BAR provisioned for that PFCP session."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see subclause 8.2.28) and the UP function has to delay the notification to the CP function about the arrival of DL data packets. When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
group_list["Create BAR"] = { "type" : "85", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Packet Detection Rule ID", "ie_value" : "PDR ID", "presence" : "M", "instance" : "0", "comment" : ""})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "instance" : "0", "comment" : "If the UP function allocates the F-TEID, this IE shall be present and shall contain the local F-TEID to be used for this PDR."})
group_list["Created PDR"] = { "type" : "8", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Load Control Sequence Number", "presence" : "M", "instance" : "0", "comment" : "See subclause 6.2.3.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metricp", "ie_value" : "Load Metric", "presence" : "M", "instance" : "0", "comment" : "See subclause 6.2.3.3.2 for the description and use of this parameter."})
group_list["Load Control Informationp"] = { "type" : "51", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Overload Control Sequence Number", "presence" : "M", "instance" : "0", "comment" : "See subclause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metricp", "ie_value" : "Overload Reduction Metric", "presence" : "M", "instance" : "0", "comment" : "See subclause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Timer", "ie_value" : "Period of Validity", "presence" : "M", "instance" : "0", "comment" : "See subclause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "OCI Flags", "ie_value" : "Overload Control Information Flags", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if any of flag in this IE is set. "})
group_list["Overload Control Informationp"] = { "type" : "54", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Packet Detection Rule ID", "ie_value" : "PDR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "Outer Header Removal", "ie_value" : "Outer Header Removal", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it needs to be changed."})
ies.append({ "ie_type" : "Precedence", "ie_value" : "Precedence", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if there is a change in the PDRs precedence to be applied by the UP function among all PDRs of the PFCP session, when looking for a PDR matching an incoming packet."})
ies.append({ "ie_type" : "PDI", "ie_value" : "PDI", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if there is a change within the PDI against which incoming packets will be matched. When present, this IE shall replace the PDI previously stored in the UP function for this PDR. See Table 7.5.2.2-2."})
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it needs to be changed"})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a measurement action shall be applied or no longer applied to packets matching this PDR.When present, this IE shall contain the list of all the URR IDs to be associated to the PDR."})
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a QoS enforcement action shall be applied or no longer applied to packets matching this PDR.When present, this IE shall contain the list of all the QER IDs to be associated to the PDR."})
ies.append({ "ie_type" : "Activate Predefined Rules", "ie_value" : "Activate Predefined Rules", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if new Predefined Rule(s) needs to be activated for the PDR. When present this IE shall contain one Predefined Rules name.Several IEs with the same IE type may be present to represent multiple Activate Predefined Rules names."})
ies.append({ "ie_type" : "Deactivate Predefined Rules", "ie_value" : "Deactivate Predefined Rules", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if Predefined Rule(s) needs to be deactivated for the PDR. When present this IE shall contain one Predefined Rules name.Several IEs with the same IE type may be present to represent multiple Activate Predefined Rules names."})
group_list["Update PDR"] = { "type" : "9", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the FAR to be updated."})
ies.append({ "ie_type" : "Apply Action", "ie_value" : "Apply Action", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Update Forwarding Parameters", "ie_value" : "Update Forwarding parameters", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it is changed.See table 7.5.4.3-2."})
ies.append({ "ie_type" : "Update Duplicating Parameters", "ie_value" : "Update Duplicating Parameters", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it is changed. See table 7.5.4.3-3."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the BAR ID associated to the FAR needs to be modified. See Table 7.5.4.11-1."})
group_list["Update FAR"] = { "type" : "10", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed. When present, it shall indicate the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network instance", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed."})
ies.append({ "ie_type" : "Redirect Information", "ie_value" : "Redirect Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the instructions regarding the redirection of traffic by the UP function need to be modified."})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "Header Enrichment", "ie_value" : "Header Enrichment", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "PFCPSMReq-Flags", "ie_value" : "SxSMReq-Flags", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1. - SNDEM (Send End Marker Packets): this IE shall be present if the CP function modifies the F-TEID of the downstream node in the Outer Header Creation IE and the CP function requests the UP function to construct and send GTP-U End Marker messages towards the old F-TEID of the downstream node. "})
group_list["Update Forwarding Parameters"] = { "type" : "11", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed. When present, it shall indicate the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed."})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "instance" : "0", "comment" : "This IE shall only be provided if it is changed."})
group_list["Update Duplicating Parameters"] = { "type" : "105", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the URR among all the URRs configured for that PFCP session"})
ies.append({ "ie_type" : "Measurement Method", "ie_value" : "Measurement Method", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the measurement method needs to be modified. When present, this IE shall indicate the method for measuring the network resources usage, i.e. whether the data volume, duration (i.e. time), combined volume/duration, or event shall be measured."})
ies.append({ "ie_type" : "Reporting Triggers", "ie_value" : "Reporting Triggers", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the reporting triggers needs to be modified. When present, this IE shall indicate the trigger(s) for reporting network resources usage to the CP function, e.g. periodic reporting or reporting upon reaching a threshold, or envelope closure."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Measurement Period needs to be modified. When present, it shall indicate the period for generating and reporting usage reports. "})
ies.append({ "ie_type" : "Volume Threshold", "ie_value" : "Volume Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Volume Threshold needs to be modified. When present, it shall indicate the traffic volume value after which the UP function shall report network resources usage to the CP function for this URR."})
ies.append({ "ie_type" : "Volume Quota", "ie_value" : "Volume Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Volume Quota needs to be modified. When present, it shall indicate the Volume Quota value."})
ies.append({ "ie_type" : "Time Threshold", "ie_value" : "Time Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Time Threshold needs to be modified. When present, it shall indicate the time usage after which the UP function shall report network resources usage to the CP function for this URR."})
ies.append({ "ie_type" : "Time Quota", "ie_value" : "Time Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Time Quota needs to be modified. When present, it shall indicate the Time Quota value."})
ies.append({ "ie_type" : "Quota Holding Time", "ie_value" : "Quota Holding Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Quota Holding Time needs to be modified. When present, it shall contain the duration of the Quota Holding Time."})
ies.append({ "ie_type" : "Dropped DL Traffic Threshold", "ie_value" : "Dropped DL Traffic Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Dropped DL Threshold needs to be modified. When present, it shall contain the threshold of the DL traffic being dropped."})
ies.append({ "ie_type" : "Monitoring Time", "ie_value" : "Monitoring Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Monitoring Time needs to be modified. When present, this IE shall contain the time at which the UP function shall re-apply the volume or time threshold. "})
ies.append({ "ie_type" : "Subsequent Volume Threshold", "ie_value" : "Subsequent Volume Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Subsequent Volume Threshold needs to be modified and volume-based measurement is used. When present, it shall indicate the traffic volume value after which the UP function shall report network resources usage to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Time Threshold", "ie_value" : "Subsequent Time Threshold", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Subsequent Time Threshold needs to be modified. When present, it shall indicate the time usage value after which the UP function shall report network resources usage to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Volume Quota", "ie_value" : "Subsequent Volume Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Subsequent Volume Quota needs to be modified. When present, it shall indicate the Volume Quota value which the UP function shall use for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Time Quota", "ie_value" : "Subsequent Time Quota", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Subsequent Time Quota needs to be modified. When present, it shall indicate the Time Quota value which the UP function shall use for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Inactivity Detection Time", "ie_value" : "Inactivity Detection Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Inactivity Detection Time needs to be modified. When present, it shall indicate the duration of the inactivity period after which time measurement needs to be suspended when no packets are received during this inactivity period. "})
ies.append({ "ie_type" : "Linked URR ID", "ie_value" : "Linked URR ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if linked usage reporting is required. When present, this IE shall contain the linked URR ID which is related with this URR (see subclause 5.2.2.4). "})
ies.append({ "ie_type" : "Measurement Information", "ie_value" : "Measurement Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if any of the following flag is set to 1.Applicable flags are:- Inactive Measurement Flag: this flag shall be set to 1 if the measurement shall be paused (inactive). The measurement shall be performed (active) if the bit is set to 0 or if the Measurement Information IE is not present in the Update URR IE. - Reduced Application Detection Information Flag: this flag may be set to 1, if the Reporting Triggers request to report the start or stop of application, to request the UP function to only report the Application ID in the Application Detection Information, e.g. for envelope reporting."})
ies.append({ "ie_type" : "Time Quota Mechanism", "ie_value" : "Time Quota Mechanism", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if time-based measurement based on CTP or DTP needs to be modified."})
ies.append({ "ie_type" : "Aggregated URRs", "ie_value" : "Aggregated URRs", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if the Aggregated URRs IE needs to be modified. See Table 7.5.2.4-1.Several IEs with the same IE type may be present to provision multiple aggregated URRs.When present, this IE shall provide the complete list of the aggregated URRs."})
group_list["Update URR"] = { "type" : "13", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the QER among all the QRs configured for that PFCP session"})
ies.append({ "ie_type" : "QER Correlation ID", "ie_value" : "QER Correlation ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the QER correlation ID in this QER needs to be modified.See NOTE 1."})
ies.append({ "ie_type" : "Gate Status", "ie_value" : "Gate Status", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the Gate Status needs to be modified. When present, it shall indicate whether the packets are allowed to be forwarded (the gate is open) or shall be discarded (the gate is closed) in the uplink and/or downlink directions.See NOTE 1."})
ies.append({ "ie_type" : "MBR", "ie_value" : "Maximum Bitrate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if an MBR enforcement action applied to packets matching this PDR need to be modified. When present, this IE shall indicate the uplink and/or downlink maximum bit rate to be enforced for packets matching the PDR.This IE may be set to the value of: - the APN-AMBR, for a QER that is referenced by all the PDRs of the non-GBR bearers of a PDN connection; - the TDF session MBR, for a QER that is referenced by all the PDRs of a TDF session;- the bearer MBR, for a QER that is referenced by all the PDRs of a bearer;- the SDF MBR, for a QER that is referenced by all the PDRs of a SDF.See NOTE 1."})
ies.append({ "ie_type" : "GBR", "ie_value" : "Guaranteed Bitrate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a GBR authorization to packets matching this PDR needs to be modified. When present, this IE shall indicate the authorized uplink and/or downlink guaranteed bit rate.This IE may be set to the value of: - the aggregate GBR, for a QER that is referenced by all the PDRs of a GBR bearer;- the SDF GBR, for a QER that is referenced by all the PDRs of a SDF.See NOTE 1."})
ies.append({ "ie_type" : "Packet Rate", "ie_value" : "Packet Rate", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a Packet Rate enforcement action (in terms of number of packets per time interval) need to be modified for packets matching this PDR. "})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "instance" : "0", "comment" : "This IE shall be set if the DL Flow Level Marking IE needs to be modified.See NOTE 1."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if it needs to be modified."})
group_list["Update QER"] = { "type" : "14", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Packet Detection Rule ID", "ie_value" : "PDR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the PDR to be deleted."})
group_list["Remove PDR"] = { "type" : "15", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the FAR to be deleted."})
group_list["Remove FAR"] = { "type" : "16", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the URR to be deleted."})
group_list["Remove URR"] = { "type" : "17", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the QER to be deleted."})
group_list["Remove QER"] = { "type" : "18", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the URR being queried."})
group_list["Query URR"] = { "type" : "77", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the BAR Rule to be modified."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see subclause 8.2.28) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
group_list["Update BAR Session Modification Request"] = { "type" : "86", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the BAR to be deleted."})
group_list["Remove BAR"] = { "type" : "87", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see subclause 5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Volume Measurement", "ie_value" : "Volume Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a volume measurement needs to be reported."})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported."})
ies.append({ "ie_type" : "Time of First Packet", "ie_value" : "Time of First Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Time of Last Packet", "ie_value" : "Time of Last Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function reports Usage Reports before and after a Monitoring Time or before and after QoS enforcement. When present, it shall indicate whether the usage is reported for the period before or after that time, or before or after QoS enforcement."})
group_list["Usage Report in Session Modification Response"] = { "type" : "78", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see subclause 5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Volume Measurement", "ie_value" : "Volume Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a volume needs to be reported."})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported."})
ies.append({ "ie_type" : "Time of First Packet", "ie_value" : "Time of First Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Time of Last Packet", "ie_value" : "Time of Last Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function reports Usage Reports before and after a Monitoring Time, or before and after QoS enforcement. When present, it shall indicate whether the usage is reported for the period before or after that time, or before or after QoS enforcement."})
group_list["Usage Report Session Deletion Response"] = { "type" : "79", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Packet Detection Rule ID", "ie_value" : "PDR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the PDR for which downlink data packets have been received at the UP function. More than one IE with this type may be included to represent multiple PDRs having received downlink data packets."})
ies.append({ "ie_type" : "Downlink Data Service Information", "ie_value" : "Downlink Data Service Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included for an PFCP session with an IP PDN type, if the UP function supports the Paging Policy Differentiation feature (see subclause 4.9 of 3GPPTS23.401[14]). When present, for each PDR and for each packet that triggers a Downlink Data Notification, the UP function shall copy, into the Paging Policy Indication value within this IE, the value of the DSCP in TOS (IPv4) or TC (IPv6) information received in the IP payload of the GTP-U packet from the PGW (see IETFRFC2474[13]).One IE with this type shall be included per PDR ID reported in the message. When multiple PDR ID IEs are present in the message, the Downlink Data Service Information IEs shall be reported according to the order of the PDR ID IEs."})
group_list["Downlink Data Report"] = { "type" : "83", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "instance" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see subclause 5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic or Stop of Traffic.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Volume Measurement", "ie_value" : "Volume Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a volume measurement needs to be reported."})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported."})
ies.append({ "ie_type" : "Application Detection Information", "ie_value" : "Application Detection Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if application detection information needs to be reported."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the start or stop of an application has been detected and no UE IP address was provisioned in the PDI. See NOTE 1."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the start or stop of an application has been detected, no UE IP address was provisioned in the PDI and multiple PDNs with overlapping IP addresses are used in the UP function. See NOTE 1."})
ies.append({ "ie_type" : "Time of First Packet", "ie_value" : "Time of First Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Time of Last Packet", "ie_value" : "Time of Last Packet", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function reports Usage Reports before and after a Monitoring Time, or before and after QoS enforcement. When present, it shall indicate whether the usage is reported for the period before or after that time, or before or after QoS enforcement."})
group_list["Usage Report Session Report Request"] = { "type" : "80", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the Application ID for which a start or stop of traffic is reported."})
ies.append({ "ie_type" : "Application Instance ID", "ie_value" : "Application Instance ID", "presence" : "C", "instance" : "0", "comment" : "When present, this IE shall identify the Application Instance Identifier for which a start or stop of traffic is reported. It shall be present, when reporting the start of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if the flow information for the detected application is deducible. It shall be present, when reporting the stop of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if it was provided when reporting the start of the application."})
ies.append({ "ie_type" : "Flow Information", "ie_value" : "Flow Information", "presence" : "C", "instance" : "0", "comment" : "When present, this IE shall contain the flow information for the detected application. It shall be present, when reporting the start of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if the flow information for the detected application is deducible."})
group_list["Application Detection Information"] = { "type" : "68", "ies" : ies }
ies = []
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Remote F-TEID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the remote F-TEID of the GTP-U bearer for which an Error Indication has been received at the UP function. More than one IE with this type may be included to represent multiple remote F-TEID for which an Error Indication has been received."})
group_list["Error Indication Report"] = { "type" : "99", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the BAR Rule to be modified."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see subclause 8.2.25) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "DL Buffering Duration", "ie_value" : "DL Buffering Duration", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if the UP function indicated support of the DL Buffering Duration parameter (see subclause 8.2.25) and extended buffering of downlink data packet is required in the UP function. When present, this IE shall indicate the duration during which the UP function shall buffer the downlink data packets without sending any further notification to the CP function about the arrival of DL data packets."})
ies.append({ "ie_type" : "DL Buffering Suggested Packet Count", "ie_value" : "DL Buffering Suggested Packet Count", "presence" : "O", "instance" : "0", "comment" : "This IE may be present if extended buffering of downlink data packet is required in the UP function. When present, this IE shall indicate the maximum number of downlink data packets suggested to be buffered in the UP function."})
group_list["Update BAR PFCP Session Report Response"] = { "type" : "12", "ies" : ies }