# US 11,444,879 B2 · Deep packet inspection indication for a mobile CDN

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

- Number: US 11,444,879 B2
- Document ID: US11444879B2
- Status: Granted
- Kind: B2
- Application number: 16/678,174
- Filed: 2019-11-08
- Published: 2020-05-14
- Granted: 2022-09-13
- Earliest claimed: 2019-11-08
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Huichun Liu; Xipeng Zhu; Gavin Bernard Horn
- Web page: https://patentgrep.com/patent/US11444879B2

## CPC

- H04L 47/2483: involving identification of individual flows
- H04L 43/00: Arrangements for monitoring or testing data switching networks
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 45/306: {Route determination based on the nature of the carried application}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/63: Routing a service request depending on the request content or context
- H04W 76/12: Setup of transport tunnels
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Systems and techniques are disclosed to reduce workload on base stations in a mobile network when content delivery networks cache content inside the network. A user equipment sets a flag only with those packets on the uplink which include requests that should be routed to the cache server inside the mobile network. The base stations perform deep packet inspection of those packets where flags have been set and forward other packets on to the rest of the relevant backhaul of the mobile network. After deep packet inspection, the base stations either route the packet to the cache server via an established connection or propagate the flag in an extension header to another network node for routing to the cache server. The resulting content is returned to the UE with the source address of the originally intended destination instead of the cache server, rendering the process transparent to the end user.

## Claims

### Claim 1

An apparatus, comprising:
a memory;
a transceiver configured to receive one or more packets from a separate device, the one or more packets including a flag specifying whether requested content should be obtained from a cache of a cache server, the one or more packets comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE); and
a processor coupled to the memory, the memory and the processor configured to:
check the flag included in the one or more packets; and
determine the flag as specifying that the requested content should be obtained from the cache of the cache server,
wherein the transceiver is further configured to:
transmit the one or more packets to the cache server, in response to the determination; and
receive the requested content from the cache of the cache server.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the one or more packets comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, the memory and the processor being further configured, for the checking, to:
check the one or more bits of the PDCP PDU for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the one or more packets comprises the MAC CE, the memory and the processor being further configured, for the checking, to:
check an indication section of the MAC CE that comprises the flag for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the transceiver is further configured to:
route, for the transmitting, the one or more packets on in response to determining that the flag specifies obtaining the requested content from a device different from the cache server.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the transceiver is further configured to:
transmit the requested content to the separate device in response to receiving the requested content from the cache server.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the memory and the processor are further configured to:
establish, in response to the determination, a tunnel to the cache server by which to transmit the one or more packets to the cache server and receive the requested content from the cache server.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the transceiver is further configured, for the transmitting, to:
send, in response to the determination, the one or more packets to an intermediate network node between the apparatus and the cache server for transmitting to the cache server.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein:
the memory and the processor are further configured to propagate the flag, in response to the determination, to a message extension header associated with the one or more packets, and
the transceiver is further configured, for the sending, to send the one or more packets to the intermediate network node with the message extension header.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the apparatus comprises a base station and the separate device comprises a user equipment.

### Claim 10

An apparatus, comprising:
a memory;
a processor coupled to the memory, the memory and the processor configured to:
generate one or more packets as part of an uplink message including a request for content, the one or more packets including a flag specifying whether requested content should be obtained from a cache of a cache server, the one or more packets comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE); and
set, in response to the content being for a predetermined type of content, the flag in the one or more packets; and
a transceiver coupled to the memory and the processor and configured to transmit the one or more packets comprising the flag to a separate device to handle the request.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the one or more packets comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, the memory and the processor being further configured, for the setting, to:
set the one or more bits of the PDCP PDU as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the one or more packets comprises the MAC CE, the memory and the processor being further configured, for the setting, to:
set an indication section of the MAC CE that comprises the flag as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the transceiver is further configured to:
receive the requested content from the cache of the cache server via the separate device.

### Claim 14 (depends on 10)

The apparatus of claim 10, wherein the apparatus comprises a user equipment and the separate device comprises a base station.

### Claim 15

