Internal Release Version 1.02 (DRAFT)
Date: January, 2000
|Plug-In-able Switching System is a switching system that can dynamically deploy application supplied stream processor modules called Switchlet, in the junction nodes (such as router or switch). inside a network Once installed, the Switchlets are inserted in the flow path of the specified stream. Switchlets can perform any user defined application specific processing on the stream.|
|Plug-In-able Switching System.|
What is Plug-In-able Switching System
Switchlet is a loadable program module that can handle a packet data type. For examples, Routing Switchlet receives routing data and generate routing information while Cut Switchlet cuts input stream packets to a specified size.
Figure 1. Switching system components.
Manager component creates session components, loads processing components, and receives data from lower layers and forwards them to the appropriate session components.
Processing components are the program modules such as switchlets. Some special processors such as scheduler invoked by manager are also processing component. A switchlet may be an application packet processor, a special filter or a routing process.
Session components represent active processes with allocated data space. It has attached a process stream (hereafter referred as thread) and a data stream (hereafter referred as stream) on which a thread operates. Inside a session, the processing stream has space allocated to store the state variables of the processes in its thread, and data stream has space allocated for buffering packets.
Figure 2. Packet format of real protocol
In the switching system, the packet format likes figure 3.
Figure 3. Packet format of the Plug-In-able Switching System.
Source ID. represents the identification of source node.
Switching System Design
Manager componentsManager component receives and directs the arrived packets, installs/removes process components, and creates/dismantles session components if needed.
Figure 4. Manager components
Figure 5. Process components
Process scheduler has a switchlet table which has identification of the switchlet, location of the switchlet, and some remarks of the switchlet.
Figure 6. Switchlet Table
Figure 7. Session components
Session has a life cycle as described in Figure 8. When new session arrives in the switch, manager examines which resource will be needed to the session and allocates the resource to the session. If the resource requested/required is not available, manager rejects the new session.
If all the resources are available then it creates a session component and changes session status to ready. When packet arrives in the session, it triggers action on the packet in the action status.
When end of session arrived, it releases the resource.
Figure 8. Session status transition diagram.
Figure 9. Switchlet of data type.
How does the system works ?
If the type is control commands, then it pass messages to process components. If the type is data, then it handed the packet to session components to store the packet.
In process component, a process checks it's inputs and invokes a thread or sends a message to appropriate Switchlets.
Switchlet process the packet by receiving messages from process components. When switchlet completes processing the packet then it decide which switchlet will be the next.
After all the processing is done, the switch forwards the processed packet to next switch (or node). Generally a routing/forwarding process is the last switchlet to process the data last in a switch.
Finally, we identify the processes that makes up the embryonic engine. At the core are the abilities to receive a message from the switch controller center, identify and install a switchlet, and invoke it. Routing is not included here. The argument is that if we have the above we can install a forwarder as well. That means the embryonic engine needs only the manager and process scheduler nothing else. Also note that embrionic engine initially does not know how to send reply. But with its basic engine it is possible to install a 'messanger' as well. We also think the above engine is capable of self recomposition, where it can gradually substitute its own enbryo codeset completely.
If we want to build an application in the category of silent agent, the above enbrionic engine should work by itself. For application in the category of 'server' the above enbroyo needs to be equipped with a messanger switchlet. For application in the category of multi-point application the above have to be further upgraded with a router switchlet.
The requirement from platform: In the above, it is assumed that whatever (IP/UDP) is supporting this embrionic engine from below will (a) deliver a packet to the designated manager (b) and receive a packet from any (forwarder presumably) switchlet and forward it to the specified destination.