IP Library › Patent Application 13023428
Patent Application
App. No. 13/023,428

EXTERNAL PROGRAMMATIC INTERFACE FOR IOS CLI COMPLIANT ROUTERS

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 None
App. No.
13/023,428
Abstract

A method of receiving and translating data within an external programmatic interface (EPI) is described. The method calls for receiving input into the EPI. The input is traversed. Where the input is presented in a prescribed format other than CLI, it is translated into a corresponding CLI statement, with reference to a representation of the CLI syntax. Where the input is presented in CLI, it is translated into a corresponding prescribed output format, with reference to a model of the prescribed output format derived from the CLI syntax. The translated input is output.

Claims (51)

1 . (canceled)

2 . A method comprising:

receiving an input command requesting an operation be performed by a routing system;

translating the input command from an extensible markup language (XML) format into a CLI command having a CLI format based on a parse graph corresponding to a CLI parser of the routing system, wherein the CLI parser is configured to analyze CLI commands for proper CLI syntax based on parser code that defines the proper CLI syntax for the CLI commands input to the CLI parser, and wherein the parse graph is generated from the parser code extracted from the CLI parser; and

transmitting the CLI command to the routing system for execution.

3 . The method of claim 2 , wherein the translating further comprises:

identifying an end-of-line node for each command attribute associated with the CLI command based on the parse graph; and

recursively traversing the parse graph, starting with the identified end-of-line node and continuing to a root node, to connect CLI nodes, wherein the CLI command is generated based on the connection of the CLI nodes.

4 . The method of claim 2 , further comprising:

receiving an output message in a CLI format from the routing system responsive to the transmitted CLI command;

translating the output message from the CLI format into the XML format having the CLI syntax; and

transmitting the output message in the XML format having the CLI syntax to a remote device external from the routing system.

5 . The method of claim 4 , wherein the translating of the output message further comprises:

parsing the output message to identify at least one CLI token;

translating each CLI token of the output message into a corresponding XML value according to a stored mapping of CLI tokens-to-XML values; and

generating the output message in the XML format with the XML values.

6 . The method of claim 4 , further comprising:

determining the output message received from the routing system is a CLI command having a CLI format;

traversing the parse graph to locate one or more nodes that correspond to the CLI command;

accessing an XML data model to identify object or attribute definitions that corresponds to located nodes; and

constructing a translated output message from the corresponding objects or attributes.

7 . The method of claim 2 , wherein the input command comprises XML data formatted in accordance with an XML schema of CLI rules and behaviors.

8 . An apparatus including a computer-readable storage device storing instructions configured to cause a processing system to perform operations comprising:

extracting parser code of a command line interface (CLI) parser, wherein the parser code is configured to define a proper CLI syntax for CLI commands input to a CLI prompt;

converting the parser code into a parse graph having an Extensible Markup Language (XML) format; and

exporting the parse graph to an external programmable interface, wherein the external programmable interface is configured to translate input commands from an extensible markup language (XML) format into a CLI command having a CLI format based on the parse graph.

9 . The apparatus of claim 8 , wherein the instructions configured to cause the processing system to perform operations further comprising:

encapsulating parse nodes of the parser with XML tags; and

stitching together the encapsulated parse nodes of the parser code to generate the parse graph.

10 . The apparatus of claim 8 , wherein the instructions configured to cause the processing system to perform operations further comprising:

extracting information explicitly within macroinstructions and other information pointed to in the parser code by the macroinstructions; and

encapsulating the information pointed to in the parser code by the macroinstructions with XML tags for inclusion in the parse graph.

11 . The apparatus of claim 8 , wherein the parser code includes macroinstructions that are hard-coded into the parser code of the CLI parser.

12 . The apparatus of claim 11 , wherein the instructions configured to cause the processing system to perform operations further comprising identifying elements associated with the macroinstructions that are pointed to but not conspicuously named in the macroinstructions.

13 . The apparatus of claim 8 , wherein the instructions configured to cause the processing system to perform operations further comprising:

generating an AND/OR command tree structure from the parse graph; and

outputting an exportable representation of the AND/OR command structure from the processing system.

14 . The apparatus of claim 13 , wherein the instructions configured to cause the processing system to perform operations further comprising:

hiding selected information within parse nodes of the parse graph to create condensed parse nodes;

simplifying selected complex patterns in the parse graph to create simplified parse graph patterns;

creating branches on the AND/OR command tree structure from the parse nodes, the condensed parse nodes, and the simplified parse graph patterns.

15 . The apparatus of claim 13 , wherein the instructions configured to cause the processing system to perform operations further comprising:

generating a command data model from the AND/OR command tree structure; and

simplifying selected structures within the command data model according to one or more simplification rules, wherein the simplifying creates a simplified command data model that is available for use by an external management system in at least one of device validation or testing processes.

16 . The apparatus of claim 15 , wherein the command data model is the AND/OR command tree structure is expressed using elements of EBNF (Extended Backus-Naur-Form) notation.

17 . An apparatus comprising:

a processing system to translate an input command from an extensible markup language (XML) format into a CLI command having a CLI format based on a parse graph generated from the parser code extracted from a CLI parser, wherein the CLI parser is configured to analyze CLI commands for proper CLI syntax based on parser code that defines the proper CLI syntax for the CLI commands input to the CLI parser, and wherein the processing system is configured to transmit the CLI command to the CLI parser.

18 . The apparatus of claim 17 , wherein the parser code includes macroinstructions that are hard-coded into the parser code of the CLI parser.

19 . The apparatus of claim 17 , wherein the parser code is configured to define a proper CLI syntax for CLI commands input to a CLI prompt.

20 . The apparatus of claim 17 , wherein the parse graph is in an Extensible Markup Language (XML) format.

21 . The apparatus of claim 17 , wherein parse graph generated from the parser code extracted from a CLI parser.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SIGNATURE PAGE INSIDE ASSIGNMENT PREVIOUSLY RECORDED AT REEL: 034523 FRAME: 0654. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 18, 2014
From: CISCO TECHNOLOGY, INC.
To: CISCO SYSTEMS, INC.
Reel/Frame 034674/0182 →
CONFIRMATION OF ASSIGNMENT Recorded Dec 3, 2014
From: CISCO TECHNOLOGY, INC.
To: CISCO SYSTEMS, INC.
Reel/Frame 034523/0654 →