US20070033176A1 - Searching and reusing information from previously executed control instructions in a data forwarding device - Google Patents

Searching and reusing information from previously executed control instructions in a data forwarding device Download PDF

Info

Publication number
US20070033176A1
US20070033176A1 US11/581,305 US58130506A US2007033176A1 US 20070033176 A1 US20070033176 A1 US 20070033176A1 US 58130506 A US58130506 A US 58130506A US 2007033176 A1 US2007033176 A1 US 2007033176A1
Authority
US
United States
Prior art keywords
control instruction
data forwarding
forwarding device
reverse
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/581,305
Inventor
Robert Enns
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Priority to US11/581,305 priority Critical patent/US20070033176A1/en
Publication of US20070033176A1 publication Critical patent/US20070033176A1/en
Assigned to JUNIPER NETWORKS, INC. reassignment JUNIPER NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ENNS, ROBERT P.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Definitions

  • the present invention concerns inputting and entering control instructions in data forwarding devices, such as routers for example. More specifically, the present invention concerns reusing information from previously executed control instructions for such a device.
  • the present invention may be used for inputting control instructions for data forwarding devices.
  • Data forwarding devices such as routers and switches, may be interconnected to form networks.
  • the interconnections may be such that each data forwarding device has a plurality of input lines and a plurality of output lines.
  • a basic function of these devices is to forward data received at their input lines to the appropriate output lines.
  • Routers for example, may determine the appropriate output lines based on a destination addresses contained in the received data and forwarding tables.
  • Switches may be configured so that data received at input lines are provided to appropriate output lines.
  • Such data forwarding devices may need to be configured appropriately. This may be done by entering configuration commands, through a keyboard or other type of interface, into a data forwarding device.
  • a control instruction interface may be provided for configuring operating system software, configuring the device, and monitoring and/or troubleshooting software, network connectivity, and/or hardware.
  • Other types of information or commands may also be entered into the device through the keyboard or interface.
  • the disclosed invention helps users to input command instructions more efficiently and accurately by accepting user input, and if it is determined that a reverse-search is requested based on the accepted user input, then searching back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction, at least a part of which matches a search string input by the user.
  • the matching data forwarding device control instruction may be retrieved and may be rendered.
  • the present invention may also provide a method for inputting a word or parameter of a control instruction for a data forwarding device.
  • a method may accept user input, and if it is determined that a reverse-expand is requested based on the accepted user input, then searching back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction having an word or parameter, at least a part of which matches a search string input by the user.
  • the first matching word or parameter may be retrieved and may be rendered.
  • the present invention may provide a control instruction interface having (a) a storage device for storing previously executed data forwarding device control instructions, (b) an input device for accepting user input; and (c) a reverse-search facility.
  • the reverse-search facility may be adapted to accept user input from the input device, and determine whether a reverse-search is requested based on the accepted user input. If it is determined that a reverse-search is requested, then the reverse-search facility may search back through the previously executed data forwarding device control instructions stored in the storage device for a data forwarding device control instruction, at least a part of which matches a search string input by the user.
  • the control instruction interface may also, or alternatively, include a reverse-expand facility adapted to determine whether a reverse-expand is requested based on the accepted user input. If it is determined that a reverse-expand is requested, then the reverse-expand facility may search back through the previously executed data forwarding device control instructions stored in the storage device for a data forwarding device control instruction having a word or parameter, at least a part of which matches a search string input by the user.
  • FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device having a control instruction interface with which the present invention may be used.
  • FIG. 2 is a high-level bubble chart diagram of an exemplary data forwarding device having a control instruction interface with which the present invention may be used.
  • FIG. 3 is a high-level bubble chart diagram that illustrates control instruction interface operations of which the present invention may be a part.
  • FIG. 4 is a block diagram that illustrates an example of hierarchical control instructions in a router.
  • FIG. 5 is a high-level flow diagram of an exemplary method that may be used to effect at least some control instruction interface operational mode operations.
  • FIG. 6 is a high-level block diagram that illustrates an exemplary machine that may be used to effect various operations of the present invention.
  • the present invention involves novel methods, apparatus and data structures for reusing information from previously executed control instructions for a data forwarding device, such as a router for example.
  • a data forwarding device such as a router for example.
  • FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device 100 .
  • a data forwarding operation 110 may use information in a forwarding table 120 to forward incoming data (e.g., packets) towards a final destination.
  • the forwarding table 120 may be generated and updated by an optional (as indicated by phantom lines) path-to-forwarding information translation operation 130 .
  • the path-to-forwarding information translation operation 130 may perform its generation and update functions based on an optional (as indicated by phantom lines) path (e.g., routing) table 140 and device configuration information 150 .
  • the path (e.g., routing) table 140 may be generated by an optional (as indicated by phantom lines) path (e.g., route) determination operation 160 based on network state (e.g., link state) information, as well as device configuration information 150 .
  • path determination operation 160 may operate in accordance with known routing protocols to populate a routing table.
  • a device operations management operation 180 may directly or indirectly interact with, and manage, some or all of the operations just introduced as indicated by the dashed arrow lines.
  • a user may use a control instruction user interface operation 170 for interacting with the device operations management operation 180 , as well as the device configuration information 150 .
  • the present invention may concern at least a part of the control instruction user interface operation 170 .
  • FIG. 2 is a high-level bubble chart diagram of an exemplary data forwarding device 200 .
  • the data forwarding device 200 may include a data (e.g., packet) forwarding facility 210 and a path (e.g., route) determination facility 260 .
  • the data forwarding facility 210 may function to forward data towards its ultimate destination, and the path determination facility 260 may function to generate and/or update a forwarding table 120 ′ based on path (e.g., route) determinations.
  • the data forwarding facility 210 may include an operating system (micro) kernel 220 which supports various operations (e.g., an interface operation 230 and a chassis operation 250 ).
  • the exemplary data forwarding facility 210 may also include an instance of a forwarding table 120 b ′ used to forward data towards its destination.
  • the forwarding table instance 120 b ′ may correspond to an instance of the forwarding table 120 a ′ of the path determination facility 260 .
  • the path determination facility 260 may include an operating system kernel 262 which supports various operations (e.g., a path (e.g., route) determination operation 264 , an interface operation 266 , a chassis operation 268 , control instruction interface operations 170 ′, etc.) and which may be used to generate the forwarding table instance 120 a ′.
  • the path (e.g., route) determination operation 264 may be used to determine a path (e.g., routing) table 140 ′.
  • Network management (e.g., SNMP) operations 270 may interact with the various operations 264 , 266 , 268 supported by the operating system kernel 262 .
  • the control instruction interface operation 170 ′ may act on configuration information 150 ′ and the operating system kernel 262 .
  • control instruction user interface operations 170 ′ may include user login and authentication operations 271 , configuration operations 272 and control instruction editing operations 276 .
  • control instruction editing operations 276 may access recently executed (i.e., previously entered) control instructions stored (e.g., in a buffer 277 ).
  • control instruction interface operations 170 and 170 ′ are provided in both the device 100 of FIG. 1 and the device 200 of FIG. 2 .
  • the present invention may constitute a part of such a control instruction user interface operations 170 / 170 ′.
  • the present invention may be used in other data forwarding devices.
  • the present invention may function to help users to input control instructions using fewer keystrokes, with less chance of typographic errors, and requiring less memorization (e.g., of instructions, parameter values, syntax rules, etc.) on the part of the user.
  • the present invention may do so by permitting previously executed command instructions to be searched and/or by permitting a string to be expanded to match an alpha-numeric string, such as a word, or parameter for example, of a previously executed control instruction.
  • FIG. 3 is a high-level bubble diagram that illustrates exemplary control instruction interface operations 170 ′′′, of which the present invention may be a part.
  • the control instruction interface operations 170 ′′′ may include user login and authentication operations 271 ′, configuration operations 272 ′ and control instruction edit operations 276 ′.
  • the control instruction edit operations 276 ′ may be a part of operational mode operations 274 .
  • the operational mode operations 274 may include a number of control instruction operations (which may be simply referred to as “control instructions” or “instructions”) 275 .
  • control instruction operational mode operations 274 may (i) be accessible from a console or through a remote network connection, (ii) automatically start after the device finishes booting, (iii) be used to perform various tasks such as configuring operating system software, and monitoring and troubleshooting software, network connectivity, and/or hardware.
  • the control instructions may be organized in a hierarchy, with control instructions that perform a similar or related function grouped together under the same higher level control instruction. For example, as illustrated in FIG. 4 , all control instructions that display information about the system and the system software may be grouped under the “show” instruction 410 , and all instructions that display information about the routing table may be grouped under the “show route” instruction 410 / 420 . (Branches without control instruction nodes convey that the hierarchy may include further control instructions.)
  • the full instruction name is entered.
  • the instruction “show route brief” 410 / 420 / 430 may be entered.
  • Some exemplary control instructions 275 that may be provided in the context of a data forwarding device, such as a router for example, are now introduced. Some control instructions 275 may control a user interface environment. For example, a “set” control instruction may be used to configure a display screen.
  • Some control instructions 275 may be used for monitoring and troubleshooting.
  • a “clear” control instruction may be used to clear statistics and protocol database information
  • a “monitor” control instruction may be used to perform real-time debugging of various software components (e.g., routing protocols and interfaces)
  • a “ping” control instruction may be used to determine whether a remote network host is reachable
  • a “show” control instruction may be used to display current configuration and information about interfaces, routing protocols, routing tables, routing policy filters and the chassis
  • a “test” control instruction may be used to test a configuration and application of policy filters and autonomous system path regular expressions
  • a “trace route” control instruction may be used to trace a route to a remote network host.
  • control instructions 275 may be used for connecting to other network systems.
  • a “ssh” control instruction may be used to open secure shell connections
  • a “telnet” control instruction may be used to open Telnet sessions to other hosts on the network.
  • Still other control instructions 275 may be used for copying files.
  • “file” and “copy” command instructions may be used to copy files from one location on the device to another, from the device to a remote system, or from a remote system to the device.
  • Some control instructions 275 may be used to restart various software operations, such as routing protocol 264 , interface 266 and simple network management protocol 268 .
  • a “request” control instruction 275 may be used to perform system-level operations, such as stopping and rebooting the data forwarding device, loading operating system software images, etc.
  • a “start” control instruction 275 may be used to exit the control instruction interface operations 170 ′′′ and enter an operating system (e.g., UNIX) shell.
  • a “configure” control instruction 275 may be used to enter configuration operations 272 ′.
  • a “quit” control instruction 275 may be used to exit the control instruction interface operations 170 ′′′.
  • control instructions may be edited in accordance with control instruction edit operations 276 ′.
  • control instruction edit operations 276 are moving a cursor, deleting characters, inserting (e.g., recently deleted) text, redrawing the screen, inserting previous control instructions, repeating keyboard sequences, scrolling up and down, searching, etc.
  • the control instruction edit operations may include a reverse-search operation 310 b and a reverse-expand operation 310 c, as well as other edit control instructions operations 310 a.
  • FIG. 5 is a high-level flow diagram of an exemplary method 274 ′ that may be used to effect control instruction interface operational mode operations 274 .
  • input e.g., a keystroke
  • FIG. 5 is a high-level flow diagram of an exemplary method 274 ′ that may be used to effect control instruction interface operational mode operations 274 .
  • input e.g., a keystroke
  • decision branch point 520 the input is decoded (e.g., by a lookup in a key binding table). If the decoded input indicates a “reverse search” request, a search back through previously executed and stored (e.g., buffered) control instructions for a control instruction (line) matching a search string is performed, as indicated by block 522 . The control instruction found is retrieved and displayed as indicated in block 524 . The method 274 ′ then branches back to block 510 .
  • decision branch point 520 , and blocks 522 and 524 illustrate an exemplary reverse-search method 310 b ′. In one embodiment, a reverse-search may be requested by a CONTROL-r key input.
  • each subsequent keystroke forms a string which may be dynamically matched with the most recently entered matching control instruction.
  • a reverse-search hop may be requested by a CONTROL-/key input. With each reverse-search hop request, a search continuing back through the previously executed and stored control instructions (for a control instruction matching the then existing string) may be effected.
  • the retrieved control instruction may be effected (e.g., using the ENTER key).
  • the command instruction can be edited before it is entered.
  • a search back through previously executed and stored (e.g., buffered) strings, which may be a part or a parameter of a previously executed and stored control instruction, for a string or word matching a search string is performed.
  • the word found is retrieved and displayed as indicated in block 534 .
  • the method 274 ′ then branches back to block 510 .
  • decision branch point 530 , and blocks 532 and 534 illustrate an exemplary reverse-expand method 310 c′.
  • a reverse-expand may be requested by a ESCAPE-/key input. Successive searches continuing back through the previously entered and stored words or terms (e.g., parameters, operands, etc.) may be effected by repeatedly requesting a reverse-expand. Alternatively, or in addition, subsequent keystrokes (e.g., prior to an ENTER keystroke) may be used to lengthen the string upon which the reverse-expand may operate. Further, an ESCAPE-r key sequence may be used to dynamically (i.e., with each successive keystroke) search back through the previously entered and stored words or terms (e.g., operands, parameters, etc.).
  • a particular type of words e.g., particular parameters, or particular classes of parameters
  • a particular keyboard sequence may expand user input, but only to Internet protocol address parameters—another particular keyboard sequence may expand a user input, but only to physical interface type parameters, etc.
  • the reverse-expand operation 310 c ′ may be limited to checking matches to “leading” strings, in which case the string input by the user is expanded to a string (e.g., a word or parameter) of the previously executed control instructions for which the input string is a prefix.
  • the reverse-expand operation 310 c ′ may be used to find matches to strings without regard to their location within a previously executed command instruction, such as within a continuous alpha-numeric string of a previously executed command instruction.
  • control instruction edit methods may be carried out. Further, other control instruction operations 275 of the operational mode operations 274 may be carried out. Referring back to decision branch point 510 , it may be determined whether or not a control instruction was entered (e.g., whether or not the ENTER key is depressed), for example as the input at block 510 . If a “Quit” control instruction is entered, the method 274 ′ may be left via RETURN node 570 . If, on the other hand, the control instruction that was entered was not the “Quit” command, then the method 274 ′ may branch to block 560 where the entered control instruction is executed. At this point, the entered control instruction may be stored (e.g., buffered 277 ′) as a previously executed command instruction. The method 274 ′ may then continue to decision branch point 562 .
  • a control instruction e.g., whether or not the ENTER key is depressed
  • decision branch point 562 it may be determined whether or not the executed control instruction resulted in an error. If so, as indicated by blocks 564 and 568 , an error may be displayed and a new control instruction line may be provided, respectively, before the method 274 ′ branches back to decision branch point 510 . If, on the other hand, no error results, as indicated by blocks 566 and 568 , the results of the executed command operation are displayed and a new control instruction line may be provided, respectively, before the method 274 ′ branches back to block 510 .
  • FIG. 6 is high-level block diagram of a machine 600 which may effect one or more of the operations, and store one or more of the data structures, discussed above.
  • the machine 600 basically includes a processor(s) 610 , an input/output interface unit(s) 630 , a storage device(s) 620 , and a system bus(es) and/or a network(s) 640 for facilitating the communication of information among the coupled elements.
  • An input device(s) 632 and an output device(s) 634 may be coupled with the input/output interface(s) 630 .
  • Operations of the present invention may be effected by the processor(s) 610 executing instructions.
  • the instructions may be stored in the storage device(s) 620 and/or received via the input/output interface(s) 630 .
  • the instructions may be functionally grouped into processing modules.
  • the machine 600 may be a router for example.
  • the processor(s) 610 may include a microprocessor and/or (e.g., custom) integrated circuit(s).
  • the storage device(s) 620 may include ROM, RAM, SDRAM, SRAM, SSRAM, DRAM, flash drive(s), hard disk drive(s), and/or flash cards. At least some of these storage device(s) 620 may include program instructions defining an operating system, a protocol daemon, and/or other daemons.
  • the methods of the present invention may be effected by a microprocessor executing stored program instructions.
  • At least a portion of the machine executable instructions may be stored (temporarily or more permanently) on the storage device(s) 620 and/or may be received from an external source via an input interface unit 630 .
  • the input/output interface unit(s) 630 , input device(s) 632 and output device(s) 634 may include interfaces to terminate communications links.
  • the input device(s) 632 may include a keyboard.
  • the operations of the present invention may be effected on systems other than routers, or on routers other than the exemplary router. Such other systems may employ different hardware and/or software.
  • the first matching control instruction namely:
  • a particular keyboard sequence could selectively expand a string to match only a particular parameter, such as an internet protocol address for example.
  • the present invention helps users to enter control instructions using fewer keystrokes, with less chance of typographical errors, and with less memorization (e.g., of instructions, parameter values, syntax rules, etc.) required on the part of the user.
  • the present invention permits previously executed command instructions to be reused.
  • the present invention also permits a string to be expanded to match a word, such as a parameter of a previously executed control instruction for example.

