IP Library Granted Patent US 11,902,105
Granted Patent B2
US 11,902,105 · App. 17/751,780 · Granted Feb 13, 2024

Interactive graphical user interface for visualizing flow data in a programmable network switch

Inventors: Adrian Moreno Zapata (Madrid, ES); Marcelo Leitner (Sao Paulo, BR)
Assignee: RED HAT, INC.
H04L41/22H04L43/026
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,902,105
App. No.
17/751,780
Granted
Feb 13, 2024
Kind
B2
Abstract

A computing device can receive flow data from one or more flow tables for a programmable network switch. The computing device can also generate, based on the flow data, a graphical user interface showing relationships between recirculation operations defined in the flow data. The graphical user interface can include a directed graph having nodes representing the recirculation operations. The graphical user interface can also include directed links specifying a sequential order in which the recirculation operations are to be applied to data packets by the programmable network switch. Each of the nodes can correspond to a respective recirculation operation among the recirculation operations.

Claims (50)

1. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

receive flow data from one or more flow tables for a programmable network switch; and

based on the flow data, generate a graphical user interface showing relationships between recirculation operations defined in the flow data, the graphical user interface including a directed graph having a plurality of nodes representing the recirculation operations to be performed by the programmable network switch, each node of the plurality of nodes corresponding to a respective recirculation operation among the recirculation operations to be performed by the programmable network switch, wherein the recirculation operations involve reevaluating data packets on the programmable network switch, and wherein the directed graph also includes directed links between the plurality of nodes to specify a sequential order in which the recirculation operations are to be applied to the data packets by the programmable network switch.

2. The non-transitory computer-readable medium of claim 1 , wherein each node of the plurality of nodes specifies one or more actions to be applied to a data packet during the respective recirculation operation corresponding to the node.

3. The non-transitory computer-readable medium of claim 1 , wherein each node of the plurality of nodes specifies at least one match criterion and at least one corresponding action that is to be applied by the programmable network switch to a data packet matching the at least one match criterion.

4. The non-transitory computer-readable medium of claim 1 , wherein each node of the plurality of nodes specifies a recirculation identifier assigned to the respective recirculation operation corresponding to the node.

5. The non-transitory computer-readable medium of claim 1 , wherein the directed graph includes a plurality of flow sequences involving the recirculation operations, the plurality of flow sequences being depicted in parallel to one another in the directed graph, each flow sequence in the plurality of flow sequences being depicted in the directed graph as an independent sequence of recirculation operations starting at an input port and ending at an output port or an ending action.

6. The non-transitory computer-readable medium of claim 5 , further comprising program code that is executable by the processor for causing the processor to:

receive user input indicating a filter criterion to be applied to the directed graph; and

in response to receiving the user input:

determine at least one flow sequence in the plurality of flow sequences that does not satisfy the filter criterion; and

update the directed graph to exclude the at least one flow sequence therefrom.

7. The non-transitory computer-readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to:

receive the flow data for the programmable network switch, the flow data including rows of data from the one or more flow tables, each of the rows of data including a respective recirculation identifier, a respective match criterion, and a respective action to be applied to a data packet matching the respective match criterion;

classify the rows of data into recirculation groups based on the respective recirculation identifier in each row of data, wherein each of the recirculation groups corresponds to an individual recirculation identifier for implementing a single recirculation operation; and

generate the directed graph based on the recirculation groups.

8. The non-transitory computer-readable medium of claim 7 , further comprising program code that is executable by the processor for causing the processor to, subsequent to classifying the rows of data into the recirculation groups:

for each respective recirculation group among the recirculation groups:

identify one or more rows, from among the rows of data, assigned to the respective recirculation group; and

classify the one or more rows into one or more parameter groups based on a respective parameter value associated with each respective row of the one or more rows; and

generate the directed graph based on the one or more parameter groups associated with each respective recirculation group among the recirculation groups.

9. The non-transitory computer-readable medium of claim 8 , wherein the parameter groups are input port groups and the respective parameter value is an input port value.