An apparatus, comprising:
a cache configured to store content;
a transceiver configured to receive one or more packets from a separate device and via an intermediate device in response to the one or more packets including a flag specifying whether requested content should be obtained from the cache, the one or more packets comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE); and
a processor coupled to the cache and the transceiver and configured to retrieve the content from the cache in response to the receipt of the one or more packets including the flag,
wherein the transceiver is further configured to transmit the retrieved content to the intermediate device for transmission to the separate device.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the one or more packets comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU.

### Claim 17 (depends on 15)

The apparatus of claim 15, wherein the one or more packets comprises the MAC CE.

### Claim 18 (depends on 15)

The apparatus of claim 15, wherein the transceiver is further configured to receive the one or more packets transmitted from the intermediate device via a tunnel between the apparatus and the intermediate device.

### Claim 19 (depends on 15)

The apparatus of claim 15, wherein the processor is further configured to:
retrieve the content from a web server in response to failing to retrieve the content from the cache, and
store the content in the cache in response to the retrieval from the web server.

### Claim 20 (depends on 15)

The apparatus of claim 15, wherein the apparatus comprises a cache server, the intermediate device comprises a base station, and the separate device comprises a user equipment.

### Claim 21

A method for wireless communications by a first device, comprising:
receiving, by the first device, a packet from a separate device, the packet including a flag specifying whether requested content should be obtained from a cache of a cache server, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
checking the flag included in the packet;
determining the flag as specifying that the requested content should be obtained from the cache of the cache server;
transmitting the packet to the cache server, in response to the determining; and
receiving the requested content from the cache of the cache server.

### Claim 22 (depends on 21)

The method of claim 21, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, wherein checking the flag comprises:
checking the one or more bits of the PDCP PDU for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 23 (depends on 21)

The method of claim 21, wherein the packet comprises the MAC CE, wherein checking the flag comprises:
checking an indication section of the MAC CE that comprises the flag for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 24 (depends on 21)

The method of claim 21, the method further comprising:
routing, for the transmitting, the packet on in response to determining that the flag specifies obtaining the requested content from a device different from the cache server.

### Claim 25 (depends on 21)

The method of claim 21, the method further comprising:
transmitting the requested content to the separate device in response to receiving the requested content from the cache server.

### Claim 26 (depends on 21)

The method of claim 21, the method further comprising:
establishing, in response to the determining, a tunnel to the cache server by which to transmit the one or more packets to the cache server and receive the requested content from the cache server.

### Claim 27 (depends on 21)

The method of claim 21, the transmitting the packet to the cache server, in response to the determining, comprises:
sending, in response to the determining, the packet to an intermediate network node between the base station and the cache server for transmitting to the cache server.

### Claim 28 (depends on 27)

The method of claim 27, the method further comprising:
propagating the flag, in response to the determining, to a message extension header associated with the packet,
wherein the sending, in response to the determining, comprises sending the packet to the intermediate network node with the message extension header.

### Claim 29 (depends on 21)

The method of claim 21, wherein the first device comprises a base station and the separate device comprises a user equipment.

### Claim 30

A non-transitory computer-readable medium having program code recorded thereon, the program code comprising:
code for causing a first device to receive a packet from a separate device, the packet including a flag specifying whether requested content should be obtained from a cache of a cache server, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
code for causing the first device to check the flag included in the packet;
code for causing the first device to determine the flag as specifying that the requested content should be obtained from the cache of the cache server;
code for causing the first device to transmit the packet to the cache server, in response to the determination; and
code for causing the first device to receive the requested content from the cache of the cache server.

### Claim 31 (depends on 30)

The computer-readable medium of claim 30, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, wherein the code for causing the first device to check the flag comprises:
code for causing the first device to check the one or more bits of the PDCP PDU for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 32 (depends on 30)

The computer-readable medium of claim 30, wherein the packet comprises the MAC CE, wherein the code for causing the first device to check the flag comprises:
code for causing the first device to check an indication section of the MAC CE that comprises the flag for a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 33

A method for wireless communications by a first device, the method comprising:
generating, by the first device, a packet as part of an uplink message including a request for content, the packet including a flag specifying whether requested content should be obtained from a cache of a cache server, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
setting, in response to the content being for a predetermined type of content, the flag in the packet; and
transmitting the packet comprising the flag to a separate device to handle the request.

