In this approach, P2P
detection code is now delivered as a plugin within the StarOS binary.
The plugin is loaded into the system at run time. Whenever there
is a change in P2P detection logic of an existing application or
a new P2P protocol/application needs to be added, a new
version of the plugin is provided as a plugin module. The new plugin
is loaded onto the system dynamically without disrupting other services.
Once the plugin has been installed and configured, the new P2P rules
come into effect for detection.
IMPORTANT:
The dynamically loaded
plugins are not incremental. A plugin loads protocol detection logic for
all the protocols/applications. A user can update to a
higher priority plugin or rollback to a lower priority plugin.
Patching
is the process used to install a plugin as an incremental update
to a StarOS release. One patch can be provided to multiple compatible,
concurrent product releases. A plugin patch is distributed in the
form of a compressed distribution kit through the internet or by
other means (USB, CD, etc.).
A plugin is a functional software
entity that provides incremental updates to a pre-existing StarOS
software component. Plugins can be dynamically loaded at runtime
and do not require a system restart.
A plugin module is a
specific instance of a plugin version consisting of at least one
file that can be added to a running, in-service system. The module
contains the information or instructions for a specific component's
incremental update. Typically this will be a single plugin file.
The
Version Priority List (VPL) is a linked list of module versions
associated with a specific plugin. Each plugin has one VPL. The
list is sorted in ascending order by the priority number that is
assigned by the administrator. When updating, the lowest priority
number is loaded first and if that version is not successful, the
version in the VPL with the next sequentially greater priority number
is loaded. This list is iterated until a successful version is found.
The VPL also supports manual rollback to a previous version (higher
priority number).
The basic sequence for the dynamic software
upgrade process is as follows:
- Downloading the Patch Kit
- Unpacking the Patch Kit
- Configuring the Plugin
- Loading the Plugin
- Rolling Back to a Previous Plugin Version
For the detailed
procedure on performing dynamic software upgrade, refer to the
section
of the
chapter.