DELIVERING CONTENT IN MULTIPLE AREAS USING HIERARCHICAL AREA IDENTIFIERS

20210152383 · 2021-05-20

    Inventors

    Cpc classification

    International classification

    Abstract

    A method for delivering content. In some embodiments, the method includes a network node adding a first area identifier, AI, to a set of AIs and, after adding the first AI to the set of AIs, determining that an optimized set of AIs should be created. The network node then performs a process for producing the optimized set of AIs, where the process includes: removing from the set of AIs a certain subset of AIs and adding to the set of AIs a second AI. The network node transmits to a second network node a message comprising information identifying each AI included in the optimized set of AIs.

    Claims

    1. A method, performed by a first network node, for delivering content, the method comprising: the first network node adding a first area identifier, AI, to a set of AIs; after adding the first AI to the set of AIs, the first network node determining that an optimized set of AIs should be created; the first network node performing a process for producing the optimized set of AIs, the process comprising: removing from the set of AIs a certain subset of AIs and adding to the set of AIs a second AI, the second AI identifying a set of cells, wherein each one of the AIs included in the certain subset of AIs identifies a subset of the cells included in the set of cells identified by the second AI; and the first network node transmitting to a second network node a message comprising information identifying each AI included in the optimized set of AIs.

    2. The method of claim 1, wherein determining that an optimized set of AIs should be created comprises the first network node determining whether N is greater than T, wherein N is the number of AIs included in the set of AIs and T is a predetermined threshold.

    3. The method of claim 1, further comprising, prior to adding the first AI to the set of AIs: the first network node determining the total number of user equipments, UEs, that are i) being served by a cell identified by the first AI and ii) consuming or preparing to consume a certain item of content; the first network node determining whether the determined total number of UEs exceeds a threshold; and the first network node deciding to add the first AI to the set of AIs as a result of determining that the determined total number of UEs exceeds the threshold.

    4. The method of claim 1, wherein the process for producing the optimized set of AIs further comprises selecting an AI from a group of AIs comprising the second AI and a third AI, wherein the selected AI is the second AI.

    5. The method of claim 4, further comprising: for each AI included in the group of AIs, assigning a priority to the AI, wherein selecting an AI from the group of AIs comprises selecting from the group of AIs an AI having the highest priority.

    6. The method of claim 5, wherein each AI included in the certain subset of AIs is associated with a value and a weight, and assigning a priority to the second AI comprises calculating a score using the values and weights associated with the AIs included in the certain subset of AIs.

    7. The method of claim 6, wherein calculating the score comprises: calculating V1×W1+V2×W2; and calculating W1+W2, wherein V1 is a first value associated with a first AI included in the subset of AIs, V2 is a second value associated with a second AI included in the subset of AIs, W1 is a first weight associated with the first AI included in the subset of AIs, and W2 is a second weight associated with the second AI included in the subset of AIs.

    8. The method of claim 4, wherein the set of AIs further includes the third AI, wherein the third AI identifies a set of cells, determining that an optimized set of AIs should be created comprises determining that the second AI has a higher priority than the third AI, and the process for producing the optimized set of AIs further comprises removing the third AI from the set of AIs and adding to the set of AIs a second plurality of AIs, wherein each AI included in the second plurality of AIs identifies a subset of the cells included in the set of cells identified by the third AI.

    9. The method of claim 1, wherein the first network node is a 3GPP Broadcast Multicast Service Center (BM-SC), and the second network node is a 3GPP MBMS-GW.

    10. The method of claim 9, wherein the message is one of: a session start message and a session update message.

    11. A first network node for delivering content, the first network node comprising: a processor, and a memory device coupled to the processor and having instructions stored therein that are executable by the processor to cause the first network node to: add a first area identifier, AI, to a set of AIs; after adding the first AI to the set of AIs, determine that an optimized set of AIs should be created; perform a process for producing the optimized set of AIs, the process comprising: removing from the set of AIs a certain subset of AIs and adding to the set of AIs a second AI, the second AI identifying a set of cells, wherein each one of the AIs included in the certain subset of AIs identifies a subset of the cells included in the set of cells identified by the second AI; and transmit to a second network node a message comprising information identifying each AI included in the optimized set of AIs.

    12. The first network node of claim 11, wherein determining that an optimized set of AIs should be created comprises the first network node determining whether N is greater than T, wherein N is the number of AIs included in the set of AIs and T is a predetermined threshold.

    13. The first network node of claim 11, wherein the instructions are further executable by the processor to cause the first network node to, prior to adding the first AI to the set of AIs: determine the total number of user equipments, UEs, that are i) being served by a cell identified by the first AI and ii) consuming or preparing to consume a certain item of content; determine whether the determined total number of UEs exceeds a threshold; and decide to add the first AI to the set of AIs as a result of determining that the determined total number of UEs exceeds the threshold.

    14. The first network node of claim 11, wherein the instructions are further executable by the processor to cause the process for producing the optimized set of AIs further to select an AI from a group of AIs comprising the second AI and a third AI, wherein the selected AI is the second AI.

    15. The first network node of claim 14, wherein the instructions are further executable by the processor to cause the first network node to: for each AI included in the group of AIs, assign a priority to the AI, wherein selecting an AI from the group of AIs comprises selecting from the group of AIs an AI having the highest priority.

    16. The first network node of claim 15, wherein each AI included in the certain subset of AIs is associated with a value and a weight, and assigning a priority to the second AI comprises calculating a score using the values and weights associated with the AIs included in the certain subset of AIs.

    17. The first network node of claim 16, wherein calculating the score comprises: calculating V1×W1+V2×W2; and calculating W1+W2, wherein V1 is a first value associated with a first AI included in the subset of AIs, V2 is a second value associated with a second AI included in the subset of AIs, W1 is a first weight associated with the first AI included in the subset of AIs, and W2 is a second weight associated with the second AI included in the subset of AIs.

    18. The first network node of claim 14, wherein the set of AIs further includes the third AI, wherein the third AI identifies a set of cells, determining that an optimized set of AIs should be created comprises determining that the second AI has a higher priority than the third AI, and the process for producing the optimized set of AIs further comprises removing the third AI from the set of AIs and adding to the set of AIs a second plurality of AIs, wherein each AI included in the second plurality of AIs identifies a subset of the cells included in the set of cells identified by the third AI.

    19. The first network node of claim 11, wherein the first network node is a 3GPP Broadcast Multicast Service Center (BM-SC), and the second network node is a 3GPP MBMS-GW.

    20. (canceled)

    21. A computer program, comprising instructions which, when executed by a first network node, cause the first network node to carry out the method of claim 1.

    22. A carrier containing the computer program of claim 21, wherein the carrier is one of an electronic signal, optical signal, radio signal, and computer readable storage medium.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0028] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.

    [0029] FIG. 1 illustrates a system according to one embodiment.

    [0030] FIG. 2 illustrates a hierarchical AI structure.

    [0031] FIG. 3 is a flow chart illustrating a process according to one embodiment.

    [0032] FIG. 4 illustrates a MBMS system according to one embodiment.

    [0033] FIG. 5 is a flow chart illustrating a process according to one embodiment.

    [0034] FIG. 6 is a message flow diagram according to one embodiment.

    [0035] FIG. 7 is a block diagram of a network node according to one embodiment.

    [0036] FIG. 8 is a diagram showing functional units of a network node according to one embodiment.

    DETAILED DESCRIPTION

    [0037] FIG. 1 illustrates a system 100 according to one embodiment. System 100 includes a content provider 120 in communication with a first network node 101 (e.g., BM-SC or application server), that communicates with a second network node 102 (e.g., a gateway such as, for example, an MBMS-GW). Second network node 103 can send control signaling (e.g., control messages) to a third network node 103 (e.g., a Mobility Management Entity (MME)). The third network node 103 is able to communicate with a group of access points (e.g., base stations, such as eNBs or other base stations). In the example shown, network node 103 is able to communicate with at least the following base stations: BS1, BS2, BS3, and BS4. In practice, network node 103 may communicate with hundreds of access points. Similarly, in some embodiments, network node 102 may also communicate with many access points via, for example, the M1 interface shown in FIG. 4.

    [0038] In the example of FIG. 1, content provider 120 produces certain content that can be consumed by at least the UEs being served by BS1-BS4. First network node 101 is configured to determine the areas in which the certain content should be delivered via broadcast. More specifically, first network node 101 is configured to determine which access points should be employed to deliver the content via broadcast in a cell served by the access point. For example, based on content consumption reports transmitted by UEs and received at first network node 101, first network node 101 may determine that at least a threshold number of UEs being served by BS1 are consuming the content (or desire to consume the content). As a result of making such a determination, first network node 101 decides that BS1 should be employed to broadcast (e.g., multicast) the certain content so that each of the UEs being served by BS1 that are interested in consuming the certain content can receive the certain content via broadcast.

    [0039] Once the areas are determined, first network node 101 transmits to second network node 102 a control message (e.g., a session start message, a session update message, etc.) comprising information identifying each of the determined areas, which causes network node 102 to send to network node 103 a control message comprising information identifying each of the determined areas. For example, the messages include a list of area identifiers (AIs) (e.g., a list of service area codes, wherein each code identifies an SAI). In some embodiments, each AI included in the list can be used by the third network node 103 to identify a set of one or more access points. For example, each access point can be configured with a set of AIs and each access point can send to the third network node 103 a message that includes each of the AIs with which the access point is configured. The third network node 103 can then use this information to create and store a table (or other data structure) that maps AIs to access points. Hence, when the third network node 103 receives an AI from the second network node 102, the third network node 103 can use the table to determine all of the access points that are configured with the received AI.

    [0040] In some embodiments, as shown in FIG. 2, AIs may be hierarchically structured. That is, a group of AIs may be defined such that each AI in the group encompasses a unique set of AIs. In the example, shown, AI100 encompasses AI1000 to AI1500 and AI200 encompasses AI2000 to AI2500. As further shown, each “local” or “small” AI (i.e., AI1000 to AI1500 and AI2000 to AI2500), identifies a unique set of access points. As an example, AI1000 identifies eNB1 to eNB15 (and thereby identifies the cells served by eNB1 to eNB15) and AI1001 identifies eNB16 to eNB 30 (and thereby identifies the cells served by eNB16 to eNB30). Because AI100 encompasses AI1000 to AI1500, AI100 identifies the access points that are identified by the encompassed AIs. As further shown in FIG. 2, AI100 and AI200 may be encompassed by AI10.

    [0041] FIG. 3 is a flow chart illustrating a process 300, according to one embodiment, that is performed by first network node 101. Process 300 may begin in step s302.

    [0042] In step s302, the first network node adds a first AI (e.g., AI1000) to a set of AIs. For example, the first network node may add the first AI to the set of AIs as a consequence of determining that the value X is greater than a threshold, wherein X is the number of UEs that i) are being served by an access point included in a set of access points identified by the first AI and ii) are interested in certain content.

    [0043] In step s304, after adding the first AI to the set of AIs, the first network node determines that an optimized set of AIs should be created. In some embodiments, determining that an optimized set of AIs should be created comprises the first network node determining whether N is greater than T, wherein N is the number of AIs included in the set of AIs and T is a predetermined threshold (e.g., T=256).

    [0044] In step s306, the first network node performs a process for producing the optimized set of AIs. The process includes: removing from the set of AIs a certain subset of AIs and adding to the set of AIs a second AI (e.g., AI100), thereby producing the optimized set of AI. Advantageously, the second AI (e.g., AI100) identifies a set of cells (e.g., the second AI is used to identify a set of one or more access points), and each one of the AIs included in the certain subset of AIs identifies a subset of the cells included in the set of cells identified by the second AI. For instance, using the AI hierarchy shown in FIG. 2, the second AI may be AI100 and the certain subset of AIs may include AI1000, AI1001, AI1002, etc. (i.e., any of the AIs encompassed by AI100). In this way, the optimized set of AIs will be smaller than the pre-optimized set of AIs.

    [0045] In step s308, the first network node transmits to the second network node a control message comprising information identifying each AI included in the optimized set of AIs (e.g., a message comprising a list of MBMS service area codes).

    [0046] The above process is very useful in situations in which, to reduce the amount of data that is transmitted between first network node 101 and second network node 102, a limit has been imposed on the number of AIs that can be included in the list of AIs included in the control message. For example, the limit may be 256 AIs.

    [0047] In some embodiments, process 300 further includes, prior to adding the first AI to the set of AIs: the first network node determining the total number of UEs that are i) being served by a cell identified by the first AI and ii) consuming a certain item of content; the first network node determining whether the determined total number of UEs exceeds a threshold; and the first network node deciding to add the first AI to the set of AIs as a result of determining that the determined total number of UEs exceeds the threshold.

    [0048] In some embodiments, the process for producing the optimized set of AIs further comprises selecting an AI from a group of AIs comprising the second AI and a third AI (e.g., AI200), wherein the selected AI is the second AI. In some embodiments, for each AI included in the group of AIs, the first network node assigned a priority to the AI, wherein selecting an AI from the group of AIs comprises selecting from the group of AIs an AI having the “highest” priority. For example, AI100 may be given a priority of P1 and AI200 may be given a priority of P2, where P1 is a “higher” priority than P2 (e.g., P1>P2 or P1<P2). In some embodiments, each AI included in the certain subset of AIs is associated with a value and a weight, and assigning a priority to the second AI comprises calculating a score using the values and weights associated with the AIs included in the certain subset of AIs. For example, if we assume that: a) the certain subset of AIs consists of AI1001 and AI10002, b) AI1001 is associated with value V1 and weight W1, and c) AI1002 is associated with value V2 and weight W2, then the first network node calculates the score for AI100 by calculating: (V1×W1+V2×W2)/(W1+W2). In some embodiments, the score calculated for AI100 is the priority value assigned to AI100. In some embodiments, the weight assigned to an AI is based on the number of access points or cells that the AI identifies.

    [0049] In some embodiments, the set of AIs further includes the third AI (e.g. AI200), wherein the third AI identifies a set of cells, the step of determining that an optimized set of AIs should be created comprises determining that the second AI has a higher priority than the third AI, and the process for producing the optimized set of AIs further comprises removing the third AI from the set of AIs and adding to the set of AIs a second plurality of AIs, wherein each AI included in the second plurality of AIs identifies a subset of the cells included in the set of cells identified by the third AI.

    [0050] FIG. 4 illustrates a system 400, which is a specific example of the system 100 shown in FIG. 1. System 400 includes a BM-SC 401, which corresponds to first network node 101, and also includes an MBMS-GW 402, which corresponds to second network node 102. As shown in FIG. 4, MBMS-GW 402 can communicate with an MME, which corresponds to third network node 103, via a Sm interface and can communicate with a radio access network (RAN) node (e.g., eNB) via an M1 interface. As also shown, BM-SC 401 and MBMS-GW 402 can communicate with each other via an SGmb interface and a SGi-mb interface.

    [0051] FIG. 5 illustrates a process 500, according to one embodiment, that is performed by BM-SC 401. Process 500 may begin in step s502.

    [0052] In step s502, BM-SC 401 sends to MBMB-GW 402 a session start message identifying a set of SAIs (i.e., the message includes a list of service area codes).

    [0053] In step s504, BM-SC 401 collects consumption reports from UEs and maps each UE to a local SAI (a “local” SAI is an SAI that does not encompass any other SAI). An example of a local SAI is AI1000 shown in FIG. 2.

    [0054] In step s506, based on the consumption reports, BM-SC 401 decides to add at least one local SAI to the set of SAIs, thereby producing an updated set of SAIs.

    [0055] In step s508, BM-SC 401 determines whether the set of SAIs is too large (e.g., determines whether the set contains more than 256 SAIs). If the SAI is not too large the process may proceed to step s514, otherwise the process proceeds to step 510.

    [0056] In step s510, BM-SC 401 selects a non-local SAI from a set of two or more non-local SAIs. A non-local SAI is an SAI that encompasses as set of two or more local SAIs.

    [0057] In step s512, BM-SC 401 adds the selected non-local SAI to the set of SAIs and removes from the set of SAIs all of the SAIs that are encompassed by the selected non-local SAI. In some embodiments, if, after removing the local SAIs from the set, the number of SAIs in the set is less than 256 (e.g., less than 200) then BM-SC 401 may determine whether there exists in the set of SAIs a non-local SAI that can be removed from the set. A non-local SAI can be removed from the set if the number of local SAIs encompassed by the non-local SAI that would need to be added to the set if the non-local SAI was removed is less than or equal to a threshold, where the threshold is defined as 257-N, were N is the number of SAIs included in the set after step s512 is performed. Assuming such a non-local SAI exists, then BM-SC 401 may remove the non-local SAI from the set and add to the set each local SAI that is encompassed by the non-local SAI and that needs to be added to the set (a local SAI that is encompassed by the non-local SAI needs to be added to the set when the number of interested UEs located in the area encompassed by the local SAI exceeds a certain threshold). In this way, the updated set of SAIs is optimized.

    [0058] In step s514, BM-SC 401 transmits to MBMS-GW 402 a session update message comprising information identifying each SAI included in the updated, optimized set of SAIs. After step s514, the process may go back to step s504.

    [0059] With respect to step s510, in one embodiment, BM-SC 401 selects a non-local SAI from the set of two or more non-local SAIs by calculating a score (or “average UE ratio”) for each non-local SAI included in the set of non-local SAIs. The average UE ratio for a non-local SAI is calculated based on the UE ratio for each local SAI that is encompassed by the non-local SAI. For example, assume SAI100 encompasses the following local SAIs: SAI1000 to SAI1020, then the average UE ratio for SAI100 can be calculated as: ((SAI1000−UE-Ratio×SAI1000−weight)+ . . . +(SAI1020−UE-Ratio×SAI1020−weight))/(SAI1000−weight+ . . . +SAI1020−weight). The UE ratio for a local SAI can be simply defined as 1 for area reaching the defined UE threshold, i.e. broadcast need to be activated in the area, and 0 for area not reaching the defined UE threshold, i.e. broadcast is not needed in the area. This is more suitable when the local areas have similar size. More complex UE ratio can also be used to have more fine grained optimization. For example, the UE ratio for a local SAI can be defined as the number of interested UEs in the local area divided by the number of cells in the local area. The weight assigned to a local SAI can be defined as 1, if the local areas have similar size, otherwise the weight can be defined based on the number of the cells in the area in order to have a more accurate radio resource utilization comparison between different areas.

    [0060] FIG. 6 is a message flow diagram illustrating steps that are performed by the various network nodes shown in FIG. 4. More specifically, FIG. 6 illustrates the SAI aggregation sequence flow when MooD service is enabled to trigger more SAIs to support broadcast for the E2E system.

    [0061] Step 1: BM-SC sends the session start request (e.g. Temporary Mobile Group Identity (TMGI), flow, SAI list and other parameters) to MBMS-GW, MBMS-GW assign the resources for the session and then sends a session start success response back to BM-SC.

    [0062] Step 2: MBMS-GW send the session start request (TMGI, flow, SAI list and other parameters) to an MME to start the session. The MME may send back to MBMS-GW a session start response (not shown in the figure) as soon as the session request is accepted to by a RAN node.

    [0063] Step 3: MME sends the session start request (TMGI, SAI1 and other parameters) to eNB1, eNB1 assigns the RAN resource and send the session start success response back to MME.

    [0064] Step 4: MMEs send the session start request (TMGI, SAI2 and other parameters) to eNB2, eNB2 assigns the RAN resource and send the session start success response back to MME.

    [0065] Step 5: MME send the session start request (TMGI, SAIn and other parameters) to eNBn, eNBn assigns the RAN resource and send the session start success response back to MME.

    [0066] Steps 6.7.8: eNBs establishes the necessary radio resources for the transfer of MBMS data to the interested UEs.

    [0067] Step 9: The BM-SC starts sending the MBMS data, all relevant eNBs receiver IP Multicast distribution data and broadcast/multicast to the interested UEs.

    [0068] Step 10: BM-SC would like to offload traffic in a new traffic area since the traffic volume in this area exceeds a certain threshold. For example, as described above, BM-SC may receive consumption reports from UEs and based on the consumption reports the BM-SC may determine that at least a threshold number of UEs that are mapped to a local SAI are consuming the MBMS data. As a result of this determination, the BM-SC adds the local SAI to the SAI list.

    [0069] Step 11: BM-SC detects that the number of SAIs in the SAI list exceed the 256 due to more SAIs are added into the broadcast area. Accordingly, BM-SC decides to replace a set of local SAIs with a non-local SAI. More specifically, as described above with respect to steps s512, BM-SC removes from the list of SAIs all of the local SAIs that are encompassed by the non-local SAI.

    [0070] Step 12: BM-SC send the session update request to MBMS-GW with the new SAI list.

    [0071] Step 13: MBMS-GW sends the session update request to the impacted MMEs.

    [0072] Step 14: MME detects that the SAI of eNB1 is changed from local SAI1000 to the reginal SAI100.

    [0073] Step 15: MME send the session update with SAI100 to the eNB1.

    [0074] Step 16: MME detects that the SAI of eNB2 is changed from local SAI1002 to the reginal SAI100.

    [0075] Step 17: MME send the session update with SAI100 to the eNB2.

    [0076] Step 18: MME detects that the SAI of eNBn is not changed, no extra action is needed for eNBn.

    [0077] Step 19: all relevant eNBs continues to accept IP Multicast distribution data and broadcast to the interested UEs.

    [0078] FIG. 7 is a block diagram of network node 101, according to some embodiments. As shown in FIG. 7, network node 101 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); a network interface 748 comprising a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling network node 101 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 748 is connected; and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 702 includes a programmable processor, a computer program product (CPP) 741 may be provided. CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP) 743 comprising computer readable instructions (CRI) 744. CRM 742 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes network node 101 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, network node 101 may be configured to perform steps described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

    [0079] FIG. 8 is a diagram showing functional units of network node 101 according to one embodiment. In the embodiment shown, network node 101 includes: a transmission unit 802; a receiver unit 804; and a processing unit 806.

    [0080] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.

    [0081] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.