[PFCP] Allow up to 8 framed routes for each IP type

This commit is contained in:
mitmitmitm 2023-01-10 12:22:09 +01:00 committed by Sukchan Lee
parent ff261681c0
commit 337a4e5159
5 changed files with 20 additions and 10 deletions

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by pfcp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-11-26 23:47:22.086824 by acetcom
* Created on: 2023-01-10 12:02:27.807637 by mitmitmitm
* from 29244-g91-modified.docx
******************************************************************************/
@ -2189,8 +2189,10 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_pdi =
&ogs_pfcp_tlv_desc_ethernet_packet_filter,
&ogs_pfcp_tlv_desc_qfi,
&ogs_pfcp_tlv_desc_framed_route,
&ogs_tlv_desc_more8,
&ogs_pfcp_tlv_desc_framed_routing,
&ogs_pfcp_tlv_desc_framed_ipv6_route,
&ogs_tlv_desc_more8,
&ogs_pfcp_tlv_desc__interface_type,
&ogs_pfcp_tlv_desc_ip_multicast_addressing_info_within_pfcp_session_establishment_request,
NULL,
@ -3099,8 +3101,10 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_traffic_endpoint =
&ogs_pfcp_tlv_desc_ue_ip_address,
&ogs_pfcp_tlv_desc_ethernet_pdu_session_information,
&ogs_pfcp_tlv_desc_framed_route,
&ogs_tlv_desc_more8,
&ogs_pfcp_tlv_desc_framed_routing,
&ogs_pfcp_tlv_desc_framed_ipv6_route,
&ogs_tlv_desc_more8,
&ogs_pfcp_tlv_desc_qfi,
&ogs_pfcp_tlv_desc__interface_type,
NULL,

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by pfcp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-11-26 23:47:22.074293 by acetcom
* Created on: 2023-01-10 12:02:27.782476 by mitmitmitm
* from 29244-g91-modified.docx
******************************************************************************/
@ -889,9 +889,9 @@ typedef struct ogs_pfcp_tlv_pdi_s {
ogs_pfcp_tlv_ethernet_pdu_session_information_t ethernet_pdu_session_information;
ogs_pfcp_tlv_ethernet_packet_filter_t ethernet_packet_filter;
ogs_pfcp_tlv_qfi_t qfi;
ogs_pfcp_tlv_framed_route_t framed_route;
ogs_pfcp_tlv_framed_route_t framed_route[8];
ogs_pfcp_tlv_framed_routing_t framed_routing;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route[8];
ogs_pfcp_tlv__interface_type_t source_interface_type;
ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_t ip_multicast_addressing_info;
} ogs_pfcp_tlv_pdi_t;
@ -1364,9 +1364,9 @@ typedef struct ogs_pfcp_tlv_create_traffic_endpoint_s {
ogs_pfcp_tlv_redundant_transmission_parameters_t redundant_transmission_detection_parameters;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
ogs_pfcp_tlv_ethernet_pdu_session_information_t ethernet_pdu_session_information;
ogs_pfcp_tlv_framed_route_t framed_route;
ogs_pfcp_tlv_framed_route_t framed_route[8];
ogs_pfcp_tlv_framed_routing_t framed_routing;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route[8];
ogs_pfcp_tlv_qfi_t qfi;
ogs_pfcp_tlv__interface_type_t source_interface_type;
} ogs_pfcp_tlv_create_traffic_endpoint_t;

View File

@ -89,9 +89,11 @@ ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "prese
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 clause 5.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. "})
ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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)"})
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 DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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 clause 8.2.25). If present, this IE shall describe a framed route. "})
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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 5)"})
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 DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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 5)"})
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.Several IEs with the same IE type may be present to represent multiple IP multicast flows."})
group_list["PDI"] = { "index" : "102", "type" : "2", "ies" : ies }
@ -206,9 +208,9 @@ ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "p
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 source or destination IP address to match for the incoming packet. (NOTE 3)The CP function shall set the CHOOSE (CH) bit 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."})
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 clause 5.13.1)."})
ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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 clause 8.2.25). If present, this IE shall describe the framed routing associated to a framed route. "})
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "7", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). 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 clause 8.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)"})
group_list["Create Traffic Endpoint"] = { "index" : "227", "type" : "127", "ies" : ies }

View File

@ -171,6 +171,9 @@ def get_cells(cells):
tlv_more = "3"
if ie_type == 'SDF Filter':
tlv_more = "7"
if (ie_type == 'Framed-Route' or
ie_type == 'Framed-IPv6-Route'):
tlv_more = "7"
if (ie_type == 'Usage Report Session Report Request' or
ie_type == 'Usage Report Session Deletion Response' or
ie_type == 'Usage Report Session Modification Response'):

View File

@ -50,6 +50,7 @@ extern "C" {
#define OGS_MAX_NUM_OF_FLOW_IN_BEARER 16
#define OGS_MAX_NUM_OF_GTPU_RESOURCE 4
#define OGS_MAX_NUM_OF_FRAMED_ROUTES_IN_PDI 8
#define OGS_MAX_SDU_LEN OGS_HUGE_LEN
#define OGS_MAX_PKT_LEN 2048