1. Field
The present disclosure relates to memory management. More particularly, this invention is directed toward virtualization of a quality-of-service
2. Description of Related Technology
A receipt of a packet over a network at a node, e.g., a switch, in a communication system, requires allocation of memory to process the packet. However, a memory is a limited resource; therefore, numerous techniques have been developed to insure a level of Quality-of-Service (QoS). QoS is the overall performance of the network communication as seen by the users of the network, and is quantified by measuring different parameters, e.g., error rates, bandwidth, throughput, transmission delay, availability, jitter, and other parameters known to persons of ordinary skills in the art.
To assure a required QoS, in view of the limited memory, several methods are commonly used. A tail drop method is a simple queue management technique used to decide when to drop packets. When the allocated queue reaches a first pre-determined capacity, the newly arriving packets are dropped until the queue capacity is increased to a second pre-determined capacity. The method does not discriminate between packets, all packets are treated equally. A queue is an organization of data into a structure in which entities, i.e., the data comprising a packet, are kept. The data structure may be implemented as collections of buffers, i.e., a portion of a memory that may be allocated to a hardware or a software entity can use for some purpose. Backpressure refers to a queue management method that requests the source of packets to cease packet transmission when an allocated queue reaches a first pre-determined capacity until the queue capacity is increased to a second pre-determined capacity. A random early discard (RED) method monitors the average queue size and drops packets based on statistical probabilities. If a queue is almost empty, all incoming packets are accepted. As the queue grows, the probability for dropping an incoming packet increases.
In a more sophisticated implementation the various QoS management method are combined; thus varying the technique according to change in parameters related to each of the technique. The parameters are often selected based on qualities characterizing of the packet, which is to use the memory, e.g., the physical interface a packet was received on, fields selected from the packet, e.g., Differentiated Services (DIFFSRV), IEEE 802.1 Q VLAN priority, and other characteristics known to a person of ordinary skills in the art.
The current trend towards virtualization requires reconsideration of QoS management. Virtualization is a process by which a virtual version of computing resources, such as hardware and software resources, i.e., a central processor unit, a storage system, an input/output resources, a network resource, an operating system, and other resources known in the art, are simulated by a computer system, referred to as a host machine. A typical host machine may comprise a hardware platform that optionally together with a software entity i.e., an operating system operates a hypervisor, which is software or firmware that creates and operates virtual machines, also referred to as guest machines. Through hardware virtualization, the hypervisor provides each virtual machine with a virtual hardware operating platform. By interfacing with the virtual hardware operating platform, the virtual machines access the computing resources of the host machine to execute virtual machines' respective operations. As a result, a single host machine can support multiple virtual machines, each operating an operating system and/or other software entity, i.e., an application, simultaneously through virtualization.
Consequently, the virtualization is likely to increase the pressure on management of memory resources, due to increased need for numerous virtual address spaces in memory. This results in a need for a packet received to be directed to one of these virtual address spaces, each of the address spaces possibly having a different QoS. The presence of many virtual address spaces, associated QoS levels, and many QoS methods potentially requires large, complicated structures.
Accordingly, there is a need in the art for a method and an apparatus embodying the method, providing a solution to the above identified complexity problem while enabling flexibility, as well as additional advantages.