IP Library Granted Patent US 11,212,343
Granted Patent B2
US 11,212,343 · App. 16/519,993 · Granted Dec 28, 2021

System and method for intelligently managing sessions in a mobile network

Inventors: Narsi Veldanda (Northboro, MA); Anupama Raghavan (Acton, MA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/1008H04L61/1511H04L67/1014H04W8/08H04W76/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,212,343
App. No.
16/519,993
Granted
Dec 28, 2021
Kind
B2
Abstract

Systems and methods are described for intelligently managing sessions in a mobile network. A selection engine receives a trigger to select a peer node for a subscriber session. The selection engine chooses a peer selector among one or more available peer selectors in response to the trigger and determines whether the chosen peer selector is associated with a fully qualified domain name (FQDN). In response to determining that the chosen peer selector is associated with the FQDN, the selection engine determines whether a domain name system (DNS) server is configured. In response to determining that the DNS server is configured, the selection engine requests a peer list associated with the FQDN from the DNS server and selects the peer node from the peer list.

Claims (64)

1. A method comprising:

receiving, by a selection engine, a trigger to select a peer node for a subscriber session;

choosing, by the selection engine, a peer selector among one or more available peer selectors in response to the trigger, wherein choosing the peer selector comprises:

analyzing subscriber session data to determine one or more parameters of the subscriber session;

identifying one or more matching peer selectors among the one or more available peer selectors that have key types that match the one or more parameters; and

choosing the peer selector from among the one or more matching peer selectors based on the chosen peer selector having a highest priority among the one or more matching peer selectors;

determining, by the selection engine, whether the chosen peer selector is associated with a fully qualified domain name (FQDN);

in response to determining that the chosen peer selector is associated with the FQDN, determining, by the selection engine, whether a domain name system (DNS) server is configured, wherein the DNS server is configured when at least one of a primary DNS server or a secondary DNS server is provisioned and reachable;

in response to determining that the DNS server is configured, requesting, by the selection engine, a peer list associated with the FQDN from the DNS server; and

selecting, by the selection engine, the peer node from the peer list.

2. The method of claim 1 , wherein the trigger includes at least one of an indication of session-related control traffic traversing a node associated with the selection engine or a request to select the peer node.

3. The method of claim 1 , further comprising, in response to determining that (a) the chosen peer selector is not associated with the FQDN or (b) the DNS server is not configured, obtaining, by the selection engine, the peer list from the chosen peer selector.

4. The method of claim 1 , wherein selecting the peer node from the peer list further comprises:

receiving, by the selection engine, the peer list;

eliminating, by the selection engine, one or more unreachable peer nodes from the peer list;

eliminating, by the selection engine, one or more peer nodes that are in overload from the peer list;

grouping, by the selection engine, one or more remaining peer nodes in the peer list based on a load level associated with each of the one or more remaining peer nodes, yielding a plurality of peer groups that each include one or more peer nodes; and

selecting, by the selection engine, the peer node from a least loaded peer group among the plurality of peer groups.

5. The method of claim 4 , wherein each of the one or more unreachable peer nodes is at least one of failed, undergoing maintenance, or disconnected from a network.

6. The method of claim 4 , wherein each of the one or more peer nodes that are in overload is at least one of at maximum capacity, within a threshold of reaching maximum capacity, or experiencing an issue associated with software corruption.

7. The method of claim 4 , further comprising receiving, by the selection engine, a status message that identifies at least one of the one or more unreachable peer nodes or the one or more peer nodes that are in overload.

8. The method of claim 4 , wherein the peer node is selected from the least loaded peer group using at least one of round robin, weighted round robin, or hashing.

9. The method of claim 1 , wherein the selection engine is implemented in one of:

a mobility management engine for selecting a serving gateway peer node;

an evolved packet data gateway for selecting a packet data network gateway peer node;

a control plane node for selecting a user plane peer node; or

a GPRS Tunneling Protocol Proxy (GTP Proxy) for selecting a gateway peer node.

10. A system comprising:

a memory; and

one or more processors coupled to the memory, the one or more processors being configured to read instructions from the memory that, during execution, cause the one or more processors to perform operations comprising:

receiving a trigger to select a peer node for a subscriber session;

choosing a peer selector among one or more available peer selectors in response to the trigger, wherein choosing the peer selector comprises:

analyzing subscriber session data to determine one or more parameters of the subscriber session;

identifying one or more matching peer selectors among the one or more available peer selectors that have key types that match the one or more parameters; and

choosing the peer selector from among the one or more matching peer selectors based on the chosen peer selector having a highest priority among the one or more matching peer selectors;

determining whether the chosen peer selector is associated with a fully qualified domain name (FQDN);

in response to determining that the chosen peer selector is associated with the FQDN, determining whether a domain name system (DNS) server is configured, wherein the DNS server is configured when at least one of a primary DNS server or a secondary DNS server is provisioned and reachable;

in response to determining that the DNS server is configured, requesting a peer list associated with the FQDN from the DNS server; and

selecting, by a selection engine, the peer node from the peer list.

11. The system of claim 10 , further comprising, in response to determining that (a) the chosen peer selector is not associated with the FQDN or (b) the DNS server is not configured, obtaining, by the selection engine, the peer list from the chosen peer selector.

12. The system of claim 10 , wherein selecting the peer node from the peer list further comprises:

receiving, by the selection engine, the peer list;

eliminating one or more unreachable peer nodes from the peer list;

eliminating one or more peer nodes that are in overload from the peer list;

grouping one or more remaining peer nodes in the peer list based on a load level associated with each of the one or more remaining peer nodes, yielding a plurality of peer groups that each include one or more peer nodes; and

selecting the peer node from a least loaded peer group among the plurality of peer groups.

13. A non-transitory computer-readable medium storing instructions that, when executed by a selection engine comprising one or more hardware processors, cause the selection engine to perform operations comprising:

receiving a trigger to select a peer node for a subscriber session;

choosing a peer selector among one or more available peer selectors in response to the trigger, wherein choosing the peer selector comprises:

analyzing subscriber session data to determine one or more parameters of the subscriber session;

identifying one or more matching peer selectors among the one or more available peer selectors that have key types that match the one or more parameters; and

choosing the peer selector from among the one or more matching peer selectors based on the chosen peer selector having a highest priority among the one or more matching peer selectors;

determining whether the chosen peer selector is associated with a fully qualified domain name (FQDN);

in response to determining that the chosen peer selector is associated with the FQDN, determining whether a domain name system (DNS) server is configured, wherein the DNS server is configured when at least one of a primary DNS server or a secondary DNS server is provisioned and reachable;

in response to determining that the DNS server is configured, requesting a peer list associated with the FQDN from the DNS server; and

selecting, by the selection engine, the peer node from the peer list.

14. The non-transitory computer-readable medium of claim 13 , wherein the trigger includes at least one of an indication of session traffic traversing a node associated with the selection engine or a request to select the peer node.

15. The non-transitory computer-readable medium of claim 13 , further comprising, in response to determining that (a) the chosen peer selector is not associated with the FQDN or (b) the DNS server is not configured, obtaining, by the selection engine, the peer list from the chosen peer selector.

16. The non-transitory computer-readable medium of claim 13 , wherein selecting the peer node from the peer list further comprises:

receiving the peer list;

eliminating one or more unreachable peer nodes from the peer list;

eliminating one or more peer nodes that are in overload from the peer list;

grouping one or more remaining peer nodes in the peer list based on a load level associated with each of the one or more remaining peer nodes, yielding a plurality of peer groups that each include one or more peer nodes; and

selecting peer node from a least loaded peer group among the plurality of peer groups.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 053983 FRAME: 0166. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 12, 2023
From: AFFIRMED NETWORKS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063636/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2020
From: AFFIRMED NETWORKS, INC.
To: MICROSOFT TECHNOLGY LICENSING, LLC
Reel/Frame 053983/0166 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: VELDANDA, NARSI; RAGHAVAN, ANUPAMA
To: AFFIRMED NETWORKS, INC.
Reel/Frame 050289/0622 →
Continuity (2)
Provisional Application 62702093 · Jul 23, 2018
Related Publication 20200028896A1 · Jan 23, 2020