Abstract

A reverse-search function may accept user input and search back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction, at least a part of which matches a search string input by the user. The matching data forwarding device control instruction may be retrieved and rendered. A reverse-expand function may accept user input, and search back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction having an word or parameter, at least a part of which matches a search string input by the user. The first matching word or parameter may be retrieved and rendered.

Description

    §0. RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 09/734,325 (referred to as “the '325 application” and incorporated herein by reference), filed on Dec. 1, 2000, titled “SEARCHING AND REUSING INFORMATION FROM PREVIOUSLY EXECUTED CONTROL INSTRUCTIONS IN A DATA FORWARDING DEVICE”, and listing Robert P. Enns as the inventor.
  • §1. BACKGROUND OF THE INVENTION
  • §1.1 Field of the Invention
  • The present invention concerns inputting and entering control instructions in data forwarding devices, such as routers for example. More specifically, the present invention concerns reusing information from previously executed control instructions for such a device.
  • §1.2 Related Art
  • The description of art in this section is not, and should not be interpreted to be, an admission that such art is prior art to the present invention. The present invention may be used for inputting control instructions for data forwarding devices.
  • Data forwarding devices, such as routers and switches, may be interconnected to form networks. The interconnections may be such that each data forwarding device has a plurality of input lines and a plurality of output lines. A basic function of these devices is to forward data received at their input lines to the appropriate output lines. Routers, for example, may determine the appropriate output lines based on a destination addresses contained in the received data and forwarding tables. Switches may be configured so that data received at input lines are provided to appropriate output lines.
  • Such data forwarding devices may need to be configured appropriately. This may be done by entering configuration commands, through a keyboard or other type of interface, into a data forwarding device. For example, a control instruction interface may be provided for configuring operating system software, configuring the device, and monitoring and/or troubleshooting software, network connectivity, and/or hardware. Other types of information or commands may also be entered into the device through the keyboard or interface.
  • When entering a command or information through a keyboard (or similar user interface) of a data forwarding device, there is a risk that the command or information may be entered incorrectly or incompletely. Such errors may cause the data forwarding device to be incorrectly configured and may lead to serious network malfunctions. This is especially true where the commands or information involve long strings of commands and complex number sequences.
  • Accordingly, there is a need to reduce the risk that commands or information will be entered incorrectly or incompletely.
  • §2. SUMMARY OF THE INVENTION
  • The disclosed invention helps users to input command instructions more efficiently and accurately by accepting user input, and if it is determined that a reverse-search is requested based on the accepted user input, then searching back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction, at least a part of which matches a search string input by the user. The matching data forwarding device control instruction may be retrieved and may be rendered.
  • The present invention may also provide a method for inputting a word or parameter of a control instruction for a data forwarding device. Such a method may accept user input, and if it is determined that a reverse-expand is requested based on the accepted user input, then searching back through previously executed and stored data forwarding device control instructions for a data forwarding device control instruction having an word or parameter, at least a part of which matches a search string input by the user. The first matching word or parameter may be retrieved and may be rendered.
  • The present invention may provide a control instruction interface having (a) a storage device for storing previously executed data forwarding device control instructions, (b) an input device for accepting user input; and (c) a reverse-search facility. The reverse-search facility may be adapted to accept user input from the input device, and determine whether a reverse-search is requested based on the accepted user input. If it is determined that a reverse-search is requested, then the reverse-search facility may search back through the previously executed data forwarding device control instructions stored in the storage device for a data forwarding device control instruction, at least a part of which matches a search string input by the user.
  • The control instruction interface may also, or alternatively, include a reverse-expand facility adapted to determine whether a reverse-expand is requested based on the accepted user input. If it is determined that a reverse-expand is requested, then the reverse-expand facility may search back through the previously executed data forwarding device control instructions stored in the storage device for a data forwarding device control instruction having a word or parameter, at least a part of which matches a search string input by the user.
  • §3. BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device having a control instruction interface with which the present invention may be used.
  • FIG. 2 is a high-level bubble chart diagram of an exemplary data forwarding device having a control instruction interface with which the present invention may be used.
  • FIG. 3 is a high-level bubble chart diagram that illustrates control instruction interface operations of which the present invention may be a part.
  • FIG. 4 is a block diagram that illustrates an example of hierarchical control instructions in a router.
  • FIG. 5 is a high-level flow diagram of an exemplary method that may be used to effect at least some control instruction interface operational mode operations.
  • FIG. 6 is a high-level block diagram that illustrates an exemplary machine that may be used to effect various operations of the present invention.
  • §4. DETAILED DESCRIPTION
  • The present invention involves novel methods, apparatus and data structures for reusing information from previously executed control instructions for a data forwarding device, such as a router for example. The following description is presented to enable one skilled in the art to make and use the invention, and is provided in the context of particular applications and their requirements. Various modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles set forth below may be applied to other embodiments and applications. Thus, the present invention is not intended to be limited to the embodiments shown and the inventor regards his invention as the following disclosed methods, apparatus and data structures and any other patentable subject matter.
  • §4.1 Exemplary Enviroments in which the Present Invention may Operate
  • §4.1.1 First Exemplary Data Forwarding Device
  • FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device 100. As shown, a data forwarding operation 110 may use information in a forwarding table 120 to forward incoming data (e.g., packets) towards a final destination. For a simple data forwarding device, only these components are needed. However, in many data forwarding devices, the forwarding table 120 may be generated and updated by an optional (as indicated by phantom lines) path-to-forwarding information translation operation 130. The path-to-forwarding information translation operation 130 may perform its generation and update functions based on an optional (as indicated by phantom lines) path (e.g., routing) table 140 and device configuration information 150. The path (e.g., routing) table 140 may be generated by an optional (as indicated by phantom lines) path (e.g., route) determination operation 160 based on network state (e.g., link state) information, as well as device configuration information 150. For example, the path determination operation 160 may operate in accordance with known routing protocols to populate a routing table.
  • A device operations management operation 180 may directly or indirectly interact with, and manage, some or all of the operations just introduced as indicated by the dashed arrow lines. A user may use a control instruction user interface operation 170 for interacting with the device operations management operation 180, as well as the device configuration information 150. The present invention may concern at least a part of the control instruction user interface operation 170.
  • §4.1.2 Second Exemplary Data Forwarding Device
  • FIG. 2 is a high-level bubble chart diagram of an exemplary data forwarding device 200. The data forwarding device 200 may include a data (e.g., packet) forwarding facility 210 and a path (e.g., route) determination facility 260. Basically, the data forwarding facility 210 may function to forward data towards its ultimate destination, and the path determination facility 260 may function to generate and/or update a forwarding table 120′ based on path (e.g., route) determinations.
  • In an exemplary embodiment, the data forwarding facility 210 may include an operating system (micro) kernel 220 which supports various operations (e.g., an interface operation 230 and a chassis operation 250). The exemplary data forwarding facility 210 may also include an instance of a forwarding table 120 b′ used to forward data towards its destination. The forwarding table instance 120 b′ may correspond to an instance of the forwarding table 120 a′ of the path determination facility 260.
  • In an exemplary embodiment, the path determination facility 260 may include an operating system kernel 262 which supports various operations (e.g., a path (e.g., route) determination operation 264, an interface operation 266, a chassis operation 268, control instruction interface operations 170′, etc.) and which may be used to generate the forwarding table instance 120 a′. The path (e.g., route) determination operation 264 may be used to determine a path (e.g., routing) table 140′. Network management (e.g., SNMP) operations 270 may interact with the various operations 264,266,268 supported by the operating system kernel 262. The control instruction interface operation 170′ may act on configuration information 150′ and the operating system kernel 262.
  • As shown in the blow-up of bubble 170″ in FIG. 2, the control instruction user interface operations 170′ may include user login and authentication operations 271, configuration operations 272 and control instruction editing operations 276. In accordance with the present invention, the control instruction editing operations 276 may access recently executed (i.e., previously entered) control instructions stored (e.g., in a buffer 277).
  • In both the device 100 of FIG. 1 and the device 200 of FIG. 2, control instruction interface operations 170 and 170′ are provided. The present invention may constitute a part of such a control instruction user interface operations 170/170′. The present invention may be used in other data forwarding devices.
  • §4.2 Functions that may be Performed by the Present Invention
  • The present invention may function to help users to input control instructions using fewer keystrokes, with less chance of typographic errors, and requiring less memorization (e.g., of instructions, parameter values, syntax rules, etc.) on the part of the user. The present invention may do so by permitting previously executed command instructions to be searched and/or by permitting a string to be expanded to match an alpha-numeric string, such as a word, or parameter for example, of a previously executed control instruction.
  • §4.3 Exemplary Operations, Architecture, Methods and Data Structures
  • Operations that may be performed by the present invention are introduced, exemplary methods and data structures that may be used to effect such operations, and exemplary hardware that may be used to effect such operations are described in the following.
  • §4.3.1 Exemplary Operations
  • FIG. 3 is a high-level bubble diagram that illustrates exemplary control instruction interface operations 170′″, of which the present invention may be a part. As was the case in the exemplary embodiment of FIG. 2, the control instruction interface operations 170′″ may include user login and authentication operations 271′, configuration operations 272′ and control instruction edit operations 276′. The control instruction edit operations 276′ may be a part of operational mode operations 274. In addition to including control instruction edit operation 276′, the operational mode operations 274 may include a number of control instruction operations (which may be simply referred to as “control instructions” or “instructions”) 275.
  • In the context of a data forwarding device, such as a router for example, the control instruction operational mode operations 274 may (i) be accessible from a console or through a remote network connection, (ii) automatically start after the device finishes booting, (iii) be used to perform various tasks such as configuring operating system software, and monitoring and troubleshooting software, network connectivity, and/or hardware.
  • The control instructions may be organized in a hierarchy, with control instructions that perform a similar or related function grouped together under the same higher level control instruction. For example, as illustrated in FIG. 4, all control instructions that display information about the system and the system software may be grouped under the “show” instruction 410, and all instructions that display information about the routing table may be grouped under the “show route” instruction 410/420. (Branches without control instruction nodes convey that the hierarchy may include further control instructions.)
  • To execute an instruction, the full instruction name, from top hierarchical level down, is entered. Thus, referring once again to FIG. 4, to display a brief view of the routes of a router table, the instruction “show route brief” 410/420/430 may be entered.
  • Some exemplary control instructions 275 that may be provided in the context of a data forwarding device, such as a router for example, are now introduced. Some control instructions 275 may control a user interface environment. For example, a “set” control instruction may be used to configure a display screen.
  • Some control instructions 275 may be used for monitoring and troubleshooting. For example, a “clear” control instruction may be used to clear statistics and protocol database information, a “monitor” control instruction may be used to perform real-time debugging of various software components (e.g., routing protocols and interfaces), a “ping” control instruction may be used to determine whether a remote network host is reachable, a “show” control instruction may be used to display current configuration and information about interfaces, routing protocols, routing tables, routing policy filters and the chassis, a “test” control instruction may be used to test a configuration and application of policy filters and autonomous system path regular expressions, and a “trace route” control instruction may be used to trace a route to a remote network host.
  • Other control instructions 275 may be used for connecting to other network systems. For example, a “ssh” control instruction may be used to open secure shell connections, and a “telnet” control instruction may be used to open Telnet sessions to other hosts on the network.
  • Still other control instructions 275 may be used for copying files. For example, “file” and “copy” command instructions may be used to copy files from one location on the device to another, from the device to a remote system, or from a remote system to the device.
  • Some control instructions 275, such as a “restart” command instruction for example, may be used to restart various software operations, such as routing protocol 264, interface 266 and simple network management protocol 268.
  • A “request” control instruction 275 may be used to perform system-level operations, such as stopping and rebooting the data forwarding device, loading operating system software images, etc. A “start” control instruction 275 may be used to exit the control instruction interface operations 170′″ and enter an operating system (e.g., UNIX) shell. A “configure” control instruction 275 may be used to enter configuration operations 272′. A “quit” control instruction 275 may be used to exit the control instruction interface operations 170′″.
  • Such control instructions may be edited in accordance with control instruction edit operations 276′. Examples of control instruction edit operations 276 are moving a cursor, deleting characters, inserting (e.g., recently deleted) text, redrawing the screen, inserting previous control instructions, repeating keyboard sequences, scrolling up and down, searching, etc. As shown in FIG. 3, the control instruction edit operations may include a reverse-search operation 310 b and a reverse-expand operation 310 c, as well as other edit control instructions operations 310 a.
  • §4.3.2 Exemplary Methods and Data Structures for Reverse-Search and Reverse-Expand Operations
  • FIG. 5 is a high-level flow diagram of an exemplary method 274′ that may be used to effect control instruction interface operational mode operations 274. As depicted in block 510 input (e.g., a keystroke) is accepted. Collectively, these inputs can correspond to control instructions in general, as well as control instruction edit operations 274 more specifically.
  • Referring to decision branch point 520, the input is decoded (e.g., by a lookup in a key binding table). If the decoded input indicates a “reverse search” request, a search back through previously executed and stored (e.g., buffered) control instructions for a control instruction (line) matching a search string is performed, as indicated by block 522. The control instruction found is retrieved and displayed as indicated in block 524. The method 274′ then branches back to block 510. As can be appreciated, collectively, decision branch point 520, and blocks 522 and 524 illustrate an exemplary reverse-search method 310 b′. In one embodiment, a reverse-search may be requested by a CONTROL-r key input. After such a reverse-search is requested, each subsequent keystroke forms a string which may be dynamically matched with the most recently entered matching control instruction. Alternatively, or in addition, a reverse-search hop may be requested by a CONTROL-/key input. With each reverse-search hop request, a search continuing back through the previously executed and stored control instructions (for a control instruction matching the then existing string) may be effected.
  • As will be appreciated from the description of elements 540 through 568 below, the retrieved control instruction may be effected (e.g., using the ENTER key). Alternatively, the command instruction can be edited before it is entered.
  • Referring once again to decision branch point 520, if the decoded input indicates a string (e.g., parameter) expansion (also referred to as a reverse-expand operation) request, as indicated by block 532, a search back through previously executed and stored (e.g., buffered) strings, which may be a part or a parameter of a previously executed and stored control instruction, for a string or word matching a search string is performed. The word found is retrieved and displayed as indicated in block 534. The method 274′ then branches back to block 510. As can be appreciated, collectively, decision branch point 530, and blocks 532 and 534 illustrate an exemplary reverse-expand method 310c′. In one embodiment, a reverse-expand may be requested by a ESCAPE-/key input. Successive searches continuing back through the previously entered and stored words or terms (e.g., parameters, operands, etc.) may be effected by repeatedly requesting a reverse-expand. Alternatively, or in addition, subsequent keystrokes (e.g., prior to an ENTER keystroke) may be used to lengthen the string upon which the reverse-expand may operate. Further, an ESCAPE-r key sequence may be used to dynamically (i.e., with each successive keystroke) search back through the previously entered and stored words or terms (e.g., operands, parameters, etc.).
  • Referring back to FIG. 3, although reverse-search, reverse-expand, and other editing operations were described as a part of operational mode operations 276′, note that all of these edit methods may also be used in the context of editing a configuration file, for example, and can therefore work with the configuration operations 272′.
  • In one embodiment of the reverse-expand method, a particular type of words (e.g., particular parameters, or particular classes of parameters) can be searched, while others may be ignored. For example, a particular keyboard sequence may expand user input, but only to Internet protocol address parameters—another particular keyboard sequence may expand a user input, but only to physical interface type parameters, etc.
  • The reverse-expand operation 310 c′ may be limited to checking matches to “leading” strings, in which case the string input by the user is expanded to a string (e.g., a word or parameter) of the previously executed control instructions for which the input string is a prefix. Alternatively, the reverse-expand operation 310 c′ may be used to find matches to strings without regard to their location within a previously executed command instruction, such as within a continuous alpha-numeric string of a previously executed command instruction.
  • Other control instruction edit methods may be carried out. Further, other control instruction operations 275 of the operational mode operations 274 may be carried out. Referring back to decision branch point 510, it may be determined whether or not a control instruction was entered (e.g., whether or not the ENTER key is depressed), for example as the input at block 510. If a “Quit” control instruction is entered, the method 274′ may be left via RETURN node 570. If, on the other hand, the control instruction that was entered was not the “Quit” command, then the method 274′ may branch to block 560 where the entered control instruction is executed. At this point, the entered control instruction may be stored (e.g., buffered 277′) as a previously executed command instruction. The method 274′ may then continue to decision branch point 562.
  • At decision branch point 562, it may be determined whether or not the executed control instruction resulted in an error. If so, as indicated by blocks 564 and 568, an error may be displayed and a new control instruction line may be provided, respectively, before the method 274′ branches back to decision branch point 510. If, on the other hand, no error results, as indicated by blocks 566 and 568, the results of the executed command operation are displayed and a new control instruction line may be provided, respectively, before the method 274′ branches back to block 510.
  • Note that the key bindings (e.g., CONTROL-r, ESCAPE-/, etc.) were presented for illustrative purposes only. Clearly, other key bindings could be used to initiate the operations described above.
  • §4.3.3 Exemplary Hardware Architectures
  • FIG. 6 is high-level block diagram of a machine 600 which may effect one or more of the operations, and store one or more of the data structures, discussed above. The machine 600 basically includes a processor(s) 610, an input/output interface unit(s) 630, a storage device(s) 620, and a system bus(es) and/or a network(s) 640 for facilitating the communication of information among the coupled elements. An input device(s) 632 and an output device(s) 634 may be coupled with the input/output interface(s) 630. Operations of the present invention may be effected by the processor(s) 610 executing instructions. The instructions may be stored in the storage device(s) 620 and/or received via the input/output interface(s) 630. The instructions may be functionally grouped into processing modules.
  • The machine 600 may be a router for example. In an exemplary router, the processor(s) 610 may include a microprocessor and/or (e.g., custom) integrated circuit(s). In the exemplary router, the storage device(s) 620 may include ROM, RAM, SDRAM, SRAM, SSRAM, DRAM, flash drive(s), hard disk drive(s), and/or flash cards. At least some of these storage device(s) 620 may include program instructions defining an operating system, a protocol daemon, and/or other daemons. In a preferred embodiment, the methods of the present invention may be effected by a microprocessor executing stored program instructions. At least a portion of the machine executable instructions may be stored (temporarily or more permanently) on the storage device(s) 620 and/or may be received from an external source via an input interface unit 630. Finally, in the exemplary router, the input/output interface unit(s) 630, input device(s) 632 and output device(s) 634 may include interfaces to terminate communications links. The input device(s) 632 may include a keyboard.
  • Naturally, the operations of the present invention may be effected on systems other than routers, or on routers other than the exemplary router. Such other systems may employ different hardware and/or software.
  • §4.4 Operational Examples in Exemplary Embodiments
  • Operational examples of a reverse-search operation and of a reverse-expand operation are described below.
  • §4.4.1 Operational Examples of Reverse-Search Operation
  • In the following example, assume that the following control instructions were entered (and therefore executed) in the order shown:
    >show route table
    >show route protocol
    >show route exact
    >show route terse
  • Further assume that these previously executed control instructions are saved (e.g., in a buffer). Finally, assume that a reverse-search is effected by a ctrl-r keyboard sequence.
  • If a user were to input the following keyboard sequence:
      • ctrl-r sh
        the first matching control instruction, namely:
      • show route terse
  • would be returned. If the user further input an additional:
      • ow route e
  • keyboard sequence, the next matching control instruction, namely:
      • show route exact
  • would be returned.
  • If the user instead input the following keyboard sequence:
      • ctrl-r show route t
  • the first matching control instruction, namely:
      • show route terse
  • would be returned. If the user further input reverse-search hop:
      • ctrl-/
  • keyboard sequence, the next matching control instruction, namely:
      • show route table
  • would be returned
  • §4.4.2 Operational Example of Reverse-Expand Operation
  • In the following example, assume that the following control instructions were entered (and therefore executed) in the order shown:
    >set system host-name router-sj1
    >set system static-host-mapping router-sj1 inet 192.168.1.77
    >set system static-host-mapping router sj1 alias sj1
    >set system static-host-mapping router sj1 sysid 1921.6800.1077
  • Further assume that these previously executed control instructions are saved (e.g., in a buffer). Finally, assume that a reverse-search is effected by an Esc-/ keyboard sequence.
  • If a user were to input the following keyboard sequence:
      • ping 68Esc-/
  • The following would be returned:
      • ping 1921.6800.1077
  • If the user were to input the following keyboard sequence:
      • Esc-/
  • again, the following would be returned:
      • ping 192.168.1.77
  • Notice that only (discrete) words or strings are searched and only words or strings are returned in this exemplary embodiment. In the foregoing example, the reverse-expand located a matching string at any place in the previously executed control instructions. In an alternative embodiment, only leading-edge matches are found. In such an alternative only an expansion of “1”, “19”, or “192” would return the two parameters illustrated above.
  • Note that in one embodiment, a particular keyboard sequence could selectively expand a string to match only a particular parameter, such as an internet protocol address for example.
  • §4.5 Conclusions
  • As can be appreciated from the foregoing disclosure, the present invention helps users to enter control instructions using fewer keystrokes, with less chance of typographical errors, and with less memorization (e.g., of instructions, parameter values, syntax rules, etc.) required on the part of the user. The present invention permits previously executed command instructions to be reused. The present invention also permits a string to be expanded to match a word, such as a parameter of a previously executed control instruction for example.

Claims (33)

1. A method for inputting a control instruction for a data forwarding device, the method comprising:
a) accepting, by the data forwarding device, user input;
b) determining, with the data forwarding device, whether a reverse-search is requested based on the user input accepted; and
c) if it is determined that a reverse-search is requested, then
i) accepting, by the data forwarding device, further user input as a search string;
ii) searching, with the data forwarding device, back through previously entered and stored data forwarding device control instructions for a data forwarding device control instruction, at least a part of which matches the search string input by the user,
iii) retrieving, with the data forwarding device, the first matching data forwarding device control instruction, and
iv) rendering the first matching data forwarding device control instruction,
wherein the data forwarding device is one of (A) a network switch and (B) a network router.
2. The method of claim 1 wherein the further user input accepted includes keystrokes.
3. The method of claim 1 wherein the act of determining whether a reverse-search is requested determines whether or not a predefined key sequence is input.
4. The method of claim 1 wherein the act of determining whether a reverse-search is requested determines whether or not a predefined key is input.
5. The method of claim 1 wherein the act of searching back through previously entered and stored data forwarding device control instruction considers more recently entered data forwarding device control instructions before less recently entered data forwarding device control instructions.
6. The method of claim 1 further comprising:
d) determining whether or not the retrieved first matching data forwarding device control instruction is entered; and
e) if it is determined that the returned first matching data forwarding device control instruction is entered, then
i) effecting the entered first matching data forwarding device control instruction, and
ii) storing the entered first matching data forwarding device control instruction.
7. The method of claim 1 further comprising:
d) determining, with the data forwarding device, whether another reverse-search is requested before the retrieved first matching data forwarding device control instruction is executed; and
e) if it is determined that another reverse-search is requested before the retrieved first matching data forwarding device control instruction is executed, then automatically
i) starting at the first matching control instruction, searching, with the data forwarding device, back through previously entered and stored data forwarding device control instructions for another data forwarding device control instruction, at least a part of which matches the search string input by the user,
ii) retrieving, with the data forwarding device, the next matching data forwarding device control instruction, and
iii) rendering the next matching data forwarding device control instruction.
8. The method of claim 1 wherein the first matching data forwarding device control instruction is one of (a) a clear communications network statistics control instruction, (b) a clear network communications protocol database control instruction, (c) a monitor network communications protocols control instruction, (d) a monitor data forwarding device communications interface control instruction, (e) a ping control instruction, (f) a show data forwarding device configuration control instruction, (g) a show network communications protocols control instruction, (h) a show routing tables control instruction, (i) a show network communications policy filters control instruction, (j) a show data forwarding device chassis control instruction, (k) a test data forwarding device configuration control instruction, (l) a test data forwarding device policy filter control instruction, and (m) a trace-route control instruction.
9. The method according to claim 1 wherein the control instruction is a configuration command.
10. A control instruction interface for use in a data forwarding device, the control instruction interface comprising:
a) a storage device for storing previously entered data forwarding device control instructions;
b) an input device for accepting user input; and
c) a reverse-search facility, the reverse-search facility adapted to
i) accept user input from the input device,
ii) determining whether a reverse-search is requested based on the accepted user input, and
iii) if it is determined that a reverse-search is requested, then accepting further user input as a search string, and searching back through the previously entered data forwarding device control instructions stored in the storage device for a data forwarding device control instruction, at least a part of which matches the search string input by the user,
wherein the data forwarding device is one of (A) a network switch and (B) a network router.
11. The control instruction interface of claim 10 wherein the reverse-search facility is further adapted to retrieve from the storage device, the first matching data forwarding device control instruction found in a search.
12. The control instruction interface of claim 11 further comprising:
d) a display device, the display device adapted to render the first matching data forwarding device control instruction retrieved from the storage device by the reverse-search facility.
13. The control instruction interface of claim 10 further comprising:
d) a operational mode facility adapted to
i) determine whether or not the first matching data forwarding device control instruction is entered, and
ii) if it is determined that the first matching data forwarding device control instruction is entered, then
A) effect the first matching data forwarding device control instruction, and
B) store the first matching data forwarding device control instruction in the storage device.
14. The control instruction interface of claim 10 wherein one of the previously executed data forwarding device control instructions stored in the storage device is one of (a) a clear communications network statistics control instruction, (b) a clear network communications protocol database control instruction, (c) a monitor network communications protocols control instruction, (d) a monitor data forwarding device communications interface control instruction, (e) a ping control instruction, (f) a show data forwarding device configuration control instruction, (g) a show network communications protocols control instruction, (h) a show routing tables control instruction, (i) a show network communications policy filters control instruction, (j) a show data forwarding device chassis control instruction, (k) a test data forwarding device configuration control instruction, (l) a test data forwarding device policy filter control instruction, and (m) a trace-route control instruction.
15. The control instruction interface according to claim 10 wherein the control instruction is a configuration command.
16. A computer-readable medium having stored thereon:
a) previously entered data forwarding device control instructions; and
b) a binding associating a key or key sequence to a reverse-search command for searching back through the previously entered data forwarding device control instructions,
wherein the data forwarding device is one of (A) a network switch and (B) a network router, and
wherein the computer-readable medium is included as a component of the data forwarding device.
17. The computer-readable medium of claim 16 wherein one of the previously entered data forwarding device control instructions stored on the machine readable medium is one of (a) a clear communications network statistics control instruction, (b) a clear network communications protocol database control instruction, (c) a monitor network communications protocols control instruction, (d) a monitor data forwarding device communications interface control instruction, (e) a ping control instruction, (f) a show data forwarding device configuration control instruction, (g) a show network communications protocols control instruction, (h) a show routing tables control instruction, (i) a show network communications policy filters control instruction, (j) a show data forwarding device chassis control instruction, (k) a test data forwarding device configuration control instruction, (l) a test data forwarding device policy filter control instruction, and (m) a trace-route control instruction.
18. The computer-readable medium according to claim 16 wherein the control instruction is a configuration command.
19. A method for inputting a word or parameter value of a control instruction for a data forwarding device, the method comprising:
a) accepting user input, the user input including a first part, a second part comprising a search string, and a third part;
b) determining, with the data forwarding device, whether a reverse-expand is requested based on the third part of the user input accepted; and
c) if it is determined that a reverse-expand is requested, then
i) searching, with the data forwarding device, back through previously entered and stored data forwarding device control instructions for a data forwarding device control instruction having a word or parameter value, at least a part of which matches the search string of the second part of the user input,
ii) retrieving, with the data forwarding device, the first matching word or parameter value, and
iii) rendering a command line including the first part of the user input and the first matching word or parameter value,
wherein the data forwarding device is one of (A) a network switch and (B) a network router.
20. The method of claim 19 wherein the act of determining whether a reverse-expand is requested determines whether or not a predefined key sequence is input.
21. The method of claim 19 wherein the act of determining whether a reverse-expand is requested determines whether or not a predefined key is input.
22. The method of claim 19 wherein the act of searching back through previously entered and stored data forwarding device control instruction considers more recently executed data forwarding device control instructions before less recently executed data forwarding device control instructions.
23. The method of claim 19 further comprising:
d) determining, with the data forwarding device, whether another reverse-expand is requested before a data forwarding device control instruction is executed; and
e) if it is determined that another reverse-expand is requested before the data forwarding device control instruction is executed, then automatically
i) starting at the control instruction having the first matching word or parameter, searching, with the data forwarding device, back through previously entered and stored data forwarding device control instructions for another data forwarding device control instruction having a parameter value or word, at least a part of which matches a search string input by the user,
ii) retrieving, with the data forwarding device, the next matching word or parameter value, and
iii) rendering the next matching word or parameter.
24. The method of claim 19 wherein the first matching word or parameter value of a data forwarding device control instruction is one of (a) a data forwarding device communications interface name, (b) a data forwarding device communications interface type, (c) a communications network address, (d) an internet protocol address, (e) a firewall parameter, (f) a network communications protocol, (g) a network communications policy parameter, (h) a data forwarding device configuration parameter, and (i) a part of a hierarchical control instruction.
25. The method according to claim 19 wherein the command line rendered includes the first part of the user input followed by the first matching word or parameter.
26. The method according to claim 19 wherein the control instruction is a configuration command.
27. The method according to claim 19 wherein the reverse-expand is specific to a given parameter, and
wherein the act of searching back through previously entered and stored data forwarding device control instructions for a data forwarding device control instruction having a word or parameter value, at least a part of which matches the search string of the second part of the user input further determines whether the word or parameter value belongs to the given parameter to qualify the search string match.
28. The method according to claim 19 wherein the reverse-expand is specific to a given class of parameters, and
wherein the act of searching back through previously entered and stored data forwarding device control instructions for a data forwarding device control instruction having a word or parameter value, at least a part of which matches the search string of the second part of the user input further determines whether the word or parameter value belongs to the given class of parameters to qualify the search string match.
29. The method according to claim 28 wherein the given class of parameters is an Internet protocol address parameter.
30. The method according to claim 28 wherein the given class of parameters is a physical interface type parameter.
31. The method according to claim 19 wherein when reverse-expand is requested, the act of retrieving the first matching word or parameter, retrieves the first matching word or parameter without other parts of the command line in which it was found.
32. A method of inputting information into a data forwarding device, comprising:
receiving, at the data forwarding device, a first data string representing an instruction, a second data string representing a portion of an operand, and a first instance of a control character;
determining whether the second data string matches a portion of an operand stored in memory;
if the second data string is determined to match the portion of an operand stored in memory, then retrieving the operand.
33. A data forwarding device, comprising:
a plurality of data interfaces for connection to respective data lines;
a mechanism for forwarding data from one data interface to another data interface;
a user interface for entering data strings and control characters;
a first processing module for receiving from the user interface a first data string representing an instruction, a second data string representing a portion of an operand, and a first instance of a control character;
a memory for storing a set of operands;
a second processing module for determining whether the second data string matches a portion of an operand stored in the memory;
a third processing module for retrieving an operand containing a portion that is determined to match the second data string.
US11/581,305 2000-12-01 2006-10-16 Searching and reusing information from previously executed control instructions in a data forwarding device Abandoned US20070033176A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/581,305 US20070033176A1 (en) 2000-12-01 2006-10-16 Searching and reusing information from previously executed control instructions in a data forwarding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/734,325 US7139751B1 (en) 2000-12-01 2000-12-01 Searching and reusing information from previously executed control instructions in a data forwarding device
US11/581,305 US20070033176A1 (en) 2000-12-01 2006-10-16 Searching and reusing information from previously executed control instructions in a data forwarding device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/734,325 Continuation US7139751B1 (en) 2000-12-01 2000-12-01 Searching and reusing information from previously executed control instructions in a data forwarding device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/080,583 Continuation US20120004243A1 (en) 2003-12-20 2011-04-05 Amide derivatives bearing a cyclopropylaminoacarbonyl substituent useful as cytokine inhibitors

