ies = []
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "M", "tlv_more" : "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 context", "presence" : "C", "tlv_more" : "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"] = { "index" : "158", "type" : "58", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PFD contents", "ie_value" : "PFD Contents", "presence" : "M", "tlv_more" : "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. (NOTE 1)"})
group_list["PFD context"] = { "index" : "159", "type" : "59", "ies" : ies }
ies = []
ies.append({ "ie_type" : "CP PFCP Entity IP Address", "ie_value" : "CP PFCP Entity IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the IP address of a CP PFCP entity for which the UP function shall retain the existing PFCP sessions, upon receipt of a PFCP association setup request with a Node ID for which a PFCP association was already established. See clause6.2.6.2.1Several IEs with the same IE type may be present to represent multiple CP PFCP entities for which PFCP sessions shall be retained.If no CP PFCP Entity IP Address IE is present in the PFCP Session Retention Information IE, all existing PFCP sessions shall be kept upon receipt of a PFCP association setup request with a Node ID for which a PFCP association was already established."})
group_list["PFCP Session Retention Information within PFCP Association Setup Request"] = { "index" : "283", "type" : "183", "ies" : ies }
ies = []
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Identity", "presence" : "M", "tlv_more" : "0", "comment" : "When present, this IE shall contain an UE IP address Pool IdentitySeveral IEs with the same IE type may be present to represent multiple UE IP address Pool Identities."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which DNN/APN the UE IP Address Pool Identifies are configured."})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which S-NSSAI the UE IP Address Pool Identities are configured.Several IEs with the same IE type may be present to represent multiple S-NSSAIs."})
ies.append({ "ie_type" : "IP version", "ie_value" : "IP version", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which IP version the UE IP Address Pool Identities are configured."})
group_list["UE IP address Pool Information"] = { "index" : "333", "type" : "233", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Requested Clock Drift Information", "ie_value" : "Requested Clock Drift Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the requested clock drift information."})
ies.append({ "ie_type" : "Time Domain Number", "ie_value" : "Time Domain Number", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall identifiy the external time domain(s) for which clock drift information is requested.More than one IE with this type may be included to represent multiple Time Domain Numbers.This IE may be included if the Configured Time Domain IE is not included. (NOTE)"})
ies.append({ "ie_type" : "Configured Time Domain", "ie_value" : "Configured Time Domain", "presence" : "C", "tlv_more" : "0", "comment" : "When present with the CTDI (Configured Time Domain Indicator) flag set to 1, this IE indicates that the request targets the external time domain that is configured to the NW-TT(s) in the UPF.This IE may be included if the Time Domain Number IE is not included. (NOTE)"})
ies.append({ "ie_type" : "Time Offset Threshold", "ie_value" : "Time Offset Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Time Offset Reporting is requested.When present, it shall indicate the threshold to report the time offset, i.e. the offset shall be reported only when it exceeds the threshold compared to the previous report."})
ies.append({ "ie_type" : "Cumulative rateRatio Threshold", "ie_value" : "Cumulative rateRatio Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Cumulative RateRatio Reporting is requested.When present, it shall indicate the threshold to report the cumulative rateRatio, i.e. the cumative rateRatio shall be reported only when it exceeds the threshold compared to the previous report."})
group_list["Clock Drift Control Information"] = { "index" : "303", "type" : "203", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall include the IP address of the remote GTP-U peer for which QoS information is to be reported, and the network instance used towards the remote GTP-U peer if available.Several IEs with the same IE type may be present to represent multiple remote GTP-U peers.(NOTE)"})
ies.append({ "ie_type" : "GTP-U Path Interface Type", "ie_value" : "GTP-U Path Interface Type", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall include the Interface Type of the GTP-U paths for which QoS information is to be reported.(NOTE)"})
ies.append({ "ie_type" : "QoS Report Trigger", "ie_value" : "QoS Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the trigger for reporting QoS information to the SMF."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if available. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field to measure the packet delay.Several IEs with the same IE type may be present to represent multiple DSCP values to use for QoS monitoring."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS Report Trigger indicates periodic reporting. When present, it shall contain the time period for the QoS reports towards the SMF."})
ies.append({ "ie_type" : "Average Packet Delay", "ie_value" : "Average Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Minimum Packet Delay", "ie_value" : "Minimum Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Maximum Packet Delay", "ie_value" : "Maximum Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Timer", "ie_value" : "Minimum Waiting Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. When present, it shall contain the minimum waiting time between two consecutive reports for the same type of measurement and the same remote GTP-U peer. "})
group_list["GTP-U Path QoS Report PFCP Node Report Request"] = { "index" : "339", "type" : "239", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "UE IP Address Usage Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be used by the CP function to properly collate out-of-order UE IP Address Usage Information received for a given network instance and/or UE IP Address pool, e.g. due to PFCP retransmissions. This IE shall also be used by the receiver to determine whether the newly received UE IP Address Usage Information has changed compared to UE IP Address Usage Information previously received from the same node earlier."})
ies.append({ "ie_type" : "Metric", "ie_value" : "UE IP Address Usage Metric", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall represent the current ratio of occupied UE IP addresses in the UP function for the Network Instance indicated in the Network Instance IE, or for the Network Instance indicated in the Network Instance IE and the UE IP address Pool indicated by the UE IP Address Pool Id IE when this IE is present. The value shall be expressed as a percentage within the range of 0 to 100, where 0 means no or 0% usage and 100 means maximum or 100% usage reached (i.e. it is not desirable to receive further PFCP Session Establishment Requests)."})
ies.append({ "ie_type" : "Validity Timer", "ie_value" : "Validity Timer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall represent the period of time during which the UE IP Address Usage Information shall be considered as valid."})
ies.append({ "ie_type" : "Number of UE IP Addresses", "ie_value" : "Number of UE IP Addresses", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the total number of UE IP addresses configured for the Network Instance or also for the IP address Pool, when this IE is present. (NOTE)"})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the associated Network instance."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address Pool Id", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if UE IP Addresses Pools are configured in the UPF.When present, this IE shall contain the identity of the associated UE IP address Pool."})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the feature Per slice UP resource management is supported by the UP Function.When present, it shall indicate the S-NSSAI for which the UE IP addresses usage information is reported."})
group_list["UE IP Address Usage Information"] = { "index" : "367", "type" : "267", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the IP address of the remote GTP-U peer towards which a user plane path failure has been detected.More than one IE with this type may be included to represent multiple remote GTP-U peers towards which a user plane path failure has been detected."})
group_list["User Plane Path Failure Report"] = { "index" : "202", "type" : "102", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the IP address of the remote GTP-U peer towards which user plane path failure was reported and then the path has recovered within an operator configurable maximum path failure duration (see clause20.3.4 in 3GPPTS23.007[24] and clause5.4 in 3GPPTS23.527[40]).More than one IE with this type may be included to represent multiple remote GTP-U peers towards which a user plane path has recovered."})
group_list["User Plane Path Recovery Report"] = { "index" : "287", "type" : "187", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Time Domain Number", "ie_value" : "Time Domain Number", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the Time Domain Number for which measurements are reported."})
ies.append({ "ie_type" : "Time Offset Measurement", "ie_value" : "Time Offset Measurement", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the time offset measurement."})
ies.append({ "ie_type" : "Cumulative rateRatio Measurement", "ie_value" : "Cumulative rateRatio Measurement", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the cumulative rateRatio measurement."})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Time Stamp", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, when available (NOTE)."})
ies.append({ "ie_type" : "APN/DNN", "ie_value" : "APN/DNN", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, when available (NOTE)."})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, when available (NOTE)."})
group_list["Clock Drift Report"] = { "index" : "305", "type" : "205", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Average Packet Delay", "ie_value" : "Average Packet Delay", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the average packet delay of the related GTP-U path. "})
ies.append({ "ie_type" : "Minimum Packet Delay", "ie_value" : "Minimum Packet Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall indicate the minimum packet delay of the related GTP-U path, if available. "})
ies.append({ "ie_type" : "Maximum Packet Delay", "ie_value" : "Maximum Packet Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall indicate the maximum packet delay of the related GTP-U path, if available."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if available. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field used in Echo messages to measure the packet delay. "})
group_list["QoS Information in GTP-U Path QoS Report"] = { "index" : "340", "type" : "240", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-C/SMF FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall identify the PGW-C/SMF FQ-CSID of the PFCP sessions for which the UPF shall send subsequent PFCP Session Report Request messages to the Alternative SMF/PGW-C IP Address.See also clause31.6 of 3GPPTS23.007[24] and clause4.7 of 3GPPTS23.527[40].Several IEs with the same IE type may be present to represent several FQ-CSIDs of PFCP sessions that need to be moved to the same Alternative SMF/PGW-C IP Address."})
ies.append({ "ie_type" : "Group ID", "ie_value" : "Group Id", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall identify the Group Id of the PFCP sessions for which the UPF shall send subsequent PFCP Session Report Request messages to the Alternative SMF/PGW-C IP Address.See also clause31.6 of 3GPPTS23.007[24] and clause4.7 of 3GPPTS23.527[40].Several IEs with the same IE type may be present to represent several Group Ids of PFCP sessions that need to be moved to the same Alternative SMF/PGW-C IP Address."})
ies.append({ "ie_type" : "CP IP Address", "ie_value" : "CP IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall identify the IP address in the CP F-SEID of the PFCP sessions for which the UPF shall send subsequent PFCP Session Report Request messages to the Alternative SMF/PGW-C IP Address.Several IEs with the same IE type may be present to represent several CP IP addresses of PFCP sessions that need to be moved to the same Alternative SMF/PGW-C IP Address."})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF/PGW-C IP Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the alternative SMF/PGW-C IP Address to be used by the UP function to send subsequent PFCP Session Report Request messages for the PFCP Sessions associated with the PGW-C/SMF FQ-CSID(s), Group Id(s) or CP IP address(es).When present, this IE shall contain an IPv4 and/or IPv6 address of the same or an alternative SMF/PGW-C."})
group_list["PFCP Session Change Info"] = { "index" : "390", "type" : "290", "ies" : ies }
ies = []
ies.append({ "ie_type" : "LNS Address", "ie_value" : "LNS Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to include the Tunnel Server Endpoint, i.e. LNS IP address."})
ies.append({ "ie_type" : "Tunnel Password", "ie_value" : "Tunnel Password", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include the password to be used to authenticate to a remote server."})
ies.append({ "ie_type" : "Tunnel Preference", "ie_value" : "Tunnel Preference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if multiple L2TP Tunnel Information IEs are included in the message.If present this IE indicates the order in which the L2TP Tunnel Information IEs shall be used when trying to establish the L2TP session."})
group_list["L2TP Tunnel Information"] = { "index" : "376", "type" : "276", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Calling Number", "ie_value" : "Calling Number", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present, e.g. to include an MSISDN of the UE."})
ies.append({ "ie_type" : "Called Number", "ie_value" : "Called Number", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present, e.g. to include an APN/DNN."})
ies.append({ "ie_type" : "Maximum Receive Unit", "ie_value" : "Maximum Receive Unit", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include Maximum Receive Unit for LCP/PPP which may be set to the value of the MTU received from the UE or may be configured in the CP function."})
ies.append({ "ie_type" : "L2TP Session Indications", "ie_value" : "L2TP Session Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to get a UE IP Address, and/or DNS server information, and/or NBNS server information from the LNS."})
ies.append({ "ie_type" : "L2TP User Authentication IE", "ie_value" : "L2TP User Authentication", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include the authentication information to be used during L2TP session establishment."})
group_list["L2TP Session Information"] = { "index" : "377", "type" : "277", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. "})
ies.append({ "ie_type" : "MBSN4mbReq-Flags", "ie_value" : "MBSN4mbReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.-	PLLSSM (Provide Lower Layer SSM): the MB-SMF shall set this flag to 1 to request the MB-UPF to allocate a LL SSM (i.e. multicast destination address and related source IP address) and a GTP-U Common Tunnel EndPoint Identifier (C-TEID), if multicast transport is used over N3mb and/or N19mb. See clause5.34.2.2.-	JMBSSM (Join MBS Session SSM): the MB-SMF shall set this flag to 1 to request the MB-UPF to join the multicast tree towards the Source Specific Multicast (SSM) address information provided by AF/AS for the MBS Session, if multicast transport is used over N6mb.-	MBS RESTI (MBS Restoration Indication): this bit shall be set to 1 if the MB-SMF re-establishes an existing PFCP session. (NOTE)"})
ies.append({ "ie_type" : "Multicast Transport Information", "ie_value" : "Multicast Transport Information for N3mb and/or N19mb", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present during the restoration of a PFCP session of an MBS session after an MB-UPF restart, as defined in clause8.2.2 of 3GPPTS23.527[40]. When present, it shall include the low layer source specific multicast address information (i.e. multicast destination address and related source IP address) and the GTP-U Common Tunnel EndPoint Identifier (C-TEID) that the MB-SMF requests the MB-UPF to allocate for multicast transport over N3mb and/or N19mb, if possible.(NOTE)"})
group_list["MBS Session N4mb Control Information"] = { "index" : "400", "type" : "300", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. "})
ies.append({ "ie_type" : "Multicast Transport Information", "ie_value" : "Multicast Transport Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to include a low layer source specific multicast address information (i.e. multicast destination address and related source IP address) and a GTP-U Common Tunnel EndPoint Identifier (C-TEID) which was allocated by the MB-UPF, if IP multicast transport is used over N19mb. "})
group_list["MBS Session N4 Control Information"] = { "index" : "410", "type" : "310", "ies" : ies }
ies = []
ies.append({ "ie_type" : "DSCP to PPI Mapping Information", "ie_value" : "DSCP to PPI Mapping Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to instruct the UPF to insert the corresponding PPI for the downlink GTP-U packet, where the DSCP of its payload packet is matching one of DSCP codes in the DSCP to PPI Mapping Information.Several IEs with the same IE type may be present to provide different DSCP to PPI mapping information."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to request the UPF to only insert PPI for those packets pertain to the requested QoS flow(s).Several IEs with the same IE type may be present to provide a list of QFIs.(NOTE1)"})
group_list["DSCP to PPI Control Information"] = { "index" : "416", "type" : "316", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall contain the PDI against which incoming packets will be matched.See Table7.5.2.2-2."})
ies.append({ "ie_type" : "Outer Header Removal", "ie_value" : "Outer Header Removal", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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, and if the MAR ID is not included. This IE may be present if the CP function activated a predefined rule name with a predefined FAR but the CP function wishes to overwrite the predefined FAR by another FAR. (NOTE 2)When present this IE shall contain the FAR ID to be associated to the PDR."})
type_list["URR ID"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "tlv_more" : "7", "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", "tlv_more" : "0", "comment" : "This IE shall be present if a QoS enforcement or QoS marking 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", "tlv_more" : "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."})
ies.append({ "ie_type" : "Activation Time", "ie_value" : "Activation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR activation shall be deferred. (NOTE 1)"})
ies.append({ "ie_type" : "Deactivation Time", "ie_value" : "Deactivation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR deactivation shall be deferred. (NOTE 1)"})
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is provisioned to match the downlink traffic of non-GBR QoS flows towards the UE for a PFCP session established for a MA PDU session."})
ies.append({ "ie_type" : "Packet Replication and Detection Carry-On Information", "ie_value" : "Packet Replication and Detection Carry-On Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is provisioned to match a broadcast packet. When present, it contains the information to instruct the UPF to replicate the packet and to carry-on the look-up of other PDRs of other PFCP sessions matching the packet (see clause5.2.1)."})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in an UL PDR controlling UL IGMP/MLD traffic (see5.25).When present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.Several IEs with the same IE type may be present to represent multiple IP multicast flows. "})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Identity", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if UE IP Addresses Pools are configured in the UPF.When present, this IE shall contain the identity of a UE IP address Pool configured in the UPF.Two IEs with the same IE type shall be present to represent UE IPv4 Address Pool Identity and UE IPv6 Address Pool Identity if different pool identities are used for UE IPv4 address and UE IPv6 address and both an UE IPv4 and an UE IPv6 address are requested to be assigned for the PFCP session. In this case, the UE IPv4 Address Pool Identity shall be encoded before the UE IPv6 Address Pool Identity."})
ies.append({ "ie_type" : "MPTCP Applicable Indication", "ie_value" : "MPTCP Applicable Indication", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is used to detect UL user plane traffic for which MPTCP is applicable."})
ies.append({ "ie_type" : "Transport Delay Reporting", "ie_value" : "Transport Delay Reporting", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to request the UPF to add the delay of the GTP-U path with the preceding uplink GTP-U entity to the N3/N9 Delay Result received in the GTP-U PDU Session Container extension header (see 3GPPTS38.415[34]) of the uplink packet, when monitoring the QoS of a PDU session based on GTP-U path monitoring (see clause5.24.5.3). See Table7.5.2.2-6."})
ies.append({ "ie_type" : "RAT Type", "ie_value" : "RAT Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to provide the UP Function the current RAT Type for the UL PDR for statistics purpose if the PFCP session is established for a MA PDU session."})
group_list["Create PDR"] = { "index" : "101", "type" : "1", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Source Interface", "ie_value" : "Source Interface", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present.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 CP function requests the UP function to assign a local F-TEID to the PDR."})
ies.append({ "ie_type" : "Local Ingress Tunnel", "ie_value" : "Local Ingress Tunnel", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present.If present, this IE shall identify the IP address and the UDP port for a UDP/IP tunnel.The CP function shall set the CHOOSE (CH) bit to 1 if the CP function requests the UP function to assign a local ingress tunnel to the PDR."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present. It shall be present if the CP function requests the UP function to allocate a UE IP address/prefix and the Traffic Endpoint ID is not present.If present, this IE shall identify the Network instance to match for the incoming packet. See NOTE 1, NOTE2."})
ies.append({ "ie_type" : "Redundant Transmission Parameters", "ie_value" : "Redundant Transmission Detection Parameters", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the information used for the reception of redundant uplink packets on N3/N9 interfaces."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present.If present, this IE shall identify the UE IP address as the source or destination IP address to match for the incoming packet. (NOTE 5).The CP function shall set the CHOOSE IPV4 (CHV4) and/or the CHOOSE IPV6 (CHV6) bits to 1 if the UP function supports the allocation of UE IP address/ prefix and the CP function requests the UP function to assign a UE IP address/prefix to the PDR.This IE may also present to identify the IP address of the CP function as the destination IP address to match for the incoming packet, e.g. Radius, Diameter or DHCP signalling packet. (NOTE 8).In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP function has indicated the support of PDI optimization.If present, this IE shall uniquely identify the Traffic Endpoint for that PFCP session.Several IEs with the same IE type may be present to provision several Traffic Endpoints with different Traffic Endpoint IDs, from which the UPF may receive packets pertaining to the same service data flow, which is subject for the same FAR, QER and URR, if the UPF has indicated it supports MTE feature as specified in clause8.2.25. See NOTE 6."})
type_list["SDF Filter"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "SDF Filter", "presence" : "O", "tlv_more" : "7", "comment" : "If present, this IE shall identify the SDF filter to match for the incoming packet. Several IEs with the same IE type may be present to provision a list of SDF Filters. The full set of applicable SDF filters, if any, shall be provided during the creation or the modification of the PDI.See NOTE 3."})
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Application ID to match for the incoming packet. "})
ies.append({ "ie_type" : "Ethernet PDU Session Information", "ie_value" : "Ethernet PDU Session Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to identify all the (DL) Ethernet packets matching an Ethernet PDU session (see clause5.13.1)."})
ies.append({ "ie_type" : "Ethernet Packet Filter", "ie_value" : "Ethernet Packet Filter", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Ethernet PDU to match for the incoming packet.Several IEs with the same IE type may be present to represent a list of Ethernet Packet Filters.The full set of applicable Ethernet Packet filters, if any, shall be provided during the creation or the modification of the PDI."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present and the QFI(s) are included in the Traffic Endpoint.If present, this IE shall identify the QoS Flow Identifier to match for the incoming packet.Several IEs with the same IE type may be present to provision a list of QFIs. When present, the full set of applicable QFIs shall be provided during the creation or the modification of the PDI. "})
type_list["Framed-Route"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a PDR if the UPF indicated support of Framed Routing (see clauses8.2.25 and 5.16). If present, this IE shall describe a framed route.Several IEs with the same IE type may be present to provision a list of framed routes. (NOTE 5)"})
ies.append({ "ie_type" : "Framed-Routing", "ie_value" : "Framed-Routing", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clauses8.2.25 and 5.16). If present, this IE shall describe the routing method for the UP function for the IP route related to Framed-Routes or Framed-IPv6-Routes. (NOTE 7)"})
type_list["Framed-IPv6-Route"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a PDR if the UPF indicated support of Framed Routing (see clauses8.2.25 and 5.16). If present, this IE shall describe a framed IPv6 route.Several IEs with the same IE type may be present to provision a list of framed IPv6 routes. (NOTE5)"})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Source Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the source interface, if required by functionalities in the UP Function, e.g. for performance measurements."})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in a DL PDR controlling DL IP multicast traffic (see clause5.25).When present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.This IE shall be present over N4mb, if multicast transport is used over N6mb and if Traffic Endpoint ID is not present.Several IEs with the same IE type may be present to represent multiple IP multicast flows."})
ies.append({ "ie_type" : "DNS Query Filter", "ie_value" : "DNS Query Filter", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for an UL PDR if the UPF indicated support of DNS traffic steering based on FQDN in the DNS Query message.If present, this IE shall identify the DNS Query filter to match for the incoming DNS Query packets. Several IEs with the same IE type may be present to provision a list of DNS Query Filters. The full set of applicable DNS Query filters, if any, shall be provided during the creation or the modification of the PDI."})
ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the PDR is created to receive MBS session data. (NOTE9)"})
ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. (NOTE9)"})
group_list["PDI"] = { "index" : "102", "type" : "2", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Ethernet Filter ID", "ie_value" : "Ethernet Filter ID", "presence" : "C", "tlv_more" : "0", "comment" : "This shall be present if Bidirectional Ethernet filter is required. This IE shall uniquely identify an Ethernet Filter among all the Ethernet Filters provisioned for a given PFCP session."})
ies.append({ "ie_type" : "Ethernet Filter Properties", "ie_value" : "Ethernet Filter Properties", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when provisioning a bidirectional Ethernet Filter the first time (see clause5.13.4)."})
ies.append({ "ie_type" : "MAC address", "ie_value" : "MAC address", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the MAC address.This IE may be present up to 16 times."})
ies.append({ "ie_type" : "Ethertype", "ie_value" : "Ethertype", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Ethertype."})
ies.append({ "ie_type" : "C-TAG", "ie_value" : "C-TAG", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Customer-VLAN tag."})
ies.append({ "ie_type" : "S-TAG", "ie_value" : "S-TAG", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Service-VLAN tag."})
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "SDF Filter", "presence" : "O", "tlv_more" : "7", "comment" : "If packet filtering is required, for Ethernet frames with Ethertype indicating IPv4 or IPv6 payload, this IE shall describe the IP Packet Filter Set.Several IEs with the same IE type may be present to represent a list of SDF filters."})
group_list["Ethernet Packet Filter"] = { "index" : "232", "type" : "132", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address(es) of the DL multicast flow(s) or indicate any IP multicast address.For N4mb, the IP Multicast Address shall be set to the value of IP Multicast Address in the SSM for the MBS Session."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the source specific IP address of the DL multicast flow.Several IEs with the same IE type may be present to represent multiple source specific addresses.If this IE is not present, this indicates any source IP address."})
group_list["IP Multicast Addressing Info within PFCP Session Establishment Request"] = { "index" : "288", "type" : "188", "ies" : ies }
ies = []
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the local F-TEID to match for an incoming packet for redundant transmission.The CP function shall set the CHOOSE (CH) bit to 1 if it requests the UP function to assign a local F-TEID to the PDR."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Local F-TEID for Redundant Transmission uses a different network Instance than the Network Instance used for the Local F-TEID for the primary GTP-U tunnel."})
group_list["Redundant Transmission Parameters"] = { "index" : "355", "type" : "255", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Preceding UL GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the preceding UL GTP-U peer."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the DSCP to use to measure the GTP-U path delay with the preceding UL GTP-U peer."})
group_list["Transport Delay Reporting"] = { "index" : "371", "type" : "271", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall indicate the action to apply to the packets, See clauses 5.2.1 and 5.2.3."})
ies.append({ "ie_type" : "Forwarding Parameters", "ie_value" : "Forwarding Parameters", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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.Several IEs with the same IE type may be present to represent to duplicate the packets to different destinations. See NOTE 1.See table 7.5.2.3-3."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "O", "tlv_more" : "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. "})
ies.append({ "ie_type" : "Redundant Transmission Forwarding Parameters", "ie_value" : "Redundant Transmission Forwarding Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action requests the packets to be duplicated for redundant transmission and the Forwarding Parameters IE is included. 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 for redundant transmission. Except for the parameters included in the Redundant Transmission Parameters IE, the duplicated packets shall apply the same parameters as those indicated in the Forwarding Parameters IE.See table7.5.2.3-4."})
ies.append({ "ie_type" : "MBS Multicast Parameters", "ie_value" : "MBS Multicast Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action is set to FSSM. This requests the MB-UPF to forward the MBS session data to a Low Layer SSM."})
ies.append({ "ie_type" : "Add MBS Unicast Parameters", "ie_value" : "Add MBS Unicast Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action is set to MBSU. This requests the MB-UPF to forward the MBS session data to a remote GTP-U peer for unicast transport.Several IEs with the same IE type may be present to request the MB-UPF to forward the MBS session data to multiple remote GTP-U peers."})
group_list["Create FAR"] = { "index" : "103", "type" : "3", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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/or Port Number when adding a UDP/IP header or an IP header or the C-TAG/S-TAG (for 5GC). See NOTE 2."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "tlv_more" : "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 for EPC, 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 clause5.10 of 3GPPTS23.214[2]. When present for 5GC, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the 5QI, the Priority Level (if explicitly signalled), and optionally the ARP priority level, of the associated QoS flow, as described in clause5.8.2.7 of 3GPPTS23.501[28],"})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "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 / N6-LAN. It may be present if the Destination Interface is set to Core, Access, or CP-Function. See NOTE 2.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", "tlv_more" : "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."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is available and the UP function indicated support of the PDI optimisation feature, (see clause8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause5.2.3.1)."})
ies.append({ "ie_type" : "Proxying", "ie_value" : "Proxying", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if proxying is to be performed by the UP function.When present, this IE shall contain the information that the UPF shall respond to Address Resolution Protocol and / or IPv6 Neighbour Solicitation based on the local cache information for the Ethernet PDUs."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the destination interface, if required by functionalities in the UP Function, e.g. for performance measurements."})
ies.append({ "ie_type" : "Data Network Access Identifier", "ie_value" : "Data Network Access Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present over N16a to link the UL FAR in an UL CL or BP towards a specific local PSA, if more than one local PSA has been inserted by an I-SMF. It may be present over N16a otherwise. This IE shall not be sent over N4.When present, it shall be set to the DNAI associated to the local PSA towards which the UL traffic shall be forwarded. "})
ies.append({ "ie_type" : "IP Address and Port number Replacement", "ie_value" : "IP Address and Port Number Replacement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of replacing the source and destination IP address and Port Number of an (inner) IP packet, and if the source or destination IP address and/or port number of the (Inner) IP packet shall be modified, e.g. for Edge Relocation using EAS IP address and Port number Replacement (see clause5.33.3).This IE shall also be present if the destination IP address and/or port number of the (Inner) IP packet shall be modified, e.g. for EAS Discovery procedure with Local DNS Server/Resolver using Local DNS Server/Resolver IP address and Port number Replacement (see clause5.33.4).(NOTE 3)"})
group_list["Forwarding Parameters"] = { "index" : "104", "type" : "4", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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. See NOTE 1."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level marking", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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"] = { "index" : "105", "type" : "5", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to perform the redundant transmission of the outgoing packet.If present, it shall contain the F-TEID of the remote GTP-U peer for redundant transmission."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the GTP-U tunnel used for redundant transmission uses a different network Instance than the Network Instance used for the primary GTP-U tunnel."})
group_list["Redundant Transmission Forwarding Parameters"] = { "index" : "370", "type" : "270", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "When present, this IE shall identify the Network instance towards which to send the outgoing packet."})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall instruct the MB-UPF to create a GTP-U header using the Low Layer SSM and the C-TEID allocated to the MBS session."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level marking", "presence" : "C", "tlv_more" : "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" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the destination interface, if required by functionalities in the UP Function, e.g. for performance measurements.Several IEs with the same IE type may be present to represent multiple destination interface types (e.g. N3mb and N19mb)."})
group_list["MBS Multicast Parameters"] = { "index" : "401", "type" : "301", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "MBS Unicast Parameters ID", "ie_value" : "MBS Unicast Parameters ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the MBS Unicast Parameters IE."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall identify the Network instance towards which to send the outgoing packet. "})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to request the MB-UPF to add one outer header to the outgoing packet. It shall contain the F-TEID of the remote GTP-U peer when adding a GTP-U/UDP/IP header."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level marking", "presence" : "C", "tlv_more" : "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" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the destination interface, if required by functionalities in the UP Function, e.g. for performance measurements."})
group_list["Add MBS Unicast Parameters"] = { "index" : "402", "type" : "302", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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, or when an SMF instructs an UPF to report the reception of the End Marker packet from the old I-UPF during a Service Request procedure (see clauses 4.2.3.2 and 4.23.4.3 in 3GPPTS23.502[29])."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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 clause5.2.2.2)When present, it shall indicate the Volume Quota value."})
ies.append({ "ie_type" : "Event Threshold", "ie_value" : "Event Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if event-based measurement is used and reporting is required upon reaching an event threshold. When present, it shall indicate the number of events after which the UP function shall report to the CP function for this URR."})
ies.append({ "ie_type" : "Event Quota", "ie_value" : "Event Quota", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if event-based measurement is used and the CP function needs to provision an Event Quota in the UP function (see clause5.2.2.2)When present, it shall indicate the Event Quota value."})
ies.append({ "ie_type" : "Time Threshold", "ie_value" : "Time Threshold", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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 clause5.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", "tlv_more" : "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", "tlv_more" : "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" : "Quota Validity Time", "ie_value" : "Quota Validity Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if reporting is required when the Quota Validity time for a given Quota is over."})
ies.append({ "ie_type" : "Monitoring Time", "ie_value" : "Monitoring Time", "presence" : "O", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE may be present if Monitoring Time IE is present and volume-based measurement is used (see clause5.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", "tlv_more" : "0", "comment" : "This IE may be present if Monitoring Time IE is present and time-based measurement is used (see clause5.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" : "Subsequent Event Threshold", "ie_value" : "Subsequent Event Threshold", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the Monitoring Time IE is present and event-based measurement is used.When present, it shall indicate the number of events after which the UP function shall report to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Event Quota", "ie_value" : "Subsequent Event Quota", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if Monitoring Time IE is present and event-based measurement is used (see clause5.2.2.2).When present, it shall indicate the Event 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", "tlv_more" : "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", "tlv_more" : "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 clause5.2.2.4).Several IEs with the same IE type may be present to represent multiple linked URRs which are related with this URR."})
ies.append({ "ie_type" : "Measurement Information", "ie_value" : "Measurement Information", "presence" : "C", "tlv_more" : "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.-	Immediate Start Time Metering Flag: this flag may be set to 1 if time-based measurement is used and the UP function is requested to start the time metering immediately at receiving the flag. .-	Measurement of Number of Packets Flag: this flag may be set to 1 when the Volume-based measurement applies, to request the UP function to report the number of packets in UL/DL/Total in addition to the measurement in octet.-	Send Start Pause of Charging Flag: this flag may be set to 1 by the CP function if the UP Function is requested to send a Start Pause of Charging indication to the upstream GTP-U entity(s) when the Dropped DL Traffic Threshold is reached.-	Applicable for Start of Pause of Charging Flag: this flag may be set to 1 if the URR is applicable for Start of Pause of Charging, so that the UP function shall stop the usage measurement for the URR when receiving Start Pause of Charging indication from the peer downstream GTP-U entity.-	Control of Inactive Measurement Flag: the flag shall be set to 1 if the CP function requests the UP function to stop or resume the usage measurement for the URR with the ASPOC flag set to 1 according to the value of Inactive Measurement Flag."})
ies.append({ "ie_type" : "Time Quota Mechanism", "ie_value" : "Time Quota Mechanism", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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."})
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID for Quota Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the Volume Quota IE and/or the Time Quota IE and/or Event Quota IE is provisioned in the URR and the UP Function indicated support of the Quota Action feature.When present, it shall contain the identifier of the substitute FAR the UP function shall apply, for the traffic associated to this URR, when exhausting any of these quotas. See NOTE 1, NOTE 3. "})
ies.append({ "ie_type" : "Ethernet Inactivity Timer", "ie_value" : "Ethernet Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Ethernet traffic reporting is used and the SMF requests the UP function to also report inactive UE MAC addresses.When present, it shall contain the duration of the Ethernet inactivity period."})
ies.append({ "ie_type" : "Additional Monitoring Time", "ie_value" : "Additional Monitoring Time", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the time at which the UP function shall re-apply the volume or time or event threshold/quota provisioned in the IE.Several IEs with the same IE type may be present to provide multiple Monitoring Times."})
ies.append({ "ie_type" : "Number of Reports", "ie_value" : "Number of Reports", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function supports the NORP feature. When present, it shall indicate the number of usage reports to be generated by the URR. See also clauses5.2.2.2.1 and 5.2.2.3.1. See NOTE 2."})
ies.append({ "ie_type" : "Application ID", "ie_value" : "Exempted Application ID for Quota Action", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the Volume Quota IE and/or the Time Quota IE and/or Event Quota IE is provisioned in the URR and the UP Function has indicated support of the QUASF feature as specified in clause8.2.25.When present, it shall contain an Application ID matching packets that shall be exempted from applying the FAR ID for Quota Action when the quota has been exhausted.Several IEs with the same IE type may be present to provide multiple Application IDs.See NOTE 4."})
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "Exempted SDF Filter for Quota Action", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present if the Volume Quota IE and/or the Time Quota IE and/or Event Quota IE is provisioned in the URR and the UP Function has indicated support of the QUASF feature as specified in clause8.2.25.When present, it shall contain an SDF Filter matching packets that shall be exempted from applying the FAR ID for Quota Action when the quota has been exhausted.Several IEs with the same IE type may be present to provide multiple SDF Filters.See NOTE 4."})
ies.append({ "ie_type" : "User Plane Inactivity Timer", "ie_value" : "User Plane Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, for a time, volume or event-based measurement, if reporting is required when no packets are received for any PDR(s) associated with the URR during a given inactivity period. See clause5.11.3.When present, it shall contain the duration of the inactivity period."})
group_list["Create URR"] = { "index" : "106", "type" : "6", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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/APN rate control of multiple UEs PDN connections to the same APN."})
ies.append({ "ie_type" : "Gate Status", "ie_value" : "Gate Status", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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.For EPC, 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.For 5GC, this IE may be set to the value of:-	the Session-AMBR, for a QER that is referenced by all the PDRs of the non-GBR QoS flows of a PDU session;-	the QoS Flow MBR, for a QER that is referenced by all the PDRs of a QoS Flow;-	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", "tlv_more" : "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 QoS Flow GBR, for a QER that is referenced by all the PDRs of a QoS Flow (for 5GC);-	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", "tlv_more" : "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, or belonging to the PDU session (5GC) using CIoT EPS Optimizations as described in 3GPPTS23.401[2] and 3GPPTS23.501[28], respectively;-	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 all PDN connections to the same APN, or for Small Data Rate Control (5GC) for a QER related to the PDU session using CIoT EPS Optimizations as described in 3GPPTS23.401[2] and 3GPPTS23.501[28], respectively."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present during the UE requested PDU session establishment, or UE requested PDN connection establishment.When present, the UP function shall first enforce these rules. Only after that shall the UP function enforce the rules in the Packet Rate IE."})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "tlv_more" : "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 clause5.4.5);-	by the PGW-C, for setting the GTP-U Service Class Indicator extension header for service indication towards GERAN (see clause5.4.12)."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS flow identifier shall be inserted or modified by the UPF or shall be inserted by the MB-UPF. (NOTE2)"})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to insert a Reflective QoS Indicator to request reflective QoS for uplink traffic."})
ies.append({ "ie_type" : "Paging Policy Indicator", "ie_value" : "Paging Policy Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF is required to set the Paging Policy Indicator (PPI) in outgoing packets (see clause5.4.3.2 of 3GPPTS23.501[28]).When present, it shall be set to the PPI value to set. "})
ies.append({ "ie_type" : "Averaging Window", "ie_value" : "Averaging Window", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is required to use a different Averaging window than the default one. (NOTE1)"})
ies.append({ "ie_type" : "QER Control Indications", "ie_value" : "QER Control Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the CP function needs to provide the QoS enforcement control information:-	RCSR (Rate Control Status Reporting): the CP function shall set this bit 1 to request the UP function to report the rate control status when the PFCP session is released. "})
ies.append({ "ie_type" : "QER Indications", "ie_value" : "QER Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.-	IQFISN (Insert DL MBS QFI Sequence Number): this IE shall be set to 1 to request the MB-UPF to insert the DL MBS QFI Sequence Number in the PDU Session Container of the MBS data packets (see 3GPPTS38.415[34])."})
group_list["Create QER"] = { "index" : "107", "type" : "7", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.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."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "MT-EDT Control Information", "ie_value" : "MT-EDT Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included to request the SGW-U to report the sum of DL Data Packets Size."})
group_list["Create BAR"] = { "index" : "185", "type" : "85", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Traffic Endpoint for that PFCP session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "O", "tlv_more" : "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 CP function requests the UP function to assign a local F-TEID to the Traffic Endpoint."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to allocate a UE IP address/prefix.If present, this IE shall identify the Network instance to match for the incoming packet. See NOTE1, NOTE2."})
ies.append({ "ie_type" : "Redundant Transmission Parameters", "ie_value" : "Redundant Transmission Detection Parameters", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the information used for the reception of redundant uplink packets on N3/N9 interfaces.See Table7.5.2.2-5."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the UE IP address as the source or destination IP address to match for the incoming packet. (NOTE3).The CP function shall set the CHOOSE IPV4 (CHV4) and/or CHOOSE IPV6 (CHV6) bits to 1 if the UP function supports the allocation of UE IP address/ prefix and the CP function requests the UP function to assign a UE IP address/prefix to the Traffic Endpoint.This IE may also present to identify the IP address of the CP function as the destination IP address to match for the incoming packet, e.g. Radius, Diameter or DHCP signalling packet. (NOTE 6).In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
ies.append({ "ie_type" : "Ethernet PDU Session Information", "ie_value" : "Ethernet PDU Session Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to identify all the (DL) Ethernet packets matching an Ethernet PDU session (see clause5.13.1)."})
ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a PDR if the UPF indicated support of Framed Routing (see clauses 8.2.25 and 5.16). If present, this IE shall describe a framed route.Several IEs with the same IE type may be present to provision a list of framed routes. (NOTE 3)"})
ies.append({ "ie_type" : "Framed-Routing", "ie_value" : "Framed-Routing", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clauses 8.2.25 and 5.16). If present, this IE shall describe the routing method for the UP function for the IP route related to Framed-Routes or Framed-IPv6-Routes. (NOTE 5)"})
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a PDR if the UPF indicated support of Framed Routing (see clauses 8.2.25 and 5.16). If present, this IE shall describe a framed IPv6 route.Several IEs with the same IE type may be present to provision a list of framed IPv6 routes. (NOTE 3)"})
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UPF has indicated it supports MTE feature as specified in clause8.2.25.If present, this IE shall identify the QoS Flow Identifier to match for the incoming packet received from the traffic endpoint.Several IEs with the same IE type may be present to provision a list of QFIs. When present, the full set of applicable QFIs shall be provided."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Source Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the source interface, if required by functionalities in the UP Function, e.g. for performance measurements.(NOTE 4)"})
ies.append({ "ie_type" : "Local Ingress Tunnel", "ie_value" : "Local Ingress Tunnel", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present over N4mb, for Nmb9, or for N6mb if unicast transport is used over N6mb, if Traffic Endpoint ID is present in the DL PDR.If present, this IE shall identify the IP address and the UDP port for a UDP/IP tunnel.The CP function shall set the CHOOSE (CH) bit to 1 if the CP function requests the UP function to assign a local ingress tunnel to the PDR."})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present over N4mb, if multicast transport is used over N6mb, if Traffic Endpoint ID is present in the DL PDR.See Table 7.5.2.2-4."})
ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the PDR is created to receive MBS session data. (NOTE 7)"})
ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. (NOTE7)"})
ies.append({ "ie_type" : "RAT Type", "ie_value" : "RAT Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to provide the UP Function the current RAT Type for the UL PDR(s) for statistics purpose if the PFCP session is established for a MA PDU session."})
group_list["Create Traffic Endpoint"] = { "index" : "227", "type" : "127", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the MAR among all the MARs configured for that PFCP session."})
ies.append({ "ie_type" : "Steering Functionality", "ie_value" : "Steering Functionality", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the applicable traffic steering functionality."})
ies.append({ "ie_type" : "Steering Mode", "ie_value" : "Steering Mode", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the steering mode."})
ies.append({ "ie_type" : "3GPP Access Forwarding Action Information", "ie_value" : "3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision 3GPP access specific forwarding action information if the UE is registered for 3GPP access, except when steering mode is set to Active-Standby, Non-3GPP access is the active access and 3GPP access is not used as Standby access. In the latter case, this IE may be present.(NOTE)"})
ies.append({ "ie_type" : "Non-3GPP Access Forwarding Action Information", "ie_value" : "Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision non-3GPP access specific forwarding action information if the UE is registered for non-3GPP access, except when steering mode is set to Active-Standby, 3GPP access is the active access and Non-3GPP access is not used as Standby access. In the latter case, this IE may be present.(NOTE1)"})
ies.append({ "ie_type" : "Thresholds", "ie_value" : "Threshold Values", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the steering mode is Load Balancing with fixed split percentages or Priority-based and if available.When present, this IE shall contain the RTT and/or a Packet Loss Rate.(NOTE2)"})
ies.append({ "ie_type" : "Steering Mode Indicator", "ie_value" : "Steering Mode Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1:-	ALBI (Autonomous Load Balancing Indicator): this flag shall be set to 1 if the SMF allows the UPF to apply autonomous load-balance when the Steering Mode is Load-Balancing;-	UEAI (UE Assistance Indicator): this flag shall be set to 1 if the SMF allows UE assistant load-balance when the Steering Mode is Load-Balancing.(NOTE2)"})
group_list["Create MAR"] = { "index" : "265", "type" : "165", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the FAR among all the FARs configured for this PFCP session. "})
ies.append({ "ie_type" : "Weight", "ie_value" : "Weight", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if steering mode is set to Load Balancing to identify the weight of the FAR.(NOTE 1) "})
ies.append({ "ie_type" : "Priority", "ie_value" : "Priority", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the steering mode is set to Active-Standby or Priority-based. (NOTE 2)"})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall uniquely identify the URR among all the URRs configured for the PFCP session. This enables the SMF to request separate usage reports for different FARs (i.e. different accesses) (NOTE 3)Several IEs within the same IE type may be present to represent a list of URRs to be associated to the FAR."})
ies.append({ "ie_type" : "RAT Type", "ie_value" : "RAT Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to provide the UP Function the current RAT Type for the DL FAR for statistics purpose."})
group_list["3GPP Access Forwarding Action Information"] = { "index" : "266", "type" : "166", "ies" : ies }
group_list["Non-3GPP Access Forwarding Action Information"] = { "index" : "267", "type" : "167", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the SRR among all the SRRs configured for this PFCP session."})
ies.append({ "ie_type" : "Access Availability Control Information", "ie_value" : "Access Availability Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report when an access type becomes available or not available (see clause5.20.4.2)."})
ies.append({ "ie_type" : "QoS Monitoring per QoS flow Control Information", "ie_value" : "QoS Monitoring per QoS flow Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the per QoS Flow per UE QoS monitoring reporting is triggered.Several IEs within the same IE type may be present to represent a list of QoS Monitoring per QoS flow Control Information for different QoS flows."})
ies.append({ "ie_type" : "Direct Reporting Information", "ie_value" : "Direct Reporting Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF indicated support of the DRQOS feature and if the QoS monitoring events shall be reported by the UPF directly to a Local NEF or AF, or both to the SMF and Local NEF/AF (see clause5.33.5).(NOTE)"})
group_list["Create SRR"] = { "index" : "312", "type" : "212", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Control Information", "ie_value" : "MPTCP Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is an MA PDU session and the MPTCP functionality is required."})
ies.append({ "ie_type" : "ATSSS-LL Control Information", "ie_value" : "ATSSS-LL Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is an MA PDU session and the ATSSS-LL functionality is required."})
ies.append({ "ie_type" : "PMF Control Information", "ie_value" : "PMF Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is an MA PDU session and the PMF functionality is required."})
group_list["Provide ATSSS Control Information"] = { "index" : "320", "type" : "220", "ies" : ies }
ies = []
ies.append({ "ie_type" : "RDS Configuration Information", "ie_value" : "RDS Configuration Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE indicates if the RDS mechanism is supported."})
group_list["Provide RDS Configuration Information"] = { "index" : "361", "type" : "261", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Failed Rule ID", "ie_value" : "Failed Rule ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the rule that failed to be applied."})
ies.append({ "ie_type" : "Cause", "ie_value" : "Failure Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the reason why the rule could not be applied."})
ies.append({ "ie_type" : "Offending IE Information", "ie_value" : "Offending IE Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be included to report the offending IE which caused the rule activation failure, e.g. an unknown predefined rule name included in Activate Predefined Rules IE or an unknown Application ID in the PDI.Several IEs within the same IE type may be present to report multiple offending IEs."})
group_list["Partial Failure Information"] = { "index" : "372", "type" : "272", "ies" : ies }
ies = []
ies.append({ "ie_type" : "DNS Server Address", "ie_value" : "DNS Server Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include a DNS server address.Several IEs with the same IE type may be present to represent multiple DNS server addresses.The order of the IEs in the message indicates the priority, i.e. the first IE shall contain the primary DNS server address and the second IE shall contain the secondary DNS server address."})
ies.append({ "ie_type" : "NBNS Server Address", "ie_value" : "NBNS Server Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include an NBNS server address.Several IEs with the same IE type may be present to represent multiple NBNS server addresses.The order of the IEs in the message indicates the priority, i.e. the first IE shall contain the primary NBNS server address and the second IE shall contain the secondary NBNS server address."})
ies.append({ "ie_type" : "LNS Address", "ie_value" : "LNS Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to include the used Tunnel Server Endpoint, i.e., the LNS IP address, for the PFCP Session."})
group_list["Created L2TP Session"] = { "index" : "379", "type" : "279", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Multicast Transport Information", "ie_value" : "Multicast Transport Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to include a low layer source specific multicast address information (i.e. multicast destination address and related source IP address) and a GTP-U Common Tunnel EndPoint Identifier (C-TEID) if the CP function has requested to allocate such information for multicast transport over N3mb and/or N19mb."})
group_list["MBS Session N4mb Information"] = { "index" : "403", "type" : "303", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. "})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "N19mb DL Tunnel ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the SMF has requested the UPF to allocate a Local F-TEID in the PDI or in the Create Traffic Endpoint IE. (NOTE1)"})
ies.append({ "ie_type" : "MBSN4Resp-Flags", "ie_value" : "MBSN4Resp-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1. NOTE2.-	NN19DT (New N19mb Downlink Tunnel): the UPF shall set this flag if it has allocated a new N19mb DL TEID for the MBS session;-	JMTI (Joined N19mb Multicast Tree Indication): the UPF shall set this flag if it has joined the multicast tree from the MB-UPF;-	N19DTR (N19mb Downlink Tunnel Removal): the UPF shall set this flag if it is about to remove the N19mb DL Tunnel for receiving the MBS session data. "})
group_list["MBS Session N4 Information"] = { "index" : "411", "type" : "311", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "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."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID used for this PDR for the reception of redundant uplink packets on N3/N9 interfaces, if the CP function requested a Local F-TEID to be assigned for redundant transmission."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
ies.append({ "ie_type" : "Local Ingress Tunnel", "ie_value" : "Local Ingress Tunnel", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the Local Ingress Tunnel, this IE shall be present and shall contain the Local Ingress Tunnel to be used for this PDR."})
group_list["Created PDR"] = { "index" : "108", "type" : "8", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Load Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.3.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Load Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.3.3.2 for the description and use of this parameter."})
group_list["Load Control Information"] = { "index" : "151", "type" : "51", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Overload Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Overload Reduction Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Timer", "ie_value" : "Period of Validity", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.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", "tlv_more" : "0", "comment" : "This IE shall be included if any of flag in this IE is set."})
group_list["Overload Control Information"] = { "index" : "154", "type" : "54", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Traffic Endpoint for that PFCP session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "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 Traffic Endpoint."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID to be used for this PDR for the reception of redundant uplink packets on N3/N9 interfaces, if the CP function requested a Local F-TEID to be assigned for redundant transmission."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
ies.append({ "ie_type" : "Local Ingress Tunnel", "ie_value" : "Local Ingress Tunnel", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the Local Ingress Tunnel, this IE shall be present and shall contain the Local Ingress Tunnel to be used for this PDR."})
group_list["Created Traffic Endpoint"] = { "index" : "228", "type" : "128", "ies" : ies }
ies = []
ies.append({ "ie_type" : "DS-TT Port Number", "ie_value" : "DS-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "If the BII bit was set to 1 in the Create Bridge Info for TSC IE, this IE shall be present and shall contain the DS-TT Port Number assigned by the UP function."})
ies.append({ "ie_type" : "5GS User Plane Node", "ie_value" : "5GS User Plane Node", "presence" : "C", "tlv_more" : "0", "comment" : "If the BII bit was set to 1 in the Create Bridge Info for TSC IE, this IE shall be present and shall contain the 5GS User Plane Node assigned by the UP function."})
group_list["Created Bridge Info for TSC"] = { "index" : "295", "type" : "195", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Parameters", "ie_value" : "MPTCP Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the TCI flag in the MPTCP Control Information IE is set to 1 in the Request message and the UPF allocated resources for MPTCP."})
ies.append({ "ie_type" : "ATSSS-LL Parameters", "ie_value" : "ATSSS-LL Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the LLI flag in ATSSS-LL Control Information IE is set to 1 in the Request message and the UPF allocated resources for ATSSS-LL. "})
ies.append({ "ie_type" : "PMF Parameters", "ie_value" : "PMF Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PMFI flag in the PFM Control Information IE is set to 1 in the Request message and the UPF allocated resources for PMF.Several IEs with the same IE type may be present to provide multiple PMF Parameters."})
group_list["ATSSS Control Parameters"] = { "index" : "321", "type" : "221", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Address Information", "ie_value" : "MPTCP Address Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall carry the information of allocated MPTCP address."})
ies.append({ "ie_type" : "UE Link-Specific IP Address", "ie_value" : "UE Link-Specific IP Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall carry the information of allocated UE link-specific IP address for MPTCP."})
group_list["MPTCP Parameters"] = { "index" : "325", "type" : "225", "ies" : ies }
ies = []
ies.append({ "ie_type" : "ATSSS-LL Information", "ie_value" : "ATSSS-LL Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate that resources have been allocated to the ATSSS functionality."})
group_list["ATSSS-LL Parameters"] = { "index" : "326", "type" : "226", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PMF Address Information", "ie_value" : "PMF Address Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the PMF Address Information."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the QoS Flow Identifier of the QoS flow related to the PMF address information."})
group_list["PMF Parameters"] = { "index" : "327", "type" : "227", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be changed."})
ies.append({ "ie_type" : "Precedence", "ie_value" : "Precedence", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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."})
ies.append({ "ie_type" : "Activation Time", "ie_value" : "Activation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR activation time shall be changed. (NOTE 2)"})
ies.append({ "ie_type" : "Deactivation Time", "ie_value" : "Deactivation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR deactivation time shall be changed. (NOTE 2)"})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in an UL PDR controlling UL IGMP/MLD traffic (see clause5.25), if it needs to be changedWhen present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.Several IEs with the same IE type may be present to represent multiple IP multicast flows.When present, the UPF shall replace any IP multicast address(es) previously stored for this PDR by the IP multicast address(es) received in this IE."})
ies.append({ "ie_type" : "Transport Delay Reporting", "ie_value" : "Transport Delay Reporting", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Transport Delay Reporting needs to be changed (e.g. transport delay reporting needs to be activated or deactivated). See Table7.5.2.2-6."})
ies.append({ "ie_type" : "RAT Type", "ie_value" : "RAT Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if there is a RAT change for the UL PDR if the PFCP session is established for a MA PDU session."})
group_list["Update PDR"] = { "index" : "109", "type" : "9", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the FAR to be updated."})
ies.append({ "ie_type" : "Apply Action", "ie_value" : "Apply Action", "presence" : "C", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.4.3-2."})
ies.append({ "ie_type" : "Update Duplicating Parameters", "ie_value" : "Update Duplicating Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.4.3-3.Several IEs with the same IE type may be present to request to duplicate the packets to different destinations."})
ies.append({ "ie_type" : "Redundant Transmission Forwarding Parameters", "ie_value" : "Redundant Transmission Forwarding Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.2.3-4."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the BAR ID associated to the FAR needs to be modified. "})
ies.append({ "ie_type" : "Add MBS Unicast Parameters", "ie_value" : "Add MBS Unicast Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action is set to MBSU to request the MB-UPF to forward the MBS session data to a remote GTP-U peer for unicast transport, if no remote GTP-U peers are provisioned yet in the MB-UPF, or if additional GTP-U peers need to be provisioned. (NOTE).Several IEs with the same IE type may be present to represent multiple remote GTP-U peers.See Table 7.5.2.3-6."})
ies.append({ "ie_type" : "Remove MBS Unicast Parameters", "ie_value" : "Remove MBS Unicast Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the MB-SMF to request the MB-UPF to delete a remote GTP-U peer to stop forwarding the MBS session data to that remote GTP-U peer for unicast transport.Several IEs with the same IE type may be present to represent to delete multiple remote GTP-U peers."})
group_list["Update FAR"] = { "index" : "110", "type" : "10", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "C", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed."})
ies.append({ "ie_type" : "Redirect Information", "ie_value" : "Redirect Information", "presence" : "C", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. SeeNOTE1."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. SeeNOTE1."})
ies.append({ "ie_type" : "Header Enrichment", "ie_value" : "Header Enrichment", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "PFCPSMReq-Flags", "ie_value" : "PFCPSMReq-Flags", "presence" : "C", "tlv_more" : "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. "})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is changed and the UP function indicated support of the PDI optimization feature, (see clause8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause5.2.3.1)."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the 3GPP interface type of the destination interface, if the value has changed."})
ies.append({ "ie_type" : "Data Network Access Identifier", "ie_value" : "Data Network Access Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be provided over N16a if it is changed. This IE shall not be sent over N4. "})
ies.append({ "ie_type" : "IP Address and Port number Replacement", "ie_value" : "IP Address and Port Number Replacement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. "})
group_list["Update Forwarding Parameters"] = { "index" : "111", "type" : "11", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "C", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. SeeNOTE1."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed."})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. SeeNOTE1."})
group_list["Update Duplicating Parameters"] = { "index" : "205", "type" : "105", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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, or when an SMF instructs an UPF to report the reception of the End Marker packet from the old I-UPF during a Service Request procedure (see clauses 4.2.3.2 and 4.23.4.3 in 3GPPTS23.502[29])."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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" : "Event Threshold", "ie_value" : "Event Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Event Threshold needs to be modified.When present, it shall indicate the number of events after which the UP function shall report to the CP function for this URR."})
ies.append({ "ie_type" : "Event Quota", "ie_value" : "Event Quota", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Event Quota needs to be modified.When present, it shall indicate the Event Quota value."})
ies.append({ "ie_type" : "Quota Holding Time", "ie_value" : "Quota Holding Time", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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" : "Quota Validity Time", "ie_value" : "Quota Validity Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Quota Validity time was not sent earlier or quota validity time value needs to be modified."})
ies.append({ "ie_type" : "Monitoring Time", "ie_value" : "Monitoring Time", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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" : "Subsequent Event Threshold", "ie_value" : "Subsequent Event Threshold", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the Subsequent Event Threshold needs to be modified.When present, it shall indicate the number of events after which the UP function shall report to the CP function for this URR for the period after the Monitoring Time."})
ies.append({ "ie_type" : "Subsequent Event Quota", "ie_value" : "Subsequent Event Quota", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the Subsequent Event Quota needs to be modified.When present, it shall indicate the Event 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", "tlv_more" : "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", "tlv_more" : "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 clause5.2.2.4).Several IEs with the same IE type may be present to represent multiple linked URRs which are related with this URR."})
ies.append({ "ie_type" : "Measurement Information", "ie_value" : "Measurement Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if any of the following flag is set to 1 or if the change of flag(s) from 1 to 0 results in the IE becoming set to all zeros.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.-	Immediate Start Time Metering Flag: this flag may be set to 1 if time-based measurement is used and the UP function is requested to start the time metering immediately at receiving the flag.-	Send Start Pause of Charging Flag: this flag may be set to 1 by the CP function if the UP Function is requested to send a Start Pause of Charging indication to the upstream GTP-U entity(s) when the Dropped DL Traffic Threshold is reached.-	Applicable for Start of Pause of Charging Flag: this flag may be set to 1 if the URR is applicable for Start of Pause of Charging, so that the UP function shall stop the usage measurement for the URR when receiving Start Pause of Charging indication from the peer downstream GTP-U entity.-	Control of Inactive Measurement Flag: the flag shall be set to 1 if the CP function requests the UP function to stop or resume the usage measurement for the URR with the ASPOC flag set to 1 according to the value of Inactive Measurement Flag."})
ies.append({ "ie_type" : "Time Quota Mechanism", "ie_value" : "Time Quota Mechanism", "presence" : "C", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be included if the Aggregated URRs IE needs to be modified. See Table 7.5.2.4-2.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."})
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID for Quota Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the FAR ID for Quota Action IE needs to be modified. This IE may be present if the Volume Quota IE or the Time Quota IE or Event Quota IE is newly provisioned in the URR and the UP Function indicated support of the Quota Action.When present, it shall contain the identifier of the substitute FAR the UP function shall apply, for the traffic associated to this URR, when exhausting any of these quotas. See NOTE 1, NOTE 2. "})
ies.append({ "ie_type" : "Ethernet Inactivity Timer", "ie_value" : "Ethernet Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Ethernet Inactivity Timer needs to be modified. When present, it shall contain the duration of the Ethernet inactivity period."})
ies.append({ "ie_type" : "Additional Monitoring Time", "ie_value" : "Additional Monitoring Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the additional 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 or event threshold/quota. See Table7.5.2.4-3.The CP function shall provide the full set of Additional Monitoring Times IE(s).The UP function shall replace any Additional Monitoring Times IE(s) provisioned earlier by the new set of received IE(s)."})
ies.append({ "ie_type" : "Number of Reports", "ie_value" : "Number of Reports", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the Number of Reports need to be changed. When present, it shall indicate the number of usage reports to be generated by the URR. See also clauses5.2.2.2.1 and 5.2.2.3.1."})
ies.append({ "ie_type" : "Application ID", "ie_value" : "Exempted Application ID for Quota Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Application ID for Quota Action needs to be changed.When present, it shall contain an Application ID matching packets that shall be exempted from applying the FAR ID for Quota Action when the quota has been exhausted.Several IEs with the same IE type may be present to provide multiple Application IDs.The CP function shall always provide a complete list of Application IDs.See NOTE 3."})
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "Exempted SDF Filter for Quota Action", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the SDF Filter for Quota Action needs to be changed.When present, it shall contain a SDF Filter matching packets that shall be exempted from applying the FAR ID for Quota Action when the quota has been exhausted.Several IEs with the same IE type may be present to provide multiple SDF Filters.The CP function shall always provide a complete list of SDF Filters.See NOTE 3."})
ies.append({ "ie_type" : "User Plane Inactivity Timer", "ie_value" : "User Plane Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the User Plane Inactivity Timer needs to be modified.When present, it shall contain the duration of the User Plane Inactivity Timer."})
group_list["Update URR"] = { "index" : "113", "type" : "13", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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.For EPC, 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.For 5GC, this IE may be set to the value of:-	the Session-AMBR, for a QER that is referenced by all the PDRs of the non-GBR QoS flows of a PDU session;-	the QoS Flow MBR, for a QER that is referenced by all the PDRs of a QoS Flow;-	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", "tlv_more" : "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 QoS Flow GBR, for a QER that is referenced by all the PDRs of a QoS Flow (for 5GC);-	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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the state of the Reflective QoS needs to be modified (activate if inactive, or deactivate the active Reflective QoS)."})
ies.append({ "ie_type" : "Paging Policy Indicator", "ie_value" : "Paging Policy Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "Averaging Window", "ie_value" : "Averaging Window", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is required to modify the Averaging Window. (NOTE 2)"})
ies.append({ "ie_type" : "QER Control Indications", "ie_value" : "QER Control Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the CP function need to provide the updated QoS enforcement control information:-	RCSR (Rate Control Status Reporting): the CP function shall set this bit 1 to request the UP function to report the rate control status when the PFCP session is released."})
group_list["Update QER"] = { "index" : "114", "type" : "14", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR to be deleted."})
group_list["Remove PDR"] = { "index" : "115", "type" : "15", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the FAR to be deleted."})
group_list["Remove FAR"] = { "index" : "116", "type" : "16", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the URR to be deleted."})
group_list["Remove URR"] = { "index" : "117", "type" : "17", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the QER to be deleted."})
group_list["Remove QER"] = { "index" : "118", "type" : "18", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the URR being queried."})
group_list["Query URR"] = { "index" : "177", "type" : "77", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.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."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "MT-EDT Control Information", "ie_value" : "MT-EDT Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included to request the SGW-U to report the sum of DL Data Packets Size."})
group_list["Update BAR Session Modification Request"] = { "index" : "186", "type" : "86", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the BAR to be deleted."})
group_list["Remove BAR"] = { "index" : "187", "type" : "87", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the Traffic Endpoint to be deleted."})
group_list["Remove Traffic Endpoint"] = { "index" : "230", "type" : "130", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the MAR to be deleted."})
group_list["Remove MAR"] = { "index" : "268", "type" : "168", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the MAR to be updated."})
ies.append({ "ie_type" : "Steering Functionality", "ie_value" : "Steering Functionality", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Steering Mode", "ie_value" : "Steering Mode", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Update 3GPP Access Forwarding Action Information", "ie_value" : "Update 3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the 3GPP Access Forwarding Action Information was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove 3GPP Access Forwarding Action Information that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "Update Non-3GPP Access Forwarding Action Information", "ie_value" : "Update Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Non-3GPP Access Forwarding Action Information was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove the Non-3GPP Access Forwarding Action Information that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "3GPP Access Forwarding Action Information", "ie_value" : "3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision 3GPP access specific forwarding action information when this access is added, i.e. when the UE registers to 3GPP access.See Table7.5.2.8-2. "})
ies.append({ "ie_type" : "Non-3GPP Access Forwarding Action Information", "ie_value" : "Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision Non-3GPP access specific forwarding action information when this access is added, i.e. when the UE registers to non-3GPP access.See Table7.5.2.8-3. "})
ies.append({ "ie_type" : "Thresholds", "ie_value" : "Threshold values", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Steering Mode Indicator", "ie_value" : "Steering Mode Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if any of the following flag is set to 1 or if the change of flag(s) from 1 to 0 results in the IE becoming set to all zeros.Applicable flags are:-	ALBI (Autonomous Load Balancing Indicator): this flag shall be set to 1 if the SMF allows the UPF to apply autonomous load-balance when the Steering Mode is Load-Balancing;-	UEAI (UE Assistance Indicator): this flag shall be set to 1 if the SMF allows UE assistant load-balance when the Steering Mode is Load-Balancing."})
group_list["Update MAR"] = { "index" : "269", "type" : "169", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. "})
ies.append({ "ie_type" : "Weight", "ie_value" : "Weight", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Priority", "ie_value" : "Priority", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a measurement action shall be applied or no longer applied to packets for this access.When present, this IE shall contain the list of all the URR IDs to be associated to this access."})
ies.append({ "ie_type" : "RAT Type", "ie_value" : "RAT Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if it is changed."})
group_list["Update 3GPP Access Forwarding Action Information"] = { "index" : "275", "type" : "175", "ies" : ies }
group_list["Update Non-3GPP Access Forwarding Action Information"] = { "index" : "276", "type" : "176", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "User Plane Node Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain an User Plane Node Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number. "})
group_list["TSC Management Information IE within PFCP Session Modification Request"] = { "index" : "299", "type" : "199", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the SRR to be deleted."})
group_list["Remove SRR"] = { "index" : "311", "type" : "211", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the SRR among all the SRRs configured for that PFCP session"})
ies.append({ "ie_type" : "Access Availability Control Information", "ie_value" : "Access Availability Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Availability Control Information needs to be modified. See Table7.5.2.9-2.The CP function shall provide the full Access Availability Control Information IE. The UP function shall replace the Access Availability Control Information IE provisioned earlier, if any, by the new received IE."})
ies.append({ "ie_type" : "QoS Monitoring per QoS flow Control Information", "ie_value" : "QoS Monitoring per QoS flow Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS Monitoring per QoS flow Control Information needs to be modified. See Table 7.5.2.9-3.The CP function shall provide the full set of QoS Monitoring per QoS flow Control Information IE(s). The UP function shall replace any QoS Monitoring per QoS flow Control Information IE(s) provisioned earlier by the new set of received IE(s).Several IEs within the same IE type may be present to represent a list of QoS Monitoring per QoS flow Control Information for different QoS flows."})
ies.append({ "ie_type" : "Direct Reporting Information", "ie_value" : "Direct Reporting Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Direct Reporting Information IE needs to be modified. See Table7.5.2.9-4."})
group_list["Update SRR"] = { "index" : "313", "type" : "213", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAC Addresses Detected", "ie_value" : "MAC Addresses Detected", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present if one or more MAC addresses need to be associated to the PDU session.Several IEs with the same IE type may be present to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
group_list["Ethernet Context Information"] = { "index" : "354", "type" : "254", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the QER being queried for its Packet Rate Status"})
group_list["Query Packet Rate Status IE within PFCP Session Modification Request"] = { "index" : "363", "type" : "263", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.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", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "tlv_more" : "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."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in a PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. "})
group_list["Usage Report Session Modification Response"] = { "index" : "178", "type" : "78", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "User Plane Node Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain an User Plane Node Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number."})
group_list["TSC Management Information IE within PFCP Session Modification Response"] = { "index" : "300", "type" : "200", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify a QER in a PFCP session."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the remaining validity time and the remaining number of UL/DL packets that still can be sent."})
group_list["Packet Rate Status Report IE within PFCP Session Modification Response"] = { "index" : "364", "type" : "264", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID to be used for this PDR for the reception of redundant uplink packets on the N3/N9 interfaces."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "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."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates additional UE IP address/prefix (upon receiving a Update PDR in the corresponding PFCP Session Modification Request message from the CP function), this IE shall be present and shall contain the complete list of UE IP address / prefix assigned by the UP function for this PFCP session.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
group_list["Updated PDR"] = { "index" : "356", "type" : "256", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify a QER in a PFCP session."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the remaining validity time and the remaining number of UL/DL packets that still can be sent."})
group_list["Packet Rate Status Report"] = { "index" : "352", "type" : "252", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.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", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "tlv_more" : "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."})
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. See Table 7.5.8.3-3."})
group_list["Usage Report Session Deletion Response"] = { "index" : "179", "type" : "79", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR for which downlink data packets have been received or discarded at the UP function.More than one IE with this type may be included to represent multiple PDRs having received or discarded downlink data packets."})
ies.append({ "ie_type" : "Downlink Data Service Information", "ie_value" : "Downlink Data Service Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included for a PFCP session with an IP PDN type, if the UP function supports the Paging Policy Differentiation feature (see clause4.9 of 3GPPTS23.401[14]) and clause5.4.3.2 of 3GPPTS23.501[28]).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]).For 5GC, this IE shall also be included over N4, for each PDR and for each packet that triggers a Downlink Data Notification, if the QFI of the downlink data packet is available.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."})
ies.append({ "ie_type" : "DL Data Packets Size", "ie_value" : "DL Data Packets Size", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SGW-U supports the MT-EDT feature and is requested to report the sum of the DL Data Packets Size. "})
ies.append({ "ie_type" : "Data Status", "ie_value" : "DL Data Status", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the first downlink data packet has been buffered or discarded at the UP function for downlink data delivery status notification."})
group_list["Downlink Data Report"] = { "index" : "183", "type" : "83", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.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", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or  MAC Addresses Reporting.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", "tlv_more" : "0", "comment" : "This IE shall be present if a volume measurement needs to be reported. (NOTE 2)"})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported. (NOTE 2)"})
ies.append({ "ie_type" : "Application Detection Information", "ie_value" : "Application Detection Information", "presence" : "C", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "tlv_more" : "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."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in a PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Event Time Stamp", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if the report is related to an event.When present, it shall be set to the time when the event occurs.Several IEs with the same IE type may be present to report multiple occurrences for an event for this URR ID."})
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. See Table 7.5.8.3-3."})
ies.append({ "ie_type" : "Join IP Multicast Information IE within Usage Report", "ie_value" : "Join IP Muticast Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report that it has added the PDU session to the DL replication tree of a new IP multicast flow.Several IEs with the same IE type may be present to report multiple IP multicast flows added to the PDU session."})
ies.append({ "ie_type" : "Leave IP Multicast Information IE within Usage Report", "ie_value" : "Leave IP Muticast Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report that it has removed the PDU session from the DL replication tree of an IP multicast flow.Several IEs with the same IE type may be present to report multiple IP multicast flows removed from the PDU session."})
ies.append({ "ie_type" : "Predefined Rules Name", "ie_value" : "Predefined Rules Name", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to identify a predefined rule if the usage report is generated for a predefined URR which was activated via a Activate Predefined Rules IE in a Create PDR IE or an Update PDR IE.Several IEs with the same IE type may be present to represent multiple Predefined Rules with which the URR is associated."})
group_list["Usage Report Session Report Request"] = { "index" : "180", "type" : "80", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "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", "tlv_more" : "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."})
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "O", "tlv_more" : "0", "comment" : "When present, it shall contain the PDR ID which the application traffic matches."})
group_list["Application Detection Information"] = { "index" : "168", "type" : "68", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAC Addresses Detected", "ie_value" : "MAC Addresses Detected", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been detected.When present, it shall identify the MAC (Ethernet) addresses newly detected as source address of frames sent UL by the UE.Several IEs with the same IE type may be present to to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
ies.append({ "ie_type" : "MAC Addresses Removed", "ie_value" : "MAC Addresses Removed", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been removed.When present, it shall identify the MAC (Ethernet) addresses that have been inactive for a duration exceeding the Ethernet inactivity Timer.Several IEs with the same IE type may be present to to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
group_list["Ethernet Traffic Information"] = { "index" : "243", "type" : "143", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address of the DL multicast flow added to the PDU session."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall contain the source specific IP address of the DL multicast flow added to the PDU session, if available.Several IEs with the same IE type may be present to represent multiple source specific addresses."})
group_list["Join IP Multicast Information IE within Usage Report"] = { "index" : "289", "type" : "189", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address of the DL multicast flow removed from the PDU session."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall contain the source specific IP address of the DL multicast flow removed from the PDU session, if available.Several IEs with the same IE type may be present to represent multiple source specific addresses."})
group_list["Leave IP Multicast Information IE within Usage Report"] = { "index" : "290", "type" : "190", "ies" : ies }
ies = []
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Remote F-TEID", "presence" : "M", "tlv_more" : "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"] = { "index" : "199", "type" : "99", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "User Plane Node Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain an User Plane Node Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number."})
group_list["TSC Management Information IE within PFCP Session Report Request"] = { "index" : "301", "type" : "201", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the SRR for which usage is reported."})
ies.append({ "ie_type" : "Access Availability Report", "ie_value" : "Access Availability Report", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if change of access availability needs to be reported. When present, this IE shall indicate an access type and whether the access type has become available or unavailable."})
ies.append({ "ie_type" : "QoS Monitoring Report", "ie_value" : "QoS Monitoring Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Report Type indicates a QoS Monitoring Report.Several IEs within the same IE type may be present to represent a list of QoS Monitoring Reports, e.g. for different QoS flows."})
group_list["Session Report"] = { "index" : "314", "type" : "214", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Access Availability Information", "ie_value" : "Access Availability Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate an access type and whether the access type has become available or not available.Up to two IEs with the same IE type may be present to report access availability changes for 3GPP and non-3GPP accesses."})
group_list["Access Availability Report"] = { "index" : "318", "type" : "218", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the QoS Flow Identifier for which QoS monitoring is reported."})
ies.append({ "ie_type" : "QoS Monitoring Measurement", "ie_value" : "QoS Monitoring Measurement", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the measured packet delay(s)."})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
group_list["QoS Monitoring Report"] = { "index" : "347", "type" : "247", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "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", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.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", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the DL Buffering Duration parameter (see clause8.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", "tlv_more" : "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."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
group_list["Update BAR PFCP Session Report Response"] = { "index" : "112", "type" : "12", "ies" : ies }
