IP Library Granted Patent US 11,757,991
Granted Patent B2
US 11,757,991 · App. 17/509,438 · Granted Sep 12, 2023

Common synchronization of device command into multiple synchronized single device tasks

Inventors: Frédéric René Philippe Detienne (Harze, BE); Piotr Jerzy Kupisiewicz (Cracow, PL); Alexandre Honoré (Schaerbeek, BE); Jonathan Maria Jan Slenders (Ghent, BE)
Assignee: CISCO TECHNOLOGY, INC.
H04L67/1095H04L41/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,757,991
App. No.
17/509,438
Granted
Sep 12, 2023
Kind
B2
Abstract

Methods are provided for synchronizing task execution and/or data collection on multiple network devices. The methods involve obtaining a command to be executed on a plurality of target network devices and splitting the command into a plurality of single device execution tasks. Each single device execution task is for a respective network device of the plurality of target network devices. The methods further involve providing each of the plurality of single device execution tasks, via a command line interface or an application programming interface, to a respective one of the plurality of target network devices. The plurality of single device execution tasks being provided within a bounded time interval.

Claims (53)

1. A method comprising:

obtaining a command to be executed on a plurality of target network devices, wherein the command includes a synchronization strategy indicating whether the command is to be executed within a bounded time interval on the plurality of target network devices;

splitting the command into a plurality of single device execution tasks, each for a respective network device of the plurality of target network devices; and

providing each of the plurality of single device execution tasks, via a command line interface or an application programming interface, to a respective one of the plurality of target network devices, the plurality of single device execution tasks being provided within the bounded time interval.

2. The method of claim 1 , further comprising:

establishing a communication channel to each of the plurality of target network devices, wherein at least one communication channel is established using a different protocol than used on another communication channel.

3. The method of claim 2 , further comprising:

halting providing one of the plurality of single device execution tasks until the communication channel is established with each of the plurality of target network devices.

4. The method of claim 1 , wherein the command includes a plurality of parameters that are to be collected by the plurality of target network devices, and further comprising:

obtaining the plurality of parameters that are output by the plurality of target network devices, the plurality of parameters being generated by the plurality of target network devices performing the plurality of single device execution tasks substantially simultaneously.

5. The method of claim 1 , wherein obtaining the command to be executed on the plurality of target network devices includes:

obtaining, from a client device, a request comprising a list of the plurality of target network devices that are to execute the command and an execution timeout that defines the bounded time interval.

6. The method of claim 1 , wherein the synchronization strategy indicates that the command is to be executed within the bounded time interval of approximately two milliseconds on the plurality of target network devices.

7. The method of claim 1 , wherein the command is a synchronized request and further comprising:

establishing a plurality of communication channels to the plurality of target network devices,

wherein each of the plurality of single device execution tasks is provided after the plurality of communication channels are established.

8. The method of claim 1 , further comprising:

halting providing of a first single device execution task of the plurality of single device execution tasks to a first device from the plurality of target network devices while establishing a communication channel with a second device from the plurality of target network devices,

wherein the communication channel is for providing a second single device execution task of the plurality of single device execution tasks.

9. The method of claim 1 , wherein providing each of the plurality of single device execution tasks includes:

halting providing of a first single device execution task to a first device of the plurality of target network devices if at least one other of the plurality of single device execution tasks is not yet ready for providing; and

dispatching, at substantially same time, the plurality of single device execution tasks to the plurality of target network devices for synchronous execution of the plurality of single device execution tasks on the plurality of target network devices.

10. A method comprising:

obtaining a command to be executed on a plurality of target network devices, wherein the command includes a marker indicating that execution is to be synchronized among the plurality of target network devices;

splitting the command into a plurality of single device execution tasks, each for a respective network device of the plurality of target network devices;

providing each of the plurality of single device execution tasks, via a command line interface or an application programming interface, to a respective one of the plurality of target network devices, the plurality of single device execution tasks being provided within a bounded time interval; and

