|Skip Navigation Links|
|Exit Print View|
|Oracle Solaris Administration: Network Interfaces and Network Virtualization Oracle Solaris 11 Information Library|
This section explains network resource management by introducing network lanes. It also describes how you implement network resource management by setting datalink properties. Flows are also defined as another way of further setting resource controls to process network traffic.
In previous Oracle Solaris releases, implementing quality of service is a complicated process. The process consists of defining queuing disciplines, classes, and filter rules and indicating the relationships among all of these components. For more information, see Part V, IP Quality of Service (IPQoS), in Oracle Solaris Administration: IP Services.
In this release, quality of service is obtained more easily and dynamically by managing network resources. Network resource management consists of setting datalink properties that pertain to network resources. By setting these properties, you determine how much of a given resource can be used for networking processes. For example, a link can be associated with a specific number of CPUs that are reserved exclusively for networking processes. Or, a link can be allotted a given bandwidth to process a specific type of network traffic. After a resource property is defined, the new setting takes effect immediately. This method makes managing resources flexible. You can set resource properties when you create the link. Alternatively, you can set these properties later, for example, after studying resource usage over time and determining how to better allocate the resource. The procedures for allocating resources apply to both the virtual network environment as well as the traditional physical network.
Network resource management is comparable to creating dedicated lanes for traffic. When you combine different resources to cater to specific types of network packets, those resources form a network lane for those packets. Resources can be assigned differently for each network lane. For example, you can allocate more resources to a lane where network traffic is heaviest. By configuring network lanes where resources are distributed according to actual need, you increase the system's efficiency to process packets. For more information about network lanes, see Overview of Network Traffic Flow.
Network resource management is helpful for the following tasks:
Establishing service level agreements.
Diagnosing security problems.
You can isolate, prioritize, track, and control data traffic on an individual system without the complex QoS rule definitions in previous releases.
A flow is a customized way of categorizing packets to further control how resources are used to process these packets. Network packets can be categorized according to an attribute. Packets that share an attribute constitute a flow and are labeled with a specific flow name. The flow can then be assigned specific resources.
The attributes that serve as the basis for creating flows are derived from the information in a packet's header. You can organize packet traffic into flows according to one of the following attributes:
Transport protocol name (UDP, TCP, or SCTP)
Application port number, for example, port 21 for FTP
DS field attribute, which is used for quality of service in IPv6 packets only. For more information about the DS field, refer to DS Codepoint in Oracle Solaris Administration: IP Services.
A flow can be based on only one of the attributes in the list. For example, you can create a flow according to the port that is being used, such as port 21 for FTP, or according to IP addresses, such as packets from a specific source IP address. However, you cannot create a flow for packets from a specified IP address that are received on port number 21 (FTP). Likewise, you cannot create a flow for all traffic from IP address 192.168.1.10, and then create a flow for transport layer traffic on 192.168.1.10. Thus, you can configure multiple flows on a system, with each flow based on a different attribute.
For datalinks, you use the appropriate dladm subcommand depending on whether you are setting the property while creating the link or setting the property of an existing link. To simultaneously create a link and allocate resources to it, use the following syntax:
# dladm create-vnic -l link -p property=value[,property=value] vnic
where link can be either a physical link or a virtual link.
To set the property of an existing link, use the following syntax:
# dladm set-linkprop -p property=value[,property=value] link
For more details about the dladm command and the properties that this command manages, refer to the dladm(1M) man page.
The following are link properties that you can set for resource allocation:
Bandwidth – You can limit a hardware's bandwidth for a certain link's use.
NIC rings – If a NIC supports ring allocation, its transmit and receive rings can be assigned for dedicated use by datalinks. NIC rings are discussed in Transmit and Receive Rings
CPU pools – Pools of CPUs are generally created and associated with specific zones. These pools can be assigned to datalinks to reserve the sets of CPUs to manage the network processes of their associated zones. CPUs and pools are discussed in Pools and CPUs.
CPUs – In a system with multiple CPUs, you can dedicate a given number of CPUs for specific network processing.
For flows, you use flowadm subcommands. First you create the flow by using the flowadm add-flow subcommand. Then you assign resources to the flow by using the flowadm set-flowprop subcommand. The set of defined attributes that characterizes the flows together constitutes the system's flow control policy.
Note - The properties for resource allocation that can be assigned to a flow are the same as the properties that are assigned directly to a link. Currently however, only the bandwidth properties can be associated with flows. Although the commands to set properties are different for datalinks and for flows, the syntax is similar. To configure the bandwidth properties, see the examples in How to Configure a Flow
For more information, refer to the flowadm(1M) man page.