Patent Description:
According to a first aspect there is described a method, comprising: receiving, by a disaggregated broadband network gateway "DBNG" control plane system, an association setup request message from a DBNG user plane device, wherein the association setup request message is received via a state control interface between the DBNG control plane system and the DBNG user plane device; determining, by the DBNG control plane system and based on the association setup request message, one or more capabilities of the DBNG user plane device; causing, by the DBNG control plane system and based on determining the one or more capabilities of the DBNG user plane device, one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device; communicating a first set of messages associated with a first message type via the state control interface; and communicating a second set of messages associated with a second message type via at least one of the one or more additional state control interfaces.

According to a second aspect there is described a disaggregated broadband network gateway "DBNG" user plane device, comprising: one or more memories; and one or more processors to: send an association setup request message to a DBNG control plane system, wherein the association setup request message is sent via a state control interface between the DBNG control plane system and the DBNG user plane device; receive, after sending the association setup request message, an association setup response message from the DBNG control plane system; and communicate, based on receiving the association setup response message, with the DBNG control plane system via the state control interface and one or more additional state control interfaces between the DBNG control plane system and the DBNG user plane device, wherein the one or more additional state control interfaces are established based on the DBNG user plane device sending the association setup request message to the DBNG control plane system, wherein a first set of messages associated with a first message type are communicated via the state control interface, and wherein a second set of messages associated with a second message type are communicated via at least one of the one or more additional state control interfaces.

According to a third aspect there is described a computer-readable medium comprising a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a disaggregated broadband network gateway "DBNG" control plane system, cause the DBNG control plane system to: receive, via a state control interface between the DBNG control plane system and a DBNG user plane device, an association setup request message from the DBNG user plane device; cause, based on the association setup request message, a set of additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device; communicate a first set of messages associated with a first message type via the state control interface; and communicate a second set of messages associated with a second message type via at least some of the set of additional state control interfaces.

Particular embodiments are set out in the independent claims. Various optional examples are set out in the dependent claims.

To accommodate growth in a quantity of subscribers, a quantity and types of services being provided by BNGs, and an amount of traffic being processed by BNGs, a disaggregated BNG (DBNG) may be deployed by a service provider. The DBNG physically and logically separates a control plane and a user plane (also termed a "data plane"). For example, software to perform control plane functions may be distributed for execution by servers as virtualized BNG functions. Devices to implement the user plane, which may include physical network devices or virtual user plane devices, remain in a forwarding path between access networks and a data network to process packet flows according to subscriber forwarding state rules programmed by the control plane.

In many cases, a single interface is provided between the control plane and the user plane to communicate DBNG state-related information between the control plane and the user plane. However, in some cases, the control plane and the user plane need to share large amounts of information within a particular period of time. This can create a bottleneck, which causes high-priority information (e.g., information that needs to be timely exchanged to meet service level agreement (SLA) requirements and/or protocol timeout requirements) to be delayed, lost, dropped, and/or otherwise not communicated. Accordingly, this negatively impacts a performance of the control plane, the user plane, and the DBNG.

Some implementations described herein provide a DBNG that includes a DBNG control plane system and one or more DBNG user plane devices. The DBNG control plane system and a DBNG user plane device, of the one or more DBNG user plane devices, may communicate with each other to cause multiple state control interfaces to be established between the DBNG control plane system and the DBNG user plane device. Accordingly, the DBNG control plane system and the DBNG user plane device may communicate DBNG state-related messages to each other via the multiple state control interfaces. In some implementations, each state control interface, of the multiple state control interfaces, is configured to transmit messages associated with a particular message type between the DBNG control plane system and the DBNG user plane device. For example, a first set of state control interfaces (e.g., that comprises one or more state control interfaces) may transmit node-related messages, a second set of state control interfaces may transmit session-related messages, and a third set of state control interfaces may transmit reporting-related messages.

In this way, some implementations described herein enable messages with a same or similar priority (e.g., where the priority is based on the type of message) to be sent via a particular set of state control interfaces between the DBNG control plane system and the DBNG user plane device. This reduces a likelihood that high-priority messages are delayed or otherwise not transmitted due to a bottleneck issue associated with a single interface. This increases a likelihood that state-related information is timely communicated between the DBNG user plane device and the DBNG control plane system. Therefore, using multiple state control interfaces (e.g., that depend on message type) between the DBNG control plane system and the DBNG user plane device improves a performance of the DBNG user plane device, the DBNG control plane system, and the DBNG, as compared to using a single interface between the DBNG user plane device and the DBNG control plane system.

<FIG> are diagrams of one or more example implementations <NUM> described herein relating to a DBNG. Example implementation(s) <NUM> may include a DBNG control plane system and multiple DBNG user plane devices (shown as DBNG user plane device A and DBNG user plane device B), which are described in more detail below in connection with <FIG>. In some implementations, each of the DBNG control plane system and multiple DBNG user plane devices may include one or more microservices. For example, as shown in <FIG>, the DBNG control plane system may include one or more control plane microservices (shown as microservices CP MS-<NUM> through CP MS-L, where L ≥ <NUM>), the DBNG user plane device A may include one or more user plane microservices (shown as microservices UP-A MS-<NUM> through UP-A MS-M, where M ≥ <NUM>), and the DBNG user plane device B may include one or more user plane microservices (shown as microservices UP-B MS-<NUM> through UP-B MS-N, where N ≥ <NUM>).

