Skip Navigation Links | |
Exit Print View | |
Connecting Systems Using Fixed Network Configuration in Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library |
1. Overview of Fixed Network Configuration
2. Configuring a System for the Network
Displaying General Information About Datalinks (dladm)
Displaying a System's Datalinks (dladm show-link)
Displaying Physical Attributes of Datalinks (dladm show-phys)
Deleting a Datalink (dladm delete-phys)
Renaming a Datalink (dladm rename-link)
Customizing Datalink Properties
Overview of Datalink Properties
Enabling Support for Jumbo Frames
Modifying Link Speed Parameters
Setting the STREAMS Module on Datalinks
Setting the e1000g Driver to Use Direct Memory Access Binding
Manually Setting the Interrupt Rate
Obtaining Status Information About Datalink Properties
Other Configuration Tasks With the dladm Command
How to Switch Primary Interfaces on a System
How to Replace a Network Interface Card With Dynamic Reconfiguration
5. Configuring Wireless Networking on Laptops Running Oracle Solaris
A. Comparison Map: ifconfig and ipadm Commands
In addition to performing basic datalink configuration, you can also use the dladm command to set datalink properties and customize them according to the requirements of your network.
Three dladm subcommands are used for datalink properties:
dladm show-linkprop [-p property] [datalink] displays the properties of a datalink and their current values. If you do not use the -p property option, then all the properties of a datalink are listed. If you do not specify a datalink, then all the properties of all datalinks are listed.
dladm set-linkprop -p property=value datalink assigns a value to the datalink's property.
dladm reset-linkprop -p property datalink resets the specific property to its default value.
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 maximum transmission unit (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 values. However, certain networking scenarios might require you to change specific property values. 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 specific driver. The following sections describe selected properties and explains how to change their values to function in your network environment.
MTU defines the size of the largest packet that a protocol can transmit from the system. By default, most NIC drivers define the MTU size to 1500. However, if Jumbo frames are traversing through the network, the default value is insufficient. Support for Jumbo frames requires the MTU size to be at least 9000.
To change the MTU size from its default value, type the following command:
# dladm set-linkprop -p mtu=new-size datalink
After changing the MTU size, you can reconfigure an IP interface over the datalink
The following example shows the steps to enable support for Jumbo frames. The example assumes that you have already removed any existing IP interface configuration over the datalink.
# dladm show-linkprop -p mtu net1 LINK PROPERTY VALUE DEFAULT POSSIBLE net1 mtu 1500 1500 -- # dladm set-linkprop -p mtu=9000 net1 # dladm show-link web1 LINK CLASS MTU STATE BRIDGE OVER web1 phys 9000 up -- --
Most network setups consist of a combination of systems with varying speed capabilities. Each system advertises speed capabilities to other systems in the network that informs how each system transmits and receives network traffic. The following paired datalink properties regulate the speed capabilities that are advertised by a system:
adv_10gfdx_cap/en_10gfdx_cap
adv_1000fdx_cap/en_1000fdx_cap
adv_1000hdx_cap/en_1000hdx_cap
adv_100fdx_cap/en_100fdx_cap
adv_100hdx_cap/en_100hdx_cap
adv_10fdx_cap/en_10fdx_cap
adv_10hdx_cap/en_10hdx_cap
Each link speed capability is referred to by a pair of properties: the advertised speed (adv_*_cap) and the enabled advertised speed (en_*_cap). Further, datalink speed information is also provided for both full-duplex and half-duplex capabilities, as designated by the *fdx* and *hdx* in the property names. The advertised speed property is a read-only property that indicates whether the specific datalink speed is advertised. You determine whether a specific datalink speed is advertised by setting the corresponding en_*_cap property.
By default, all the speed and duplex capabilities of a datalink are advertised. However, cases might exist where a new system is communicating with an older system and autonegotiation is disabled or unsupported. To enable communication between these two systems, the advertised speed between an older system and a newer system might need to be changed to a lower value. The gigabit capabilities of the system might need to be switched off, and only the slower speed capabilities are advertised. In this case, you would type the following for both the full-duplex capability and the half-duplex capability.
# dladm set-linkprop -p en_1000fdx_cap=0 datalink # dladm set-linkprop -p en_1000hdx_cap=0 datalink
The command switches off the advertisement of the gigabit capabilities of the system for full-duplex capability and half-duplex capability.
To display the new values of these properties, use the dladm show-linkprop command.
# dladm show-linkprop -p adv_10gfdx_cap datalink # dladm show-linkprop -p adv_1000hdx_cap datalink
Normally, the values 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.
You can set up to eight STREAMS modules to be pushed on to the stream when the datalink is opened. These modules are typically used by third-party networking software such as virtual private networks (VPNs) and firewalls. Documentation about such networking software is provided by the software vendor.
The list of modules to push on a specific datalink is controlled by the autopush property. In turn, the value of the autopush property is set by using the dladm set-linkprop subcommand.
A separate autopush command can also be used to push modules on to the datalink's stream on a per-driver basis. The command uses a configuration file that is set up for each driver and which informs the command the modules to push. However, the driver is always bound to the NIC. If the datalink's underlying NIC is removed, then the link's autopush property information becomes lost as well.
Therefore, the dladm command is a preferable tool for this purpose than the autopush command. If both per-driver and per-link types of autoputsh configuration exist for a specific datalink, the per-link information that is set with dladm set-linkprop is used, and the per-driver information is ignored.
To push modules to the STREAMS when the datalink is opened, you use the same dladm set-linkprop command to specify modules for the autopush property. For example, to push the vpnmod and bufmod modules on top of the link net0, you would type:
# dladm set-linkprop -p autopush=vpnmod.bufmod net0
This section and the following section show how to configure private properties. Both sections apply to properties specific to the e1000g driver. However, the general information in these sections applies when you configure private properties of other NIC drivers.
Bulk traffic, such as file transfers, normally involves the 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 direct memory access (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 the packets. If a fragment size is within the threshold, then bcopy mode is used, where the fragment data is copied to the preallocated transmit buffer.
# dladm set-linkprop -p _tx_bcopy_threshold=value datalink
For this property, the valid values for the threshold range from 60 through 2048.
Note - All datalinks are automatically named with generic names. You must ensure that this private property is configured on the datalink whose underlying NIC is e1000g. Use dladm show-phys to verify before setting the property.
As with configuring public properties, any IP interface must also be deleted before private property values can be modified.
You might perform steps similar to the following:
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 100Mb full nge0 net1 Ethernet up 100Mb full e1000g0 # dladm set-linkprop -p _tx_bcopy_threshold=1024 net1
Properties 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 properties:
_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 property is enabled.
You first turn off the automatic tuning of the interrupt throttling rate. Then, you manually set the interrupt throttling rate property.
Suppose you have an x86 based system with an e1000g NIC whose interrupt throttling rate needs to be modified. Suppose further that the datalink name of e1000g0 is net1. You would type the following commands.
# dladm set-linkprop -p _intr_adaptive=0 net1 # dladm set-linkprop -p _intr-throttling_rate=1024 net1
To obtain information about datalink properties, you can use either of the following commands:
dladm show-linkprop [-p property] [datalink]
dladm show-ether datalink
This method is explained in Customizing Datalink Properties. To display a complete list of datalink properties, type the command without specifying a property. For example:
# 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
If no options are used with the dladm show-ether command, then only current Ethernet property values of the datalink are displayed. To obtain more information beyond what is provided by default, use the -x option. The following is an example of how the command is used:
# 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 explains the displayed information in the preceding example:
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 the host and link partner can send and receive pause frames. This information is shown in the first row of the output.
Subsequent rows display information about datalink speed capabilities, actual datalink speeds that are advertised, as well as information from the peer system as follows:
The capabilities of the Ethernet device are listed. The negotiation type can be set to automatic. In addition, 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.