IP Library Granted Patent US 10,778,550
Granted Patent B2
US 10,778,550 · App. 15/653,061 · Granted Sep 15, 2020

Programmatically diagnosing a software defined network

Inventors: Su Wang (Sunnyvale, CA); Pankaj Thakkar (Cupertino, CA); Ganesan Chandrashekhar (Campbell, CA)
Assignee: NICIRA, INC.
H04L43/0823H04L41/06H04L41/065H04L41/069H04L41/0677
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 10,778,550
App. No.
15/653,061
Granted
Sep 15, 2020
Kind
B2
Abstract

A method of diagnosing a software-defined network is provided. The method determines an observed plurality of network control events from a set of network control event messages. Each network control event message includes a unique identifier and is used for configuring a network configuration entity on a network component. The method, from a description of an expected configuration of the network, determines an expected plurality of network control events. The method backtraces the observed control events from the current configuration of the network to determine whether the expected network control events have occurred. The method identifies a network component as the source of fault when the network component receives an input set of network control events that matches a set of expected network events but does not produce a set of output network control events that match a set of network control events.

Claims (48)

1. A method of diagnosing a software-defined network, the method comprising:

determining an observed plurality of network control events associated with a set of network control event messages, each network control event message for configuring a network configuration entity on a network component, each network configuration entity comprising a unique identifier;

for a network configuration outcome that is being diagnosed, generating a network control event dependency tree from the network configuration outcome based on a description of dependencies of network control events;

using the network control event dependency tree to perform a backtracing operation on the observed plurality of network control events to determine whether events from the network control event dependency tree have occurred; and

identifying a network component as a source of fault when the network component receives an input set of network control events that matches a set of network events in the network control event dependency tree and does not produce an output set of network control events that match a set of network control events in the network control event dependency tree.

2. The method of claim 1 further comprising receiving, prior to generating the network control event dependency tree, a description of dependencies of the network control events for each expected configuration of the network.

3. The method of claim 1 , wherein determining the observed plurality of network control events associated with the set of network control event messages comprises:

retrieving a set of log files generated by a plurality of network components; and extracting the set of network control messages from the retrieved log files.

4. The method of claim 3 , wherein each network control message comprises a network configuration message requesting to configure a network configuration entity on a network component.

5. The method of claim 1 further comprising:

identifying the network component and the network configuration entity to be configured on the network component from each network control event message; and

correlating each network configuration entity to a set of network components using the unique identifier of the network configuration entity to create a network control event message tree, wherein the observed plurality of network control events is determined from the network control event message tree.

6. The method of claim 1 , wherein the set of network control event messages are written in a non-descriptive language requiring a schema to interpret, the method further comprising:

parsing each network control event using a corresponding schema to generate a network control event message tree;

identifying a set of network configuration entities and a set of network components from the network control event message tree.

7. The method of claim 6 further comprising:

generating a network entity table correlating each network configuration entity to one or more network components, wherein determining an observed plurality of network control events from a set of network control event messages comprises using one or more network configuration entities and one or more network components from the network entity table.

8. A non-transitory computer readable medium storing a program for diagnosing a software-defined network, the program executable by a processing unit, the program comprising sets of instructions for:

determining an observed plurality of network control events associated with a set of network control event messages, each network control event message for configuring a network configuration entity on a network component, each network configuration entity comprising a unique identifier;

generating, for a network configuration outcome that is being diagnosed, a network control event dependency tree from the network configuration outcome based on a description of dependencies of network control events;

using the network control event dependency tree to perform a backtracing operation on the observed plurality of network control events from the network control event dependency tree have occurred; and

identifying a network component as a source of fault when the network component receives an input set of network control events that matches a set of network control events in the network control event dependency tree and does not produce an output set of network control events that match a set of network control events in the network control event dependency tree.

9. The non-transitory computer readable medium of claim 8 , the program further comprising sets of instructions for receiving, prior to generating the network control event dependency tree, a description of dependencies of the network control events for each expected configuration of the network.

10. The non-transitory computer readable medium of claim 8 , wherein the set of instructions for determining the observed plurality of network control events associated with the set of network control event messages comprises sets of instructions for: retrieving a set of log files generated by a plurality of network components; and extracting the set of network control messages from the retrieved log files.

11. The non-transitory computer readable medium of claim 10 , wherein each network control message comprises a network configuration message requesting to configure a network configuration entity on a network component.

12. The non-transitory computer readable medium of claim 8 , the program further comprising sets of instructions for:

identifying the network component and the network configuration entity to be configured on the network component from each network control event message; and

correlating each network configuration entity to a set of network components using the unique identifier of the network configuration entity to create a network control event message tree, wherein the observed plurality of network control events is determined from the network control event message tree.

13. The non-transitory computer readable medium of claim 8 , wherein the set of network control event messages are written in a non-descriptive language requiring a schema to interpret, the program further comprising sets of instructions for: parsing each network control event using a corresponding schema to generate a network control event message tree: identifying a set of network configuration entities and a set of network components from the network control event message tree.

14. The non-transitory computer readable medium of claim 13 , the program further comprising a set of instructions for: generating a network entity table correlating each network configuration entity to one or more network components, wherein determining an observed plurality of network control events from a set of network control event messages comprises using one or more network configuration entities and one or more network components from the network entity table.

15. A system comprising:

a set of processing unit; and

a non-transitory computer readable medium storing a program for diagnosing a software-defined network, the program executable by one of the processing units, the program comprising sets of instructions for:

determining an observed plurality of network control events associated with a set of network control event messages, each network control event message for configuring a network configuration entity on a network component, each network configuration entity comprising a unique identifier;

generating, for a network configuration outcome that is being diagnosed, a network control event dependency tree from the network configuration outcome based on a description of dependencies of network control events;

using the network control event dependency tree to perform a backtracing operation on the observed plurality of network control events to determine whether events from the network control event dependency tree have occurred; and

identifying a network component as a source of fault when the network component receives an input set of network control events that matches a set of network control events in the network control event dependency tree and does not produce an output set of network control events that match a set of network control events in the network control event dependency tree.

16. The system of claim 15 , wherein the set of instructions for generating the network control event dependency tree comprises sets of instructions for:

receiving a description of dependencies of the network control events for each expected configuration of the network; and

generating the network control event dependency tree based on the description of dependencies of the network control events.

17. The system of claim 15 , wherein the set of instructions for determining the observed plurality of network control events associated with the set of network control event messages comprises sets of instructions for: retrieving a set of log files generated by a plurality of network components; and extracting the set of network control messages from the retrieved log files.

18. The system of claim 17 , wherein each network control message comprises a network configuration message requesting to configure a network configuration entity on a network component.

19. The system of claim 15 , the program further comprising sets of instructions for:

identifying the network component and the network configuration entity to be configured on the network component from each network control event message; and

correlating each network configuration entity to a set of network components using the unique identifier of the network configuration entity to create a network control event message tree, wherein the observed plurality of network control events is determined from the network control event message tree.

20. The system of claim 15 , wherein the set of network control event messages are written in a non-descriptive language requiring a schema to interpret, the program further comprising sets of instructions for:

parsing each network control event using a corresponding schema to generate a network control event message tree;

identifying a set of network configuration entities and a set of network components from the network control event message tree.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2017
From: WANG, SU; THAKKAR, PANKAJ; CHANDRASHEKHAR, GANESAN
To: NICIRA, INC.
Reel/Frame 043035/0709 →
Continuity (1)
Related Publication 20190028372A1 · Jan 24, 2019