# US 12,120,552 B2 · Enhanced packet filtering

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

- Number: US 12,120,552 B2
- Document ID: US12120552B2
- Status: Granted
- Kind: B2
- Application number: 18/357,012
- Filed: 2023-07-21
- Published: 2023-11-09
- Granted: 2024-10-15
- Earliest claimed: 2021-08-26
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Martin Kugler; Vijay Venkataraman; Ahmed Soud Salem; Mathias Kohlenz; Sandeep Urgaonkar
- Web page: https://patentgrep.com/patent/US12120552B2

## CPC

- H04W 28/10: Flow control {between communication endpoints}
- H04W 76/10: Connection setup
- H04W 76/11: Allocation or use of connection identifiers
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

This disclosure relates to techniques for performing wireless communications including filtering packets for transmission between a user equipment (UE) and a base station. Techniques for filtering packets, at a lower layer and/or baseband processor, using higher layer information, such as a flow identifier, are disclosed. A device may generate various tables and may use the tables to filter packets efficiently.

## Claims

### Claim 1

A method, comprising:
at a baseband processor of a transmitting device:
configuring a plurality of rules for filtering packets, wherein the plurality of rules are useable to evaluate respective packets based on respective header information of the respective packets, the respective header information of the respective packets comprising a plurality of fields;
filtering at least one packet according to a first table and a second table, the first table comprising a first subset of the plurality of rules, wherein respective rules of the first subset of the plurality of rules are based on a first subset of the plurality of fields usable to determine respective flow identifiers for respective packets, and wherein the second table comprises a second subset of the plurality of rules that is disjoint from the first subset of the plurality of rules, wherein respective rules of the second subset of the plurality of rules are based at least in part on a second subset of the plurality of fields not usable to determine respective flow identifiers for respective packets; and
encoding, for transmission, the at least one filtered packet.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
respective rules of the plurality of rules for filtering packets are associated with respective precedence values;
the first subset of the plurality of rules is sorted according to precedence; and
the second subset of the plurality of rules is sorted according to precedence.

### Claim 3 (depends on 2)

The method of claim 2, wherein said filtering the at least one packet comprises:
evaluating a first packet by respective rules of the first subset of the plurality of rules beginning with a first rule associated with highest precedence;
continuing to evaluate the first packet by respective rules of the first subset of the plurality of rules in order of precedence; and
stopping evaluating the first packet according to further rules of the first subset of the plurality of rules in response to a determination that the first packet satisfies particular rule of the first subset of the plurality of rules.

### Claim 4 (depends on 2)

The method of claim 2, wherein respective rules of the first subset of the plurality of rules are associated with respective index values indicating respective numbers of the second subset of the plurality of rules with higher precedence than the respective rule.

### Claim 5 (depends on 4)

The method of claim 4, wherein said filtering the at least one packet comprises:
receiving, from an application layer of the transmitting device, a first packet;
determining that the first packet satisfies a first rule of the first subset of rules;
determining, based on an index value associated with the first rule, a first number of rules of the second subset of the plurality of rules;
evaluating the first packet according to the first number of rules of the second subset of the plurality of rules, wherein the first number of rules of the second subset of the plurality of rules are evaluated in order of precedence;
determining that the first packet does not match any rule of the first number of rules of the second subset of the plurality of rules; and
in response to the determination that the first packet does not match any rule of the first number of rules of the second subset of the plurality of rules, selecting a flow for the first packet according to the first rule of the first subset of rules.

### Claim 6 (depends on 5)

The method of claim 5, further comprising determining not to evaluate the first packet according to further rules of the second subset of the plurality of rules, wherein the determination not to evaluate the first packet according to further rules of the second subset of the plurality of rules is based on evaluating the first packet according to the first number of rules.

### Claim 7 (depends on 4)

The method of claim 4, wherein said filtering the at least one packet comprises:
receiving, from an application layer of the transmitting device, a first packet;
determining that the first packet satisfies a first rule of the first subset of rules;
determining, based on an index value associated with the first rule, a first number of rules of the second subset of the plurality of rules;
evaluating the first packet according to at least one of the first number of rules of the second subset of the plurality of rules, wherein the first number of rules of the second subset of the plurality of rules are evaluated in order of precedence;
determining that the first packet matches a first rule of the first number of rules of the second subset of the plurality of rules; and
in response to the determination that the first packet matches the first rule of the first number of rules of the second subset of the plurality of rules, selecting a flow for the first packet according to the first rule of the first number of rules of the second subset of the plurality of rules.

### Claim 8 (depends on 2)

The method of claim 2,
wherein a lowest precedence rule of the first subset of the plurality of rules comprises a matching all rule and is associated with a default bearer;
wherein filtering the at least one packet according to the first table comprises determining that the at least one packet does not match any other rule of the first subset of the plurality of rules and determining that the at least one packet matches the matching all rule; and
wherein encoding, for transmission, the at least one filtered packet comprises encoding, for transmission, the at least one packet on the default bearer in response to the determination that the at least one packet matches the matching all rule.