As shown in <FIG>, and by reference number <NUM>, the DBNG user plane device A may be activated. For example, the DBNG user plane device A may be turned on, come online, or otherwise become available to provide control plane services for the DBNG. In some implementations, when the DBNG user plane device A is activated, a state control interface may be established between the DBNG user plane device A and the DBNG control plane system. For example, the DBNG user plane device A may send identification information (e.g., via another interface, such as a management interface) to the DBNG control plane system, which may authenticate and/or verify the DBNG user plane device A. Accordingly, the DBNG control plane system and the DBNG user plane device A may communicate (e.g., send, via the other interface, information identifying available port numbers of the DBNG control plane system and the DBNG user plane device A) to establish the state control interface. For example, as shown in <FIG>, the DBNG user plane device A and the DBNG control plane system may communicate to establish the state control interface A-<NUM>.

As shown by reference number <NUM>, the DBNG user plane device A may send a node-related message, such as an association setup request message to the DBNG control plane system (e.g., via the state control interface). In some implementations, the association setup request message may be a packet forwarding control protocol (PFCP) message (e.g., a PFCP association setup request message). The association setup request message may include information indicating one or more capabilities of the DBNG user plane device A, such as one or more of a buffering capability, a traffic steering capability, or a message bundling capability, among other examples. In a specific example, the association setup request message may indicate a quantity of state control interfaces that the DBNG user plane device A can support (e.g., a total quantity of state control interfaces that the DBNG user plane device A can support, or a quantity of additional state control interfaces that the DBNG user plane device A can support).

In some implementations, a microservice of the DBNG user plane device A may send (e.g., via the state control interface) the association setup request message to a microservice of the DBNG control plane system. For example, as further shown in <FIG>, the UP-A MS-<NUM> microservice of the DBNG user plane device A may send the association setup request message to the CP MS-<NUM> microservice of the DBNG control plane system (e.g., via the state control interface A-<NUM>). The UP-A MS-<NUM> microservice may be associated with management and control functions of the DBNG user plane device A and/or the CP MS-<NUM> may be associated with management and control functions of the DBNG control plane system.

As shown in <FIG>, and by reference number <NUM>, the DBNG control plane system may process the association setup request message (e.g., after receiving the association setup request message). For example, the DBNG control plane system may process (e.g., parse) the association setup request message to determine the one or more capabilities of the DBNG user plane device A, such as the quantity of state control interfaces that the DBNG user plane device A can support. In some implementations, a microservice of the DBNG control plane system, such as the CP MS-<NUM> microservice that received the association setup request message, may process the association setup request message to determine the one or more capabilities of the DBNG user plane device A.

As shown by reference number <NUM>, the DBNG control plane system may cause one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device A. For example, as further shown in <FIG>, the DBNG control plane system may cause one or more additional state control interfaces A-<NUM> through A-X, where X ≥ <NUM>, to be established between the DBNG control plane system and the DBNG user plane device A. In some implementations, the DBNG control plane system may cause the one or more additional state control interfaces to be established based on determining the one or more capabilities of the DBNG user plane device A. For example, the DBNG control plane system may cause, based on the quantity of state control interfaces that the DBNG user plane device A can support, one or more ports of the DBNG control plane system to be respectively allocated for the one or more additional state control interfaces. As shown by reference number <NUM>, the DBNG control plane system may send (e.g., via the state control interface) an association setup response message that includes identification information associated with the one or more ports (e.g., that indicates the port numbers of the one or more ports) to the DBNG user plane device A. The DBNG user plane device A may process (e.g., parse) the association setup response message to determine the identification information and may cause, based on the identification information, one or more ports of the DBNG user plane device A to be respectively allocated for the one or more additional state control interfaces (e.g., such that an additional state control interface is established between particular ports of the DBNG control plane system and the DBNG user plane device A).

In some implementations, a microservice of the DBNG control plane system, such as the CP MS-<NUM> microservice, may cause establishment of the one or more additional state control interfaces (e.g., as described herein in relation to reference numbers <NUM> and <NUM>). Additionally, or alternatively, a microservice of the DBNG user plane device A, such as the UP-A MS-<NUM> microservice, may facilitate establishment of the one or more additional state control interfaces (e.g., as described herein in relation to reference number <NUM>).

As shown in <FIG>, and by reference number <NUM>, the DBNG control plane system and/or the DBNG user plane device A may communicate messages. For example, the DBNG control plane system may send messages to and/or receive messages from the DBNG user plane device A. In some implementations, the DBNG control plane system and/or the DBNG user plane device A may communicate messages via the state control interface and the one or more additional state control interfaces. For example, the DBNG control plane system and/or the DBNG user plane device A may communicate messages via the state control interface A-<NUM> and the additional state control interfaces A-<NUM> through A-X.

In some implementations, each state control interface, of the state control interface and the one or more additional state control interfaces, may transmit messages associated with a particular type of message. For example, the DBNG control plane system and/or the DBNG user plane device A may communicate a first set of messages associated with a first message type via the state control interface, may communicate a second set of messages associated with a second message type via a first set of additional state control interfaces of the one or more additional state control interfaces (e.g., a first set that comprises at least one of the one or more additional state control interfaces), and/or may communicate a third set of messages associated with a third message type via a second set of additional state control interfaces of the one or more additional state control interfaces (e.g., a second set that comprises at least one of the one or more additional state control interfaces). In a specific example, the DBNG control plane system and/or the DBNG user plane device A may communicate node-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the state control interface, session-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the first set of additional state control interfaces, and reporting-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the second set of additional control interfaces.