10. The non-transitory computer-readable medium of claim 1 , wherein the programmable network switch is a virtual network switch.

11. A method comprising:

receiving, by a processor, flow data from one or more flow tables for a programmable network switch; and

generating, by the processor and based on the flow data, a graphical user interface showing relationships between recirculation operations defined in the flow data, the graphical user interface including a directed graph having a plurality of nodes representing the recirculation operations to be performed by the programmable network switch, each node of the plurality of nodes corresponding to a respective recirculation operation among the recirculation operations to be performed by the programmable network switch, wherein the recirculation operations involve reevaluating data packets on the programmable network switch, and wherein the directed graph also includes directed links between the plurality of nodes to specify a sequential order in which the recirculation operations are to be applied to the data packets by the programmable network switch.

12. The method of claim 11 , wherein each node of the plurality of nodes specifies one or more actions to be applied to a data packet during the respective recirculation operation corresponding to the node.

13. The method of claim 11 , wherein each node of the plurality of nodes specifies match criteria and at least one corresponding action that is to be applied by the programmable network switch to a data packet matching the match criteria.

14. The method of claim 11 , wherein each node of the plurality of nodes specifies a recirculation identifier assigned to the respective recirculation operation corresponding to the node.

15. The method of claim 11 , wherein the directed graph includes a plurality of flow sequences involving the recirculation operations, the plurality of flow sequences being depicted in parallel to one another in the directed graph, each flow sequence in the plurality of flow sequences being depicted in the directed graph as an independent sequence of recirculation operations starting at an input port and ending at an output port or an ending action.

16. The method of claim 15 , further comprising:

receiving, by the processor, user input indicating a filter criterion to be applied to the directed graph; and

in response to receiving the user input:

determining, by the processor, at least one flow sequence in the plurality of flow sequences that does not satisfy the filter criterion; and

updating, by the processor, the directed graph to exclude the at least one flow sequence therefrom.

17. The method of claim 11 , further comprising:

receiving, by the processor, the flow data for the programmable network switch, the flow data including rows of data from the one or more flow tables, each of the rows of data including a respective recirculation identifier, a respective match criterion, and a respective action to be applied to a data packet matching the respective match criterion;

classifying, by the processor, the rows of data into recirculation groups based on the respective recirculation identifier in each row of data, wherein each of the recirculation groups corresponds to an individual recirculation identifier for implementing a single recirculation operation; and

generating, by the processor, the directed graph based on the recirculation groups.

18. The method of claim 17 , further comprising:

subsequent to classifying the rows of data into the recirculation groups and for each respective recirculation group among the recirculation groups:

identifying, by the processor, one or more rows, from among the rows of data, assigned to the respective recirculation group; and

classifying, by the processor, the one or more rows into one or more parameter groups based on a respective parameter value associated with each respective row of the one or more rows; and

generating, by the processor, the directed graph based on the one or more parameter groups associated with each respective recirculation group among the recirculation groups.

19. The method of claim 18 , wherein the parameter groups are input port groups and the respective parameter value is an input port value.

20. A system comprising:

a processor; and

a memory including instructions executable by the processor for causing the processor to:

receive flow data from one or more flow tables for a programmable network switch; and

based on the flow data, generate a graphical user interface showing relationships between recirculation operations defined in the flow data, the graphical user interface including a directed graph having a plurality of nodes representing the recirculation operations to be performed by the programmable network switch, each node of the plurality of nodes corresponding to a respective recirculation operation among the recirculation operations to be performed by the programmable network switch, wherein the recirculation operations involve reevaluating data packets on the programmable network switch, and wherein the directed graph also includes directed links between the plurality of nodes to specify a sequential order in which the recirculation operations are to be applied to the data packets by the programmable network switch.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2022
From: ZAPATA, ADRIAN MORENO; LEITNER, MARCELO
To: RED HAT, INC.
Reel/Frame 059994/0863 →