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.