IP Library Patent Application 15607030
Patent Application
App. No. 15/607,030

INTELLIGENT HARDWARE-ASSISTED ICMP REQUEST PROCESSING

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 None
App. No.
15/607,030
Abstract

Techniques for implementing intelligent hardware assisted ICMP request processing in a network device are provided. According to one embodiment, the network device can receive an ICMP request packet and write the packet to a protocol buffer configured to queue packets for processing by a management CPU. When the ICMP request packet is ready to be processed by the management CPU, a hardware-based ICMP request handler of the network device can determine whether the ICMP request packet matches any entries in an ICMP table. If the ICMP request packet does match an entry in the ICMP table, the ICMP request handler can generate an ICMP response packet for replying to the ICMP request packet, without sending the ICMP request packet to the management CPU.

Claims (39)

1 . A method comprising:

receiving, by a network device, an Internet Control Message Protocol (ICMP) request packet;

writing, by the network device, the ICMP request packet to a protocol buffer configured to queue packets for processing by a management central processing unit (CPU) of the network device;

when the ICMP request packet is ready to be processed by the management CPU, determining, by an ICMP request handler of the network device, whether the ICMP request packet matches any entries in an ICMP table; and

if the ICMP request packet matches an entry in the ICMP table, generating, by the ICMP request handler, an ICMP response packet for replying to the ICMP request packet, wherein the generating is performed without sending the ICMP request packet to the management CPU.

2 . The method of claim 1 wherein the ICMP request handler is implemented in hardware on the network device.

3 . The method of claim 1 wherein the ICMP request handler is implemented within a CPU interconnect module of the network device.

4 . The method of claim 1 wherein the ICMP response packet is generated based on data included in the matched entry of the ICMP table.

5 . The method of claim 1 wherein the writing of the ICMP request packet to the protocol buffer is delayed if the management CPU is overloaded.

6 . The method of claim 1 wherein determining whether the ICMP request packet matches any entries in the ICMP table comprises matching one or more header fields of the ICMP request packet to corresponding key fields of the entries.

7 . The method of claim 6 wherein the one or more header fields include source IP address, destination IP address, source port, destination port, and VLAN ID.

8 . The method of claim 1 wherein, if the ICMP request packet does not match any entries in the ICMP table, the method further comprises:

forwarding the ICMP request packet to the management CPU; and

generating, by the management CPU, the ICMP response packet in software.

9 . The method of claim 8 further comprising, subsequently to generating the ICMP response packet in software:

causing, by the management CPU, a new entry to be added to the ICMP table that corresponds to the ICMP request packet.

10 . The method of claim 9 wherein the new entry includes data usable by the ICMP request handler for generating ICMP response packets in reply to future ICMP request packets received from a same source as the ICMP request packet.

11 . A non-transitory computer readable storage medium having stored thereon program code executable by a network device, the program code causing the network device to:

receive an Internet Control Message Protocol (ICMP) request packet; and

write the ICMP request packet to a protocol buffer configured to queue packets for processing by a management central processing unit (CPU) of the network device,

wherein when the ICMP request packet is ready to be processed by the management CPU, an ICMP request handler of the network device attempts to match the ICMP request packet to entries in an ICMP table, and

wherein if the ICMP request packet matches an entry in the ICMP table, the ICMP request handler generates an ICMP response packet for replying to the ICMP request packet, without sending the ICMP request packet to the management CPU.

12 . The non-transitory computer readable storage medium of claim 11 wherein the ICMP request handler is implemented in hardware on the network device.

13 . The non-transitory computer readable storage medium of claim 11 wherein the writing of the ICMP request packet to the protocol buffer is delayed if the management CPU is overloaded.

14 . The non-transitory computer readable storage medium of claim 11 wherein, if the ICMP request packet does not match any entries in the ICMP table, the ICMP request packet is forwarded to the management CPU, and wherein the management CPU generates the ICMP response packet in software.

15 . The non-transitory computer readable storage medium of claim 14 wherein, subsequently to generating the ICMP response packet in software, the management CPU causes a new entry to be added to the ICMP table that corresponds to the ICMP request packet.

16 . A network device comprising:

a management central processing unit (CPU);

an Internet Control Message Protocol (ICMP) request handler; and

an ICMP table,

wherein the network device:

receives an ICMP request packet;

writes the ICMP request packet to a protocol buffer configured to queue packets for processing by the management CPU;

when the ICMP request packet is ready to be processed by the management CPU, determines, via the ICMP request handler, whether the ICMP request packet matches any entries in an ICMP table; and

if the ICMP request packet matches an entry in the ICMP table, generates, via the ICMP request handler, an ICMP response packet for replying to the ICMP request packet, wherein the generating is performed without sending the ICMP request packet to the management CPU.

17 . The network device of claim 16 wherein the network device is a network switch or a network router.

18 . The network device of claim 16 wherein the writing of the ICMP request packet to the protocol buffer is delayed if the management CPU is overloaded.

19 . The network device of claim 16 wherein, if the ICMP request packet does not match any entries in the ICMP table, the ICMP request packet is forwarded to the management CPU, and wherein the management CPU generates the ICMP response packet in software.

20 . The network device of claim 19 wherein, subsequently to generating the ICMP response packet in software, the management CPU causes a new entry to be added to the ICMP table that corresponds to the ICMP request packet.

Assignments (2)
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2017
From: JACOB, WILSON; SARALA, SUNEETHA; MOY, SAM; WANG, DAVID; CHHABRIA, SANJEEV
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 042534/0133 →