In some implementations, each state control interface, of the state control interface and the one or more additional state control interfaces, may be associated with a microservice of the DBNG control plane system and/or may be associated with a microservice of the DBNG user plane device A. For example, as shown in <FIG>, the state control interface A-<NUM> may be associated with the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-A MS-<NUM> microservice of the DBNG user plane device A. That is, the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-A MS-<NUM> microservice of the DBNG user plane device A may communicate messages (e.g., messages of a first message type, such as node-related messages) via the state control interface A-<NUM>.

As another example, as shown in <FIG>, a first set of additional state control interfaces of the one or more additional state control interfaces (e.g., a first set that comprises at least one of the one or more additional state control interfaces) may be associated with the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-A MS-<NUM> microservice of the DBNG user plane device A, and/or a second set of additional state control interfaces of the one or more additional state control interfaces (e.g., a second set that comprises at least one of the one or more additional state control interfaces) may be associated with the CP MS-L microservice of the DBNG control plane system and/or the UP-A MS-M microservice of the DBNG user plane device A. That is, the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-A MS-<NUM> microservice of the DBNG user plane device A may communicate messages (e.g., messages of a second message type, such as session-related messages) via the first set of additional state control interfaces and/or the CP MS-L microservice of the DBNG control plane system, and/or the UP-A MS-M microservice of the DBNG user plane device A may communicate messages (e.g., messages of a third message type, such as reporting-related messages) via the second set of additional state control interfaces.

