# US 12,015,504 B1 · Computing device with a virtual network layer installed with user plane function (UPF) plugin and method for processing UPF packet

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,015,504 B1
- Document ID: US12015504B1
- Status: Granted
- Kind: B1
- Application number: 18/343,434
- Filed: 2023-06-28
- Published: 2024-06-20
- Granted: 2024-06-18
- Earliest claimed: 2022-12-20
- Assignees: Alpha Networks Inc.
- Applicants: Alpha Networks Inc.
- Inventors: Guan-Yi Jiang; Hsu-Tung Chien
- Web page: https://patentgrep.com/patent/US12015504B1

## CPC

- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 69/22: Parsing or analysis of headers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computing device includes a processing unit, a memory unit, a NIC that is for receiving a packet, and a network virtualization platform accommodating a plurality of virtual network applications. The NIC, the processing unit and the memory unit are collectively defined as a hardware layer for the network virtualization platform to operate thereon. The network virtualization platform includes a virtual network layer having a UPF plugin installed therewith. The UPF plugin performs rule matching according to a packet header of the packet, and determines which one of the following steps is to be performed: offloading the packet to one of the virtual network applications in the application layer for the virtual network application to provide services; and re-packaging the packet and forwarding the packet to the another computing device.

## Claims

### Claim 1

A computing device for receiving a packet from a user equipment (UE) and communicating with another computing device, the computing device comprising:
a processing unit;
a memory unit that is connected to the processing unit;
a network interface card (NIC) that is connected with the processing unit and the memory unit and that is for receiving the packet, the NIC, the processing unit and the memory unit being collectively defined as a hardware layer; and
a network virtualization platform that operates on the hardware layer, that is configured to be performed by the processing unit to accommodate a plurality of virtual network applications, and that includes
an application layer having the virtual network applications deployed thereon, and
a virtual network layer having a user plane function (UPF) plugin installed therewith, the UPF plugin being configured to perform rule matching according to a packet header of the packet, and to determine which one of the following steps is to be performed:
offloading the packet to one of the virtual network applications in the application layer for the virtual network application to provide services; and
re-packaging the packet and forwarding the packet to the another computing device.

### Claim 2 (depends on 1)

The computing device as claimed in claim 1, wherein the UPF plugin is configured to determine which one of the step of offloading and the step of re-packaging is to be performed based on a Protocol Data Unit (PDU) session anchor, which is determined according to the requirement of the UE recorded in the packet,
in the case where the UPF plugin determines that it is itself the PDU session anchor for the packet, the step of offloading is performed, and
in the case where the UPF plugin determines that it is not itself the PDU session anchor, the step of re-packaging is performed.

### Claim 3 (depends on 2)

The computing device as claimed in claim 2, wherein the UPF plugin is configured to decap the packet, parse the packet header of the packet, perform rule matching according to the packet header, and determine the PDU session anchor according to the requirement of the UE recorded in the packet.

### Claim 4 (depends on 2)

The computing device as claimed in claim 2, wherein the NIC is a smart network card that supports a hardware offload function, the smart network card directly decaps the packet that is received and parses the packet header, and then transmits the decapped packet to the UPF plugin, and the UPF plugin is configured to perform rule matching on the packet according to the packet header of the packet, and determine the PDU session anchor according to the requirement of the UE recorded in the packet.

### Claim 5 (depends on 1)

The computing device as claimed in claim 1, wherein the packet is moved from the NIC to the memory unit by a device driver using a zero-copy technique.

### Claim 6 (depends on 5)

The computing device as claimed in claim 5, wherein the network virtualization platform is divided into a kernel space and a user space according to levels of authority of an operating system of the computing device, the device driver runs in the kernel space, and the application layer and the virtual network layer run in the user space.

### Claim 7 (depends on 6)

The computing device as claimed in claim 6, wherein the device driver is supported by Data Plane Development Kit (DPDK), allowing the packet to be transmitted directly to the user space by polling.

### Claim 8 (depends on 1)

The computing device as claimed in claim 1, wherein the virtual network applications share the memory unit by means of shared memory packet interfaces (memif).

### Claim 9 (depends on 1)

The computing device as claimed in claim 1, wherein the virtual network layer of the network virtualization platform is implemented by vector packet processing (VPP), and the UPF plugin is programmed as a modular plugin under a VPP Packet Processing Graph architecture.

### Claim 10 (depends on 1)

The computing device as claimed in claim 1, wherein the UPF plugin communicates with the another computing device via interfaces of 5G standard specified in 3GPP.

### Claim 11

A method for processing a UPF packet to be executed by a computing device, the computing device including a processing unit, a memory unit and a network interface card (NIC) that are connected to each other and that are collectively defined as a hardware layer, the computing device further including a network virtualization platform that operates on the hardware layer and that is configured to be performed by the processing unit to accommodate a plurality of virtual network applications, the network virtualization platform including an application layer that has the virtual network applications deployed thereon, and a virtual network layer that has a user plane function (UPF) plugin installed therein, the UPF plugin communicating with another computing device, the method comprising steps of:
receiving, by the NIC, a packet from a UE;
the UPF plugin performing rule matching according to a packet header of the packet and determining which one of the following steps is to be performed:
offloading the packet to one of the virtual network applications in the application layer for the virtual network application to provide services, and
re-packaging the packet and forwarding the packet to the another computing device.

### Claim 12 (depends on 11)

The method as claimed in claim 11, wherein the UPF plugin determines which one of the step of offloading and the step of re-packaging is to be performed based on a Protocol Data Unit (PDU) session anchor, which is determined according to the requirement of the UE recorded in the packet:
in the case where the UPF plugin determines that it is itself the PDU session anchor for the packet, the step of offloading is performed, and
in the case where the UPF plugin determines that it is not itself the PDU session anchor, the step of re-packaging is performed.

### Claim 13 (depends on 12)

The method as claimed in claim 12, further comprising steps performed by the UPF plugin after receiving the packet of:
decapping the packet;
parsing the packet header of the packet;
performing rule matching according to the packet header; and
determining the PDU session anchor according to the requirement of the UE recorded in the packet.

### Claim 14 (depends on 12)

The method as claimed in claim 12, the NIC being a smart network card that supports a hardware offload function, the method further comprising steps, after receiving the packet, of:
by the smart network card, decapping the packet that is received;
by the smart network card, parsing the packet header;
by the smart network card, transmitting the decapped packet to the UPF plugin via the virtual network layer; and
by the UPF plugin, performing rule matching on the packet according to the packet header of the packet, and determining the PDU session anchor according to the requirement of the UE recorded in the packet.

### Claim 15 (depends on 11)

The method as claimed in claim 11, further comprising a step, after receiving the packet, of:
by a device driver, moving the packet from the NIC to the memory unit using a zero-copy technique.
