• Keine Ergebnisse gefunden

4.2 A Resource-Oriented Data Plane Virtualization Approach

4.2.2 Data Plane Resources

In the specific context of performance analysis, we need an abstraction that picks only the parts of the hardware that causes performance variability, and that is influenced by the workload. Hardware units, when executing a program, are limited in their output. This means that every program instruction performed on a hardware unit „consumes“ a part of the potential output of the hardware unit. For example, control plane applications

can only influence the packet processing behavior when packet matching memory is available on the corresponding data plane device. If one control plane application uses all available memory slots, they are not available to other control plane applications anymore. These applications will not be able to influence the traffic passing through this specific device.

Control plane applications use these hardware units of the data plane’s control path by communicating through an SDN protocol. The interaction of control plane applications with the data plane is relayed through an SDN controller, which can either grant exclusively or time-shared access to the hardware units on the data plane devices.

Therefore, when executing a control plane application, these hardware units are the limiting factor for the performance of control plane applications. We investigate the hardware units and their output from a consumption-oriented perspective and therefore term them resources.

We are not the first to use the term „resource“. The IETF uses this term in the context of resource locators on the Internet, but does not give a precise definition for it: „A resource can be many things.“ [RFC1736]. The ONF uses the term in the OpenFlow Switch Specification document [ONF15] as well as in architectural documents, e.g. [ONF14c].

However, as with the IETF, the term is not well defined: „Anything that can be used to deliver a service.“ [ONF14c]. The scientific literature proposed, to the best knowledge of the author, no clear definition of a resource in the context of computing as well.

In the context of this resource-oriented view on networking hardware, we approach resources as performance-oriented abstractions of the data plane hardware. This abstraction, with the term abstraction used in the sense of emphasizing relevant features of an object, aims to support the reasoning about the performance of the hardware.

Therefore, the only parts of the hardware that are relevant are those that perform functions that are related to the control path of data plane devices. Performance is understood as the result of the execution of fixed or programmable logic with the help of resources, which are consumed in the process.

Definition 1: Resource

A resource is a functional part of a hardware device that is of limited abundance, consumed through or by the execution of a program on the hardware device, and influences the output of the device.

For example, a packet matching memory table that classifies packets can perform a given number of lookups per time interval. When the maximum number of lookups in an interval are conducted, additional lookups cannot be performed. Therefore, the packet matching memory table is classified as a resource, because it is limited, it is consumed by the workload, i.e., by processing packets, and it influences the processing of other packets. In contrast, the thermal throttling of a processor due to insufficient cooling is not classified as a resource. While thermal throttling influences that performance, the

4.2 � ��������-�������� ���� ����� �������������� �������� 45

throttling is not caused by its consumption through a program, and therefore is not a resource.

Table 4.1: Resource characteristics.

Characteristic Example values Description

Resource name CPU

Function Executing of

instructions Description of the purpose of the resource.

Metric CPU time,

instructions executed The perspective how the resource is abstracted.

Type non-renewable,

renewable Non-renewable resources are explicitly allo-cated and released; renewable resources re-plenish over time, e.g. I/O operations.

Unit ms, entries, kb Unit of measure.

Abundance type static, dynamic The abundance of resource can be static, i.e. it has a fixed value, or variable i.e. the abundance of the resource varies over time.

Abundance 500ms, 100 entries The abundance of the resource in units.

Allocation granularity no, 1ms, 1 entry The minimum abundance measured in units that can be allocated if this is possible.

Location Location in the resource topology: specifies the dependencies of the resource.

Saturation no, measured in units, measured in percent of

abundance

The resource provides a work queueing mech-anism of which the queue length can be mea-sured.

Errors no, yes, error types The resource provides a method to collect infor-mation related to errors that occur during the operations.

Resources can have different characteristics, which are listed in Table4.1. Packet match memory is assigned to a single control plane application and cannot be used otherwise until it is released–which is why this type of resource is called non-renewable. I/O operations, on the other hand, are renewable resources. A packet matching memory controller has a limited amount of operations it can conduct per unit of time. This means that after one application has completed its operation, the next can take over, without the first one having to release the resource. Furthermore, the granularity of resources might be different. Packet match memory might only be assigned in chunks of a certain size, e.g., 100kb, while the statistical utilization of matching memory updates might be a fraction, depending on the measurement detail.