Processing at the Active Node

The main functions of the active node are broadly classified as follows, in the order of how any given packet is processed from the time it enters the node:

Queuing
One way of looking at this is that once inside the node (router) the quantum of processing that each packet is subjected to is no longer the same (as in the regular IP) as any other, since each packet may require a different amount of processing. Thus fairness needs to be addressed.
Multiple Queues (flow based) are foreseen as a possibly useful feature, since each packet will require a different processing time, and it may not prove feasible to hold up packets requiring lightweight processing just because of other packets up ahead soliciting heavyweight processing. Further, another possibility may then be explored, and that is the availability of specific queues for specific sets of customers.
But currently for simplicity all the packets shall be marshaled onto a single queue after its requisite processing is identified.

Policy selection and execution
Each datagram shall have a set of constraints that will be locally translated into services. This statement of request shall be a high level abstraction of the requirement. The request shall then be serviced (or ignored) as per a policy definition which corresponds to this request under existing local conditions. The policy using which the packet is actually processed is selected as follows:
There shall exist a list of services that will be available at the router. From this set of services, a smaller set will be filtered out depending upon the policy set at the router.
From this set of filtered policies, a policy matching the requirement of the datagram shall be loaded and cached.
The primitive services (the actual code for processing like compression, encryption etc.) shall then be loaded into the execution environment (else retrieved from elsewhere, with the assistance of a Directory service)