IP Library Granted Patent US 10,409,705
Granted Patent B2
US 10,409,705 · App. 15/499,528 · Granted Sep 10, 2019

Automated code verification and machine learning in software defined networks

Inventors: Lalita J. Jagadeesan (Naperville, IL); Veena B. Mendiratta (Oak Brook, IL)
Assignee: Nokia of America Corporation
G06F11/3608G06F8/00G06F9/44589G06F11/3616G06N5/04G06N20/00H04L41/0866H04L41/0893H04L45/00H04L45/28G06F8/75
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,409,705
App. No.
15/499,528
Granted
Sep 10, 2019
Kind
B2
Abstract

A processor is configured to execute an event-driven program along a plurality of execution paths. Each of the plurality of execution paths is determined by randomly chosen outcomes at non-deterministic points along the plurality of execution paths. A memory is configured to store values of properties of the event-driven code in response to executing the event-driven program along the plurality of execution paths. The processor is also configured to infer normal ranges of the properties of the event-driven program based on the values stored in the memory.

Claims (36)

1. A computer-implemented method comprising:

executing, at a processor, an event-driven program along a plurality of execution paths, wherein each of the plurality of execution paths is determined by randomly chosen outcomes at non-deterministic points along the plurality of execution paths;

storing, at a memory, values of properties of the event-driven program in response to executing the event-driven program along the plurality of execution paths; and

inferring, at the processor, normal ranges of the properties of the event-driven program based on the stored values.

2. The method of claim 1 , further comprising:

randomly choosing the outcomes at the non-deterministic points from an equally weighted distribution of possible outcomes.

3. The method of claim 1 , further comprising:

randomly choosing the outcomes at the non-deterministic points from a differentially weighted distribution of possible outcomes.

4. The method of claim 3 , further comprising:

determining differential weights for the possible outcomes based on at least one of a priori knowledge of the outcomes or previous outcomes at the non-deterministic points during previous executions of the event-driven program.

5. The method of claim 1 , further comprising:

generating identifiers of the plurality of execution paths, wherein each identifier is generated based on the randomly chosen outcomes at the non-deterministic points along a corresponding one of the plurality of execution paths.

6. The method of claim 5 , wherein generating each identifier comprises concatenating values representative of the randomly chosen outcomes on the corresponding one of the plurality of execution paths.

7. The method of claim 5 , wherein storing the values of the properties of the event-driven program comprises storing the identifiers of the execution paths that generated the corresponding values of the properties.

8. The method of claim 5 , further comprising:

detecting an anomalous value by comparing values of the properties produced by an instance of the event-driven program to the inferred normal ranges of the properties.

9. The method of claim 8 , further comprising:

identifying an anomalous execution path of the event-driven program based on values of outcomes indicated by an identifier generated based on the outcomes at non-deterministic points along the anomalous execution path that produced the anomalous value.

10. An apparatus comprising:

a processor configured to execute an event-driven program along a plurality of execution paths, wherein each of the plurality of execution paths is determined by randomly chosen outcomes at non-deterministic points along the plurality of execution paths; and

a memory configured to store values of properties of the event-driven program in response to executing the event-driven program along the plurality of execution paths, and

wherein the processor is configured to infer normal ranges of the properties of the event-driven program based on the values stored in the memory.

11. The apparatus of claim 10 , wherein the processor is configured to randomly choose the randomly chosen outcomes from an equally weighted distribution of possible outcomes.

12. The apparatus of claim 10 , wherein the processor is configured to randomly choose the randomly chosen outcomes from a differentially weighted distribution of possible outcomes.

13. The apparatus of claim 12 , wherein the processor is configured to determine differential weights for the possible outcomes based on at least one of a priori knowledge of the outcomes or previous outcomes at the non-deterministic points during previous executions of the event-driven program.

14. The apparatus of claim 10 , wherein the processor is configured to generate identifiers of the plurality of execution paths, wherein the processor is configured to generate each identifier based on the randomly chosen outcomes at the non-deterministic points along a corresponding one of the plurality of execution paths.

15. The apparatus of claim 14 , wherein the processor is configured to concatenate values representative of the randomly chosen outcomes on the corresponding one of the plurality of execution paths.

16. The apparatus of claim 14 , wherein the memory is configured to store the identifiers of the execution paths that generated the corresponding values of the properties.

17. The apparatus of claim 14 , wherein the processor is configured to detect an anomalous value by comparing values of the properties produced by an instance of the event-driven program to the inferred normal ranges of the properties.

18. The apparatus of claim 17 , wherein the processor is configured to identify an anomalous execution path of the event-driven program based on values of outcomes indicated by an identifier generated based on the outcomes at non-deterministic points along the anomalous execution path that produced the anomalous value.

19. A method, comprising:

executing an event-driven program along an execution path defined by a plurality of outcomes at a plurality of non-deterministic points;

comparing values of properties of the event-driven program executed along the execution path to a normal range of values of properties of the event-driven program, wherein the normal range is inferred from values of properties of the event-driven program executed along a plurality of execution paths that are determined by randomly chosen outcomes at non-deterministic points along the plurality of execution paths; and

detecting an anomalous value in response to the comparison indicating a change between the values of the event-driven program executed along the execution path and the normal range of values of the properties.

20. The method of claim 19 , further comprising:

determining, in response to detecting the anomalous value, the execution path of the event-driven program based on values of the plurality of outcomes indicated by an identifier generated based on the plurality of outcomes.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Jul 24, 2019
From: NOKIA SOLUTIONS AND NETWORKS OY; ALCATEL-LUCENT USA INC
To: NOKIA OF AMERICA CORPORATION
Reel/Frame 049847/0683 →
MERGER AND CHANGE OF NAME Recorded Mar 28, 2018
From: NOKIA SOLUTIONS AND NETWORKS US LLC; ALCATEL-LUCENT USA INC.; ALCATEL-LUCENT USA INC.
To: NOKIA OF AMERICA CORPORATION
Reel/Frame 045373/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2018
From: JAGADEESAN, LALITA J.; MENDIRATTA, VEENA B.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 045299/0234 →
Continuity (1)
Related Publication 20180314619A1 · Nov 1, 2018