As further shown in <FIG>, and by reference number <NUM>, the DBNG control plane system and the DBNG user plane device A may exchange heartbeat messages (e.g., PFCP heartbeat messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the state control interface and the one or more additional state control interfaces. For example, the DBNG control plane system and/or the DBNG user plane device A may send heartbeat messages to and/or receive heartbeat messages from each other via the state control interface and the one or more additional state control interfaces (e.g., send and/or receive respective heartbeat messages via the state control interface and the one or more additional state control interfaces).

In this way, the DBNG control plane system and/or the DBNG user plane device A may determine (e.g., based on a frequency of the exchange of heartbeat messages) whether a particular state control interface, of the state control interface and the one or more additional state control interfaces, is active or inactive (e.g., whether the particular state control interface is up or down). For example, the DBNG control plane system may determine that a heartbeat timeout interval has expired without the DBNG control plane system receiving at least one heartbeat message from the DBNG user plane device A via the particular state control interface (e.g., a time between receiving heartbeat messages from the DBNG user plane device A via the particular state control interface has exceeded the timeout interval). This may indicate that the particular state control interface is inactive. Accordingly, as shown by reference number <NUM>, the DBNG control plane system may cause the particular state control interface to be released (e.g., cause the particular state control interface to be torn down). In this way, resources associated with maintaining the particular state control interface by the DBNG control plane system and/or the DBNG user plane device A may be reallocated to improve a performance of the DBNG control plane system and/or the DBNG user plane device A.

As shown in <FIG>, and by reference number <NUM>, the DBNG user plane device B may be activated. For example, the DBNG user plane device B may be turned on, come online, or otherwise become available to provide control plane services for the DBNG. In some implementations, when the DBNG user plane device B is activated, another state control interface may be established between the DBNG user plane device B and the DBNG control plane system (e.g., in a similar manner as that described herein in relation to <FIG> and reference number <NUM>). For example, as shown in <FIG>, the DBNG user plane device B and the DBNG control plane system may communicate to establish the state control interface B-<NUM>.

As shown by reference number <NUM>, the DBNG user plane device B may send a node-related message, such as another association setup request message to the DBNG control plane system (e.g., via the other state control interface). In some implementations, the other association setup request message may be a PFCP message (e.g., a PFCP association setup request message) and may include information indicating one or more capabilities of the DBNG user plane device B. For example, the other association setup request message may indicate a quantity of state control interfaces that the DBNG user plane device B can support (e.g., a total quantity of state control interfaces that the DBNG user plane device B can support, or a quantity of additional state control interfaces that the DBNG user plane device B can support).

In some implementations, a microservice of the DBNG user plane device B may send (e.g., via the other state control interface) the other association setup request message to a microservice of the DBNG control plane system. For example, as further shown in <FIG>, the UP-B MS-<NUM> microservice of the DBNG user plane device B may send the other association setup request message to the CP MS-<NUM> microservice of the DBNG control plane system (e.g., via the other state control interface B-<NUM>). The UP-B MS-<NUM> microservice may be associated with management and control functions of the DBNG user plane device B.

As shown in <FIG>, and by reference number <NUM>, the DBNG control plane system may process the other association setup request message (e.g., after receiving the other association setup request message). For example, the DBNG control plane system may process (e.g., parse) the other association setup request message to determine the one or more capabilities of the DBNG user plane device B, such as the quantity of state control interfaces that the DBNG user plane device B can support. In some implementations, a microservice of the DBNG control plane system, such as the CP MS-<NUM> microservice that received the other association setup request message, may process the other association setup request message to determine the one or more capabilities of the DBNG user plane device B.

As shown by reference number <NUM>, the DBNG control plane system may cause one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device B. For example, as further shown in <FIG>, the DBNG control plane system may cause one or more additional state control interfaces B-<NUM> through B-Y, where Y ≥ <NUM>, to be established between the DBNG control plane system and the DBNG user plane device B. Hereinafter, the one or more additional state control interfaces A-<NUM> through A-X between the DBNG control plane system and the DBNG user plane device A are referred to as the "first set of additional control interfaces," and the one or more additional state control interfaces B-<NUM> through B-Y between the DBNG control plane system and the DBNG user plane device B are referred to as the "second set of additional state control interfaces.

In some implementations, the DBNG control plane system may cause the second set of additional state control interfaces to be established based on determining the one or more capabilities of the DBNG user plane device B. For example, the DBNG control plane system may cause, based on the quantity of state control interfaces that the DBNG user plane device B can support, one or more ports of the DBNG control plane system to be respectively allocated for the second set of additional state control interfaces. As shown by reference number <NUM>, the DBNG control plane system may send (e.g., via the other state control interface) an association setup response message that includes identification information associated with the one or more ports (e.g., that indicates the port numbers of the one or more ports) to the DBNG user plane device B. The DBNG user plane device B may process (e.g., parse) the association setup response message to determine the identification information and may cause, based on the identification information, one or more ports of the DBNG user plane device B to be respectively allocated for the second set of additional state control interfaces (e.g., such that an additional state control interface is established between particular ports of the DBNG control plane system and the DBNG user plane device B).

In some implementations, a microservice of the DBNG control plane system, such as the CP MS-<NUM> microservice, may cause establishment of the one or more additional state control interfaces (e.g., as described herein in relation to reference numbers <NUM> and <NUM>). Additionally, or alternatively, a microservice of the DBNG user plane device B, such as the UP-B MS-<NUM> microservice, may facilitate establishment of the second set of additional state control interfaces (e.g., as described herein in relation to reference number <NUM>).

In this way, as described herein, the DBNG control plane system may cause a first set of additional state control interfaces to be established between the DBNG control plane system and DBNG user plane device A, and may cause a second set of additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device B. While some implementations described herein are directed to the DBNG control plane system causing respective sets of additional state control interface to be established between the DBNG control plane system and two different DBNG user plane devices, contemplated implementations include the DBNG control plane system causing respective sets of additional state control interface to be established between the DBNG control plane system and any quantity of DBNG user plane devices.

As shown in <FIG>, and by reference number <NUM>, the DBNG control plane system and/or the DBNG user plane device B may communicate messages. For example, the DBNG control plane system may send messages to and/or receive messages from the DBNG user plane device B. In some implementations, the DBNG control plane system and/or the DBNG user plane device B may communicate messages via the other state control interface and the second set of additional state control interfaces between the DBNG control plane system and the DBNG user plane device B. For example, the DBNG control plane system and/or the DBNG user plane device B may communicate messages via the state control interface B-<NUM> and the additional state control interfaces B-<NUM> through B-Y.

In some implementations, each state control interface, of the other state control interface and the second set of additional state control interfaces, may transmit messages associated with a particular type of message. For example, the DBNG control plane system and/or the DBNG user plane device B may communicate a first set of messages associated with a first message type via the other state control interface, may communicate a second set of messages associated with a second message type via a first subset of additional state control interfaces of the second set of additional state control interfaces (e.g., a first subset that comprises at least some of the second set of additional state control interfaces), and/or may communicate a third set of messages associated with a third message type via a second subset of additional state control interfaces of the one or more additional state control interfaces (e.g., a second subset that comprises at least some of the second set of additional state control interfaces). In a specific example, the DBNG control plane system and/or the DBNG user plane device B may communicate node-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the other state control interface, session-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the first subset of additional state control interfaces, and reporting-related messages (e.g., PFCP messages with message type values of <NUM>-<NUM>, as described herein in relation to <FIG>) via the second subset of additional control interfaces.

In some implementations, each state control interface, of the other state control interface and the second set of additional state control interfaces, may be associated with a microservice of the DBNG control plane system and/or may be associated with a microservice of the DBNG user plane device B. For example, as shown in <FIG>, the state control interface B-<NUM> may be associated with the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-B MS-<NUM> microservice of the DBNG user plane device B. That is, the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-B MS-<NUM> microservice of the DBNG user plane device B may communicate messages (e.g., messages of a first message type, such as node-related messages) via the state control interface B-<NUM>.

As another example, as shown in <FIG>, a first subset of additional state control interfaces of the second set of additional state control interfaces (e.g., a first subset that comprises at least some of the second set of additional state control interfaces) may be associated with the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-B MS-<NUM> microservice of the DBNG user plane device B and/or a second subset of additional state control interfaces of the second set of additional state control interfaces (e.g., a second subset that comprises at least some of the second set of additional state control interfaces) may be associated with the CP MS-L microservice of the DBNG control plane system and/or the UP-B MS-N microservice of the DBNG user plane device B. That is, the CP MS-<NUM> microservice of the DBNG control plane system and/or the UP-B MS-<NUM> microservice of the DBNG user plane device B may communicate messages (e.g., messages of a second message type, such as session-related messages) via the first subset of additional state control interfaces and/or the CP MS-L microservice of the DBNG control plane system, and/or the UP-B MS-N microservice of the DBNG user plane device B may communicate messages (e.g., messages of a third message type, such as reporting-related messages) via the second subset of additional state control interfaces.

As further shown in <FIG>, and by reference number <NUM>, the DBNG control plane system and the DBNG user plane device B may exchange heartbeat messages via the other state control interface and the second set of additional state control interfaces. For example, the DBNG control plane system and/or the DBNG user plane device B may send heartbeat messages to and/or receive heartbeat messages from each other via the other state control interface and the second set of additional state control interfaces (e.g., send and/or receive respective heartbeat messages via the other state control interface and the second set of additional state control interfaces).

In this way, the DBNG control plane system and/or the DBNG user plane device B may determine (e.g., based on a frequency of the exchange of heartbeat messages) whether a particular state control interface, of the other state control interface and the second set of additional state control interfaces, is active or inactive (e.g., whether the particular state control interface is up or down). For example, the DBNG control plane system may determine that a heartbeat timeout interval has expired without the DBNG control plane system receiving at least one heartbeat message from the DBNG user plane device B via the particular state control interface (e.g., a time between receiving heartbeat messages from the DBNG user plane device B via the particular state control interface has exceeded the timeout interval). This may indicate that the particular state control interface is inactive. Accordingly, as shown by reference number <NUM>, the DBNG control plane system may cause the particular state control interface to be released (e.g., cause the particular state control interface to be torn down). In this way, resources associated with maintaining the particular state control interface by the DBNG control plane system and/or the DBNG user plane device B may be reallocated to improve a performance of the DBNG control plane system and/or the DBNG user plane device B.

As indicated above, <FIG> are provided merely as one or more examples. In practice, there may be additional devices and/or systems, fewer devices and/or systems, different devices and/or systems, or differently arranged devices and/or systems than those shown in <FIG>. Furthermore, two or more devices or systems shown in <FIG> may be implemented within a single device or system, or a single device or system shown in <FIG> may be implemented as multiple, distributed devices or systems. Additionally, or alternatively, a set of devices or systems (e.g., one or more devices or systems) of implementation <NUM> may perform one or more functions described as being performed by another set of devices or systems of implementation <NUM>.

<FIG> is an illustration <NUM> of types of messages that may be communicated by a DBNG control plane system and a DBNG user plane device (e.g., via a state control interface and one or more additional state control interfaces between the DBNG control plane system and the DBNG user plane device), as described herein. As shown in <FIG>, the messages may be PFCP messages. For example, the messages may include PFCP heartbeat messages (e.g., with message type values <NUM>-<NUM>), PFCP node-related messages (e.g., with message type values <NUM>-<NUM>), PFCP session-related messages (e.g., with message type values <NUM>-<NUM>), and/or PFCP reporting-related messages (e.g., with message type values <NUM>-<NUM>). In some implementations, PFCP messages of a particular message type may be communicated via a particular state control interface between the DBNG control plane system and the DBNG user plane device, as described herein.

As indicated above, <FIG> is provided merely as one or more examples.

<FIG> is a diagram of an example environment <NUM> in which systems and/or methods described herein may be implemented. As shown in <FIG>, example environment <NUM> may include multiple subscriber devices <NUM>, a radio access network (RAN) <NUM>, an access network (AN) <NUM>, multiple DBNG user plane devices <NUM>, a data network, a DBNG control plane system <NUM>, and a service provider network <NUM>. Devices and/or networks of example environment <NUM> may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

Subscriber device <NUM> includes one or more devices capable of receiving, generating, storing, processing, and/or providing information, such as information described herein. For example, subscriber device <NUM> may include a mobile phone (e.g., a smart phone or a radiotelephone), a laptop computer, a tablet computer, a desktop computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart watch or a pair of smart glasses), a mobile hotspot device, a fixed wireless access device, customer premises equipment, or a similar type of device. In some implementations, subscriber device <NUM> may provide and/or receive network traffic to and/or from DBNG user plane device <NUM> via RAN <NUM> or AN <NUM>.