### Claim 34 (depends on 33)

The method of claim 33, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, wherein the setting comprises:
setting the one or more bits of the PDCP PDU as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 35 (depends on 33)

The method of claim 33, wherein the packet comprises the MAC CE, wherein the setting comprises:
setting an indication section of the MAC CE that comprises the flag as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 36 (depends on 33)

The method of claim 33, the method further comprising:
receiving the requested content from the cache of the cache server via the separate device.

### Claim 37 (depends on 33)

The method of claim 33, wherein the first device comprises a user equipment and the separate device comprises a base station.

### Claim 38

A non-transitory computer-readable medium having program code recorded thereon, the program code comprising:
code for causing a first device to generate a packet as part of an uplink message including a request for content, the packet including a flag specifying whether requested content should be obtained from a cache of a cache server, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
code for causing the first device to set, in response to the content being for a predetermined type of content, the flag in the packet; and
code for causing the first device to transmit the packet comprising the flag to a separate device to handle the request.

### Claim 39 (depends on 38)

The computer-readable medium of claim 38, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU, wherein the code for causing the first device to set comprises:
code for causing the first device to set the one or more bits of the PDCP PDU as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 40 (depends on 38)

The computer-readable medium of claim 38, wherein the packet comprises the MAC CE, wherein the code for causing the first device to set comprises:
code for causing the first device to set an indication section of the MAC CE that comprises the flag as a status of the flag identifying whether the requested content should be obtained from the cache of the cache server.

### Claim 41

A method for wireless communications by an apparatus, the method comprising:
receiving, by the apparatus, a packet from a separate device and via an intermediate device in response to the packet including a flag specifying whether requested content should be obtained from a cache of the apparatus, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
retrieving the content from the cache in response to the receipt of the packet including the flag; and
transmitting the retrieved content to the intermediate device for transmission to the separate device.

### Claim 42 (depends on 41)

The method of claim 41, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU.

### Claim 43 (depends on 41)

The method of claim 41, wherein the packet comprises the MAC CE.

### Claim 44 (depends on 41)

The method of claim 41, the method further comprising:
receiving the packet transmitted from the intermediate device via a tunnel between the apparatus and the intermediate device.

### Claim 45 (depends on 41)

The method of claim 41, the method further comprising:
retrieving the content from a web server in response to failing to retrieve the content from the cache of the apparatus; and
storing the content in the cache in response to the retrieval from the web server.

### Claim 46 (depends on 41)

The method of claim 41, wherein the apparatus comprise a cache server, the intermediate device comprises a base station, and the separate device comprises a user equipment.

### Claim 47

A non-transitory computer-readable medium having program code recorded thereon, the program code comprising:
code for causing an apparatus to receive a packet from a separate device and via an intermediate device in response to the packet including a flag specifying whether requested content should be obtained from a cache of the apparatus, the packet comprising one of a packet data convergence protocol (PDCP) protocol data unit (PDU) or a media access control (MAC) layer control element (CE);
code for causing the apparatus to retrieve the content from the cache in response to the receipt of the packet including the flag; and
code for causing the apparatus to transmit the retrieved content to the intermediate device for transmission to the separate device.

### Claim 48 (depends on 47)

The computer-readable medium of claim 47, wherein the packet comprises the PDCP PDU, and the flag is set in one or more bits of the PDCP PDU.

### Claim 49 (depends on 47)

The computer-readable medium of claim 47, wherein the packet comprises the MAC CE.

### Claim 50

An apparatus, comprising:
a memory;
a transceiver configured to receive one or more packets from a separate device, the one or more packets including a flag specifying whether requested content should be obtained from a cache of a cache server; and
a processor coupled to the memory, the memory and the processor configured to:
check the flag included in the one or more packets;
determine the flag as specifying that the requested content should be obtained from the cache of the cache server; and
propagate the flag, in response to the determination, to a message extension header associated with the one or more packets,
wherein the transceiver is further configured to:
send, in response to the determination, the one or more packets with the message extension header to an intermediate network node between the apparatus and the cache server for transmitting to the cache server; and
receive the requested content from the cache of the cache server.
