IP Library › Granted Patent US 11,824,799
Granted Patent B2
US 11,824,799 · App. 17/383,601 · Granted Nov 21, 2023

Egress packet processing using a modified packet header separate from a stored payload

Inventors: David Melman (Tel Aviv, IL); Ilan Mayer-Wolf (Tel-Aviv, IL); Carmi Arad (Nofit, IL); Rami Zemach (Givat Shapira, IL)
Assignee: Marvell Israel (M.I.S.L) Ltd.
H04L49/9084H04L47/2441H04L47/32H04L69/22
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 11,824,799
App. No.
17/383,601
Granted
Nov 21, 2023
Kind
B2
Abstract

A network device includes a packet processor that: determines at least one egress port via which a received packet is to be transmitted by the network device; modifies one or more fields in a header of the packet to generate a modified header; determines, based at least in part on the modified header, whether the packet a) is to be transmitted or b) is to be discarded; and stores the modified header in a packet memory. In response to the determination that the packet is to be transmitted, a transmit processor of the network device: retrieves a payload of the packet from the packet memory; retrieves the modified header from the packet memory; generates a transmit packet at least by combining the payload of the packet with the modified header; and transmits the transmit packet via the determined at least one egress port of the network device.

Claims (74)

1. A network device for processing packets in a communication network, comprising:

a receive processor configured to:

receive a packet from the communication network, and

store at least a payload of the packet in a packet memory;

a packet processor configured to process the packet, the packet processor being configured to at least:

determine at least one egress port via which the packet is to be transmitted by the network device,

modify one or more fields in a header of the packet to generate a modified header,

determine, based at least in part on the modified header, whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device, and

store the modified header in the packet memory; and

a transmit processor configured to, in response to the determination, made by the packet processor based at least in part on the modified header, that the packet is to be transmitted by the network device and not to be discarded by the network device:

retrieve the at least the payload of the packet from the packet memory,

retrieve the modified header from the packet memory,

generate a transmit packet at least by combining the at least the payload of the packet with the modified header, and

transmit the transmit packet via the determined at least one egress port of the network device.

2. The network device of claim 1 , wherein the packet processor is configured to:

store the at least the payload of the packet at a first memory location in the packet memory, and

store the modified header at a second memory location, separate from the first memory location, in the packet memory.

3. The network device of claim 2 , wherein the packet processor is configured to

process the packet using a packet descriptor associated with the packet, and

after processing the packet using the packet descriptor,

generate an egress packet descriptor corresponding to the packet, the egress packet descriptor being smaller than the packet descriptor used for processing of the packet, and

in response to determining that the packet is to be transmitted from the network device, enqueue the egress packet descriptor in an egress queue for subsequent transmission of the transmit packet via the determined at least one egress port.

4. The network device of claim 3 , wherein the packet processor is configured to generate the egress packet descriptor to include at least memory location information, the memory location information indicating i) the first memory location at which the at least the payload of the packet is stored in the packet memory and ii) the second memory location at which the modified header is stored in the packet memory.

5. The network device of claim 4 , wherein the transmit processor is configured to:

when the egress packet descriptor is dequeued from the egress queue,

retrieve, based on the memory location information in the egress packet descriptor, the at least the payload of the packet from the first memory location in the packet memory and the modified header from the second memory location in the packet memory, and

generate the transmit packet at least by combining the at least the payload of the packet retrieved from the first memory location in the packet memory with the modified header retrieved from the second memory location in the packet memory.

6. The network device of claim 4 , wherein the packet processor is configured to:

i) in response to determining that the packet is to be transmitted from the network device and ii) prior to retrieving the at least the payload of the packet from the packet memory,

generate a copy of the egress packet descriptor, and

enqueue the copy of the egress packet descriptor in an additional egress queue for mirroring of the packet to a destination other than the determined at least one egress port.

7. The network device of claim 6 , wherein the transmit processor is configured to:

when the copy of the egress packet descriptor is dequeued from the additional egress queue,

retrieve, based on the memory location information in the copy of the egress packet descriptor, the at least the payload of the packet from the first memory location in the packet memory and the modified header from the second memory location in the packet memory,

generate a mirrored packet at least by combining the at least the payload of the payload retrieved, based on the memory location information in the copy of the egress packet descriptor, from the first memory location in the packet memory and the modified header retrieved, based on the memory location information in the copy of the egress packet descriptor, from the second memory location in the packet memory, and

transmit the mirrored packet to the destination other than the determined at least one egress port.

8. The network device of claim 1 , wherein the packet processor is configured to, in response to determining that the packet is to be discarded by the network device, i) discard the packet at the network device and ii) not trigger mirroring of the packet by the network device.