Publications (1)

Publication Number Publication Date
US20070033176A1 true US20070033176A1 (en) 2007-02-08

Family

ID=37423324

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/734,325 Expired - Fee Related US7139751B1 (en) 2000-12-01 2000-12-01 Searching and reusing information from previously executed control instructions in a data forwarding device
US11/581,305 Abandoned US20070033176A1 (en) 2000-12-01 2006-10-16 Searching and reusing information from previously executed control instructions in a data forwarding device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/734,325 Expired - Fee Related US7139751B1 (en) 2000-12-01 2000-12-01 Searching and reusing information from previously executed control instructions in a data forwarding device

Country Status (1)

Country Link
US (2) US7139751B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041147A1 (en) * 2001-08-20 2003-02-27 Van Den Oord Stefan M. System and method for asynchronous client server session communication
US20060075120A1 (en) * 2001-08-20 2006-04-06 Smit Mark H System and method for utilizing asynchronous client server communication objects
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
US7701636B2 (en) 2008-03-06 2010-04-20 Aptina Imaging Corporation Gradient index microlenses and method of formation
US20140122423A1 (en) * 2012-10-26 2014-05-01 Google Inc. Unified file search
CN105429903A (en) * 2015-11-12 2016-03-23 上海斐讯数据通信技术有限公司 Switch and configuration method
US9722874B2 (en) * 2015-01-30 2017-08-01 Metaswitch Networks Ltd Inference-based network route control

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139751B1 (en) * 2000-12-01 2006-11-21 Juniper Networks, Inc. Searching and reusing information from previously executed control instructions in a data forwarding device
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US20060031355A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Programmable service oriented architecture
CN106301818A (en) * 2015-05-13 2017-01-04 中兴通讯股份有限公司 The collocation method of a kind of switch, device, mobile terminal and switch

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926463A (en) * 1997-10-06 1999-07-20 3Com Corporation Method and apparatus for viewing and managing a configuration of a computer network
US6018342A (en) * 1995-07-03 2000-01-25 Sun Microsystems, Inc. Automatically generated content-based history mechanism
US7139751B1 (en) * 2000-12-01 2006-11-21 Juniper Networks, Inc. Searching and reusing information from previously executed control instructions in a data forwarding device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775537B1 (en) * 2000-02-04 2004-08-10 Nokia Corporation Apparatus, and associated method, for facilitating net-searching operations performed by way of a mobile station

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018342A (en) * 1995-07-03 2000-01-25 Sun Microsystems, Inc. Automatically generated content-based history mechanism
US5926463A (en) * 1997-10-06 1999-07-20 3Com Corporation Method and apparatus for viewing and managing a configuration of a computer network
US7139751B1 (en) * 2000-12-01 2006-11-21 Juniper Networks, Inc. Searching and reusing information from previously executed control instructions in a data forwarding device

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112529B2 (en) * 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US20060075120A1 (en) * 2001-08-20 2006-04-06 Smit Mark H System and method for utilizing asynchronous client server communication objects
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
US20030041147A1 (en) * 2001-08-20 2003-02-27 Van Den Oord Stefan M. System and method for asynchronous client server session communication
US7752326B2 (en) 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US20110106966A1 (en) * 2001-08-20 2011-05-05 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US8060639B2 (en) 2001-08-20 2011-11-15 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US7701636B2 (en) 2008-03-06 2010-04-20 Aptina Imaging Corporation Gradient index microlenses and method of formation
US20140122423A1 (en) * 2012-10-26 2014-05-01 Google Inc. Unified file search
CN104756104A (en) * 2012-10-26 2015-07-01 谷歌公司 Unified file search
US9529938B2 (en) * 2012-10-26 2016-12-27 Google Inc. Unified file search
US9722874B2 (en) * 2015-01-30 2017-08-01 Metaswitch Networks Ltd Inference-based network route control
CN105429903A (en) * 2015-11-12 2016-03-23 上海斐讯数据通信技术有限公司 Switch and configuration method

