Apparatus, method and computer program
By extracting and sorting elements from the NF profile list in a wireless communication system, the nonlinear search algorithm is used to solve the problem of inefficient linear search in the prior art, and a more efficient search process is achieved.
Patent Information
- Application Number
- CN202411087051.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-11
- Filing Date
- 2024-08-08
- Publication Date
- 2025-02-18
AI Technical Summary
Existing wireless communication systems use linear search algorithms to lead to computational intensive and inefficient when processing NF profile lists of large structured data types, especially when searching in large lists.
Searches are allowed using a nonlinear search algorithm by determining from multiple lists of elements and providing information of the sorted list, including indications of the sorting order, to the network function. The device includes components for receiving information and performing nonlinear searches, supporting the sorting of structured data types such as maps and arrays.
By using a nonlinear search algorithm, the calculation steps of searching in large lists are reduced, the search efficiency and performance are improved, and the processing process of NF profile lists is optimized.
Smart Images

Figure CN119485227A_ABST
Abstract
Description
Technical Field
[0001] Various example embodiments of the present disclosure relate to methods, apparatus, systems and computer programs, and particularly (but not exclusively) to support of non-linear search algorithms in NF profile lists. Background Art
[0002] A communication system may be viewed as a facility that enables a communication session between two or more entities (such as user terminals, base stations, and / or other nodes) by providing a carrier wave between the various entities involved in the communication path. A communication system may be provided, for example, by means of a communication network and one or more compatible communication devices. A communication session may include, for example, communication of data for carrying the communication, such as voice, video, electronic mail (email), text messaging, multimedia and / or content data, etc. Non-limiting examples of the services provided include two-way or multi-way calls, data communications or multimedia services, and access to a data network system (such as the Internet).
[0003] In a wireless communication system, at least a portion of a communication session between at least two stations occurs over a wireless link. Examples of wireless systems include public land mobile networks (PLMNs), satellite-based communication systems, and different wireless local networks, such as wireless local area networks (WLANs). Some wireless systems can be divided into cells and are therefore often referred to as cellular systems.
[0004] A user can access the communication system through an appropriate communication device or terminal. The user's communication device may be referred to as a user equipment (UE) or user device. The communication device is provided with appropriate signal receiving and transmission means for implementing communication (e.g., enabling access to a communication network or communicating directly with other users). The communication device can access a carrier provided by a base station (e.g., a base station of a cell) and transmit and / or receive communications on the carrier.
[0005] Communication systems and associated equipment typically operate according to a given standard or specification that states what the different entities associated with the system are allowed to do and how it should be achieved. Communication protocols and / or parameters that can be used for the connection are typically defined. An example of a communication system is the Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (UTRAN) (3G radio). Other examples of communication systems are the Long Term Evolution (LTE) of the Universal Mobile Telecommunications System (UMTS) radio access technology and the so-called 5G or New Radio (NR) networks. NR is being standardized by the Third Generation Partnership Project (3GPP). Other examples of communication systems include Advanced 5G (NR Rel-18 and above) and 6G. Summary of the invention
[0006] Several aspects of the various examples described in the subject disclosure are detailed below:
[0007] In a first aspect, an apparatus is provided, comprising: means for determining at least one ordered list of elements from a plurality of lists of elements; and means for providing information including the at least one ordered list to a network function, the information including an indication of the ordered list.
[0008] The information may include an indication of the sort order of the sorted list.
[0009] The elements of the sorted list may comprise a structured data type comprising a plurality of attributes, and the indication of the sort order may comprise an indication of an order in which the attributes of the structured data type are considered in the sorted list.
[0010] The structured data type may include at least one of a map or an array.
[0011] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0012] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0013] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0014] The indication of the sort order may indicate that the array is to be used for sorting.
[0015] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0016] The sort order may be pre-configured at the device.
[0017] The apparatus may include a network function service producer, and the network function may include a network repository function.
[0018] The apparatus may comprise a network repository function, and the network function may comprise a network function service consumer or a service communication agent.
[0019] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0020] This information may include a network capability profile.
[0021] In a second aspect, an apparatus is provided, comprising: means for receiving information at a network function, the information comprising at least one sorted list of elements and an indication of the sorted list; and means for performing a search for elements of the sorted list using a non-linear search algorithm.
[0022] The information may include an indication of the sort order of the sorted list.
[0023] The elements of the sorted list may comprise a structured data type comprising a plurality of attributes. The indication of the sort order may comprise an indication of the order in which the attributes of the structured data type are considered in the sorted list.
[0024] The structured data type may include at least one of a map or an array.
[0025] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0026] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0027] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0028] The indication of the sort order may indicate that the array is to be used for sorting.
[0029] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0030] The apparatus may include a network repository function, and the apparatus may include means for receiving information from a network function service producer.
[0031] The apparatus may include a network function service consumer or a service communication agent, and the apparatus may include means for receiving information from a network repository function.
[0032] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0033] This information may include a network capability profile.
[0034] In a third aspect, a method is provided, the method comprising determining at least one ordered list of elements from a plurality of lists of elements; and providing information including the at least one ordered list to a network function, the information including an indication of the ordered list.
[0035] The information may include an indication of the sort order of the sorted list.
[0036] The elements of the sorted list may include a structured data type including a plurality of attributes, and the indication of the sort order may include an indication of an order in which the attributes of the structured data type are considered in the sorted list.
[0037] The structured data type may include at least one of a map or an array.
[0038] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0039] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0040] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0041] The indication of the sort order may indicate that the array is to be used for sorting.
[0042] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0043] The sort order may be pre-configured at the device.
[0044] The method may be performed at an apparatus comprising a network function service producer, and the network function may include a network repository function.
[0045] The method may be performed at an apparatus comprising a network repository function, and the network function may include a network function service consumer or a service communication agent.
[0046] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0047] This information may include a network capability profile.
[0048] In a fourth aspect, a method is provided, the method comprising receiving information at a network function, the information comprising at least one sorted list of elements and an indication of the sorted list; and performing a search for elements of the sorted list using a non-linear search algorithm.
[0049] The information may include an indication of the sort order of the sorted list.
[0050] The elements of the sorted list may comprise a structured data type comprising a plurality of attributes. The indication of the sort order may comprise an indication of the order in which the attributes of the structured data type are considered in the sorted list.
[0051] The structured data type may include at least one of a map or an array.
[0052] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0053] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0054] When the structured data type is an array, elements of the array may include further structured data types, and the data may be sorted in ascending or descending order based on the indication of the sort order.
[0055] The indication of the sort order may indicate that the array is to be used for sorting.
[0056] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0057] The method may be performed at an apparatus comprising a network repository function, and the method may include receiving information from a network function service producer.
[0058] The method may be performed at an apparatus comprising a network function service consumer or a service communication agent, and the method may include receiving the information from a network repository function.
[0059] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0060] This information may include a network capability profile.
[0061] In a fifth aspect, a device is provided, comprising at least one processor and at least one memory, wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the device to at least: determine at least one sorted list of elements from a plurality of lists of elements; and provide information including at least one sorted list to a network function, the information including an indication of the sorted list.
[0062] The information may include an indication of the sort order of the sorted list.
[0063] The elements of the sorted list may include a structured data type including a plurality of attributes, and the indication of the sort order may include an indication of an order in which the attributes of the structured data type are considered in the sorted list.
[0064] The structured data type may include at least one of a map or an array.
[0065] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0066] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0067] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0068] The indication of the sort order may indicate that the array is to be used for sorting.
[0069] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0070] The sort order may be pre-configured at the device.
[0071] The apparatus may include a network function service producer, and the network function may include a network repository function.
[0072] The apparatus may comprise a network repository function, and the network function may comprise a network function service consumer or a service communication agent.
[0073] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0074] This information may include a network capability profile.
[0075] In a sixth aspect, a device is provided, comprising at least one processor and at least one memory, wherein the at least one memory stores instructions which, when executed by the at least one processor, cause the device to receive information at least at a network function, the information comprising at least one sorted list of elements and an indication of the sorted list, and to perform a search for elements of the sorted list using a non-linear search algorithm.
[0076] The information may include an indication of the sort order of the sorted list.
[0077] The elements of the ordered list may include a structured data type including a plurality of attributes.
[0078] The indication of the sort order may include an indication of the order in which the attributes of the structured data type are considered in the sorted list.
[0079] The structured data type may include at least one of a map or an array.
[0080] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0081] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0082] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0083] The indication of the sort order may indicate that the array is to be used for sorting.
[0084] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0085] The apparatus may comprise a network repository functionality, and the apparatus may be caused to receive the information from a network function service producer.
[0086] The apparatus may comprise a network function service consumer or a service communication agent, and the apparatus may be caused to receive information from a network repository function.
[0087] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0088] This information may include a network capability profile.
[0089] In a seventh aspect, there is provided a computer-readable medium comprising instructions which, when executed by an apparatus, cause the apparatus to at least: determine at least one sorted list of elements from a plurality of lists of elements; and provide information comprising the at least one sorted list to a network function, the information comprising an indication of the sorted list.
[0090] The information may include an indication of the sort order of the sorted list.
[0091] The elements of the sorted list may include a structured data type including a plurality of attributes, and the indication of the sort order may include an indication of an order in which the attributes of the structured data type are considered in the sorted list.
[0092] The structured data type may include at least one of a map or an array.
[0093] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0094] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0095] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0096] The indication of the sort order may indicate that the array is to be used for sorting.
[0097] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0098] The sort order may be pre-configured at the device.
[0099] The apparatus may include a network function service producer, and the network function may include a network repository function.
[0100] The apparatus may comprise a network repository function, and the network function may comprise a network function service consumer or a service communication agent.
[0101] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0102] This information may include a network capability profile.
[0103] In an eighth aspect, a computer-readable medium is provided comprising instructions which, when executed by an apparatus, cause the apparatus to at least perform: receiving information at a network function, the information comprising at least one sorted list of elements and an indication of the sorted list; and performing a search for elements of the sorted list using a non-linear search algorithm.
[0104] The information may include an indication of the sort order of the sorted list.
[0105] The elements of the ordered list may include a structured data type including a plurality of attributes.
[0106] The indication of the sort order may include an indication of the order in which attributes of the structured data type are considered in the sorted list.
[0107] The structured data type may include at least one of a map or an array.
[0108] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0109] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0110] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0111] The indication of the sort order may indicate that the array is to be used for sorting.
[0112] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0113] The apparatus may include a network repository function and be caused to execute receiving information from a network function service producer.
[0114] The apparatus may include a network function service consumer or a service communication agent and is caused to perform receiving information from a network repository function.
[0115] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0116] This information may include a network capability profile.
[0117] In a ninth aspect, a non-transitory computer-readable medium is provided, comprising program instructions for causing an apparatus to at least execute the method according to the third aspect or the fourth aspect.
[0118] As mentioned above, several different example embodiments have been described. It should be understood that additional example embodiments may be provided by combining any two or more example embodiments described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0119] Some example embodiments will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:
[0120] Figure 1 A schematic diagram of an example 5GS communication system is shown;
[0121] Figure 2 A schematic diagram of an example mobile communication device is shown;
[0122] Figure 3 A schematic diagram of an example control device is shown;
[0123] Figure 4 An example of a 5GC SBA architecture is shown;
[0124] Figure 5shows an example signaling flow of the NF discovery process between the NF service consumer and the NRF;
[0125] Figure 6 A flow chart showing a method according to an example embodiment is shown;
[0126] Figure 7 A flow chart showing a method according to an example embodiment is shown;
[0127] Figure 8a A schematic diagram showing a linear search in an unsorted array;
[0128] Figure 8b A schematic diagram showing a nonlinear search in a sorted array;
[0129] Figure 9a A schematic diagram showing a linear search in an unsorted array;
[0130] Figure 9b A schematic diagram showing a non-linear search in a sorted array. DETAILED DESCRIPTION
[0131] Before explaining various exemplary embodiments in detail, certain aspects of a wireless communication system and a mobile communication device are described with reference to Figure 1 , Figure 2 and Figure 3 It is briefly explained to help understand the underlying technology of the exemplary embodiments.
[0132] An example of a suitable communication system is the 5G or NR concept. The network architecture in NR may be similar to that of Advanced LTE. The base stations of the NR system may be referred to as Next Generation Node Bs (gNBs). Changes to the network architecture may depend on the need to support different radio technologies and more sophisticated quality of service (QoS) support, as well as on-demand requirements for QoS levels, such as to support quality of experience (QoE) for users. In addition, network-aware services and applications, as well as service- and application-aware networks, may bring changes to the architecture. These involve information-centric networks (ICNs) and user-centric content distribution networks (UC-CDN) solutions. NR may use multiple-input-multiple-output (MIMO) antennas, more base stations or nodes than LTE (the so-called small cell concept), including macro sites operating in conjunction with smaller base stations, and may also employ various radio technologies for better coverage and enhanced data rates.
[0133] Future networks may utilize network function virtualization (NFV), which is a network architecture concept that proposes to virtualize network node functions into "components" or entities that are operably connected or linked together to provide services. Virtualized network functions (VNFs) may include one or more virtual machines that use standard or general-purpose servers rather than customized hardware to run computer program code. Cloud computing or data storage may also be utilized. In radio communications, this may mean that node operations are performed at least in part in a server, host, or node that is operably coupled to a remote radio head. Node operations may also be distributed among multiple servers, nodes, or hosts. It should also be understood that the distribution of labor between core network operations and base station operations may be different from that of LTE or even non-existent.
[0134] Figure 1 A schematic representation of a 5G system (5GS) 100 is shown. The 5GS may include a user equipment (UE) 102 (which may also be referred to as a communication device or terminal), a 5G radio access network (5GRAN) 104, a 5G core network (5GCN) 106, one or more internal or external application functions (AFs) 108, and one or more data networks (DNs) 110.
[0135] An example 5G core network (CN) includes functional entities. The 5GCN 106 may include one or more access and mobility management functions (AMFs) 112, one or more session management functions (SMFs) 114, an authentication server function (AUSF) 116, a unified data management (UDM) 118, one or more user plane functions (UPFs) 120, a unified data repository (UDR) 122, and / or a network exposure function (NEF) 124. The UPF is controlled by the SMF (session management function) which receives policies from the PCF (policy control function).
[0136] The CN is connected to the UE via a radio access network (RAN). The 5G RAN may include one or more gNodeB (gNB) distributed unit (DU) functions connected to one or more gNodeB (gNB) centralized unit (CU) functions. The RAN may include one or more access nodes.
[0137] A user plane function (UPF) called PDU Session Anchor (PSA) may be responsible for forwarding frames back and forth between the DN and the tunnel established over 5G towards the UE exchanging traffic with the DN.
[0138] Now refer to Figure 2 describing in greater detail an example mobile communication device, Figure 2A schematic partial cross-sectional view of a communication device 200 is shown. Such a communication device is generally referred to as a user equipment (UE) or a terminal. Suitable mobile communication devices can be provided by any device capable of sending and receiving radio signals. Non-limiting and illustrative examples include a mobile station (MS) or mobile device, such as a mobile phone or a so-called 'smart phone', a computer provided with a wireless interface card or other wireless interface facilities (e.g., a USB adapter), a personal digital assistant (PDA) or a tablet computer provided with wireless communication capabilities, an IP voice (VoIP) phone, a portable computer, a desktop computer, an image capture terminal device (such as a digital camera), a game terminal device, a music storage and playback device, a vehicle-mounted wireless terminal device, a wireless endpoint, a mobile station, a laptop embedded device (LEE), a laptop mounted device (LME), an intelligent device, a wireless client equipment (CPE), or any combination of these, etc. The mobile communication device can provide, for example, data communication for bearer communication, such as voice, email (email), text messaging, multimedia, etc. Therefore, users can be supplied and provided with many services via their communication devices. Non-limiting and illustrative examples of these services include two-way or multi-way calls, data communications or multimedia services or simply access to a data communications network system such as the Internet. Users may also be provided with broadcast or multicast data. Non-limiting examples of content include downloads, television and radio programs, videos, advertisements, various reminders and other information.
[0139] The mobile device is typically provided with at least one data processing entity 201, at least one memory 202 and other possible components 203 for implementing the tasks it is designed to perform with the assistance of software and hardware, including control of access and communication to access systems and other communication devices. Data processing, storage and other related components can be provided on appropriate circuit boards and / or in chipsets. This feature is represented by reference numeral 204. The user can control the operation of the mobile device through a suitable user interface (such as a keyboard 205, voice commands, a touch-sensitive screen or touchpad, a combination thereof, etc.). A display 208, a speaker and a microphone may also be provided. In addition, the mobile communication device may include appropriate (wired or wireless) connectors to other devices and / or for connecting external accessories (such as hands-free devices).
[0140] The mobile device 200 may receive signals over the air interface or radio interface 207 via appropriate means for receiving, and may transmit signals via appropriate means for transmitting radio signals. Figure 2 In the mobile device, the transceiver arrangement is schematically represented by a block 206. The transceiver arrangement 206 may be provided, for example, by a radio component and an associated antenna arrangement. The antenna arrangement may be arranged internally or externally to the mobile device.
[0141] Figure 3 An example of a control device 300 for a communication system is shown, which is coupled to and / or used to control a station of an access system, such as a RAN node, such as a base station, eNB or gNB, a relay node or a core network node, such as an MME or a serving gateway (S-GW) or a packet data network gateway (P-GW), or a core network function, such as an AMF / SMF, or a server or a host. The method can be implemented in a single control device or in more than one control device. The control device can be integrated with a node or module of a core network or RAN or external to it. In some example embodiments, the base station includes a separate control device unit or module. In other example embodiments, the control device can be another network element, such as a radio network controller or a spectrum controller. In some example embodiments, each base station can have such a control device and a control device provided in a radio network controller. The control device 300 can be configured to provide control of communications in a service area of the system. The control device 300 includes at least one memory 301, at least one data processing unit 302, 303 and an input / output interface 304. Via the interface, the control device may be coupled to a receiver and a transmitter of the base station.The receiver and / or the transmitter may be implemented as a radio front end or a remote radio head.
[0142] 5GC (5G Core) has been defined as a Service-Based Architecture (SBA) where NF service producers open services to NF service consumers. NF service producers register their NF profiles in the Network Repository Function (NRF). NF profiles contain NF level specific information and a list of NF service instances supported by the NF, along with their associated attributes.
[0143] NF Service Consumers or Service Communication Agents (SCPs) discover NF Service Producers by performing the NF Discovery process to the NRF using query parameters that describe the services or characteristics of the NF Service Producers they wish to discover. The NRF returns the NF Profiles of the candidate NF Service Producers that match the query parameters in the response. The NF Discovery Response will typically contain the NF Profiles of multiple candidate producers.
[0144] Figure 4 An example of a 5GC SBA for the HPLMN is shown. Interface N27 with a corresponding NRF in the VPLMN is also shown.
[0145] Figure 5 A signaling diagram of the NF discovery process of a NF service consumer with an NRF is shown. The NF service consumer sends a request for NF instances with query parameters, and the NRF responds with search results based on the query parameters.
[0146] The NRF API interface NF Profile (NFProfile) includes a list attribute, which may contain thousands of elements describing the characteristics of the network function. The list attribute may be, for example, a map or an array. A map or an array may be nested, for example, an element of a map or an array includes another map or array.
[0147] For example, AMF can serve thousands of slices and tens of thousands of TAIs in sequence, SMF or UPF can serve thousands of slices, DNNs, and TAIs in sequence, and UDM can serve thousands of SUPI ranges in sequence, and so on.
[0148] When an NRF or NF / SCP with a cached NF profile needs to check if the NF profile matches the selection criteria included in a list, it uses a linear / sequential search algorithm because the elements in the list are not placed in a predetermined order. However, a linear / sequential search can be computationally intensive. On average, when the list in the NF profile includes the selection criteria, 50% of the list will be traversed. When the NF profile does not support the selection criteria, 100% of the list will be traversed (in vain).
[0149] While some operations in certain APIs can also work with very large lists (e.g., an N2InformationTransferReqData JSON body can include an array with tens of thousands of tracking areas), the problem may be more evident in NF Profiles used on the NRF API because there is more commonality in the searches.
[0150] Figure 6 A method according to an example embodiment is shown. The method may be performed at a device including a network function (such as a network function service producer or NRF). In some example embodiments, the device may be configured to operate as a network function service producer. For example, the device may be configured to perform one or more functions of a network function service producer. In some example embodiments, the device may be configured to operate as an NRF. For example, the device may be configured to perform one or more functions of an NRF.
[0151] At 601 , the method includes determining at least one sorted list of elements from a plurality of lists of elements.
[0152] At 602, the method includes providing information including the at least one ordered list to a network function, the information including an indication of the ordered list.
[0153] Figure 7 A flow chart of a method according to an example embodiment is shown.
[0154] At 701 , the method includes receiving, at a network function, information including at least one ordered list of elements and an indication of the ordered list.
[0155] At 702 , the method includes performing a search of elements of a sorted list using a non-linear search algorithm.
[0156] In reference Figure 6 and Figure 7 The network function to which the information is provided in the described method may be an NRF, a network function service consumer or an SCP.
[0157] The information may include a profile, such as a NF profile.
[0158] The method may allow a NF (e.g., a NF service producer or NRF) to sort the elements of certain lists of their NF profiles, thereby enabling (or otherwise supporting) the NRF, SCP or other NF to search in the lists using non-linear algorithms (e.g., but not limited to binary, interpolation or jump searches).
[0159] In an example embodiment, the NF provides an indication of an ordered list in the NF profile (eg, an indication of which of the lists of profiles is ordered). A non-linear search algorithm may thus be applied to the ordered list.
[0160] The use of non-linear search may reduce the number of steps to find a match or to infer that an NF profile is a mismatch, since the number of steps grows logarithmically with the number of elements included in the list, rather than linearly as in the case of a sequential search.
[0161] For example, if NFProfile\sNssais contains 4096 slices, and one wants to find out whether it includes a particular slice, if the list is sorted, one can apply, for example, a binary search, and find out whether the slice is included in an average of 12 steps (i.e., 212). If the list is not sorted, a sequential search has to be applied, and on average it will take 2048 steps if the slice is included, or 4096 steps if the slice is not included.
[0162] In this example, by using a sorted list and an average non-linear search, results can be provided in steps of 0.6% when slices are included, and in steps of 0.3% when slices are not included.
[0163] Figure 8a depicts an example of a linear search in an unsorted list, and Figure 8b Depicted is an example of a non-linear search within a sorted list when a search value is included in the list.
[0164] Figure 9a depicts an example of a linear search in an unsorted list, and Figure 9b Depicted is an example of a non-linear search within a sorted list when a search value is not included in the list.
[0165] The information may include an indication of the sort order of the sorted list.
[0166] The elements of the sorted list may include a structured data type that includes multiple attributes (e.g., at least one item in a map or array). The indication of the sort order may include an indication of the order in which the attributes of the structured data type are considered when sorting the array.
[0167] In an example embodiment, a NF consumer (e.g., NRF) uses two new attributes (e.g., "sortedLists", which is an example of an indication of sorted lists, and "dataStructureSortOrder", which is an example of an indication of the sorted order of sorted lists) in the NFP profile it registers with the NRF, which NF profile accordingly indicates which lists are sorted, and thus a non-linear search algorithm can be applied and the order of the attributes of the structured data type is considered in sorting array lists.
[0168] In an example embodiment, when an NRF, SCP or other NF searches within a NF profile, if there is no indication in the NF profile that the list is ordered, the NRF or NF / SCP searches the list linearly / sequentially according to the current implementation, and if the NF profile indicates that the list is ordered, the NRF or NF / SCP searches the list using a non-linear search algorithm, if an indication is provided, based on (e.g., considering) the order in which the attributes of the structured data type are considered in sorting the array list.
[0169] Table 1 shows an example of a NF profile, which includes attributes "sortedLists" and "dataStructureSortOrder".
[0170] Table 1
[0171]
[0172]
[0173] The NRF consumer may, for example, sort the attributes marked as sorted list in the following manner.
[0174] When the structured data type includes a map, the elements can be sorted in ascending (or descending) order based on the keys of the map.
[0175] If the list is an array, and the elements are simple data types, the elements can be sorted in ascending (or descending) order. Booleans can be treated as strings (e.g., "false" is placed before "true"). Attributes that are to be (e.g., should be) treated in a case-insensitive manner can (e.g., should) be sorted in case-insensitive order accordingly (e.g., "abc" should come before "ZZZ", even though uppercase "Z" comes before lowercase "a" lexicographically).
[0176] If the elements of the array are data structures, the elements may be placed in ascending (or descending) order according to the information provided in the associated entry of dataStructureSortOrder.
[0177] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0178] For example, if the array consists of slices (ExtSnssai), and the relevant entries on dataStructureSortOrder are {"ExtSnssai":["sst","sd","sdRanges"}, then they can (e.g., should) be sorted first in ascending order based on their "sst", and if there are multiple entries with the same sst, then according to "sd", and if there are still multiple entries with the same value, then according to "sdRanges".
[0179] If an element does not include an optional attribute, it may be ordered first with respect to that particular attribute. For example, an ExtSnssai with "sst" but not "sd" should be placed before an ExtSnssai with "sd" for the same "sst".
[0180] If an element does include an attribute (but its value is "null"), it is sorted after elements that do not include that attribute (but before any elements that have non-null values for that particular attribute). For example, if all other attributes with higher scoring precedence are equal, then structured data sorted based on "5QiRm" (e.g., which may be null) will place first elements that have no associated attributes at all, then elements that have attributes with a value of "null" and finally elements that have that attribute with any number.
[0181] The indication of the sort order may indicate that an array is used for sorting. If the data structure contains an array, and it is indicated that the array is used for sorting, then the array itself may (e.g., should) be sorted and presented explicitly as one of the "sortedLists" (according to the above example ([" / sNssai", " / sNssai / SdRange"])).
[0182] Arrays can be used as sorting attributes based on their corresponding entries. For example, the first element of array A is compared to the first element of array B. If they both have the same value for the first element, the second element of array A is compared to the second element of array B, and so on. If an array does not have an entry in a particular position, then that array can (e.g., should) be sorted first when compared to another array that has an entry in that position.
[0183] It is possible that only a subset of the data structure attributes are used for sorting (as in the example above for "wildcardSd", or for example if the attribute is a regular expression pattern for which the sort order is invalid.) In this case, the non-linear search algorithm cannot be based on the unsorted attributes.
[0184] It is possible that the sorting is based on an optional attribute of a data structure that is unknown to the NF Profile Consumer (because, for example, the NF Producer implements a newer version of the API that the Consumer does not support). In this case, the NF Profile Consumer may apply a linear search. The NF Profile Consumer may identify this case by identifying the unknown attribute in the array of dataStructureSortOrder map entries corresponding to the data structure.
[0185] Since dataStructureSortOrder contains the data structure only once, all arrays sorted using that data structure can follow the same property sort order.
[0186] Although the elements of the list are ordered based on (e.g., with regard to) certain attributes in a particular order, the attributes themselves need not be placed in the same order within the structured data type according to 3GPP guidelines. For example, a sorted TAI list may sort the TAIs based on "plmnld" first, then "nid" and finally "tac". However, it is possible that the TAI elements are actually placed in the data structure in a different order (e.g., first "plmnld", then "tac" and third "nid"). If the attributes are in the same order as they are used for sorting, searching may be made faster.
[0187] The sort order may be preconfigured at the device. For example, alternative ways to sort the data structures in an interoperable manner are to follow the order in which they are defined in the JSON object definition, use alphabetical order of attribute names, or the order in which each attribute in the standardized data structure is used for sorting in the 3GPP specification. These alternatives may impose a predefined sort order on the attributes, and thus may make implementation easier. However, providing an indication of the sort order may be more flexible.
[0188] When searching in large lists is frequently employed (eg, or otherwise required), it is possible that the same method may be implemented in an additional API.
[0189] This method can be used even if the producer registering its profile with the NRF does not support this method. In this case, the NRF can sort the selected list of NF profiles and populate them as a sorted list when providing the producer's NF profiles to the NF consumer.
[0190] By using a non-linear search algorithm, the computational steps for searching in NF profile lists with a very large number of elements can be reduced, thereby optimizing the search process.
[0191] This approach can provide flexibility. Since the instructions for sorting are in lists, the NF has the option to sort only selected lists (e.g., large lists). In addition, the NF producer can determine whether sorting should be applied only on a subset of the attributes of the data structures contained in the array.
[0192] This method may be backward compatible. If neither the consumer nor the NRF supports the functionality, a sequential / linear search is automatically applied. Furthermore, even if the NRF does not support the method, some benefits of the method may be obtained, as long as the NRF transparently communicates the introduced attributes from the NF producer to the NF consumer / SCP.
[0193] An apparatus may include: means for determining at least one ordered list of elements from a plurality of lists of elements; and means for providing information including the at least one ordered list to a network function, the information including an indication of the ordered list.
[0194] The information may include an indication of the sort order of the sorted list.
[0195] The elements of the sorted list may comprise a structured data type comprising a plurality of attributes, and the indication of the sort order may comprise an indication of an order in which the attributes of the structured data type are considered in the sorted list.
[0196] The structured data type may include at least one of a map or an array.
[0197] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0198] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0199] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0200] The indication of the sort order may indicate that the array is to be used for sorting.
[0201] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0202] The sort order may be pre-configured at the device.
[0203] The apparatus may include a network function service producer, and the network function may include a network repository function.
[0204] The apparatus may comprise a network repository function, and the network function may comprise a network function service consumer or a service communication agent.
[0205] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0206] This information may include a network capability profile.
[0207] The device may include another network function, or be another network function, or be included in the other network function, or be a chipset for performing at least some actions of / for the other network function. In some example embodiments, the device may be configured to operate as another network function. As an example, the device may be configured to perform one or more functions of the other network function.
[0208] Alternatively or additionally, an apparatus may include: means for receiving information at a network function, the information including at least one sorted list of elements and an indication of the sorted list; and means for performing a search for elements of the sorted list using a non-linear search algorithm.
[0209] The information may include an indication of the sort order of the sorted list.
[0210] The elements of the sorted list may comprise a structured data type comprising a plurality of attributes. The indication of the sort order may comprise an indication of the order in which the attributes of the structured data type are considered in the sorted list.
[0211] The structured data type may include at least one of a map or an array.
[0212] When the structured data type includes a map, the elements can be sorted in ascending or descending order based on the map's keys.
[0213] When the structured data type is an array, the elements of the array can be simple data types, and the elements can be sorted in ascending or descending order.
[0214] When the structured data type is an array, elements of the array may include further structured data types, and the elements may be sorted in ascending or descending order based on the indication of the sort order.
[0215] The indication of the sort order may indicate that the array is to be used for sorting.
[0216] The indication of the sort order may include an indication of whether the order is ascending or descending.
[0217] The apparatus may include a network repository function, and the apparatus may include means for receiving information from a network function service producer.
[0218] The apparatus may include a network function service consumer or a service communication agent, and the apparatus may include means for receiving information from a network repository function.
[0219] The indication of the sorted list may include a javascript object notation (JSON) pointer.
[0220] This information may include a network capability profile.
[0221] The device may include a network function, be a network function, or be included in a network function, or be a chipset for performing at least some actions of / for the network function. In some example embodiments, the device may be configured to operate as a network function. For example, the device may be configured to perform one or more functions of a network function.
[0222] It should be understood that the apparatus may include or be coupled to other units or modules for transmission and / or reception, such as a radio component or a radio head. Although the apparatus has been described as one entity, different modules and memories may be implemented in one or more physical or logical entities.
[0223] It should be noted that although some example embodiments have been described with respect to 5G networks, similar example embodiments may be applied with respect to other networks and communication systems, such as 6G networks or 5G-advanced networks. Therefore, although certain embodiments are described above by way of non-limiting and illustrative examples and with reference to certain example architectures for wireless networks, technologies and standards, the example embodiments may be applied to any other suitable form of communication system in addition to the communication system shown and described herein.
[0224] It is also noted herein that, although various example embodiments of the present disclosure are described above, there are several variations and modifications that could be made to the various example embodiments without departing from the scope of the present disclosure.
[0225] As used herein, "at least one of: " and "at least one of " and similar expressions, where a list of two or more elements is combined by "and" or "or", mean at least any one of the elements, or at least any two or more of the elements, or at least all of the elements. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.
[0226] Generally, various embodiments of the present disclosure may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. Some aspects may be implemented in hardware, and other aspects may be implemented in firmware or software that may be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of the present disclosure are illustrated and described as block diagrams, flow charts, or using some other graphical representations, it should be understood that, as non-limiting examples, the blocks, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, dedicated circuits or logic, general hardware or controllers or other computing devices, or some combination thereof.
[0227] As used in this application, the term "circuitry" may refer to one or more or all of the following:
[0228] (a) hardware circuit implementation only (e.g., implementation only in analog and / or digital circuits), and
[0229] (b) a combination of hardware circuitry and software such as (where applicable):
[0230] (i) a combination of analog and / or digital hardware circuits and software / firmware, and
[0231] (ii) any portion of hardware processor(s) (including digital signal processor(s)), software and memory(s) with software that work together to enable a device such as a mobile phone or server to perform various functions; and
[0232] (c) Hardware circuits and / or processor(s), such as microprocessor(s) or portions of microprocessor(s), that require software (e.g., firmware) to operate, but which may not be present when the software is not required for operation.
[0233] The definition of circuitry applies to all uses of the term in this application, including any claims. As yet another example, as used in this application, the term circuitry also covers an implementation of only a hardware circuit or processor (or multiple processors) or a portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example (and if applicable to a particular claim element), a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in a server, cellular network device, or other computing or network device.
[0234] The example embodiments of the present disclosure may be implemented by computer software executable by a data processor of a mobile device (such as in a processor entity), or by hardware, or by a combination of software and hardware. Computer software or programs, also referred to as program products, include software routines, applets, and / or macros that can be stored in any device-readable data storage medium, and they include program instructions for performing specific tasks. A computer program product may include one or more computer executable components that are configured to perform any example embodiment when the program is run. One or more computer executable components may be at least one software code or a portion thereof.
[0235] In addition, in this respect, it should be noted that any frame of the logic flow can represent program steps, or interconnected logic circuits, frames and functions, or combinations of program steps and logic circuits, frames and functions, as in the accompanying drawings. Software can be stored on a medium, such as a physical medium (such as a memory chip or a memory block implemented in a processor), a magnetic medium (such as a hard disk or a floppy disk), and an optical medium (such as a DVD and its data variants, CD). Physical media is a non-transient medium. As used herein, the term "non-transient" is a limitation of the medium itself (e.g., tangible, rather than a signal), rather than a limitation to data storage persistence (e.g., RAM to ROM).
[0236] The memory may be of any type suitable for the local technical environment and may be implemented using any appropriate data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory, and removable memory. The data processor may be of any type suitable for the local technical environment and may include, as non-limiting and illustrative examples, one or more of a general purpose computer, a special purpose computer, a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an FPGA, a gate level circuit, and a processor based on a multi-core processor architecture.
[0237] Example embodiments of the present disclosure can be practiced in different components such as integrated circuit modules. The design of integrated circuits is largely a highly automated process. Complex and powerful software tools are available to convert logic-level designs into semiconductor circuit designs that are ready to be etched and formed on semiconductor substrates.
[0238] The scope of protection sought by various embodiments of the present disclosure is set out by the independent claims. Embodiments and features described in this specification that do not fall within the scope of the independent claims, if any, are to be construed as examples useful for understanding various embodiments of the present disclosure.
[0239] By way of non-limiting example, the above description provides a complete and detailed description of various example embodiments of the present disclosure. However, when read in conjunction with the drawings and claims, various modifications and adjustments will become apparent to those skilled in the relevant art in view of the foregoing description. However, all such and similar modifications of the teachings of the various example embodiments will still fall within the scope of the present disclosure as defined in the claims. In fact, there are additional example embodiments, which include a combination of one or more example embodiments with any other example embodiments described herein.
Claims
1. A device for communication, comprising: means for determining at least one sorted list of elements from a plurality of lists of elements; as well as Means for providing information comprising the at least one ordered list to a network function, the information comprising an indication of the ordered list. 2 . The apparatus of claim 1 , wherein the information comprises an indication of a sort order of the sorted list.
3. An apparatus according to claim 2, wherein the elements of the sorted list include structured data types, the structured data type includes multiple attributes, and the indication of the sort order includes an indication of the order in which the attributes of the structured data type are considered in the sorted list. 4 . The device of claim 3 , wherein the structured data type comprises at least one of a map or an array. 5 . The apparatus of claim 4 , wherein the structured data type comprises a map, and the elements are sorted in ascending or descending order based on a key of the map.
6. A device for communication, comprising: means for receiving, at a network function, information comprising at least one ordered list of elements and an indication of the ordered list; as well as Means for performing a search for the element of the sorted list using a non-linear search algorithm. The apparatus of claim 6 , wherein the information comprises an indication of a sort order of the sorted list.
8. An apparatus according to claim 7, wherein the elements of the sorted list include structured data types, the structured data type includes multiple attributes, and the indication of the sort order includes an indication of the order in which the attributes of the structured data type are considered in the sorted list.
9. The device of claim 8, wherein the structured data type comprises at least one of a map or an array.
10. The apparatus of claim 9, wherein the structured data type comprises a map, and the elements are sorted in ascending or descending order based on a key of the map.