IP Library › Granted Patent US 12,184,500
Granted Patent B1
US 12,184,500 · App. 18/338,563 · Granted Dec 31, 2024

Fetching topologies using timestamp-callback map

Inventor: Shekhar Satyanarayana (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
H04L41/12
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,184,500
App. No.
18/338,563
Granted
Dec 31, 2024
Kind
B1
Abstract

Examples described herein relate to fetching network device topologies using a timestamp-callback map. The timestamp-callback map includes timestamps paired with references to unique callback functions that fetch topologies for network devices when executed. Examples include setting an alarm for each timestamp in the timestamp-callback map. When an alarm generates a notification, examples create worker threads of a network profiler service. Each worker thread executes a respective unique callback function to fetch a topology for a network device from a topology service. Examples describe different implementations of the timestamp-callback map that can be optimized in various embodiments.

Claims (64)

1. A method comprising:

determining, by a processing resource, a timestamp for a callback function, wherein the callback function is to fetch a topology for a network device from a topology service;

inserting, by the processing resource, a reference to the callback function into an entry of a timestamp-callback map, wherein the entry includes a list of references to unique callback functions associated with the timestamp; and

for the unique callback functions, creating, by the processing resource, respective worker threads at a time indicated in the timestamp, wherein the respective worker threads invoke the unique callback functions to fetch topologies for network devices from the topology service.

2. The method of claim 1 , further comprising:

setting, by the processing resource, an alarm for the timestamp in a timer, wherein the alarm generates a notification at the time indicated in the timestamp.

3. The method of claim 2 , wherein creating the respective worker threads for the unique callback functions at the time indicated in the timestamp includes:

determining, by the processing resource, whether the alarm generates the notification or not; and

in response to determining that the alarm generates the notification, creating, by the processing resource, the respective worker threads to invoke the unique callback functions at the time.

4. The method of claim 3 , wherein invoking the unique callback functions includes:

extracting, by the processing resource, the list of references to the unique callback functions associated with the timestamp from the timestamp-callback map; and

executing, by the processing resource, the unique callback functions associated with the timestamps.

5. The method of claim 4 , wherein executing the unique callback functions includes:

sending, by the processing resource, requests to the topology service; and

fetching, by the processing resource, the topologies for the respective network devices from the topology service.

6. The method of claim 1 , further comprising:

receiving, by the processing resource, port configuration messages for ports of the network devices; and

generating, by the processing resource, a profile for a port of each network device based on the topologies, wherein the profile indicates a role of the port.

7. The method of claim 1 , wherein the reference to the callback function includes a pointer to a memory location of the callback function.

8. The method of claim 1 , wherein the timestamp-callback map is a binary search tree, wherein the binary search tree includes a plurality of nodes, each node storing a respective timestamp and a respective list of unique callback functions.

9. A device comprising:

a processing resource; and

a non-transitory machine-readable storage medium comprising instructions executable by the processing resource to:

determine a timestamp for a callback function, wherein the callback function fetches a topology for a network device from a topology service;

insert a reference to the callback function into a node of a timestamp-callback map, wherein the node includes a list of references to unique callback functions associated with the timestamp;

for the unique callback functions, create respective worker threads at a time indicated in the timestamp, wherein the respective worker threads invoke the unique callback functions to fetch topologies for network devices from the topology service.

10. The device of claim 9 , wherein the timestamp-callback map is a binary search tree, wherein the binary search tree includes a plurality of nodes, each node storing a respective timestamp and a respective list of unique callback functions.

11. The device of claim 10 , wherein to insert the reference to the callback function, the processing resource executes one or more of the instructions to:

from the plurality of nodes, identify a first node including a first timestamp indicating a first time, wherein the first time is within a predetermined interval from the time indicated in the timestamp for the callback function; and

insert the reference to the callback function to the node.

12. The device of claim 11 , wherein the processing resource executes one or more of the instructions to:

in response to determining that the first time indicated in the first timestamp of the first node is not within the predetermined interval from the time indicated in the timestamp for the callback function:

create a new node in the binary search tree; and

insert, in the new node, the timestamp and the reference to the callback function associated with the timestamp.

13. The device of claim 10 , wherein the processing resource executes one or more of the instructions to:

identify, in the binary search tree, a second node including a lowest timestamp, wherein the lowest timestamp indicates an earliest time value; and

set an alarm for the lowest timestamp in a timer, wherein the alarm generates a notification indicating that time corresponding to the earliest time value is reached.

14. The device of claim 13 , wherein the processing resource executes one or more of the instructions to:

determine whether the alarm generates the notification or not; and

in response to determining that the alarm generates the notification, create the respective worker threads to invoke the unique callback functions.

15. The device of claim 10 , wherein the processing resource executes one or more of the instructions to:

identify, in the binary search tree, multiple nodes, each including a timestamp indicating a time in a predetermined interval; and

set an alarm for each timestamp included in the multiple nodes, wherein the alarm generates a notification indicating that the time indicated in the respective timestamp is reached.

16. The device of claim 15 , wherein the processing resource executes one or more of the instructions to:

determine whether the alarm for each timestamp included in the multiple nodes generates the notification or not; and

in response to determining that the alarm generates the notification, create worker threads to invoke the unique callback functions.

17. The device of claim 9 , wherein the processing resource executes one or more of the instructions to:

set a time-limit for a worker thread; and

in response to expiry of the time-limit, remove one or more resources allocated to the worker thread.

18. The device of claim 9 , wherein the processing resource executes one or more of the instructions to:

receive port configuration messages for ports of the network devices; and

generate a profile for each port of the network devices based on the topologies, wherein the profile indicates a role of the port.

19. A non-transitory machine-readable storage medium comprising instructions that, when executed, cause a processing resource of a device to:

create a first worker thread to:

receive a port configuration message for a port of a network device;

determine a timestamp for a callback function, wherein the callback function fetches, from a topology service, a topology for the network device;

insert a reference to the callback function in a binary search tree, wherein the binary search tree includes a plurality of nodes, each node including a respective timestamp and a respective list of unique callback functions;

create a management thread to:

identify, from the plurality of nodes in the binary search tree, a node including a lowest timestamp, wherein the lowest timestamp indicates an earliest time value;

set an alarm for the lowest timestamp in a timer, wherein the alarm generates a notification at a time corresponding to the earliest time value; and

in response to the notification, spawn second worker threads to invoke the unique callback functions at the time to fetch topologies for network devices from a topology service.

20. The non-transitory machine-readable storage medium of claim 19 , further comprising instructions to:

generate a profile for each port of the network devices based on the topologies, wherein the profile indicates a role of the port; and

distribute the profile to the network devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: SATYANARAYANA, SHEKHAR
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 064012/0421 →