Also Published As

Publication number Publication date
US7139751B1 (en) 2006-11-21

Similar Documents

Publication Publication Date Title
US20070033176A1 (en) Searching and reusing information from previously executed control instructions in a data forwarding device
US11061917B1 (en) Method and system for transparent database query caching
US8417803B2 (en) Interfacing between a command line interface-based application program and a remote network device
US7421485B2 (en) Processing configuration group information to display or generate configuration information, such as hierarchical configuration information for use by a data forwarding device
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US8166140B1 (en) Automatic application of implementation-specific configuration policies
US7376719B1 (en) Automatic generation of configuration data using implementation-specific configuration policies
US7689678B2 (en) Method and apparatus for restoring the configuration of a network device
US11743296B2 (en) Secure network device management in a telecommunications network
US11184281B2 (en) Packet processing method and apparatus
US7385983B2 (en) Network address-port translation apparatus and method
US7257624B2 (en) System for storing active and inactive configuration commands at a network node for managing its configuration state
US7519731B1 (en) Comparing configuration information for a data forwarding device
Edgeworth et al. IP routing on Cisco IOS, IOS XE, and IOS XR: An essential guide to understanding and implementing IP routing protocols
US6675223B1 (en) Method and apparatus for processing frames using static and dynamic classifiers
CN106888132A (en) The management method and device of a kind of configuration information
Cisco Command Line Interfaces
CN108449214B (en) Click-based virtual network element online arranging method
CN115550258B (en) Traffic mirroring method, device, equipment and storage medium
US20230246942A1 (en) Fragment modification of routing control functions
RU2710302C1 (en) Method of organizing operation of network equipment components for processing network packets (4 versions)
US20020078261A1 (en) System and method for uniform access of managed data objects
Basic et al. In This Chapter
Jain et al. Troubleshooting Cisco Nexus Switches and NX-OS
Golinski Automating Network System Configurations for Vendor-Specific Network Elements

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: JUNIPER NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ENNS, ROBERT P.;REEL/FRAME:036678/0312

Effective date: 20010413