# ARCFIRE: Experimentation with the Recursive InterNetwork Architecture
## 3 Scaling up RINA Networks
### Providing QoS Guarantees  
The RINA flow allocation interface allows applications (including IPCPs) to specify the quality requirements on a flow in a technology-agnostic way. When an application requests a flow from a layer, the requested quality for a flow is first mapped to a defined QoS cube (internal to the layer), and then the most appropriate transport and resource allocation policies are selected to meet the application requirements. Each packet sent by an IPCP carries a QoS cube identifier that clearly identifies packets belonging to each QoS cube, and enables resource allocation policies (routing, scheduling, congestion control) to act consistently across a DIF. Figure 6: DIF configurations for the renumbering experiments. Figure 7: Application RTT, measured with and without renumbering, for each flow. Technologies such as MPLS or Segment Routing [15] provide strong guarantees on the QoS demands but rely on dedicated paths (tunnels), source routing, or incur in considerable protocol header overhead. RINA can provide a more distributed approach to QoS in order to address use cases such as provider-based IP/ethernet VPNs, data-center fabrics or networks slicing. A DIF cannot only use virtual circuits and static allocation to support QoS, but any combination of routing, scheduling, and congestion control policies that enforce the service level defined by each QoS cube. ARCFIRE carried out experiments emulating a RINA-based IP VPN provider that offers IP services on top of a RINA network, illustrated by Figure 8. The symmetric scenario consists of 4 core nodes in a ring, each connected to 3 provider edge (PE) routers (12 in total). Each PE router provides IP connectivity to 2 customer edge (CE) routers. The experiment established 6 IP VPNs, with 4 CE routers at each IP VPN. The core DIF uses Quantitative Transport Agreement (QTA) resource allocation policies [16] to support four classes of service (QoS cubes) with differential loss and delay: urgent, low loss and urgent, high loss and non-urgent, low loss and best effort. Figure 9 shows the Cumulative Distribution Functions (CDF) of the end-to-end delay experienced by flows between PE routers, for medium- and high-load scenarios in two configurations: one in which the DIF uses FIFO (First In First Out) schedulers, and the other QTA schedulers. During medium load the offered traffic is about 50% of the DIF's capacity, and during high load 80%. An application sending data at a constant bit rate was used. The QTA resource allocation policies enable the core DIF to guarantee an upper bound in the end-to-end delay for the most urgent QoS cubes, at the cost of degrading the delay of the less urgent ones. Figure 8: Systems and DIFs in the RINA-based QoS-enabled Virtual Private Network experiment. For low or medium loads (lower part of Figure 9), the behavior of both policies is almost equivalent: flows belonging to different QoS cube experience a similar end-to-end delay and there is no packet loss. The differences in the behavior of both policies become very clear at high loads (higher part of Figure 9). In the QTA policy case, flows belonging to urgent QoS cubes experience a similar end-to-end delay than in the low load scenario (with an average value of 1.25 ms), while flows belonging to non-urgent classes experience an end-to-end delay that is 10 times higher (with an average value of 13.25 ms). There is also some packet loss experience by the non-urgent flows belonging to the less-cherished QoS class (QoS cube 4). In the FIFO policy case, all QoS classes experience an end-to-end delay much higher than the urgent classes of the QTA policy (9.85 ms), but significantly lower than the non-urgent classes. The results reflect the nature of the trade-off: the QTA policy assigns more scheduling capacity to urgent classes at the cost of degrading the quality experienced by non-urgent classes, increasing its delay and packet loss compared to the non-differential treatment case (FIFO policy).