RAN <NUM> may support, for example, a cellular radio access technology (RAT). RAN <NUM> may include one or more base stations (e.g., base transceiver stations, radio base stations, node Bs, eNodeBs (eNBs), gNodeBs (gNBs), base station subsystems, cellular sites, cellular towers, access points, transmit receive points (TRPs), radio access nodes, macrocell base stations, microcell base stations, picocell base stations, femtocell base stations, or similar types of devices) and other network entities that can support wireless communication for subscriber device <NUM>. RAN <NUM> may transfer traffic between subscriber device <NUM> (e.g., using a cellular RAT), one or more base stations (e.g., using a wireless interface or a backhaul interface, such as a wired backhaul interface), DBNG user plane device <NUM>, and/or data network <NUM>. RAN <NUM> may provide one or more cells that cover geographic areas.

AN <NUM> includes one or more wired and/or wireless networks. For example, AN <NUM> may include a cellular network (e.g., a fifth generation (<NUM>) network, a fourth generation (<NUM>) network, a long-term evolution (LTE) network, a third generation (<NUM>) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, and/or a combination of these or other types of networks. AN <NUM> may transfer traffic between subscriber device <NUM>, DBNG user plane device <NUM>, and/or data network <NUM>.

DBNG user plane device <NUM> includes one or more devices capable of receiving, processing, storing, routing, and/or providing traffic (e.g., a packet and/or other information or metadata) in a manner described herein. For example, DBNG user plane device <NUM> may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router or a provider core router), a virtual router, or another type of router. Additionally, or alternatively, DBNG user plane device <NUM> may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, or a data center server), a load balancer, and/or a similar device. In some implementations, DBNG user plane device <NUM> may be a physical device implemented within a housing, such as a chassis. In some implementations, DBNG user plane device <NUM> may be a virtual device implemented by one or more computing devices of a cloud computing environment or a data center. In some implementations, a group of DBNG user plane devices <NUM> may be a group of data center nodes that are used to route traffic flow through a network. DBNG user plane device <NUM> may transfer traffic between subscriber device <NUM> and/or data network <NUM>. DBNG user plane device <NUM> may perform control plane functionality for a DBNG. In some implementations, DBNG user plane device <NUM> may communicate with the DBNG control plane system <NUM> via multiple state control interfaces, as described herein.

Data network <NUM> includes one or more wired and/or wireless data networks. For example, data network <NUM> may include an IP Multimedia Subsystem (IMS), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a private network such as a corporate intranet, an ad hoc network, the Internet, a fiber optic-based network, a cloud computing network, a third party services network, an operator services network, and/or a combination of these or other types of networks.

