IP Library Granted Patent US 12,132,656
Granted Patent B2
US 12,132,656 · App. 16/945,886 · Granted Oct 29, 2024

Stateful filtering systems and methods

Inventors: Barak Gafni (Campbell, CA); Aviv Kfir (Nili, IL); Matty Kadosh (Hadera, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L45/74H04L45/34H04L45/38H04L45/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,132,656
App. No.
16/945,886
Granted
Oct 29, 2024
Kind
B2
Abstract

A method for filtering packets, the method including receiving a plurality of packets, each packet of the plurality of packets including a source address, and for each one packet of the plurality of packets, processing the one packet by performing the following: modifying the source address of the one packet to include at least an identifier of a flow to which the one packet belongs. Related apparatus and methods are also provided.

Claims (53)

1. A method for filtering packets, the method comprising:

receiving a plurality of packets, by a network element, each packet of the plurality of packets comprising a source address field; and

for each one packet of the plurality of received packets, processing the one packet in the network element receiving the one packet, by performing the following:

modifying the source address field of the one packet to comprise at least an identifier of a flow to which the one packet belongs, the identifier comprising a flow-based signature of the one packet;

determining, based at least in part on the identifier of the flow to which the one packet belongs, in the source address field of the one packet, whether another packet of the flow to which the one packet belongs has previously been processed;

performing an operation on the one packet, the operation including dropping the one packet, based on another packet of the flow to which the one packet belongs having previously been processed; and

passing the one packet on for further processing based on another packet of the flow to which the packet belongs not having previously been processed.

2. The method according to claim 1 and wherein the performing an operation on the one packet comprises counting the one packet.

3. The method according to claim 1 and wherein at least the processing the one packet is performed by a network element.

4. The method according to claim 3 and wherein the network element comprises at least one of: a bridge; a router; and a switch.

5. The method according to claim 3 , and wherein:

the network element comprises a bridge; and

at least the processing the one packet is performed by a modified bridge pipeline.

6. The method according to claim 1 and wherein the passing the one packet on for further processing comprises passing the one packet on to a router for routing.

7. The method according to claim 1 and wherein the identifier of a flow to which the one packet belongs is based, at least in part, on a sequence number of the one packet.

8. The method according to claim 1 and wherein the passing the one packet on also comprises:

learning the flow to which the one packet belongs as a flow which has previously been processed by recording the flow.

9. The method according to claim 8 and wherein the determining comprises determining, based at least in part, on whether the flow to which the one packet belongs is a flow which has been learned as a flow which has been previously processed.

10. The method according to claim 8 and also comprising removing the recording of said at least one flow as a flow which has previously been processed.

11. The method according to claim 10 and wherein the removing takes place after a time period has passed since the one flow has been recorded as a flow which has previously been processed.

12. A network element for filtering packets, the network element comprising:

reception circuitry configured to receive a plurality of packets, each packet of the plurality of packets comprising a source address field; and

packet processing circuitry configured, for each one packet of the plurality of packets, to process the one packet by performing the following:

modifying the source address field of the one packet to comprise at least an identifier of a flow to which the one packet belongs, the identifier comprising a flow-based signature of the one packet;

determining, based at least in part on the identifier of the flow to which the one packet belongs, in the source address field of the one packet, whether another packet of the flow to which the one packet belongs has previously been processed;

performing an operation on the one packet, the operation including dropping the one packet, based on another packet of the flow to which the one packet belongs having previously been processed; and

passing the one packet on for further processing based on another packet of the flow to which the packet belongs not having previously been processed.

13. The network element according to claim 12 and wherein the performing an operation on the one packet comprises counting the one packet.

14. The network element according to claim 12 and wherein the network element comprises at least one of: a bridge; a router; and a switch.

15. The network element according to claim 12 , and wherein:

the network element comprises a bridge; and

at least the processing the one packet is performed by a modified bridge pipeline.

16. The network element according to claim 12 and wherein the identifier of the flow to which the one packet belongs is based, at least in part, on a sequence number of the one packet.

17. The network element according to claim 12 and wherein the passing the one packet on also comprises:

learning the flow to which the one packet belongs as a flow which has previously been processed by recording the flow.

18. The network element according to claim 17 and wherein the determining comprises determining, based at least in part, on whether the flow to which the one packet belongs is a flow which has been learned as a flow which has been previously processed.

19. The network element according to claim 17 and wherein the passing the one packet on also comprises removing the recording of said at least one flow as a flow which has previously been processed.

20. The network element according to claim 19 and wherein the removing takes place after a time period has passed since the one flow has been recorded as a flow which has previously been processed.

21. The method according to claim 1 and wherein the flow-based signature comprises one of the following:

a hash of the following fields of the one packet: source IP (SIP); destination IP (DIP); protocol type; source port (SPORT); and destination port (DPORT);

SIP of the one packet;

SIP of the one packet concatenated with SPORT of the one packet;

a hash of the entirety of the packet; and

a hash of the following fields: DIP of the one packet; protocol type of the one packet; SPORT of the one packet; DPORT of the one packet; and a sequence number of the one packet.

22. The network element according to claim 12 and wherein the flow-based signature comprises one of the following:

a hash of the following fields of the one packet: source IP (SIP);

destination IP (DIP); protocol type; source port (SPORT); and destination port (DPORT);

SIP of the one packet;

SIP of the one packet concatenated with SPORT of the one packet;

a hash of the entirety of the packet; and

a hash of the following fields: DIP of the one packet; protocol type of the one packet; SPORT of the one packet; DPORT of the one packet; and a sequence number of the one packet.

23. The network element according to claim 12 , wherein the packet processing circuitry determines whether another packet of the flow to which the one packet belongs has previously been processed, by a security mechanism, which is configured to apply security policies based on the source address field of received packets and the ingress port through which the packet was received.

24. The network element according to claim 23 , wherein the packet processing circuitry is configured with a link-aggregation which includes all ports from which the packet may arrive, for the packet filtering.

Assignments (2)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2020
From: GAFNI, BARAK; KFIR, AVIV; KADOSH, MATTY
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 053377/0236 →
Continuity (1)
Related Publication 20220038372A1 · Feb 3, 2022