### Claim 9 (depends on 2)

The method of claim 2,
wherein a lowest precedence rule of the first subset of the plurality of rules comprises a matching all rule and is associated with an indication to drop any packet that does not match at least one higher precedence rule of the first subset of the plurality of rules.

### Claim 10 (depends on 1)

The method of claim 1, wherein said filtering the at least one packet comprises:
receiving, from an application layer of the transmitting device, a first packet identified with a first flow identifier;
evaluating header information of the first packet according to at least one rule of the first table;
determining that the header information of the first packet matches a first rule of the at least one rule of the first table; and
in response to the determination that the header information of the first packet matches the first rule of the at least one rule of the first table, adding a first entry to a flow identifier table, the first entry associating the first flow identifier and the first rule.

### Claim 11 (depends on 10)

The method of claim 10, wherein said filtering the at least one packet further comprises:
receiving, from the application layer of the transmitting device, a second packet identified with the first flow identifier; and
based on the first entry associating the first flow identifier and the first rule, determining that the second packet matches the first rule.

### Claim 12 (depends on 1)

The method of claim 1, wherein the first subset of the plurality of rules and the second subset of the plurality of rules are mutually exclusive.

### Claim 13

An apparatus, comprising:
a baseband processor configured to perform operations comprising:
configuring a plurality of rules for filtering packets, wherein the plurality of rules are useable to evaluate respective packets based on respective header information of the respective packets, the respective header information of the respective packets comprising a plurality of fields;
filtering at least one packet according to a first table and a second table, the first table comprising a first subset of the plurality of rules, wherein respective rules of the first subset of the plurality of rules are based on a first subset of the plurality of fields usable to determine respective flow identifiers for respective packets, and wherein the second table comprises a second subset of the plurality of rules that is disjoint from the first subset of the plurality of rules, wherein respective rules of the second subset of the plurality of rules are based at least in part on a second subset of the plurality of fields not usable to determine respective flow identifiers for respective packets; and
encoding, for transmission, the at least one filtered packet.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein said filtering the at least one packet comprises:
receiving, from an application layer, a first packet identified with a first flow identifier;
evaluating header information of the first packet according to at least one rule of the first table;
determining that the header information of the first packet matches a first rule of the at least one rule of the first table; and
in response to the determination that the header information of the first packet matches the first rule of the at least one rule of the first table, adding a first entry to a flow identifier table, the first entry associating the first flow identifier and the first rule.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein said filtering the at least one packet further comprises:
receiving, from the application layer, a second packet identified with the first flow identifier; and
based on the first entry associating the first flow identifier and the first rule, determining that the second packet matches the first rule.

### Claim 16 (depends on 13)

The apparatus of claim 13, wherein the first subset of the plurality of rules and the second subset of the plurality of rules are mutually exclusive.

### Claim 17

A transmitting device, comprising:
memory comprising program instructions; and
a processor configured to execute the program instructions, wherein the program instructions are configured to, when executed by the processor, cause the transmitting device to perform operations comprising:
configuring a plurality of rules for filtering packets, wherein the plurality of rules are useable to evaluate respective packets based on respective header information of the respective packets, the respective header information of the respective packets comprising a plurality of fields;
filtering at least one packet according to a first table and a second table, the first table comprising a first subset of the plurality of rules, wherein respective rules of the first subset of the plurality of rules are based on a first subset of the plurality of fields usable to determine respective flow identifiers for respective packets, and wherein the second table comprises a second subset of the plurality of rules that is disjoint from the first subset of the plurality of rules, wherein respective rules of the second subset of the plurality of rules are based at least in part on a second subset of the plurality of fields not usable to determine respective flow identifiers for respective packets; and
transmitting the at least one filtered packet.

### Claim 18 (depends on 17)

The transmitting device of claim 17, wherein:
respective rules of the plurality of rules for filtering packets are associated with respective precedence values;
the first subset of the plurality of rules is sorted according to precedence; and
the second subset of the plurality of rules is sorted according to precedence.

### Claim 19 (depends on 18)

The transmitting device of claim 18, wherein said filtering the at least one packet comprises:
evaluating a first packet by respective rules of the first subset of the plurality of rules beginning with a first rule associated with highest precedence;
continuing to evaluate the first packet by respective rules of the first subset of the plurality of rules in order of precedence; and
stopping evaluating the first packet according to further rules of the first subset of the plurality of rules in response to a determination that the first packet satisfies particular rule of the first subset of the plurality of rules.

### Claim 20 (depends on 17)

The transmitting device of claim 17, wherein respective rules of the first subset of the plurality of rules are associated with respective index values indicating respective numbers of the second subset of the plurality of rules with higher precedence than the respective rule.
