Network Operating System, in computer networks is a specialized Operating
system designed for network devices like switches, routers, LANs. It is
embedded into the hardware device and provides essential network services
required by the devices that are quite different from general purpose computers
that support network functionalities. Current Network Operating systems are
vertically integrated and proprietary, with less scope for users to innovate.
This has led to an inclination by the industry and individuals towards Open
Networking. Network OS and Switch softwares have a net market share of about
$630 million, by 2020, with Open Networking covering 64% of it. OpenSwitch
provides robust network functionalities and powerful management interfaces like
Command Line Interface (CLI), REST APIs. Command Line interface provides a
fast and efficient method to interact
with switch software. This project has covered enhancements made to the
existing CLI infrastructure of OpenSwitch namely, Help Strings, Repeat and
history features to the CLI Infrastructure.
Helpstring Verification is designed to find error strings in helpstrings.
A regular expression pattern matching is implemented as a mechanism to get
unique and relevant tokens. To get the helpstring, commands are executed as a
token followed by a ‘?’. An assertion error is made when helpstrings aren’t
echoed back by the switch or if helpstrings contain error string.
Whenever a user enters any command on the command line, the command is
appended to a ‘History List’ which consists of all previously typed commands.
When show history is typed, the history list is displayed with or without
timestamp. The Repeat CLI makes use of history list to access a list of
commands which is later executed repeatedly according to the given parameters.
The output of the command is returned to console.
Error strings occur in place of help strings, if there’s a conflict
between the global definition and the local definition of the helpstring. One of the modules in this project
aims at finding these error strings and asserting error for those commands
which contain these error strings. The
History feature provides an easy way to access all previously typed commands
and other related information. This along with the repeat feature is used to
check configurations of the system periodically.