DBNG control plane system <NUM> includes one or more devices capable of receiving, generating, storing, processing, providing, and/or routing information, as described elsewhere herein. DBNG control plane system <NUM> may include a communication device and/or a computing device. For example, the DBNG control plane system <NUM> may include a server, such as an application server, a client server, a host server, a proxy server, a virtual server (e.g., executing on computing hardware), or a server in a cloud computing system. In some implementations, DBNG control plane system <NUM> includes computing hardware used in a cloud computing environment. DBNG control plane system <NUM> may perform control plane functionality for a DBNG. Control plane functionality includes multiple control plane functions, such as subscriber session termination, performing signaling protocols such as Point-to-Point Protocol over Ethernet (PPPoE), IP over Ethernet (IPoE), IP address assignment and management, authentication/authorization/accounting (AAA), policy enforcement, gateway operations, lawful intercept, local management, keep-alive message processing, and configuring DBNG user plane device <NUM>. In some implementations, DBNG control plane system <NUM> may communicate with DBNG user plane device <NUM> via multiple state control interfaces, as described herein.

Service provider network <NUM> includes one or more wired and/or wireless networks (e.g., that are associated with a service provider, such as an Internet service provider (ISP)). For example, the service provider network <NUM> may include a wireless wide area network (e.g., a cellular network or a public land mobile network), a local area network (e.g., a wired local area network or a wireless local area network (WLAN), such as a Wi-Fi network), a personal area network (e.g., a Bluetooth network), a nearfield communication network, a telephone network, a private network, the Internet, and/or a combination of these or other types of networks.

Additionally, or alternatively, a set of devices (e.g., one or more devices) of example environment <NUM> may perform one or more functions described as being performed by another set of devices of example environment <NUM>.

<FIG> is a diagram of example components of a device <NUM>, which may correspond to subscriber device <NUM>, DBNG user plane device <NUM>, and/or DBNG control plane system <NUM>. In some implementations, subscriber device <NUM>, DBNG user plane device <NUM>, and/or DBNG control plane system <NUM> may include one or more devices <NUM> and/or one or more components of device <NUM>. As shown in <FIG>, device <NUM> may include a bus <NUM>, a processor <NUM>, a memory <NUM>, an input component <NUM>, an output component <NUM>, and a communication component <NUM>.

Bus <NUM> includes one or more components that enable wired and/or wireless communication among the components of device <NUM>. Bus <NUM> may couple together two or more components of <FIG>, such as via operative coupling, communicative coupling, electronic coupling, and/or electric coupling. Processor <NUM> includes a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array, an applicationspecific integrated circuit, and/or another type of processing component. Processor <NUM> is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor <NUM> includes one or more processors capable of being programmed to perform one or more operations or processes described elsewhere herein.

Memory <NUM> includes volatile and/or nonvolatile memory. For example, memory <NUM> may include random access memory (RAM), read only memory (ROM), a hard disk drive, and/or another type of memory (e.g., a flash memory, a magnetic memory, and/or an optical memory). Memory <NUM> may include internal memory (e.g., RAM, ROM, or a hard disk drive) and/or removable memory (e.g., removable via a universal serial bus connection). Memory <NUM> may be a computer-readable medium. Memory <NUM> stores information, instructions, and/or software (e.g., one or more software applications) related to the operation of device <NUM>. In some implementations, memory <NUM> includes one or more memories that are coupled to one or more processors (e.g., processor <NUM>), such as via bus <NUM>.

Input component <NUM> enables device <NUM> to receive input, such as user input and/or sensed input. For example, input component <NUM> may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, an accelerometer, a gyroscope, and/or an actuator. Output component <NUM> enables device <NUM> to provide output, such as via a display, a speaker, and/or a light-emitting diode. Communication component <NUM> enables device <NUM> to communicate with other devices via a wired connection and/or a wireless connection. For example, communication component <NUM> may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and/or an antenna.

Device <NUM> may perform one or more operations or processes described herein. For example, a computer-readable medium (e.g., memory <NUM>) may comprise a set of instructions (e.g., one or more instructions or code) for execution by processor <NUM>. Processor <NUM> may execute the set of instructions to perform one or more operations or processes described herein. In some implementations, execution of the set of instructions, by one or more processors <NUM>, causes the one or more processors <NUM> and/or the device <NUM> to perform one or more operations or processes described herein. In some implementations, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more operations or processes described herein. Additionally, or alternatively, processor <NUM> may be configured to perform one or more operations or processes described herein.

<FIG> is a diagram of example components of a device <NUM>. Device <NUM> may correspond to subscriber device <NUM>, DBNG user plane device <NUM>, and/or DBNG control plane system <NUM>. In some implementations, subscriber device <NUM>, DBNG user plane device <NUM>, and/or DBNG control plane system <NUM> may include one or more devices <NUM> and/or one or more components of device <NUM>. As shown in <FIG>, device <NUM> may include one or more input components <NUM>-<NUM> through <NUM>-B (B ≥ <NUM>) (hereinafter referred to collectively as input components <NUM>, and individually as input component <NUM>), a switching component <NUM>, one or more output components <NUM>-<NUM> through <NUM>-C (C ≥ <NUM>) (hereinafter referred to collectively as output components <NUM>, and individually as output component <NUM>), and a controller <NUM>.

Controller <NUM> may perform one or more processes described herein. Controller <NUM> may perform these processes in response to executing software instructions comprised by a computer-readable medium. A computer-readable medium can include memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices. Additionally or alternatively, a computer-readable medium can include transient media such as carrier signals and transmission media.