9. The network device of claim 1 , wherein the packet processor is further configured to perform, based at least in part on the modified header, egress classification of the packet, wherein the packet processor is configured to determine whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device is performed as part of the egress classification of the packet.

10. The network device of claim 1 , wherein the packet processor is configured to determine whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device based at least in part on application of an access control policy indicated by the one or more modified fields of the header.

11. A method for processing packets in a communication network, the method comprising:

receiving, at a network device, a packet from the communication network;

storing, with the network device, at least a payload of the packet in a packet memory of the network device;

processing, with a packet processor of the network device, the packet, the processing including at least

determining at least one egress port via which the packet is to be transmitted by the network device,

modifying one or more fields in a header of the packet to generate a modified header,

determining, based at least in part on the modified header, whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device, and

storing the modified header in the packet memory; and

in response to determining that the packet is to be transmitted by the network device and not to be discarded by the network device:

retrieving, with the network device, the at least the payload of the packet from the packet memory,

retrieving, with the network device, the modified header from the packet memory,

generating, with the network device, a transmit packet at least by combining the at least the payload of the packet with the modified header, and

transmitting the transmit packet via the determined at least one egress port of the network device.

12. The method of claim 11 , wherein:

storing the at least the payload of the packet in the packet memory comprises storing the at least the payload of the packet at a first memory location in the packet memory, and

storing the modified header in the packet memory comprises storing the modified header at a second memory location, separate from the first memory location, in the packet memory.

13. The method of claim 12 , wherein:

processing the packet comprises processing the packet using a packet descriptor associated with the packet, and

the method further comprises, after processing the packet using the packet descriptor,

generating an egress packet descriptor corresponding to the packet, the egress packet descriptor being smaller than the packet descriptor used for processing of the packet, and

in response to determining that the packet is to be transmitted from the network device, enqueuing the egress packet descriptor in an egress queue for subsequent transmission of the transmit packet via the determined at least one egress port.

14. The method of claim 13 , wherein generating the egress packet descriptor comprises generating the egress packet descriptor to include at least memory location information, the memory location information indicating i) the first memory location at which the at least the payload of the packet is stored in the packet memory and ii) the second memory location at which the modified header is stored in the packet memory.

15. The method of claim 14 , wherein:

the method further comprises, when the egress packet descriptor is dequeued from the egress queue, retrieving, based on the memory location information in the egress packet descriptor, the at least the payload of the packet from the first memory location in the packet memory and the modified header from the second memory location in the packet memory, and

generating the transmit packet includes combining the at least the payload of the packet retrieved from the first memory location in the packet memory with the modified header retrieved from the second memory location in the packet memory.

16. The method of claim 14 , further comprising, i) in response to determining that the packet is to be transmitted from the network device and ii) prior to retrieving the at least the payload of the packet from the packet memory, triggering mirroring of the packet, the mirroring including

generating, with the packet processor, a copy of the egress packet descriptor, and

enqueuing the copy of the egress packet descriptor in an additional egress queue for mirroring of the packet to a destination other than the determined at least one egress port.

17. The method of claim 16 , further comprising, when the copy of the egress packet descriptor is dequeued from the additional egress queue,

retrieving, based on the memory location information in the copy of the egress packet descriptor, the at least the payload of the packet from the first memory location in the packet memory and the modified header from the second memory location in the packet memory,

generating a mirrored packet at least by combining the at least the payload of the payload retrieved, based on the memory location information in the copy of the egress packet descriptor, from the first memory location in the packet memory and the modified header retrieved, based on the memory location information in the copy of the egress packet descriptor, from the second memory location in the packet memory, and

transmitting the mirrored packet to the destination other than the determined at least one egress port.

18. The method of claim 11 , further comprising, in response to determining that the packet is to be discarded by the network device, i) discarding the packet at the network device and ii) not triggering mirroring of the packet by the network device.

19. The method of claim 11 , further comprising performing, based at least in part on the modified header, egress classification of the packet, wherein determining whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device is performed as part of the egress classification of the packet.

20. The method of claim 11 , determining whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device comprises determining whether the packet a) is to be transmitted by the network device or b) is to be discarded by the network device based at least in part on application of an access control policy indicated by the one or more modified fields of the header.

Continuity (4)
Continuation 16746355 · Jan 17, 2020
Continuation 15599199 · May 18, 2017
Provisional Application 62338067 · May 18, 2016
Related Publication 20210352024A1 · Nov 11, 2021
Cited By (2)
US 12,463,922 US 12,506,695