# US 11,121,956 B1 · Methods and systems for optimizing bidirectional forwarding detection in hardware

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

- Number: US 11,121,956 B1
- Document ID: US11121956B1
- Status: Granted
- Kind: B1
- Application number: 16/881,748
- Filed: 2020-05-22
- Granted: 2021-09-14
- Earliest claimed: 2020-05-22
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Deepak Sebastian; Aaron Gregory Levitan
- Web page: https://patentgrep.com/patent/US11121956B1

## CPC

- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 43/12: Network monitoring probes
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 43/14: {using software, i.e. software packages (network security related monitoring H04L63/1408)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method performed by a network device for offloading bidirectional forwarding detection (BFD) processes from an operating system of the network device to a physical communication interface on the network device, that includes receiving, by a user space packet manager executing in the operating system, a BFD transmission session request, making a first determination that utilization of an interface processor, of the physical communication interface, is below a threshold, generating, based on the first determination, a transmission packet template, wherein the generation is performed by the user space packet manager, sending, by the user space packet manager, the transmission packet template to the physical communication interface, and initiating, after the sending, a BFD transmission session in the physical communication interface, wherein the initiating is performed by the user space packet manager.

## Claims

### Claim 1

A method performed by a network device for offloading bidirectional forwarding detection (BFD) processes from an operating system of the network device to a physical communication interface on the network device, comprising:
receiving, by a user space packet manager executing in the operating system, a BFD transmission session request, wherein the BFD transmission session request is associated with the physical communication interface;
making a first determination that utilization of an interface processor, of the physical communication interface, is below a threshold;
generating, based on the first determination, a transmission packet template, wherein the generation is performed by the user space packet manager;
sending, by the user space packet manager, the transmission packet template to the physical communication interface; and
initiating, after the sending, a BFD transmission session in the physical communication interface, wherein the initiating is performed by the user space packet manager.

### Claim 2 (depends on 1)

The method of claim 1, wherein the method further comprises:
receiving a second BFD transmission session request, wherein the second BFD transmission session request is associated with the physical communication interface;
making a second determination that the utilization of the interface processor exceeds the threshold;
generating, based on the second determination, a second transmission packet template;
sending the transmission packet template to a kernel packet manager; and
initiating a second BFD transmission session via the kernel packet manager.

### Claim 3 (depends on 1)

The method of claim 1, wherein in response to sending the transmission packet template to the physical communication interface, the interface processor executes the BFD transmission session, comprising:
storing the transmission packet template in interface cache;
copying the transmission packet template to an interface buffer to obtain a transmission packet; and
sending the transmission packet from the network device to an external network device.

### Claim 4 (depends on 3)

The method of claim 3, wherein the BFD transmission session further comprises:
after copying the transmission packet template to the interface buffer:
making a second determination that a time threshold is surpassed, wherein sending the transmission packet is based on the second determination.

### Claim 5 (depends on 4)

The method of claim 4, wherein the BFD transmission session further comprises:
receiving an updated time threshold;
copying the transmission packet template to the interface buffer to obtain a second transmission packet;
making a third determination that the updated time threshold is surpassed; and
sending, based on the third determination, the second transmission packet to the external network device.

### Claim 6 (depends on 3)

The method of claim 3, wherein the BFD transmission session further comprises:
receiving a new transmission packet template, wherein based on receiving the new transmission packet template, the interface processor executes:
storing the new transmission packet template in the interface cache;
copying the new transmission packet template to the interface buffer to obtain a second transmission packet; and
sending the second transmission packet to the external network device.

### Claim 7 (depends on 1)

The method of claim 1, wherein generating the transmission packet template comprises:
storing the transmission packet template in a system buffer associated with communication interface.

### Claim 8 (depends on 7)

The method of claim 7, wherein the user space packet manager stores the transmission packet template in the system buffer by directly writing to system memory of the network device.

### Claim 9

A network device, comprising:
a communication interface, comprising:
an interface processor;
interface cache; and
an interface buffer;
system memory; and
a system processor executing a user space packet manager, wherein the user space packet manager performs a method for offloading bidirectional forwarding detection (BFD) processes to the communication interface, comprising:
receiving a BFD transmission session request, wherein the BFD transmission session request is associated with the communication interface;
making a first determination that utilization of the interface processor, of the communication interface, is below a threshold;
generating, based on the first determination, a transmission packet template;
sending the transmission packet template to the communication interface; and
initiating a BFD transmission session in the communication interface.

### Claim 10 (depends on 9)

The network device of claim 9, wherein the method further comprises:
receiving a second BFD transmission session request, wherein the second BFD transmission session request is associated with the communication interface;
making a second determination that the utilization of the interface processor exceeds the threshold;
generating, based on the second determination, a second transmission packet template;
sending the transmission packet template to a kernel packet manager; and
initiating a second BFD transmission session via the kernel packet manager.

### Claim 11 (depends on 9)

The network device of claim 9, wherein in response to sending the transmission packet template to the communication interface, the interface processor executes the BFD transmission session, comprising:
storing the transmission packet template in the interface cache;
copying the transmission packet template to the interface buffer to obtain a transmission packet; and
sending the transmission packet to an external network device.

### Claim 12 (depends on 11)

The network device of claim 11, wherein the BFD transmission session further comprises:
after copying the transmission packet template to the interface buffer:
making a second determination that a time threshold is surpassed, wherein sending the transmission packet is based on the second determination.

### Claim 13 (depends on 12)

The network device of claim 12, wherein the BFD transmission session further comprises:
receiving an updated time threshold;
copying the transmission packet template to the interface buffer to obtain a second transmission packet;
making a third determination that the updated time threshold is surpassed; and
sending, based on the third determination, the second transmission packet to the external network device.

### Claim 14 (depends on 12)

The network device of claim 12, wherein the BFD transmission session further comprises:
receiving a new transmission packet template, wherein based on receiving the new transmission packet template, the interface processor executes:
storing the new transmission packet template in the interface cache;
copying the new transmission packet template to the interface buffer to obtain a second transmission packet; and
sending the second transmission packet to the external network device.

### Claim 15 (depends on 9)

The network device of claim 9, wherein generating the transmission packet template comprises:
storing the transmission packet template in a system buffer associated with communication interface.

### Claim 16 (depends on 15)

The network device of claim 15, wherein the user space packet manager stores the transmission packet template in the system buffer by directly writing to the system memory without interacting with an operating system of the network device.

### Claim 17

A method for offloading bidirectional forwarding detection (BFD) processes to a communication interface, comprising:
receiving, by a user space packet manager, a BFD transmission session request, wherein the BFD transmission session request is associated with the communication interface;
making a first determination that utilization of an interface processor, of the communication interface, is below a threshold;
generating, based on the first determination, a transmission packet template, wherein generating the transmission packet template comprises:
storing the transmission packet template in a system buffer associated with communication interface by directly writing to system memory;
sending the transmission packet template to the communication interface; and
initiating a BFD transmission session in the communication interface.

### Claim 18 (depends on 17)

The method of claim 17, wherein the method further comprises:
receiving a second BFD transmission session request, wherein the second BFD transmission session request is associated with the communication interface;
making a second determination that the utilization of the interface processor exceeds the threshold;
generating, based on the second determination, a second transmission packet template;
sending the transmission packet template to a kernel packet manager; and
initiating a second BFD transmission session via the kernel packet manager.

### Claim 19 (depends on 17)

The method of claim 17, wherein in response to sending the transmission packet template to the communication interface, the interface processor executes the BFD transmission session, comprising:
storing the transmission packet template in interface cache;
copying the transmission packet template to an interface buffer to obtain a transmission packet; and
sending the transmission packet to an external network device.

### Claim 20 (depends on 19)

The method of claim 19, wherein the BFD transmission session further comprises:
receiving a new transmission packet template, wherein based on receiving the new transmission packet template, the interface processor executes:
storing the new transmission packet template in the interface cache;
copying the new transmission packet template to the interface buffer to obtain a second transmission packet; and
sending the second transmission packet to the external network device.