<FIG> is a flowchart of an example process <NUM> associated with establishing multiple state control interfaces between a DBNG control plane system and DBNG user plane device. In some implementations, one or more process blocks of <FIG> may be performed by a DBNG control plane system (e.g., DBNG control plane system <NUM>). In some implementations, one or more process blocks of <FIG> may be performed by another device or a group of devices separate from or including the DBNG control plane system, such as a DBNG user plane device (e.g., DBNG user plane device <NUM>). Additionally, or alternatively, one or more process blocks of <FIG> may be performed by one or more components of device <NUM>, such as processor <NUM>, memory <NUM>, input component <NUM>, output component <NUM>, and/or communication component <NUM>; one or more components of device <NUM>, such as input component <NUM>, switching component <NUM>, output component <NUM>, and/or controller <NUM>; and/or one or more components of another device.

As shown in <FIG>, process <NUM> may include receiving an association setup request message from a DBNG user plane device (block <NUM>). For example, the DBNG control plane system may receive an association setup request message from a DBNG user plane device, as described above. In some implementations, the association setup request message is received via a state control interface between the DBNG control plane system and the DBNG user plane device.

As further shown in <FIG>, process <NUM> may include determining, based on the association setup request message, one or more capabilities of the DBNG user plane device (block <NUM>). For example, the DBNG control plane system may determine, based on the association setup request message, one or more capabilities of the DBNG user plane device, as described above.

As further shown in <FIG>, process <NUM> may include causing, based on determining the one or more capabilities of the DBNG user plane device, one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device (block <NUM>). For example, the DBNG control plane system may cause, based on determining the one or more capabilities of the DBNG user plane device, one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device, as described above.

In a first implementation, process <NUM> includes communicating a first set of messages associated with a first message type via the state control interface, and communicating a second set of messages associated with a second message type via at least one of the one or more additional state control interfaces.

In a second implementation, alone or in combination with the first implementation, the one or more additional state control interfaces comprise a first set of additional state control interfaces and a second set of additional state control interfaces, and process <NUM> comprises communicating node-related messages via the state control interface, communicating session-related messages via the first set of additional state control interfaces, and communicating reporting-related messages via the second set of additional state control interfaces.

In a third implementation, alone or in combination with one or more of the first and second implementations, process <NUM> includes sending respective heartbeat messages to the DBNG user plane device via the state control interface and the one or more additional state control interfaces.

In a fourth implementation, alone or in combination with one or more of the first through third implementations, process <NUM> includes determining that a heartbeat timeout interval has expired without the DBNG control plane system receiving at least one heartbeat message from the DBNG user plane device via a particular state control interface of the state control interface and the one or more additional state control interfaces, and causing, based on determining that the heartbeat timeout interval has expired, the particular state control interface to be released.

In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, each state control interface, of the state control interface and the one or more additional state control interfaces, is associated with a microservice of one or more microservices of the DBNG control plane system.

In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, the one or more capabilities indicate a quantity of state control interfaces that the DBNG user plane device can support.

In a seventh implementation, alone or in combination with one or more of the first through sixth implementations, causing the one or more additional state control interfaces to be established comprises determining, based on the one or more capabilities of the DBNG user plane device, a quantity of state control interfaces that the DBNG user plane device can support; causing, based on the quantity of state control interfaces that the DBNG user plane device can support, one or more ports of the DBNG control plane system to be respectively allocated for the one or more additional state control interfaces; and sending, via the state control interface, an association setup response message that includes identification information associated with the one or more ports.

<FIG> is a flowchart of an example process <NUM> associated with establishing multiple state control interfaces between a DBNG control plane system and DBNG user plane device. In some implementations, one or more process blocks of <FIG> may be performed by an DBNG user plane device (e.g., DBNG user plane device <NUM>). In some implementations, one or more process blocks of <FIG> may be performed by another device or a group of devices separate from or including the DBNG user plane device, such as a DBNG control plane system (e.g., DBNG control plane system <NUM>). Additionally, or alternatively, one or more process blocks of <FIG> may be performed by one or more components of device <NUM>, such as processor <NUM>, memory <NUM>, input component <NUM>, output component <NUM>, and/or communication component <NUM>; one or more components of device <NUM>, such as input component <NUM>, switching component <NUM>, output component <NUM>, and/or controller <NUM>; and/or one or more components of another device.

As shown in <FIG>, process <NUM> may include sending an association setup request message to a DBNG control plane system (block <NUM>). For example, the DBNG user plane device may send an association setup request message to a DBNG control plane system, as described above. In some implementations, the association setup request message is sent via a state control interface between the DBNG control plane system and the DBNG user plane device.

As further shown in <FIG>, process <NUM> may include receiving, after sending the association setup request message, an association setup response message from the DBNG control plane system (block <NUM>). For example, the DBNG user plane device may receive, after sending the association setup request message, an association setup response message from the DBNG control plane system, as described above.

As further shown in <FIG>, process <NUM> may include communicating, based on receiving the association setup response message, with the DBNG control plane system via the state control interface and one or more additional state control interfaces between the DBNG control plane system and the DBNG user plane device (block <NUM>). For example, the DBNG user plane device may communicate, based on receiving the association setup response message, with the DBNG control plane system via the state control interface and one or more additional state control interfaces between the DBNG control plane system and the DBNG user plane device, as described above. In some implementations, the one or more additional state control interfaces are established based on the DBNG user plane device sending the association setup request message to the DBNG control plane system.