storing the plurality of single device execution tasks into a plurality of device queues such that each of the plurality of device queues is dedicated to a respective network device from the plurality of target network devices.

11. The method of claim 10 , wherein the plurality of single device execution tasks are placed at an end of the plurality of device queues, and further comprising:

based on detecting that a first single device execution task from the plurality of single device execution tasks reached a front of a first device queue among the plurality of device queues, halting providing, to a first network device from the plurality of target network devices, the first single device execution task until remaining ones of the plurality of single device execution tasks reach a front of remaining ones of the plurality of device queues.

12. The method of claim 10 , wherein providing each of the plurality of single device execution tasks includes:

substantially simultaneously dispatching the plurality of single device execution tasks to the plurality of target network devices for synchronous execution of the plurality of single device execution tasks on the plurality of target network devices.

13. An apparatus comprising:

a memory;

a network interface configured to enable network communications; and

a processor, wherein the processor is configured to perform operations comprising:

obtaining a command to be executed on a plurality of target network devices, wherein the command includes a synchronization strategy indicating whether the command is to be executed within a bounded time interval on the plurality of target network devices;

splitting the command into a plurality of single device execution tasks, each for a respective network device of the plurality of target network devices; and

providing each of the plurality of single device execution tasks, via a command line interface or an application programming interface, to a respective one of the plurality of target network devices, the plurality of single device execution tasks being provided within the bounded time interval.

14. The apparatus of claim 13 , wherein the processor is further configured to perform an additional operation comprising:

establishing a communication channel to each of the plurality of target network devices, at least one communication channel is established using a different protocol than used on another communication channel.

15. The apparatus of claim 14 , wherein the processor is further configured to perform another additional operation comprising:

halting providing one of the plurality of single device execution tasks until the communication channel is established with each of the plurality of target network devices.

16. The apparatus of claim 13 , wherein the command includes a plurality of parameters that are to be collected by the plurality of target network devices, and the processor is further configured to perform an additional operation comprising:

obtaining the plurality of parameters that are output by the plurality of target network devices, the plurality of parameters being generated by the plurality of target network devices performing the plurality of single device execution tasks substantially simultaneously.

17. The apparatus of claim 13 , wherein the processor is configured to perform obtaining the command to be executed on the plurality of target network devices by:

obtaining, from a client device, a request comprising a list of the plurality of target network devices that are to execute the command and an execution timeout that defines the bounded time interval.

18. The apparatus of claim 13 , wherein the synchronization strategy is a marker indicating that execution is to be synchronized among the plurality of target network devices, and the processor is further configured to perform an additional operation comprising:

storing the plurality of single device execution tasks into a plurality of device queues such that each of the plurality of device queues is dedicated to a respective network device from the plurality of target network devices.

19. The apparatus of claim 18 , wherein the plurality of single device execution tasks are placed at an end of the plurality of device queues, and the processor is further configured to perform an additional operation comprising:

based on detecting that a first single device execution task from the plurality of single device execution tasks reached a front of a first device queue among the plurality of device queues, halting providing, to a first network device from the plurality of target network devices, the first single device execution task until remaining ones of the plurality of single device execution tasks reach a front of remaining ones of the plurality of device queues.

20. The apparatus of claim 13 , wherein the processor is further configured to perform additional operations comprising:

halting providing of a first single device execution task of the plurality of single device execution tasks to a first device from the plurality of target network devices while establishing a communication channel with a second device from the plurality of target network devices,

wherein the communication channel is for providing a second single device execution task of the plurality of single device execution tasks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2021
From: DETIENNE, FRÉDÉRIC RENÉ PHILIPPE; KUPISIEWICZ, PIOTR JERZY; HONORÉ, ALEXANDRE; SLENDERS, JONATHAN MARIA JAN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 057902/0397 →
Continuity (2)
Provisional Application 63224541 · Jul 22, 2021
Related Publication 20230027999A1 · Jan 26, 2023