WO2016140653A1 - Command parsing in command-line-interface - Google Patents

Command parsing in command-line-interface Download PDF

Info

Publication number
WO2016140653A1
WO2016140653A1 PCT/US2015/018555 US2015018555W WO2016140653A1 WO 2016140653 A1 WO2016140653 A1 WO 2016140653A1 US 2015018555 W US2015018555 W US 2015018555W WO 2016140653 A1 WO2016140653 A1 WO 2016140653A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
commands
predefined
computing system
user
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.)
Ceased
Application number
PCT/US2015/018555
Other languages
French (fr)
Inventor
Bradley G CULTER
Kishore Kumar BANDA
Charles E CHRISTIAN
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Priority to PCT/US2015/018555 priority Critical patent/WO2016140653A1/en
Publication of WO2016140653A1 publication Critical patent/WO2016140653A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • a computing system such as a desktop computer, a laptop, a server, and an enclosure, generally, has a command line interface (CLI) to which a user can enter commands for execution on the computing system.
  • the commands may include CLI commands for tasks, such as setting or resetting of system parameters and components, viewing of system parameters, switching ON or OFF of system components, restoring factory defaults, and upgrading the firmware.
  • the system parameters may include serial number, MAC address, I P address, administrator password, timeouts, system time, and such.
  • the system components may include CPU , switches, microcontrollers, and such.
  • FIG. 1 illustrates a computing system with a command-line-interface and a command-line-interface parser, according to an example implementation of the present subject matter
  • FIG. 2 illustrates predefined commands arranged in a hierarchical tree structure, according to an example implementation of the present subject matter
  • FIG. 3(a) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure with command flag settings, according to an example implementation of the present subject matter
  • FIG. 3(b) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure with command flag settings, according to another example implementation of the present subject matter
  • Fig. 4 illustrates a method of parsing commands in a command-line- interface of a computing system, according to an example implementation of the present subject matter
  • Fig. 5 illustrates a method of parsing commands in a command-line- interface of a computing system, according to an example implementation of the present subject matter
  • Fig. 6 illustrates an example system environment for parsing commands in a command-line-interface of a computing system, according to an example implementation of the present subject matter.
  • CLI is an interface through which a user can interact with a computing system for executing various commands related to system settings and configuration.
  • the commands may be executed to set, reset, or view serial number, MAC address, IP address, administrator password, timeouts, system time, etc.
  • the commands may also be executed to upgrade the firmware, restore factory defaults, and switch ON or OFF CPU, switches, microcontrollers, etc. Such commands are predefined and are tabulated in a table stored in the computing system.
  • the user may enter to the CLI a command which the user wishes to execute on the computing system.
  • the command is parsed by a CLI parser of the computing system. Based on the parsing, a command, from among the tabulated predefined CLI commands, that matches the command entered by the user is identified. A request may then be sent to a functional module of the computing system to perform an operation based on the identified command.
  • a set of commands for example, commands for setting or resetting serial numbers, MAC address, and factory-user password, are allowed for execution only when the computing system is operated in a factory- user mode.
  • Other commands for example, commands for viewing system time, viewing version, and resetting CPU and other components are allowed for execution irrespective of whether the computing system is operated in the factory-user mode or an end-user mode.
  • the factory-user mode may be understood as a user mode in which the computing system is operated by a factory-user in the factory.
  • the end-user mode may be understood as a user mode in which the computing system is operated by any end-user, for example, a customer of the system, outside the factory.
  • the commands that are allowed for execution only in the factory-user mode may be referred to as factory- restricted commands, and the commands that are not restricted and allowed for execution in any user mode may be referred to as all-users commands.
  • the computing system may be associated with a flag, where the status of the flag is indicative of the user mode in which computing system is being operated.
  • This flag also referred to as a system mode flag, may be stored in a flash memory of the computing system.
  • the computing system may be operated in the factory when the computing system is assembled and powered ON for the first time in the factory.
  • the system mode flag may have a status, for example ⁇ ', to indicate that the computing system is operating in the factory- user mode.
  • a command such as, "set IAP" (set initial administrator password) is executed to set an administrator password for the computing system.
  • the status of the system mode flag is changed to another status, for example ⁇ .'
  • the changed status of the system mode flag may indicate that the computing system can no more be operated in the factory-user mode and can only be operated in the end-user mode.
  • the computing system has two tables of commands stored therein and also has two CLI parsers, where one pair of CLI parser and table of commands is for parsing and execution of commands when the computing system is operating in the factory-user mode, and the other pair of CLI parser and table of commands is for parsing and execution of commands when the computing system is operating in the end-user mode.
  • the computing system may have a first table of commands including both the factory-restricted commands and the all-users commands, and a second table of commands including only the all-users commands.
  • the user mode in which the computing system is operating may be determined based on the status of the system mode flag.
  • a first CLI parser may parse and execute commands based on the first table of commands
  • a second CLI parser may parse and execute commands based on the second table of commands.
  • the use of two separate CLI parsers and two separate tables of commands increases the maintenance cost of the computing system.
  • storing the same set of all-users commands individually in each of the two tables of commands results in duplicate storage of the all-users commands.
  • the duplicate storage leads to increase in memory requirement of the computing system. The larger memory may increase the cost of the computing system.
  • both the tables of commands may have to be updated separately. Incomplete or inconsistent update of any of the two tables may lead to an inconsistent execution of all-users commands in the factory-user mode and in the end-user mode.
  • the CLI parsers may have to be switched. This switching of the CLI parsers may increase the operational cost for execution of commands in the computing system.
  • the present subject matter describes parsing of commands by a single CLI parser in a computing system, irrespective of the operating mode of the computing system.
  • the CLI parser may be table-driven parser that utilizes a table having predefined commands for executing commands entered by a user.
  • the table may be stored in the computing system.
  • each of the predefined commands in the table is associated with a command flag.
  • the command flag associated with a predefined command is set to a status to allow the execution of that predefined command in at least one user mode from among a plurality of predefined user modes.
  • the command flag may be understood as a parameter that can be represented by one or more binary bits.
  • the status of the command flag may be understood as a binary number corresponding to the one or more binary bits.
  • the plurality of predefined user modes may include a factory-user mode and an end-user mode
  • the predefined commands may include factory-restricted commands and all-users commands.
  • the status of the command flag associated with a factory-restricted command may be set to a first status to allow the execution only in the factory- user mode
  • the status of the command flag associated with an all-users command may be set to a second status to allow the execution in the end-user mode and in the factory-user mode.
  • the CLI parser may process the CLI to parse the command entered by the user. Based on the parsing, a command, from the predefined commands in the table stored in the computing system, which matches the command entered by the user may be identified. Further, the status of the command flag associated with the identified command may be determined. In addition, a user mode in which the computing system is being operated may be determined. In an example implementation, the user mode in which the computing system is being operated may be determined based on a system mode flag associated with the computing system.
  • a request may be forwarded to a functional module of the computing system to perform an operation.
  • the functional module and the operation may be indicated by the identified command.
  • a single, common CLI parser can be used for parsing and executing commands, for example, the all-users commands and the factory-restricted commands, irrespective of whether the systems are operated in the factory-user mode by a factory-user or in the end-user mode by an end-user.
  • the single, common CLI parser utilizes a single table that has the predefined commands, where allowance of the execution of each of the predefined commands is distinguished by the associated command flag.
  • the allowance and disallowance of execution can be controlled by setting appropriate status of the command flag for that command. For example, an all- user command can be switched to a factory-restricted command, or vice-versa, by changing the status of the command flag appropriately.
  • Fig. 1 illustrates a computing system 100, according to an example implementation of the present subject matter.
  • the computing system 100 may be a desktop computer, a laptop, a tablet, a server, an enclosure, and such.
  • the computing system 100 includes a CLI 102 and a CLI parser 104.
  • the CLI 102 is a user interface provided to a user 106 for entering a command which the user 106 wishes to execute in the computing system 1 00.
  • the CLI parser 1 04 is a table-driven parser that can parse the command entered by the user 106 for the execution of the command in the computing system 100, in accordance with the present subject matter.
  • the computing system 100 also includes predefined commands 108 related to system settings and configuration.
  • the predefined commands 108 may include N commands, from command 1 to command N, where each of the N commands has a command flag associated therewith, in accordance with the present subject matter.
  • the command flag associated with each of the N commands is set to a status to allow execution of the respective command in one or more of predefined user modes.
  • the details of the predefined commands 108, the predefined user modes, and the command flag settings for the predefined commands 108 are described in detail later in the description.
  • the predefined commands 108 may be stored in a memory of the computing system 100.
  • the predefined commands 108 may be stored in a non-volatile memory, such as a flash memory of the computing system 100.
  • the predefined commands tabulated in a table.
  • the table may be referred to by the CLI parser 1 04, in accordance with the present subject matter, for the purpose of execution of the commands entered by the user 106.
  • the computing system 100 includes functional module(s) 1 1 0.
  • the functional module(s) 1 1 0 may include modules that perform operations as indicated by the commands that are being executed in the computing system 100.
  • the functional module(s) 1 10 may include, but are not restricted to, network related modules, a system timer, a logging module, power ON/OFF modules for microcontrollers and other components, set/reset modules for one or more processors, and such.
  • Each of predefined commands 108 stored in the computing system 100 may include at least one keyword that indicate a particular functional module 1 1 0 and an operation to be performed on that functional module 1 10. The details of the functional module(s) 1 10 and the operations associated with the predefined commands 108 are provided further ahead in the description.
  • the computing system 100 further includes processor(s) 1 12.
  • the processor(s) 1 12 may be implemented as microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions.
  • the processor(s) 1 12 may fetch and execute computer-readable instructions stored in a memory coupled to the processor(s) 1 12 of the computing system 100.
  • the memory may include any non-transitory computer-readable storage medium including, for example, volatile memory (e.g., RAM), and/or non-volatile memory (e.g., EPROM, flash memory, NVRAM, memristor, etc.).
  • the CLI 102, the CLI parser 1 04, and the functional module(s) 1 10 may be coupled to the processor(s) 1 1 2 to perform various functions related to receiving a command from the user 1 06, and parsing and executing the command provided by the user 106, in accordance with the present subject matter.
  • the functions of the various elements shown in Fig. 1 including any functional blocks labeled as "processor(s)", may be provided through the use of dedicated hardware as well as hardware capable of executing computer-readable instructions.
  • the description hereinafter describes examples of predefined commands 108, predefined user modes, and the command flag settings associated with the predefined commands 108.
  • the description also describes examples of functional module(s) 1 10 and operations associated with some of the predefined commands 108.
  • the number of different status of the command flag that may be used depends on the number of types of commands and the number of predefined user modes.
  • the predefined commands 108 may include factory-restricted commands and all-user commands, and the predefined user modes include a factory-user mode and an end-user mode.
  • the factory-restricted command may refer to the commands that can be executed only when the computing system 100 is being operated in the factory-user mode.
  • the computing system 100 may said to be operating in the factory-user mode when the computing system 100 is being accessed by a factory-user in the factory.
  • the all-user commands may refer to the commands that can be executed when the computing system 100 is being operated either in the end-user mode or in the factory-user mode.
  • the computing system 100 may said to be operating in the end-user mode when the computing system 1 00 is being accessed by an end-user, for example, a customer of the computing system 100. It may be noted that the computing system 1 00 may have a system mode flag, where the status of the system mode flag is indicative of whether the computing system 100 is being operate din the factory-user mode or the end-user mode.
  • the command flag associated with each of the factory-restricted commands may be set to a first status, for example ⁇ ', and the command flag associated with each of the all-user commands may be set to a second status, for example ⁇ '.
  • the status of the command flag of a command is set to the first status to allow execution of the command only in the factory-user mode
  • the status of the command flag of a command is set to the second status to allow the execution of the command in both the end-user mode and the factory-user mode.
  • Table 1 shows the details of the example status of the command flag and the predefined user mode(s) in which the execution is allowed for the all-user commands and the factory-restricted commands.
  • the command flag herein may have 1 -bit representation. The value of the bit may refer to the status of the command flag.
  • the predefined commands 108 may include a variety of commands for setting or resetting various system parameters and functionalities, for viewing various system parameters, for switching ON or OFF various system components, for enabling or disabling functionalities, for upgrading the firmware, for help, for exit, and such.
  • Table 2 illustrates some examples of predefined commands 1 08 in the computing system 100.
  • the predefined commands 108 include factory-restricted commands, for example, set password, set MAC (media access control), and set DHCP (dynamic host configuration protocol) enable.
  • the command "set password” is to set the factory user password for the computing system 100.
  • the command “set MAC” is to set MAC address for the computing system 100.
  • the command "set DHCP enable” is to enable the DHCP for the computing system 100.
  • the predefined commands 108 also include all-user command, for example, set time, set DHCP disable, show version, show net, and update.
  • the command "set time' is to set the system time.
  • the command “set DHCP disable” is to disable the DCHP.
  • the command "show version” is to view the hardware and the firmware versions of the computing system 100.
  • the command “show net” is to view the network related configuration settings in the computing system 100.
  • the command “update” is to update the firmware of the computing system 100. It may be noted that Table 2 illustrates some examples of predefined commands, and other examples of predefined commands are also possible.
  • each of the factory-restricted commands is associated with a command flag with status ⁇ '
  • each of the all-user commands is associated with a command flag with status ⁇ '.
  • An all- user command can be changed to a factory-restricted command and thus be restricted only to the factory-user mode by changing the status of the command flag associated with the all-user command.
  • a factory-restricted command can be changed to an all-user command and thus be allowed for execution in both the factory-user mode and the end-user mode by changing the status of the command flag associated with the factory-restricted command.
  • each of the predefined commands 108 comprises one or more keywords that indicate the operation to be performed, the functional module 1 10, on which the operation is to be performed, and the manner in which the operation is to be performed.
  • the command “set time” comprises two keywords “set” and “time”.
  • the keyword “set” indicates that the operation to set a system parameter is to be performed
  • the keyword “time” indicates that operation is to be performed on the system timer to set the system time.
  • the command 'set DHCP enable comprises three keywords “set”, “DHCP", and "enable”.
  • the keyword “set” indicates that the operation to set a system functionality is to be performed
  • the keyword “DHCP” indicates that operation is to be performed on a network related module associated with the DHCP functionality
  • the keyword “enable” indicates that the DHCP functionality is to be enabled in the computing system 100.
  • the command “update” comprises only one keyword, which indicates to upgrade the firmware of the computing system 100.
  • the user 1 06 may access the computing system 1 00.
  • the CLI parser 104 may determine a user mode in which the computing system 100 is being operated. As mentioned earlier, the user mode may be determined based on the status of the system mode flag for the computing system 100.
  • the computing system 1 00 may display the CLI 102 to the user 106.
  • the CLI 102 may be displayed on a display screen (not shown) of the computing system 100.
  • the CLI 102 may be displayed based on receiving a command execution request from the user 106.
  • the user 106 may enter a command to the CLI 102.
  • the CLI parser 1 04 may parse the command entered by the user 106.
  • the CLI parser 1 04 may parse the command from left to right.
  • the CLI parser 104 may identify a command, from the predefined commands 1 08 stored in the computing system 100, that matches with the command entered by the user 106.
  • the CLI parser 1 04 may determine the operation and the functional module 1 1 0 indicated by the identified command. In addition, the CLI parser 104 may determine the status of the command flag associated with the identified command. After determining the status of the command flag, the CLI parser 104 determines whether the user mode in which the computing system 100 is being operated is same as one of the predefined user modes in which the execution of the identified command is allowed. This determination is made based on the status of the command flag.
  • the CLI parser 104 may send a request to the identified functional module 1 10 to perform the identified operation.
  • the functional module 1 10 may perform the identified operation, prepare a response based on the operation, and send the response to the CLI parser 104.
  • the CLI parser 104 may then display the response on the display unit of the computing system 1 00.
  • the CLI parser 104 may prepare an error message and display the error message on the display unit of the computing system 100.
  • the error message may display "invalid command”.
  • the predefined commands 108 may be arranged in a hierarchical tree structure.
  • a predefined command 108 is arranged in hierarchical nodes forming a branch of the hierarchical tree structure.
  • the hierarchical nodes in a branch are formed based on the keywords associated with one predefined command 108. Each keyword forms a node in the branch. Thus, the number of hierarchical nodes in the branch depends on the number of keywords associated with the predefined command 1 08.
  • the hierarchical nodes in a branch representing a predefined command 108 may include a parent node, a child node, and at least one further child node depending of the number of keywords in the predefined command 108.
  • the parent node may represent the first keyword
  • the child node may represent the second keyword
  • the further child node may represent the third keyword, and so on.
  • the parent node may represent a keyword indicative of an operation associated with the predefined command 108.
  • the child node of the parent node may represent a keyword indicative of a functional module on which the operation is to be performed.
  • the at least one further child node may represent keywords indicative of a manner of performing the operation on the functional module.
  • the predefined commands 1 08 that include a common keyword would branch out from a common node in the hierarchical tree structure. For example, any two predefined commands 1 08 that have a common first keyword would have a same parent node. Similarly, any two predefined commands 108 that have common first and second keywords would have same parent and child nodes.
  • Fig. 2 illustrates predefined commands 108 arranged in a hierarchical tree structure 200, according to an example implementation of the present subject matter.
  • the hierarchical tree structure 200 depicts the example predefined commands 108 of Table 2.
  • the predefined commands "show versions" and “show net” have the same parent node 202 that represents the keyword "show”.
  • the parent node 202 has a child node 208-1 that represents the keyword "versions”.
  • the parent node 202 and the child node 208-1 form a branch of the hierarchical tree structure 200 which corresponds to the predefined command "show versions”.
  • the parent node 202 also has another child node 208-2 that represents the keyword "net”.
  • the parent node 202 and the child node 208-2 form a branch of the hierarchical tree structure 200 which corresponds to the predefined command "show net”.
  • the predefined commands "set time”, “set password”, “set MAC”, “set DCHP enable”, and “set DHCP disable” have the same parent node 204 that represents the keyword "set”.
  • the parent node 204 has child nodes 21 0-1 , 21 0-2, 210-3, and 210-4 that represents the keywords "time”, “password”, “MAC”, and “DHCP”.
  • the parent node 204 and the child node 21 0-1 represent the predefined command "set time”.
  • the parent node 204 and the child node 210-2 represent the predefined command "set password”.
  • the parent node 204 and the child node 210-3 represent the predefined command "set MAC”.
  • the child node 21 0-4 has two further child nodes 212-1 and 212-2 that represent "enable” and "disable”.
  • the parent node 204, the child node 210-4 and the further child node 21 2-1 represent the predefined command "set DHCP enable”.
  • the parent node 204, the child node 21 0-4 and the further child node 21 2-2 represent the predefined command "set DHCP disable”.
  • the predefined command "upgrade” is in a single node 206 that represents the keyword “upgrade”.
  • the node 206 does not have any child node as the predefined command "upgrade” has only one keyword.
  • the command flag associated with a predefined command may be set at one of the hierarchical nodes in the branch for that predefined command.
  • Fig. 3(a) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure 200 with command flag settings, according to an example implementation of the present subject matter.
  • the hierarchical nodes in branches for the predefined commands "set time”, “set password”, “set MAC”, “set DCHP enable", and "set DHCP disable" are shown in Fig. 3(a).
  • the command flag 302 associated with the predefined command "set time” is set with status ⁇ ' at the child node 210-1 representing the keyword "time”.
  • the command flag 304 associated with the predefined command "set password” is set with status '1 ' at the child node 210-2 representing the keyword "password”
  • the command flag 306 associated with the predefined command "set MAC” is set with status '1 ' at the child node 21 0-3 representing the keyword "MAC”.
  • the command flag 308 associated with the predefined command "set DHCP enable” is set with status '1 ' at the further child node 212-1 representing the keyword “enable”
  • the command flag 31 0 associated with the predefined command "set DHCP disable” is set with status '0' at the further child node 21 2-2 representing the keyword "disable”.
  • Fig. 3(b) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure 200 with command flag settings, according to another example implementation of the present subject matter.
  • Fig. 3(b) also shows the hierarchical nodes in branches for the predefined commands "set time”, “set password”, “set MAC”, “set DCHP enable”, and "set DHCP disable”.
  • the command flag 312 is set with status '1 ' at the child node 210-4 representing the keyword "DHCP”.
  • both the predefined commands "set DHCP enable” and “set DHCP disable” are made factory- restricted commands which can now be executed only in the factory-user mode.
  • any two predefined commands having a common node and the command flags for such predefined commands have the same status
  • a single command flag can be set at the common node instead of setting command flags individually for the two predefined commands.
  • the command flags for the predefined commands 108 can be set with a high level of granularity.
  • the CLI parser may provide command completion suggestions for a partial command entered by the user 106.
  • the partial command may be understood as a portion of a command entered by the user 1 06.
  • the CLI parser 104 may provide one or more possible suggestions on the complete command. For example, when the user 1 06 enters a portion "set", the CLI parser 1 04 may provide command completion suggestions by displaying on the screen "time”, "MAC”, "password”, and so on.
  • the command completion suggestions may be provided based on the predefined commands 1 08 stored in the computing system 100.
  • the command completion suggestions may include the predefined commands 108 for which the status of the associated command flag allows the execution in the user mode in which the computing system 100 is being operated.
  • the command completion suggestions may include the predefined commands 108 for which the status of the command flag is ⁇ '.
  • the command completion suggestions may include the predefined commands 1 08 for which the status of the command flag is ⁇ ' and for which the status of the command flag is ⁇ '.
  • the CLI parser 104 may parse the hierarchical tree structure.
  • the portion of the command entered by the user 1 06 may be compared with the keywords in the nodes, starting from the parent nodes in the hierarchical tree structure.
  • the CLI parser 1 04 scans the child nodes and further child nodes of the parent node to determine the status of the command flags associated with the corresponding predefined commands 108.
  • the CLI parser 104 If the computing system 100 is being operated in the factory- user mode, the CLI parser 104 provides the keywords in the child nodes and in the further child nodes of the corresponding predefined commands 108 for which the status of the command flag is '1 ' and for which the status of the command flag is ⁇ '. If the computing system 100 is being operated in the end- user mode, the CLI parser 104 provides the keywords in the child nodes and in the further child nodes of the corresponding predefined commands 108 for which the status of the command flag is ⁇ '.
  • the CLI parser may provide help information when a help command is executed in the computing system 1 00 by the user 106.
  • the help information may include usage information for the predefined commands that are supported by the CLI parser 104.
  • the usage information for a predefined command may illustrate keywords associated with the predefined command and also details of exemplary responses provided by the computing system 100 when the predefined command is executed successfully and when the predefined command is not executed successfully.
  • the usage information associated with each of the predefined commands 108 may be stored in the computing system 100.
  • the help information may include usage information of the predefined commands 108 for which the status of the command flag allows the execution in the user mode in which the computing system 100 is being operated.
  • the help information may include the usage information for the predefined commands 108 for which the status of the command flag is ⁇ '.
  • the help information may include the usage information for the predefined commands 1 08 for which the status of the command flag is ⁇ ' and for which the status of the command flag is ⁇ '.
  • Fig. 4 illustrates a method 400 of parsing commands in a command- line-interface of a computing system, according to an example implementation of the present subject matter.
  • the order in which the method 400 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 400.
  • the method 400 can be implemented by processor(s) or computing device(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof.
  • the method 400 is described in context of the aforementioned computing system 100, other suitable computing devices or systems may be used for execution of at least one step of method 400.
  • non-transitory computer readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
  • a command entered to a CLI 1 02 by the user 106 is parsed by the CLI parser 104 of the computing system 100.
  • the computing system 100 may provide the CLI 102 to the user 106 based on a request received from the user 106.
  • the user 106 may accordingly enter a command that the user 106 wishes to execute in the computing system 100.
  • the command entered by the user 106 is compared with predefined commands 108 stored in the computing system 100 to identify a command, from the predefined commands 108, that matches the command entered by the user 106.
  • each of the predefined commands 108 is associated with a command flag, where the command flag associated with the each predefined command 108 is set to a status to allow execution of that predefined command 108 in at least one of predefined user modes.
  • the comparison and the identification may be performed by the CLI parser 104 of the computing system 100.
  • the predefined commands 108 may include factory-restricted commands, where the status of the command flag associated with each factory-restricted command is set to a first status, for example ⁇ ', to allow the execution only in the factory-user mode. Also, the predefined commands 108 may include all-user commands, where the status of the command flag associated with each all-user command is set to a second status, for example ⁇ ', to allow the execution in the factory-user mode and in the end- user mode. In an example implementation, the predefined commands 108 may be arranged in a hierarchical tree structure, where each predefined command 108 is arranged in hierarchical nodes forming a branch of the hierarchical tree structure, as described earlier in the description. The command flag associated with a predefined command 108 is set at one of the hierarchical nodes in the branch corresponding to that predefined command 108.
  • a user mode in which the computing system 100 is being operated is determined.
  • the user mode may be determined based on the status of the system mode flag associated with the computing system 100. The determination may be done by the CLI parser 104 of the computing system 100.
  • a request is forwarded to a functional module 1 10 of the computing system 100 to perform an operation, where the request is forwarded when the determined user mode is same as the at least one of the predefined user modes in which the execution of the identified command is allowed based on the command flag for the identified command.
  • the request may be forwarded by the CLI parser 104 of the computing system 100.
  • the functional module 1 10 to which the request of forwarded and the operation to be performed on the functional module 1 10 are indicated by the identified command.
  • the CLI parser 104 may provide command completion suggestions for a partial command entered by the user 106.
  • the command completion suggestions may include the predefined commands 1 08 for which the status of the associated command flag allows the execution in one of the predefined user modes that matches with the user mode in which the computing system 1 00 is being operated.
  • Fig. 5 illustrates a method 500 of parsing commands in the CLI 1 02 102 of the computing system 100, according to an example implementation of the present subject matter.
  • the order in which the method 500 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 500.
  • the method 500 can be implemented by processor(s) or computing device(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof.
  • the method 500 is described in context of the aforementioned computing system 100, other suitable computing devices or systems may be used for execution of at least one step of method 500.
  • steps of method 500 can be executed based on instructions stored in a non-transitory computer readable medium, as will be readily understood.
  • the non-transitory computer readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
  • a command entered to the CLI 102 by the user 106 is received.
  • the command entered by the user 106 is parsed by the CLI parser 104. Based on the parsing, it is determined whether the command is matching with a command from the predefined commands 1 08 in the computing system 100, at block 506. If there is a matching ('Yes' branch from block 506), the command that matches with the command entered by the user is identified, at block 508. If there is no matching ('No' branch from block 506), an error message is provided on the display screen of the computing system 100, at block 51 0. In an example, this error message may display "invalid command".
  • a user mode in which the computing system 100 is being operated is determined based on the status of the system mode flag associated with the computing system 100. Then, at block 514, it is determined whether the user mode in which the computing system 100 is being operated is same as one of the predefined user mode in which the execution of the identified command is allowed based on the command flag for the identified command. If there is a matching ('Yes' branch from block 514), then a request is forwarded to a functional module 1 10 to perform an operation indicated by the identified command, at block 516. If there is no matching ('No' branch from block 514), an error message is provided on the display screen of the computing system 100, at block 51 8. In an example, this error message may display "invalid command".
  • Fig. 6 illustrates an example system environment 600 for parsing commands in a CLI of a computing system, according to an example implementation of the present subject matter.
  • the system environment 600 includes a computing system 600 having a processing resource 602 communicatively coupled to a non-transitory computer readable medium 604 through a communication link 606.
  • the non-transitory computer readable medium 604 can be, for example, an internal memory device or an external memory device.
  • the communication link 606 may be a direct communication link, such as any memory read/write interface.
  • the communication link 606 may be an indirect communication link, such as a network interface.
  • the processing resource 602 can access the non-transitory computer readable medium 604 through a network (not shown).
  • the network may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
  • the non-transitory computer readable medium 604 includes a set of computer readable instructions for parsing commands in the CLI of the computing system 100.
  • the set of computer readable instructions can be accessed by the processing resource 602 through the communication link 606 and subsequently executed to perform acts for parsing the commands.
  • the non-transitory computer readable medium 604 includes instructions 608 that cause the processing resource 602 to parse a command entered to the CLI by a user.
  • the non- transitory computer readable medium 604 includes instructions 61 0 that cause the processing resource 602 to identify a command, from predefined commands stored in the computing system, that matches the command entered by the user.
  • Each of the predefined commands is associated with a command flag.
  • the command flag associated with the each of the predefined commands is set to a status to allow execution of the respective predefined command in at least one of a factory-user mode and an end-user mode.
  • the non-transitory computer readable medium 604 includes instructions 612 that cause the processing resource 602 to determine a user mode in which the computing system 100 is being operated.
  • the non-transitory computer readable medium 604 includes instructions 614 that cause the processing resource 602 to forward a request to a functional module to perform an operation when the user mode in which the computing system is being operated is same as the at least one of the factory- user mode and the end-user mode to which the execution of the identified command is allowed based on the command flag associated with the identified command.
  • the functional module and the operation are indicated by the identified command.
  • the non-transitory computer readable medium 604 may further include instructions that cause the processing resource 602 to provide command completion suggestions for a partial command entered by the user, where the command completion suggestions may include the predefined commands for which the status of the associated command flag allows the execution in one of the factory-user mode and the end-user mode that matches with the user mode in which the computing system is being operated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

The present subject matter relates to parsing of commands in a command-line-interface (CLI). An example computing system comprises a CLI parser to parse a command entered by a user, and identify a command, from predefined commands stored in the computing system, that matches the command entered by the user. Each predefined command is associated with a command flag. The flag for each predefined command is set to a status to allow execution of the respective predefined command in at least one of predefined user modes. When a user mode in which the computing system is being operated is same as the at least one of the predefined user modes in which the execution of the identified command is allowed based on the associated flag, the CLI parser forwards a request to a functional module to perform an operation. The functional module and the operation are indicated by the identified command.

Description

COMMAND PARSING IN COMMAND-LINE-I NTERFACE
BACKG ROUND
[0001 ] A computing system, such as a desktop computer, a laptop, a server, and an enclosure, generally, has a command line interface (CLI) to which a user can enter commands for execution on the computing system. The commands may include CLI commands for tasks, such as setting or resetting of system parameters and components, viewing of system parameters, switching ON or OFF of system components, restoring factory defaults, and upgrading the firmware. The system parameters may include serial number, MAC address, I P address, administrator password, timeouts, system time, and such. The system components may include CPU , switches, microcontrollers, and such.
BRI EF DESCRIPTION OF DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] Fig. 1 illustrates a computing system with a command-line-interface and a command-line-interface parser, according to an example implementation of the present subject matter;
[0004] Fig. 2 illustrates predefined commands arranged in a hierarchical tree structure, according to an example implementation of the present subject matter;
[0005] Fig. 3(a) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure with command flag settings, according to an example implementation of the present subject matter;
[0006] Fig. 3(b) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure with command flag settings, according to another example implementation of the present subject matter;
[0007] Fig. 4 illustrates a method of parsing commands in a command-line- interface of a computing system, according to an example implementation of the present subject matter;
[0008] Fig. 5 illustrates a method of parsing commands in a command-line- interface of a computing system, according to an example implementation of the present subject matter; and [0009] Fig. 6 illustrates an example system environment for parsing commands in a command-line-interface of a computing system, according to an example implementation of the present subject matter.
DETAILED DESCRIPTION
[0010] CLI is an interface through which a user can interact with a computing system for executing various commands related to system settings and configuration. The commands may be executed to set, reset, or view serial number, MAC address, IP address, administrator password, timeouts, system time, etc. The commands may also be executed to upgrade the firmware, restore factory defaults, and switch ON or OFF CPU, switches, microcontrollers, etc. Such commands are predefined and are tabulated in a table stored in the computing system.
[001 1 ] The user may enter to the CLI a command which the user wishes to execute on the computing system. For execution of the command entered by the user, the command is parsed by a CLI parser of the computing system. Based on the parsing, a command, from among the tabulated predefined CLI commands, that matches the command entered by the user is identified. A request may then be sent to a functional module of the computing system to perform an operation based on the identified command.
[0012] Generally, a set of commands, for example, commands for setting or resetting serial numbers, MAC address, and factory-user password, are allowed for execution only when the computing system is operated in a factory- user mode. Other commands, for example, commands for viewing system time, viewing version, and resetting CPU and other components are allowed for execution irrespective of whether the computing system is operated in the factory-user mode or an end-user mode. The factory-user mode may be understood as a user mode in which the computing system is operated by a factory-user in the factory. The end-user mode may be understood as a user mode in which the computing system is operated by any end-user, for example, a customer of the system, outside the factory. The commands that are allowed for execution only in the factory-user mode may be referred to as factory- restricted commands, and the commands that are not restricted and allowed for execution in any user mode may be referred to as all-users commands.
[0013] The computing system may be associated with a flag, where the status of the flag is indicative of the user mode in which computing system is being operated. This flag, also referred to as a system mode flag, may be stored in a flash memory of the computing system. The computing system may be operated in the factory when the computing system is assembled and powered ON for the first time in the factory. The system mode flag may have a status, for example Ό', to indicate that the computing system is operating in the factory- user mode. While operating in the factory, a command, such as, "set IAP" (set initial administrator password) is executed to set an administrator password for the computing system. On execution of this command, the status of the system mode flag is changed to another status, for example Ί .' The changed status of the system mode flag may indicate that the computing system can no more be operated in the factory-user mode and can only be operated in the end-user mode.
[0014] Generally, the computing system has two tables of commands stored therein and also has two CLI parsers, where one pair of CLI parser and table of commands is for parsing and execution of commands when the computing system is operating in the factory-user mode, and the other pair of CLI parser and table of commands is for parsing and execution of commands when the computing system is operating in the end-user mode.
[0015] To elaborate this, the computing system may have a first table of commands including both the factory-restricted commands and the all-users commands, and a second table of commands including only the all-users commands. The user mode in which the computing system is operating may be determined based on the status of the system mode flag. When the computing system is operating in the factory-user mode, a first CLI parser may parse and execute commands based on the first table of commands, and when the computing system is operating in the end-user mode, a second CLI parser may parse and execute commands based on the second table of commands. [0016] The use of two separate CLI parsers and two separate tables of commands increases the maintenance cost of the computing system. Moreover, storing the same set of all-users commands individually in each of the two tables of commands results in duplicate storage of the all-users commands. The duplicate storage leads to increase in memory requirement of the computing system. The larger memory may increase the cost of the computing system. Further, in case the all-users commands are to be updated or a new all-users command is to be added, both the tables of commands may have to be updated separately. Incomplete or inconsistent update of any of the two tables may lead to an inconsistent execution of all-users commands in the factory-user mode and in the end-user mode. Further, when the user mode of the computing system is switched from the factory-user mode to the end-user mode, or vice- versa, the CLI parsers may have to be switched. This switching of the CLI parsers may increase the operational cost for execution of commands in the computing system.
[0017] The present subject matter describes parsing of commands by a single CLI parser in a computing system, irrespective of the operating mode of the computing system. The CLI parser may be table-driven parser that utilizes a table having predefined commands for executing commands entered by a user. The table may be stored in the computing system. In an implementation of the present subject matter, each of the predefined commands in the table is associated with a command flag. The command flag associated with a predefined command is set to a status to allow the execution of that predefined command in at least one user mode from among a plurality of predefined user modes. The command flag may be understood as a parameter that can be represented by one or more binary bits. The status of the command flag may be understood as a binary number corresponding to the one or more binary bits.
[0018] In an example, the plurality of predefined user modes may include a factory-user mode and an end-user mode, and the predefined commands may include factory-restricted commands and all-users commands. For said example, the status of the command flag associated with a factory-restricted command may be set to a first status to allow the execution only in the factory- user mode, and the status of the command flag associated with an all-users command may be set to a second status to allow the execution in the end-user mode and in the factory-user mode.
[0019] In accordance with the present subject matter, as a user may enter a command to the CLI of the computing system, the CLI parser may process the CLI to parse the command entered by the user. Based on the parsing, a command, from the predefined commands in the table stored in the computing system, which matches the command entered by the user may be identified. Further, the status of the command flag associated with the identified command may be determined. In addition, a user mode in which the computing system is being operated may be determined. In an example implementation, the user mode in which the computing system is being operated may be determined based on a system mode flag associated with the computing system. When the user mode in which the computing system is being operated is same as one of the predefined user modes to which the execution of the identified CLI command is allowed based on the associated command flag, a request may be forwarded to a functional module of the computing system to perform an operation. The functional module and the operation may be indicated by the identified command.
[0020] With the methods and the systems of the present subject matter, a single, common CLI parser can be used for parsing and executing commands, for example, the all-users commands and the factory-restricted commands, irrespective of whether the systems are operated in the factory-user mode by a factory-user or in the end-user mode by an end-user. The single, common CLI parser utilizes a single table that has the predefined commands, where allowance of the execution of each of the predefined commands is distinguished by the associated command flag. With the command flags associated with the predefined commands, the use of two separate tables and two separate CLI parsers for execution of factory-restricted commands in the factory-user mode and for execution of all-users commands in any of the user modes can be eliminated. This facilitates saving of maintenance cost of the computing system. By eliminating the use of two tables, the duplicate storage of the all-users commands can be avoided. This facilitates reduction of the memory requirement of the computing system.
[0021 ] Further, since a single CLI parser is used, the process of switching of the CLI parser is also eliminated. This may help in reducing the cost of execution of the commands when the user mode, in which the computing system is being operated, is switched. Further, with the use of a single table of commands, the possibility of incomplete or inconsistent update of the table of commands, which may otherwise be present, can be avoided.
[0022] Further, by associating a command flag with each of the predefined commands in the table, it is easy to control between allowance and disallowance of execution of a command in a particular user mode. The allowance and disallowance of execution can be controlled by setting appropriate status of the command flag for that command. For example, an all- user command can be switched to a factory-restricted command, or vice-versa, by changing the status of the command flag appropriately.
[0023] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. While several examples are described in the description, modifications, adaptations, and other implementations are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims.
[0024] Fig. 1 illustrates a computing system 100, according to an example implementation of the present subject matter. The computing system 100 may be a desktop computer, a laptop, a tablet, a server, an enclosure, and such. As shown, the computing system 100 includes a CLI 102 and a CLI parser 104. The CLI 102 is a user interface provided to a user 106 for entering a command which the user 106 wishes to execute in the computing system 1 00. The CLI parser 1 04 is a table-driven parser that can parse the command entered by the user 106 for the execution of the command in the computing system 100, in accordance with the present subject matter. [0025] The computing system 100 also includes predefined commands 108 related to system settings and configuration. As shown, the predefined commands 108 may include N commands, from command 1 to command N, where each of the N commands has a command flag associated therewith, in accordance with the present subject matter. The command flag associated with each of the N commands is set to a status to allow execution of the respective command in one or more of predefined user modes. The details of the predefined commands 108, the predefined user modes, and the command flag settings for the predefined commands 108 are described in detail later in the description.
[0026] In an implementation, the predefined commands 108 may be stored in a memory of the computing system 100. In an example, the predefined commands 108 may be stored in a non-volatile memory, such as a flash memory of the computing system 100. The predefined commands tabulated in a table. The table may be referred to by the CLI parser 1 04, in accordance with the present subject matter, for the purpose of execution of the commands entered by the user 106.
[0027] Further, the computing system 100 includes functional module(s) 1 1 0. The functional module(s) 1 1 0 may include modules that perform operations as indicated by the commands that are being executed in the computing system 100. In an example, the functional module(s) 1 10 may include, but are not restricted to, network related modules, a system timer, a logging module, power ON/OFF modules for microcontrollers and other components, set/reset modules for one or more processors, and such. Each of predefined commands 108 stored in the computing system 100 may include at least one keyword that indicate a particular functional module 1 1 0 and an operation to be performed on that functional module 1 10. The details of the functional module(s) 1 10 and the operations associated with the predefined commands 108 are provided further ahead in the description.
[0028] The computing system 100 further includes processor(s) 1 12. The processor(s) 1 12 may be implemented as microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) 1 12 may fetch and execute computer-readable instructions stored in a memory coupled to the processor(s) 1 12 of the computing system 100. The memory may include any non-transitory computer-readable storage medium including, for example, volatile memory (e.g., RAM), and/or non-volatile memory (e.g., EPROM, flash memory, NVRAM, memristor, etc.). In an implementation, the CLI 102, the CLI parser 1 04, and the functional module(s) 1 10 may be coupled to the processor(s) 1 1 2 to perform various functions related to receiving a command from the user 1 06, and parsing and executing the command provided by the user 106, in accordance with the present subject matter. The functions of the various elements shown in Fig. 1 , including any functional blocks labeled as "processor(s)", may be provided through the use of dedicated hardware as well as hardware capable of executing computer-readable instructions.
[0029] The description hereinafter describes examples of predefined commands 108, predefined user modes, and the command flag settings associated with the predefined commands 108. The description also describes examples of functional module(s) 1 10 and operations associated with some of the predefined commands 108. The number of different status of the command flag that may be used depends on the number of types of commands and the number of predefined user modes.
[0030] In an example implementation, the predefined commands 108 may include factory-restricted commands and all-user commands, and the predefined user modes include a factory-user mode and an end-user mode. The factory-restricted command may refer to the commands that can be executed only when the computing system 100 is being operated in the factory-user mode. The computing system 100 may said to be operating in the factory-user mode when the computing system 100 is being accessed by a factory-user in the factory. On the other hand, the all-user commands may refer to the commands that can be executed when the computing system 100 is being operated either in the end-user mode or in the factory-user mode. The computing system 100 may said to be operating in the end-user mode when the computing system 1 00 is being accessed by an end-user, for example, a customer of the computing system 100. It may be noted that the computing system 1 00 may have a system mode flag, where the status of the system mode flag is indicative of whether the computing system 100 is being operate din the factory-user mode or the end-user mode.
[0031 ] For the above described example, the command flag associated with each of the factory-restricted commands may be set to a first status, for example Ί ', and the command flag associated with each of the all-user commands may be set to a second status, for example Ό'. Thus, the status of the command flag of a command is set to the first status to allow execution of the command only in the factory-user mode, and the status of the command flag of a command is set to the second status to allow the execution of the command in both the end-user mode and the factory-user mode.
[0032] Table 1 shows the details of the example status of the command flag and the predefined user mode(s) in which the execution is allowed for the all-user commands and the factory-restricted commands. The command flag herein may have 1 -bit representation. The value of the bit may refer to the status of the command flag.
Table 1
Figure imgf000010_0001
[0033] The predefined commands 108 may include a variety of commands for setting or resetting various system parameters and functionalities, for viewing various system parameters, for switching ON or OFF various system components, for enabling or disabling functionalities, for upgrading the firmware, for help, for exit, and such. Table 2 illustrates some examples of predefined commands 1 08 in the computing system 100. The predefined commands 108 include factory-restricted commands, for example, set password, set MAC (media access control), and set DHCP (dynamic host configuration protocol) enable. The command "set password" is to set the factory user password for the computing system 100. The command "set MAC" is to set MAC address for the computing system 100. The command "set DHCP enable" is to enable the DHCP for the computing system 100. The predefined commands 108 also include all-user command, for example, set time, set DHCP disable, show version, show net, and update. The command "set time' is to set the system time. The command "set DHCP disable" is to disable the DCHP. The command "show version" is to view the hardware and the firmware versions of the computing system 100. The command "show net" is to view the network related configuration settings in the computing system 100. The command "update" is to update the firmware of the computing system 100. It may be noted that Table 2 illustrates some examples of predefined commands, and other examples of predefined commands are also possible.
Table 2
Figure imgf000011_0001
[0034] Further, as shown in Table 2, each of the factory-restricted commands is associated with a command flag with status Ί ', and each of the all-user commands is associated with a command flag with status Ό'. An all- user command can be changed to a factory-restricted command and thus be restricted only to the factory-user mode by changing the status of the command flag associated with the all-user command. Similarly, a factory-restricted command can be changed to an all-user command and thus be allowed for execution in both the factory-user mode and the end-user mode by changing the status of the command flag associated with the factory-restricted command.
[0035] Further, each of the predefined commands 108 comprises one or more keywords that indicate the operation to be performed, the functional module 1 10, on which the operation is to be performed, and the manner in which the operation is to be performed. For example, the command "set time" comprises two keywords "set" and "time". The keyword "set" indicates that the operation to set a system parameter is to be performed, and the keyword "time" indicates that operation is to be performed on the system timer to set the system time. Similarly, the command 'set DHCP enable" comprises three keywords "set", "DHCP", and "enable". The keyword "set" indicates that the operation to set a system functionality is to be performed, and the keyword "DHCP" indicates that operation is to be performed on a network related module associated with the DHCP functionality, and the keyword "enable" indicates that the DHCP functionality is to be enabled in the computing system 100. Similarly, the command "update" comprises only one keyword, which indicates to upgrade the firmware of the computing system 100.
[0036] The description hereinafter describes, in detail, the operation of the computing system 100 for executing a command entered by the user 106 in the computing system 100.
[0037] In an example implementation, for the purpose of execution of a command, the user 1 06 may access the computing system 1 00. The CLI parser 104 may determine a user mode in which the computing system 100 is being operated. As mentioned earlier, the user mode may be determined based on the status of the system mode flag for the computing system 100.
[0038] After this, the computing system 1 00 may display the CLI 102 to the user 106. The CLI 102 may be displayed on a display screen (not shown) of the computing system 100. The CLI 102 may be displayed based on receiving a command execution request from the user 106. The user 106 may enter a command to the CLI 102. The CLI parser 1 04 may parse the command entered by the user 106. In an example, the CLI parser 1 04 may parse the command from left to right. Based on the parsing, the CLI parser 104 may identify a command, from the predefined commands 1 08 stored in the computing system 100, that matches with the command entered by the user 106.
[0039] After identifying the command that matches the command entered by the user 106, the CLI parser 1 04 may determine the operation and the functional module 1 1 0 indicated by the identified command. In addition, the CLI parser 104 may determine the status of the command flag associated with the identified command. After determining the status of the command flag, the CLI parser 104 determines whether the user mode in which the computing system 100 is being operated is same as one of the predefined user modes in which the execution of the identified command is allowed. This determination is made based on the status of the command flag.
[0040] Further, when the user mode in which the computing system 1 00 is being operated is same as the one of predefined user modes in which the execution of the identified command is allowed, the CLI parser 104 may send a request to the identified functional module 1 10 to perform the identified operation. The functional module 1 10 may perform the identified operation, prepare a response based on the operation, and send the response to the CLI parser 104. The CLI parser 104 may then display the response on the display unit of the computing system 1 00.
[0041 ] However, when the user mode in which the computing system 100 is being operated is not same as the one of the predefined user modes in which the execution of the identified command is allowed, the CLI parser 104 may prepare an error message and display the error message on the display unit of the computing system 100. In an example, the error message may display "invalid command".
[0042] In an example implementation, the predefined commands 108 may be arranged in a hierarchical tree structure. In the hierarchical tree structure, a predefined command 108 is arranged in hierarchical nodes forming a branch of the hierarchical tree structure. The hierarchical nodes in a branch are formed based on the keywords associated with one predefined command 108. Each keyword forms a node in the branch. Thus, the number of hierarchical nodes in the branch depends on the number of keywords associated with the predefined command 1 08. In an example, the hierarchical nodes in a branch representing a predefined command 108 may include a parent node, a child node, and at least one further child node depending of the number of keywords in the predefined command 108. The parent node may represent the first keyword, the child node may represent the second keyword, and the further child node may represent the third keyword, and so on.
[0043] In an example, the parent node may represent a keyword indicative of an operation associated with the predefined command 108. The child node of the parent node may represent a keyword indicative of a functional module on which the operation is to be performed. The at least one further child node may represent keywords indicative of a manner of performing the operation on the functional module.
[0044] With the above described hierarchical tree structure-based arrangement, the predefined commands 1 08 that include a common keyword would branch out from a common node in the hierarchical tree structure. For example, any two predefined commands 1 08 that have a common first keyword would have a same parent node. Similarly, any two predefined commands 108 that have common first and second keywords would have same parent and child nodes.
[0045] Fig. 2 illustrates predefined commands 108 arranged in a hierarchical tree structure 200, according to an example implementation of the present subject matter. The hierarchical tree structure 200 depicts the example predefined commands 108 of Table 2. As shown, the predefined commands "show versions" and "show net" have the same parent node 202 that represents the keyword "show". The parent node 202 has a child node 208-1 that represents the keyword "versions". The parent node 202 and the child node 208-1 form a branch of the hierarchical tree structure 200 which corresponds to the predefined command "show versions". The parent node 202 also has another child node 208-2 that represents the keyword "net". The parent node 202 and the child node 208-2 form a branch of the hierarchical tree structure 200 which corresponds to the predefined command "show net".
[0046] Similarly, the predefined commands "set time", "set password", "set MAC", "set DCHP enable", and "set DHCP disable" have the same parent node 204 that represents the keyword "set". The parent node 204 has child nodes 21 0-1 , 21 0-2, 210-3, and 210-4 that represents the keywords "time", "password", "MAC", and "DHCP". The parent node 204 and the child node 21 0-1 represent the predefined command "set time". The parent node 204 and the child node 210-2 represent the predefined command "set password". The parent node 204 and the child node 210-3 represent the predefined command "set MAC". The child node 21 0-4 has two further child nodes 212-1 and 212-2 that represent "enable" and "disable". The parent node 204, the child node 210-4 and the further child node 21 2-1 represent the predefined command "set DHCP enable". The parent node 204, the child node 21 0-4 and the further child node 21 2-2 represent the predefined command "set DHCP disable".
[0047] Further, in the hierarchical tree structure 200, the predefined command "upgrade" is in a single node 206 that represents the keyword "upgrade". The node 206 does not have any child node as the predefined command "upgrade" has only one keyword.
[0048] In an example implementation, the command flag associated with a predefined command may be set at one of the hierarchical nodes in the branch for that predefined command. Fig. 3(a) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure 200 with command flag settings, according to an example implementation of the present subject matter. The hierarchical nodes in branches for the predefined commands "set time", "set password", "set MAC", "set DCHP enable", and "set DHCP disable" are shown in Fig. 3(a). The command flag 302 associated with the predefined command "set time" is set with status Ό' at the child node 210-1 representing the keyword "time". Similarly, the command flag 304 associated with the predefined command "set password" is set with status '1 ' at the child node 210-2 representing the keyword "password", and the command flag 306 associated with the predefined command "set MAC" is set with status '1 ' at the child node 21 0-3 representing the keyword "MAC". Further, the command flag 308 associated with the predefined command "set DHCP enable" is set with status '1 ' at the further child node 212-1 representing the keyword "enable", and the command flag 31 0 associated with the predefined command "set DHCP disable" is set with status '0' at the further child node 21 2-2 representing the keyword "disable".
[0049] Fig. 3(b) illustrates predefined commands in hierarchical nodes of the hierarchical tree structure 200 with command flag settings, according to another example implementation of the present subject matter. Fig. 3(b) also shows the hierarchical nodes in branches for the predefined commands "set time", "set password", "set MAC", "set DCHP enable", and "set DHCP disable". As shown in Fig. 3(b), the command flag 312 is set with status '1 ' at the child node 210-4 representing the keyword "DHCP". With this, both the predefined commands "set DHCP enable" and "set DHCP disable" are made factory- restricted commands which can now be executed only in the factory-user mode. It may be noted that any two predefined commands having a common node and the command flags for such predefined commands have the same status, a single command flag can be set at the common node instead of setting command flags individually for the two predefined commands. Thus, with hierarchical tree structure-based arrangement of the predefined commands 108, the command flags for the predefined commands 108 can be set with a high level of granularity.
[0050] In an example implementation, the CLI parser may provide command completion suggestions for a partial command entered by the user 106. The partial command may be understood as a portion of a command entered by the user 1 06. As the user 1 06 enters a portion of a command, the CLI parser 104 may provide one or more possible suggestions on the complete command. For example, when the user 1 06 enters a portion "set", the CLI parser 1 04 may provide command completion suggestions by displaying on the screen "time", "MAC", "password", and so on. The command completion suggestions may be provided based on the predefined commands 1 08 stored in the computing system 100.
[0051 ] With the setting of the command flag for each of the predefined commands 1 08, the command completion suggestions may include the predefined commands 108 for which the status of the associated command flag allows the execution in the user mode in which the computing system 100 is being operated. With this, if the computing system 100 is being operated in the end-user mode, the command completion suggestions may include the predefined commands 108 for which the status of the command flag is Ό'. Similarly, if the computing system 100 is being operated in the factory-user mode, the command completion suggestions may include the predefined commands 1 08 for which the status of the command flag is Ί ' and for which the status of the command flag is Ό'.
[0052] For providing the command completion suggestions, the CLI parser 104 may parse the hierarchical tree structure. The portion of the command entered by the user 1 06 may be compared with the keywords in the nodes, starting from the parent nodes in the hierarchical tree structure. As the keyword in a parent node matches with the portion of the command, the CLI parser 1 04 scans the child nodes and further child nodes of the parent node to determine the status of the command flags associated with the corresponding predefined commands 108. If the computing system 100 is being operated in the factory- user mode, the CLI parser 104 provides the keywords in the child nodes and in the further child nodes of the corresponding predefined commands 108 for which the status of the command flag is '1 ' and for which the status of the command flag is Ό'. If the computing system 100 is being operated in the end- user mode, the CLI parser 104 provides the keywords in the child nodes and in the further child nodes of the corresponding predefined commands 108 for which the status of the command flag is Ό'.
[0053] In an implementation, the CLI parser may provide help information when a help command is executed in the computing system 1 00 by the user 106. The help information may include usage information for the predefined commands that are supported by the CLI parser 104. The usage information for a predefined command may illustrate keywords associated with the predefined command and also details of exemplary responses provided by the computing system 100 when the predefined command is executed successfully and when the predefined command is not executed successfully. The usage information associated with each of the predefined commands 108 may be stored in the computing system 100.
[0054] With the setting of the command flag for each of the predefined commands 108, the help information may include usage information of the predefined commands 108 for which the status of the command flag allows the execution in the user mode in which the computing system 100 is being operated. With this, if the computing system 100 is being operated in the end- user mode, the help information may include the usage information for the predefined commands 108 for which the status of the command flag is Ό'. Similarly, if the computing system 100 is being operated in the factory-user mode, the help information may include the usage information for the predefined commands 1 08 for which the status of the command flag is Ί ' and for which the status of the command flag is Ό'.
[0055] Fig. 4 illustrates a method 400 of parsing commands in a command- line-interface of a computing system, according to an example implementation of the present subject matter. The order in which the method 400 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 400. Furthermore, the method 400 can be implemented by processor(s) or computing device(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof. Further, although the method 400 is described in context of the aforementioned computing system 100, other suitable computing devices or systems may be used for execution of at least one step of method 400. It may be understood that steps of method 400 can be executed based on instructions stored in a non-transitory computer readable medium, as will be readily understood. The non-transitory computer readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
[0056] Referring to Fig. 4, at block 402, a command entered to a CLI 1 02 by the user 106 is parsed by the CLI parser 104 of the computing system 100. As described earlier, the computing system 100 may provide the CLI 102 to the user 106 based on a request received from the user 106. The user 106 may accordingly enter a command that the user 106 wishes to execute in the computing system 100.
[0057] At block 404, the command entered by the user 106 is compared with predefined commands 108 stored in the computing system 100 to identify a command, from the predefined commands 108, that matches the command entered by the user 106. As described earlier, each of the predefined commands 108 is associated with a command flag, where the command flag associated with the each predefined command 108 is set to a status to allow execution of that predefined command 108 in at least one of predefined user modes. The comparison and the identification may be performed by the CLI parser 104 of the computing system 100.
[0058] As described earlier, the predefined commands 108 may include factory-restricted commands, where the status of the command flag associated with each factory-restricted command is set to a first status, for example Ί ', to allow the execution only in the factory-user mode. Also, the predefined commands 108 may include all-user commands, where the status of the command flag associated with each all-user command is set to a second status, for example Ό', to allow the execution in the factory-user mode and in the end- user mode. In an example implementation, the predefined commands 108 may be arranged in a hierarchical tree structure, where each predefined command 108 is arranged in hierarchical nodes forming a branch of the hierarchical tree structure, as described earlier in the description. The command flag associated with a predefined command 108 is set at one of the hierarchical nodes in the branch corresponding to that predefined command 108.
[0059] At block 406, a user mode in which the computing system 100 is being operated is determined. The user mode may be determined based on the status of the system mode flag associated with the computing system 100. The determination may be done by the CLI parser 104 of the computing system 100.
[0060] At block 408, a request is forwarded to a functional module 1 10 of the computing system 100 to perform an operation, where the request is forwarded when the determined user mode is same as the at least one of the predefined user modes in which the execution of the identified command is allowed based on the command flag for the identified command. The request may be forwarded by the CLI parser 104 of the computing system 100. As mentioned earlier, the functional module 1 10 to which the request of forwarded and the operation to be performed on the functional module 1 10 are indicated by the identified command.
[0061 ] In an example implementation, the CLI parser 104 may provide command completion suggestions for a partial command entered by the user 106. The command completion suggestions may include the predefined commands 1 08 for which the status of the associated command flag allows the execution in one of the predefined user modes that matches with the user mode in which the computing system 1 00 is being operated.
[0062] Fig. 5 illustrates a method 500 of parsing commands in the CLI 1 02 102 of the computing system 100, according to an example implementation of the present subject matter. The order in which the method 500 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 500. Furthermore, the method 500 can be implemented by processor(s) or computing device(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof. Further, although the method 500 is described in context of the aforementioned computing system 100, other suitable computing devices or systems may be used for execution of at least one step of method 500. It may be understood that steps of method 500 can be executed based on instructions stored in a non-transitory computer readable medium, as will be readily understood. The non-transitory computer readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
[0063] Referring to Fig. 5, at block 502, a command entered to the CLI 102 by the user 106 is received. At block 504, the command entered by the user 106 is parsed by the CLI parser 104. Based on the parsing, it is determined whether the command is matching with a command from the predefined commands 1 08 in the computing system 100, at block 506. If there is a matching ('Yes' branch from block 506), the command that matches with the command entered by the user is identified, at block 508. If there is no matching ('No' branch from block 506), an error message is provided on the display screen of the computing system 100, at block 51 0. In an example, this error message may display "invalid command".
[0064] Further, at block 512, a user mode in which the computing system 100 is being operated is determined based on the status of the system mode flag associated with the computing system 100. Then, at block 514, it is determined whether the user mode in which the computing system 100 is being operated is same as one of the predefined user mode in which the execution of the identified command is allowed based on the command flag for the identified command. If there is a matching ('Yes' branch from block 514), then a request is forwarded to a functional module 1 10 to perform an operation indicated by the identified command, at block 516. If there is no matching ('No' branch from block 514), an error message is provided on the display screen of the computing system 100, at block 51 8. In an example, this error message may display "invalid command".
[0065] Fig. 6 illustrates an example system environment 600 for parsing commands in a CLI of a computing system, according to an example implementation of the present subject matter. In an example implementation, the system environment 600 includes a computing system 600 having a processing resource 602 communicatively coupled to a non-transitory computer readable medium 604 through a communication link 606.
[0066] The non-transitory computer readable medium 604 can be, for example, an internal memory device or an external memory device. In an example implementation, the communication link 606 may be a direct communication link, such as any memory read/write interface. In another example implementation, the communication link 606 may be an indirect communication link, such as a network interface. In such a case, the processing resource 602 can access the non-transitory computer readable medium 604 through a network (not shown). The network may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
[0067] In an example implementation, the non-transitory computer readable medium 604 includes a set of computer readable instructions for parsing commands in the CLI of the computing system 100. The set of computer readable instructions can be accessed by the processing resource 602 through the communication link 606 and subsequently executed to perform acts for parsing the commands.
[0068] Referring to Fig. 6, in an example, the non-transitory computer readable medium 604 includes instructions 608 that cause the processing resource 602 to parse a command entered to the CLI by a user. The non- transitory computer readable medium 604 includes instructions 61 0 that cause the processing resource 602 to identify a command, from predefined commands stored in the computing system, that matches the command entered by the user. Each of the predefined commands is associated with a command flag. The command flag associated with the each of the predefined commands is set to a status to allow execution of the respective predefined command in at least one of a factory-user mode and an end-user mode. The non-transitory computer readable medium 604 includes instructions 612 that cause the processing resource 602 to determine a user mode in which the computing system 100 is being operated. The non-transitory computer readable medium 604 includes instructions 614 that cause the processing resource 602 to forward a request to a functional module to perform an operation when the user mode in which the computing system is being operated is same as the at least one of the factory- user mode and the end-user mode to which the execution of the identified command is allowed based on the command flag associated with the identified command. The functional module and the operation are indicated by the identified command.
[0069] In an example implementation, the non-transitory computer readable medium 604 may further include instructions that cause the processing resource 602 to provide command completion suggestions for a partial command entered by the user, where the command completion suggestions may include the predefined commands for which the status of the associated command flag allows the execution in one of the factory-user mode and the end-user mode that matches with the user mode in which the computing system is being operated.
[0070] Although implementations for parsing commands in a CLI in a computing system have been described in language specific to structural features and/or methods, it is to be understood that the present subject matter is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed and explained as example implementations for parsing commands in the CLI in the computing system.

Claims

We claim:
1 . A computing system comprising:
a processor; and
a command-line-interface (CLI) parser coupled to the processor to:
parse a command entered to a CLI by a user;
identify a command, from predefined commands stored in the computing system, that matches the command entered by the user, wherein each of the predefined commands is associated with a command flag, wherein the command flag associated with the each of the predefined commands is set to a status to allow execution of the respective predefined command in at least one of predefined user modes; and
when a user mode in which the computing system is being operated is same as the at least one of the predefined user modes in which the execution of the identified command is allowed based on the command flag associated with the identified command, forward a request to a functional module to perform an operation, wherein the functional module and the operation are indicated by the identified command.
2. The computing system as claimed in claim 1 , wherein the predefined commands comprise factory-restricted commands, and wherein the status of the command flag associated with each of the factory-restricted commands is set to a first status to allow the execution in a factory-user mode.
3. The computing system as claimed in claim 1 , wherein the predefined commands comprise all-users commands, and wherein the status of the command flag associated with each of the all-users commands is set to a second status to allow the execution in an end-user mode and a factory-user mode.
4. The computing system as claimed in claim 1 , wherein the predefined commands are arranged in a hierarchical tree structure, each of the predefined commands comprising at least one keyword arranged in hierarchical nodes forming a branch of the hierarchical tree structure, and wherein the hierarchical nodes in the branch comprise:
a parent node representing a keyword indicative of an operation associated with the respective predefined command;
a child node representing a keyword indicative of a functional module on which the operation is to be performed; and
at least one further child node representing keywords indicative of a manner of performing the operation on the functional module;
wherein the command flag associated with the respective predefined command is set at one of the hierarchical nodes in the branch.
5. The computing system as claimed in claim 1 , wherein the CLI parser is to provide command completion suggestions for a partial command entered by the user, and wherein the command completion suggestions comprise the predefined commands for which the status of the command flag allows execution in the user mode in which the computing system is being operated.
6. The computing system as claimed in claim 1 , wherein the CLI parser is to provide help information when a help command is executed in the computing system, and wherein the help information comprises usage information of the predefined commands for which the status of the command flag allows execution in the user mode in which the computing system is being operated.
7. A method of parsing commands entered to a command-line-interface (CLI) of a computing system, the method comprising:
parsing, by a CLI parser, a command entered to the CLI by a user;
comparing the command entered by the user with predefined commands stored in the computing system to identify a command, from the predefined commands, that matches the command entered by the user, wherein each of the predefined commands is associated with a command flag which is set to a status to allow execution of the respective predefined command in at least one of predefined user modes;
determining a user mode in which the computing system is being operated; and
when the user mode in which the computing system is being operated is same as the at least one of the predefined user modes in which the execution of the identified command is allowed based on the command flag associated with the identified command, forwarding, by the CLI parser, a request to a functional module to perform an operation, wherein the functional module and the operation are indicated by the identified command.
8. The method as claimed in claim 7, wherein the predefined commands comprise factory-restricted commands, and wherein the status of the command flag associated with each of the factory-restricted commands is set to a first status to allow the execution in a factory-user mode.
9. The method as claimed in claim 7, wherein the predefined commands comprise all-users commands, and wherein the status of the command flag associated with each of the all-users commands is set to a second status to allow the execution in an end-user mode and a factory-user mode.
10. The method as claimed in claim 7, wherein the predefined commands are arranged in a hierarchical tree structure, each of the predefined commands comprising at least one keyword arranged in hierarchical nodes forming a branch of the hierarchical tree structure, and wherein the hierarchical nodes in the branch comprise:
a parent node representing a keyword indicative of an operation associated with the respective predefined command; a child node representing a keyword indicative of a functional module on which the operation is to be performed; and
at least one further child nodes representing keywords indicative of a manner of performing the operation on the functional module;
wherein the command flag associated with the respective predefined command is set at one of the hierarchical nodes in the branch.
1 1 . The method as claimed in claim 7, comprising providing, by the CLI parser, command completion suggestions for a partial command entered by the user, wherein the command completion suggestions comprise the predefined commands for which the status of the command flag allows execution in the user mode in which the computing system is being operated.
12. A non-transitory computer-readable medium comprising computer-readable instructions for parsing commands entered to a command-line-interface (CLI), wherein the computer readable instructions are executable by a processing resource of a computing system having a CLI parser to:
parse a command entered to the CLI by a user;
identify a command, from predefined commands stored in the computing system, that matches the command entered by the user, wherein each of the predefined commands is associated with a command flag, wherein the command flag associated with the each of the predefined commands is set to a status to allow execution of the respective predefined command in at least one of a factory-user mode and an end-user mode;
determine a user mode in which the computing system is being operated; and
when the user mode in which the computing system is being operated is same as the at least one of the factory-user mode and the end-user mode in which the execution of the identified command is allowed based on the command flag associated with the identified command, forward a request to a functional module to perform an operation, wherein the functional module and the operation are indicated by the identified command.
13. The non-transitory computer-readable medium as claimed in claim 12, wherein the predefined commands comprise factory-restricted commands, and wherein the status of the command flag associated with each of the factory- restricted commands is set to a first status to allow the execution in the factory- user mode.
14. The non-transitory computer-readable medium as claimed in claim 12, wherein the predefined commands comprise all-users commands, and wherein the status of the command flag associated with each of the all-users commands is set to a second status to allow the execution in the end-user mode and a factory-user mode.
15. The non-transitory computer-readable medium as claimed in claim 12, comprising computer-readable instructions executable by the processing resource to provide command completion suggestions for a partial command entered by the user, wherein the command completion suggestions comprise the predefined commands for which the status of the command flag allows execution in the user mode in which the computing system is being operated.
PCT/US2015/018555 2015-03-03 2015-03-03 Command parsing in command-line-interface Ceased WO2016140653A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/018555 WO2016140653A1 (en) 2015-03-03 2015-03-03 Command parsing in command-line-interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/018555 WO2016140653A1 (en) 2015-03-03 2015-03-03 Command parsing in command-line-interface

Publications (1)

Publication Number Publication Date
WO2016140653A1 true WO2016140653A1 (en) 2016-09-09

Family

ID=56848343

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/018555 Ceased WO2016140653A1 (en) 2015-03-03 2015-03-03 Command parsing in command-line-interface

Country Status (1)

Country Link
WO (1) WO2016140653A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12482038B2 (en) * 2021-09-24 2025-11-25 Futu Network Technology (shenzhen) Co., Ltd. Method and apparatus for creating quantitative trading strategy

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091525A1 (en) * 2003-10-24 2005-04-28 Snover Jeffrey P. Mechanism for providing extended functionality to command line instructions
US20050132043A1 (en) * 2003-12-12 2005-06-16 Hon Hai Precision Industry Co., Ltd. System and method for command line interface command processing
US20050289525A1 (en) * 2004-06-28 2005-12-29 Microsoft Corporation Extensible command line parsing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091525A1 (en) * 2003-10-24 2005-04-28 Snover Jeffrey P. Mechanism for providing extended functionality to command line instructions
US20050132043A1 (en) * 2003-12-12 2005-06-16 Hon Hai Precision Industry Co., Ltd. System and method for command line interface command processing
US20050289525A1 (en) * 2004-06-28 2005-12-29 Microsoft Corporation Extensible command line parsing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12482038B2 (en) * 2021-09-24 2025-11-25 Futu Network Technology (shenzhen) Co., Ltd. Method and apparatus for creating quantitative trading strategy

Similar Documents

Publication Publication Date Title
US11983406B2 (en) Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US11983129B2 (en) Self-configuring baseboard management controller (BMC)
EP2849048B1 (en) Data sending method, data receiving method and storage device
EP2453370B1 (en) Method and system for specifying, preparing and using parameterized database queries
CN103412769B (en) External card parameter configuration, equipment and system
US10042583B2 (en) Device management method, device, and device management controller
US20260119200A1 (en) Server booting control method and apparatus, and server
US20230014098A1 (en) Method and system for accelerating reading of information of field replace unit, device, and medium
CN107666493B (en) Database configuration method and equipment thereof
WO2021004256A1 (en) Node switching method in node failure and related device
US20180336042A1 (en) System and method for loading and populating system inventory data in an event driven model
US10754748B2 (en) System and method for constructing extensible event log with javascript object notation (JSON) encoded payload data
US9319313B2 (en) System and method of forwarding IPMI message packets based on logical unit number (LUN)
US20130238871A1 (en) Data processing method and apparatus, pci-e bus system, and server
WO2016140653A1 (en) Command parsing in command-line-interface
CN120560745A (en) Configuration method, basic input and output system, and server
CN116881091B (en) System event log reporting method, device, chip, equipment and storage medium
DE102017120182A1 (en) Assign data buses to management bus connections for peripherals
US20170364368A1 (en) Setting method of accessing system parameters and server using the same
US20150222485A1 (en) Dynamic server configuration and initialization
CN117369896A (en) Information acquisition system and method
CN117950919A (en) A PCIe topology switching method and server
US20170322893A1 (en) Computing node to initiate an interrupt for a write request received over a memory fabric channel
US20180101389A1 (en) Boot detection system and boot detection method for computer
US20250260438A1 (en) Asset access tag and uses thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15884118

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15884118

Country of ref document: EP

Kind code of ref document: A1