In a second implementation, alone or in combination with the first implementation, the one or more additional state control interfaces comprise a first set of additional state control interfaces and a second set of additional state control interfaces, wherein process <NUM> includes communicating node-related messages via the state control interface, communicating session-related messages via the first set of additional state control interfaces, and communicating reporting-related messages via the second set of additional state control interfaces.

In a third implementation, alone or in combination with one or more of the first and second implementations, process <NUM> includes sending respective heartbeat messages to the DBNG control plane system via the state control interface and the one or more additional state control interfaces.

In a fourth implementation, alone or in combination with one or more of the first through third implementations, each state control interface, of the state control interface and the one or more additional state control interfaces, is associated with a microservice of one or more microservices of the DBNG user plane device.

In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, the association setup request message indicates a quantity of state control interfaces that the DBNG user plane device can support.

In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, process <NUM> includes determining, prior to communicating with the DBNG control plane system and based on the association setup response message, identification information associated with one or more ports of the DBNG control plane system that are respectively associated with the one or more additional state control interfaces; and causing, based on the identification information, one or more ports of the DBNG user plane device to be respectively allocated for the one or more additional state control interfaces.

<FIG> is a flowchart of an example process <NUM> associated with establishing multiple state control interfaces between a DBNG control plane system and DBNG user plane device. In some implementations, one or more process blocks of <FIG> may be performed by an DBNG control plane system (e.g., DBNG control plane system <NUM>). In some implementations, one or more process blocks of <FIG> may be performed by another device or a group of devices separate from or including the DBNG control plane system, such as a DBNG user plane device (e.g., DBNG user plane device <NUM>). Additionally, or alternatively, one or more process blocks of <FIG> may be performed by one or more components of device <NUM>, such as processor <NUM>, memory <NUM>, input component <NUM>, output component <NUM>, and/or communication component <NUM>; one or more components of device <NUM>, such as input component <NUM>, switching component <NUM>, output component <NUM>, and/or controller <NUM>; and/or one or more components of another device.

As shown in <FIG>, process <NUM> may include receiving, via a state control interface between the DBNG control plane system and a DBNG user plane device, an association setup request message from the DBNG user plane device (block <NUM>). For example, the DBNG control plane system may receive, via a state control interface between the DBNG control plane system and a DBNG user plane device, an association setup request message from the DBNG user plane device, as described above.

As further shown in <FIG>, process <NUM> may include causing, based on the association setup request message, a set of additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device (block <NUM>). For example, the DBNG control plane system may cause, based on the association setup request message, a set of additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device, as described above.

In a first implementation, process <NUM> includes communicating a first set of messages associated with a first message type via the state control interface, and communicating a second set of messages associated with a second message type via at least some of the set of additional state control interfaces.

In a second implementation, alone or in combination with the first implementation, process <NUM> includes receiving, via another state control interface between the DBNG control plane system and another DBNG user plane device, another association setup request message from the other DBNG user plane device; and causing, based on the other association setup request message, another set of additional state control interfaces to be established between the DBNG control plane system and the other DBNG user plane device.

In a third implementation, alone or in combination with one or more of the first and second implementations, process <NUM> includes communicating a first set of messages associated with a first message type via the state control interface, communicating a second set of messages associated with a second message type via at least some of the set of additional state control interfaces, communicating a third set of messages associated with the first message type via the other state control interface, and communicating a fourth set of messages associated with the second message type via at least some of the other set of additional state control interfaces.

In a fourth implementation, alone or in combination with one or more of the first through third implementations, each of the state control interface and the other state control interface is associated with a first microservice of the DBNG control plane system, and at least some of the set of additional state control interfaces and at least some of the other set of additional state control interfaces are associated with a second microservice of the DBNG control plane system.

As used herein, traffic or content may include a set of packets. A packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a service data unit (SDU), a network packet, a datagram, a segment, a message, a block, a frame (e.g., an Ethernet frame), a portion of any of the above, and/or another type of formatted or unformatted unit of data capable of being transmitted via a network.

Thus, from one perspective, there has now been described a disaggregated broadband network gateway (DBNG) control plane system which may receive an association setup request message from a DBNG user plane device, wherein the association setup request message is received via a state control interface between the DBNG control plane system and the DBNG user plane device. The DBNG control plane system may determine, based on the association setup request message, one or more capabilities of the DBNG user plane device and may thereby cause one or more additional state control interfaces to be established between the DBNG control plane system and the DBNG user plane device. The DBNG control plane system and the DBNG control plane system may communicate messages associated with a first message type via the state control interface and may communicate messages associated with a second message type via at least one of the one or more additional state control interfaces.

As an example, "at least one of: a, b, or c" is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiple of the same item.

Claim 1:
A method, comprising:
receiving, by a disaggregated broadband network gateway, DBNG, control plane system (<NUM>), an association setup request message from a DBNG user plane device (<NUM>), wherein the association setup request message is received via a state control interface (A-<NUM>) between the DBNG control plane system (<NUM>) and the DBNG user plane device (<NUM>);
determining, by the DBNG control plane system (<NUM>) and based on the association setup request message, one or more capabilities of the DBNG user plane device (<NUM>);
causing, by the DBNG control plane system (<NUM>) and based on determining the one or more capabilities of the DBNG user plane device (<NUM>), one or more additional state control interfaces (A-<NUM> to A-X) to be established between the DBNG control plane system (<NUM>) and the DBNG user plane device (<NUM>);
communicating a first set of messages associated with a first message type via the state control interface (A-<NUM>); and
communicating a second set of messages associated with a second message type via at least one of the one or more additional state control interfaces (A-<NUM> to A-X).