|Skip Navigation Links|
|Exit Print View|
|Oracle Solaris Administration: Network Interfaces and Network Virtualization Oracle Solaris 11 Information Library|
In addition to performing basic datalink configuration, you can also use the dladm command to set datalink properties and customize them according to the needs of your network.
Note - Datalink properties can be customized by using the dladm command provided that the link's network driver has been converted to the GLDv3 framework, such as e1000g. To confirm whether your specific driver supports this feature, refer to the driver's man page.
Datalink properties that can be customized depend on the properties a specific NIC driver supports. Datalink properties that are configurable by using the dladm command fall into one of two categories:
Public properties that can be applied to any driver of the given media type such as link speed, autonegotiation for Ethernet, or the MTU size that can be applied to all datalink drivers.
Private properties that are particular to a certain subset of NIC drivers for a given media type. These properties can be specific to that subset because they are closely related either to the hardware that is associated with the driver or to the details of the driver implementation itself, such as debugging-related tunables.
Link properties typically have default settings. However, certain networking scenarios might require you to change specific property settings of a datalink. These property settings can be either public or private properties. For example, a NIC might be communicating with an old switch that does not properly perform autonegotiation. Or, a switch might have been configured to support Jumbo frames. Or, driver specific properties that regulate packet transmission or packet receiving might need to be modified for the given driver. In Oracle Solaris, all of these settings can now be reset by a single administrative tool, dladm.
The following section provides procedures with examples to set certain datalink properties. The selected properties are public and common to all NIC drivers. A separate section describes datalink properties that are driver specific. This section is followed by procedures to configure selected private properties of the e1000g driver.
Enabling support for Jumbo frames in a network setup is a common task for most network scenarios. Support for Jumbo frames requires increasing the size of a datalink's maximum transmission unit (MTU). The following procedure includes the use of customized names to identify datalinks. For an overview of customized names and their use in network configuration, see The Network Stack in Oracle Solaris.
# dladm show-phys
Perform this step especially if your network configuration uses customized names for datalinks. With customized names, datalinks are no longer necessarily identified by their hardware-based names. For example, the Ethernet device is bge0. However, the datalink over the device is renamed net0. Therefore, you would need to configure the MTU size of net0. Refer to IP Interface Configuration (Tasks) for examples of configuration tasks on datalinks that use customized names.
dladm show-linkprop -p property datalink
This command displays the settings of the property that you specify.
# dladm show-link datalink
This command displays datalink information, including MTU size.
# ipadm delete-ip interface
# dladm set-linkprop -p mtu=9000 datalink
# ipadm create-ip interface
# ipadm create-addr -T addr-type [-a address] addrobj
For more information about the ipadm command, see the ipadm(1M).
# dladm show-linkprop -p mtu datalink
# dladm show-ether datalink
Example 8-5 Enabling Support for Jumbo Frames
The following example that enables support for Jumbo frames builds on the following scenario:
The system has two bge NICs: bge0 and bge1.
The device bge0 is used as a primary interface, while the device bge1 is used for test purposes.
You want to enable support for Jumbo frames on bge1, while you retain the default MTU size of the primary interface.
The network configuration uses customized names for datalinks. The link name of bge0 is net0. The link name of bge1 is net1.
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 ether up 100Mb full bge0 net1 ether up 100Mb full bge1 net2 ether up 100Mb full nge3 # dladm show-linkprop -p mtu net1 LINK PROPERTY VALUE DEFAULT POSSIBLE net1 mtu 1500 1500 -- # ipadm delete-ip net1 # dladm set-linkprop -p mtu=9000 net1 # ipadm create-ip net1 # ipadm create-addr -T static -a 10.10.1.2/35 net1/v4 # dladm show-link web1 LINK CLASS MTU STATE BRIDGE OVER web1 phys 9000 up -- --
Notice that the MTU setting is now 9000. In this example, the dladm command enabled you to change net1's MTU size directly. The previous method that uses the ndd command would have required you to deleted net0 as well, which would have unnecessarily disrupted the primary interface's operations.
Most network setups consist of a combination of systems with varying speed capabilities. For example, the advertised speed between an older system and a newer system might need to be changed to a lower setting to allow communication. By default, all the speed and duplex capabilities of a NIC card are advertised. This procedure shows how to turn off the gigabit capabilities and advertise only the megabit capabilities.
# dladm show-linkprop -p property datalink
# dladm set-linkprop -p property=value1 datalink
Example 8-6 Disabling Advertisement of a NIC's Gigabit Capabilities
This example shows how you can prevent the link net1 from advertising gigabit capabilities.
# dladm show-linkprop -p adv_1000fdx_cap net1 LINK PROPERTY VALUE DEFAULT POSSIBLE net1 adv_1000fdx_cap 1 -- 1,0 # dladm show-linkprop -p adv_1000hdx_cap web1 LINK PROPERTY VALUE DEFAULT POSSIBLE net1 adv_1000hdx_cap 1 -- 1,0
The properties that advertise the link's gigabit capabilities are adv_1000fdx_cap and adv_1000hdx_cap. To disable these properties from being advertised, you would type the following commands:
# dladm set-linkprop -p adv_1000fdx_cap=0 net1 # dladm set-linkprop -p adv_1000hdx_cap=0 net1
Listing the Ethernet parameter settings would display the following output:
# dladm show-ether net1 LINK PTYPE STATE AUTO SPEED-DUPLEX PAUSE net1 current up yes 1G-f both
You can obtain information about the datalink's properties by displaying either the Ethernet parameter settings or the link properties.
# dladm show-ether [-x] datalink
where the -x option includes additional parameter information about the link. Without the -x option, only the current parameter settings are displayed.
# dladm show-linkprop datalink
Example 8-7 Displaying Ethernet Parameter Settings
This example displays an extended list of parameter information about a specified link.
# dladm show-ether -x net1 LINK PTYPE STATE AUTO SPEED-DUPLEX PAUSE net1 current up yes 1G-f both -- capable -- yes 1G-fh,100M-fh,10M-fh both -- adv -- yes 100M-fh,10M-fh both -- peeradv -- yes 100M-f,10M-f both
With the -x option, the command also displays the built-in capabilities of the specified link, as well as the capabilities that are currently advertised between the host and the link partner. The following information is displayed:
For the Ethernet device's current state, the link is up and functioning at 1 gigabits per second at full duplex. Its autonegotiation capability is enabled and has bidirectional flow control, in which both host and link partner can send and receive pause frames.
Regardless of the current setting, the capabilities of the Ethernet device are listed. The negotiation type can be set to automatic, the device can support speeds of 1 gigabits per second, 100 megabits per second, and 10 megabits per second, at both full and half duplex. Likewise, pause frames can be received or sent in both directions between host and link partner.
The capabilities of net1 are advertised as follows: autonegotiation, speed-duplex, and flow control of pause frames.
Similarly, net1's link or peer partner advertises the following capabilities: autonegotiation, speed-duplex, and flow control of pause frames.
Example 8-8 Displaying Link Properties
This example shows how to list all the properties of a link. If you want to display only specific properties, you use the -p option with the specific properties that you want to monitor.
# dladm show-linkprop net1 LINK PROPERTY VALUE DEFAULT POSSIBLE net1 speed 1000 -- -- net1 autopush -- -- -- net1 zone -- -- -- net1 duplex half -- half,full net1 state unknown up up,down net1 adv_autoneg_cap 1 1 1,0 net1 mtu 1500 1500 -- net1 flowctrl no bi no,tx,rx,bi net1 adv_1000fdx_cap 1 1 1,0 net1 en_1000fdx_cap 1 1 1,0 net1 adv_1000hdx_cap 1 1 1,0 net1 en_1000hdx_cap 1 1 1,0 net1 adv_100fdx_cap 0 0 1,0 net1 en_100fdx_cap 0 0 1,0 net1 adv_100hdx_cap 0 0 1,0 net1 en_100hdx_cap 0 0 1,0 net1 adv_10fdx_cap 0 0 1,0 net1 en_10fdx_cap 0 0 1,0 net1 adv_10hdx_cap 0 0 1,0 net1 en_10hdx_cap 0 0 1,0
The settings for the speed and duplex capabilities of the link are manually configured on the enabled-speed properties which are labeled en_*_cap. For example, en_1000fdx_cap is the property for the gigabit full-duplex capability, and en_100hdx_cap is the property for the 100 megabits half-duplex capability. The settings of these enabled speed properties are advertised between the host and its link partner by corresponding advertised speed properties, which are labeled adv_*_cap such as adv_1000fdx_cap and adv_100hdx_cap.
Normally, the settings of a given enabled speed property and the corresponding advertised property are identical. However, if a NIC supports some advanced features such as Power Management, those features might set limits on the bits that are actually advertised between the host and its link partner. For example, with Power Management, the settings of the adv_*_cap properties might only be a subset of the settings of the en_*_cap properties. For more details about the enabled and advertised speed properties, see the dladm(1M) man page.
This procedure and the next procedure show how to configure private properties. Both procedures apply to properties specific to the e1000g driver. However, the general steps can be used to configure private properties of other NIC drivers as well.
Bulk traffic, such as file transfers, normally involves negotiation of large packets across the network. In such cases, you can obtain better performance from the e1000g driver by configuring it to automatically use DMA binding, where a threshold is defined for packet fragment sizes. If a fragment size surpasses the threshold, then DMA binding is used for transmitting. If a fragment size is within the threshold, then bcopy mode is used, where the fragment data is copied to the preallocated transmit buffer.
To set the threshold, perform the following steps:
# dladm set-linkprop -p _tx_bcopy_threshold=value e1000g-datalink
For this property, the valid settings for the threshold range from 60 through 2048.
Note - As with configuring public properties, the interface must also be unplumbed before private property settings can be modified.
# dladm show-linkprop -p _tx_bcopy_threshold e1000g-datalink
Parameters that regulate the rate at which interrupts are delivered by the e1000g driver also affect network and system performance. Typically network packets are delivered to the upper layer of the stack by generating an interrupt for every packet. In turn the interrupt rate, by default, is automatically adjusted by the GLD layer in the kernel. However, this mode might not be desirable in all network traffic conditions. For a discussion of this issue, refer to this document (http://www.stanford.edu/class/cs240/readings/mogul.pdf) that was presented at the USENIX technical conference in 1996. Thus, in certain circumstances, setting the interrupt rate manually becomes necessary to obtain better performance.
To define the interrupt rate, you set the following parameters:
_intr_throttling_rate determines the delay between interrupt assertions regardless of network traffic conditions.
_intr_adaptive determines whether automatic tuning of the interrupt throttling rate is enabled. By default, this parameter is enabled.
# dladm show-phys
# dladm set-linkprop -p _intr_adaptive=0 e1000g-datalink
Note - When automatic tuning of the interrupt throttling rate is enabled, then any existing setting for the parameter _intr_throttling_rate is ignored.
# dladm set-linkprop -p _intr_throttling_rate=value e1000g-datalink
Note - The default setting of the _intr_throttling_rate parameter is 550 on SPARC based systems and 260 on x86 based systems. Setting the minimum inter-interrupt level to 0 disables the interrupt throttling logic.
Example 8-9 Configuring for DMA Binding and Setting the Interrupt Throttling Rate
This example uses an x86 based system with an e1000g NIC. The driver is configured with a threshold setting toggle between using DMA binding or the bcopy mode for transmitting packets. The setting for the interrupt throttling rate is also modified. Further, the e1000g datalink uses the default generic name that is assigned by the OS. Therefore, the configuration is performed on the datalink by referring to the customized name, net0.
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 ether up 100Mb full e1000g0 # dladm show-linkprop -p _tx_bcopy_threshold net0 LINK PROPERTY VALUE DEFAULT POSSIBLE net0 _tx_bcopy_threshold 512 512 -- # dladm show-linkprop -p _intr-throttling_rate LINK PROPERTY VALUE DEFAULT POSSIBLE net0 _intr-throttling_rate 260 260 -- # ipadm delete-ip net0 # dladm set-linkprop -p _tx_bcopy_threshold=1024 net0 # dladm set-linkprop -p _intr_adaptive=0 net0 # dladm set-linkprop -p _intr-throttling_rate=1024 net0 # ipadm create-ip net0 # ipadm create-addr -T static -a 10.10.1.2/24 net0/v4addr # dladm show-linkprop -p _tx_bocopy_threshold=1024 net0 LINK PROPERTY VALUE DEFAULT POSSIBLE net0 _tx_bcopy_threshold 1024 512 -- # dladm show-linkprop -p _intr_adaptive net0 LINK PROPERTY VALUE DEFAULT POSSIBLE net0 _intr-adaptive 0 1 -- # dladm show-linkprop -p _intr-throttling_rate LINK PROPERTY VALUE DEFAULT POSSIBLE net0 _intr-throttling_rate 1024 260 --