Fig. illustrates how RNAP message aggregation works in a RNAP-D
architecture. Consider the aggregation
of Reserve messages (this also applies for Query messages).
At access network A, the border router Ra creates an aggregate
Reserve message, with the source address
set to `a', the interface address the aggregator Ra, and the destination network address set to the network
address B.
It also sets the Aggregation Flag to 1 in the
Id structure, identifying the message as an aggregate message.
Ra then forwards the aggregate Reserve message hop by hop
as in Section
.
Ra also turns off the router alert option of the incoming per flow messages
and tunnels the per-flow Reserve
messages down to the de-aggregation point (Rb in Fig.
),
so that per-flow
reservation can be resumed in the destination network. In each per-flow
Reserve message, the address of the aggregator will be included
in the Aggregate Flow Id field, to enable proper mapping
at the de-aggregation point. A per-flow Reserve message is
encapsulated in an UDP packet with the
destination network address set as B, and the port number set to
a port reserved for RNAP, and forwarded.
A border router of a domain is a potential de-aggregation point for RNAP
messages to that domain. Therefore filters are set up at border routers
of a domain so as to intercept
aggregate RNAP messages as well as tunneled per-flow RNAP messages.
For instance, the border router Rb (Fig. ) of domain B is set up
to intercept UDP packets with destination address set to the network
address B and port number set to the RNAP port.
Once intercepted, aggregate Reserve messages and
tunneled per-flow messages are sent up to the transport layer.
The de-aggregation point will record the mapping between
an aggregation flow and per flow messages, by checking the
aggregation Flow Id field.
The router alert option will be turned on for per-flow Reserve
messages arriving at Rb, and the messages will be forwarded, allowing per-flow resource reservation within
domain B. The aggregate Reserve message (identified as such by
its Aggregation Flag) terminates at the de-aggregation router.
In response, a Commit message will be sent upstream for the aggregate Reserve message as well each per flow Reserve message. The de-aggregation point Rb will decide that the destination address for the per flow Commit message is `a', by checking the mapping between the aggregate message and the per flow messages. Each per flow Commit message is then encapsulated in a UDP message with destination address `a' and tunneled back to its aggregation point Ra. The aggregate Commit message will be forwarded hop by hop upstream until it reaches the aggregation point, and confirms the aggregate Reserve request sent by the aggregation agent. There is a similar message flow for RNAP Quotation messages in the upstream direction.
The aggregation entity on the source network side is also responsible for de-aggregation of RNAP response messages. It checks the mapping between an aggregate session and per-flow RNAP response messages. If it is the origination point for the corresponding aggregate session, it will map the aggregate-level pricing and charging (returned by the aggregate session Quotation and Commit messages) to the corresponding per-flow prices and charges for individual flows based on the local policy.
Multiple levels of aggregation can occur, so that
aggregate messages are aggregated in turn, resulting in a progressively
thicker aggregate ``pipe'' towards the root of the sink-tree.
For a level two aggregation of several level one RNAP aggregate requests as shown in Fig. ,
node Rx in domain X forms a level two aggregate message with the source
address in the Flow Id set to `x'. Node `x'
also records the level one requests, and terminates these messages instead of forwarding them.
In response, the RNAP agent at the de-aggregation node Rb sends response messages
for the level two aggregate towards point `x'. At point Rx, the level one response
messages are formed by mapping the pricing and charge data
from level two aggregate message to individual level one aggregate
response massages to send towards Ra and Rc. All the per flow request messages are tunnelled downstream to node Rb, and per-flow response messages are tunnelled from Rb directly either to Ra or Rc.