Device Specific Interface Values
Many NL2 interface settings are restricted by the capabilities of the driver. Driver capabilities, including device-specific interface defaults and value ranges, are stored in a driver-specific XML file that uses the naming convention <drivername>_DriverInfo.xml. The driver XML file stores capabilities per hardware device using a vendor ID and device ID. By default, driver-specific XML files are installed under MaxRT\wRTOS\bin\NL2Config.
When you add or modify an interface, wRTOS checks the driver’s XML file to ensure the interface settings are valid based on the driver's capabilities. If the settings are not valid, attempts to create or modify the interface fail.
Note: Some devices may have more restrictive limits than what is enforced by wRTOS Settings. To see the most accurate limits, consult the appropriate specification guide for your device.
Note: Before you can manage interfaces, you must first convert a Windows Network device to wRTOS control. For more information, see Converting a Windows device to wRTOS.
wRTOS assumes a driver has no restrictions in these scenarios:
- An XML file for the driver cannot be found at MaxRT\wRTOS\bin\NL2Config.
- The driver's XML file does not contain a device ID.
The wRTOS SDK installs the driver XML files along with driver source. This allows developers to see their programmatic configuration changes prior to runtime. By default, driver source and XML files are installed to C:\Users\Public\Documents\MaxRT\wRTOS SDK\1.0\DriverSource.
The table below lists the contents of the driver-specific XML file. With few exceptions, the elements within the following configInfo nodes correspond one-to-one with NL2 network interface settings. The table includes attribute values of a sample Igb driver and represents the formats of the XML file. It does not represent the attribute values for all drivers.
Note: An NL2 interface setting may not be listed if that field is not bound by the driver or device, has a constant bound (e.g. thread priority fields), or is bound by system limitations that cannot be predetermined (e.g. ideal processor fields).
For settings comprised of enumerations, the default enumeration is provided in decimal form as an attribute default in the element’s start-tag. All valid enumerators are listed as child elements whose values correspond to the decimal value of the enumerator.
|
Capability |
Description |
|---|---|
|
<DriverConfigs driver=”RtndIgb”> |
The XML root node identifying the driver to which all following configuration information corresponds. |
|
<configInfo ven="8086" dev="1533"> |
The configInfo nodes distinguish all supported NICs that correspond to the given driver. The ‘ven’ and ‘dev’ Hex values identify the specific hardware for which the following elements apply. |
|
<JumboEnabled min="0" max="1" default="0" /> |
Determines whether the NIC supports jumbo frames. This capability corresponds to the field RTFW_NL2_INTERFACE.JumboEnabled. See RTFW_NL2_INTERFACE. |
|
<JumboMaxPacketSize min="1514" max="9724" default="1514" /> |
The maximum jumbo packet size supported by the NIC. This only applies when the NIC supports jumbo packets. This capability corresponds to the field RTFW_NL2_INTERFACE.JumboMaxPacketSize. See RTFW_NL2_INTERFACE. |
|
<SpeedDuplex default="4"> |
Determines the supported Speed-Duplex modes. This capability corresponds to the field RTFW_NL2_INTERFACE.SpeedDuplex. See RTFW_NL2_INTERFACE. |
|
<FlowControl default="0"> |
Determines the supported Flow Control modes. This capability corresponds to the field RTFW_NL2_INTERFACE.FlowControl. See RTFW_NL2_INTERFACE. |
|
<HardwareTimestampingEnabled min="0" max="1" default="0" /> |
Determines whether the NIC supports hardware timestamping. This capability corresponds to the field RTFW_NL2_INTERFACE.HardwareTimestampingEnabled. See RTFW_NL2_INTERFACE. |
|
<EgressTimestampRegisters min="0" max="1" /> |
Determines how many Transmit Queues can have timestamping enabled. This capability corresponds to the field RTFW_NL2_INTERFACE_TXQUEUE.pTxQueues. TimestampingEnabled. See RTFW_NL2_INTERFACE_TXQUEUE. |
|
<IngressTimestampingRule default="0"> |
Determines the supported ingress timestamping rules. This capability corresponds to the field RTFW_NL2_INTERFACE.IngressTimestampingRule. See RTFW_NL2_INTERFACE. |
|
<IngressTimestampingUDPPort min="1" max="65535" default="319" /> |
Determines the UDP port for detecting incoming UDP event frames. This capability corresponds to the field RTFW_NL2_INTERFACE.IngressTimestampingUDPPort. See RTFW_NL2_INTERFACE. |
|
<IngressTimestampingEtherType min="0x1" max="0xFFFF" default="0x88F7" /> |
Determines which EtherTypes the NIC supports for detecting incoming Ethernet event frames. This capability corresponds to the field RTFW_NL2_INTERFACE.IngressTimestampingEtherType. See RTFW_NL2_INTERFACE. |
|
<InterruptType default="2"> |
Determines the Interrupt Types supported by the NIC. This capability corresponds to the field RTFW_NL2_INTERFACE.InterruptType. See RTFW_NL2_INTERFACE. |
|
<TxQueueCount min="0" max="4" default="4" /> |
The number of Transmit Queues supported by the NIC. This capability corresponds to the field RTFW_NL2_INTERFACE.TxQueueCount. See RTFW_NL2_INTERFACE. |
|
<TxQueueBufferCount min="80" max="16384" default="0" multiples="8" /> |
Determines the number of buffers supported by the NIC for Transmit Queues. This value must be a multiple of the value of the attribute multiples. A value of 0 instructs the driver to defer to the hardware’s internal default value and is always allowed. This capability corresponds to the field RTFW_NL2_INTERFACE_TXQUEUE.pTxQueues.BufferCount. See RTFW_NL2_INTERFACE_TXQUEUE. |
|
<RxQueueCount min="1" max="4" default="4" /> |
The number of Receive Queues supported by the NIC. This capability corresponds to the field RTFW_NL2_INTERFACE.RxQueueCount. See RTFW_NL2_INTERFACE. |
|
<RxQueueBufferCount min="80" max="16384" default="0" multiples="8" /> |
Determines the number of buffers supported by the NIC for Receive Queues. The number of buffers set must be a multiple of the value of the attribute multiples. A value of 0 instructs the driver to defer to the hardware’s internal default value and is always allowed. This capability corresponds to the field RTFW_NL2_INTERFACE_RXQUEUE.pRxQueues.BufferCount. See RTFW_NL2_INTERFACE_RXQUEUE. |
|
<MSIXMessageCount min="0" max="5" default="5" /> |
Determines the number of MSIX messages supported by the NIC. This capability corresponds to the field RTFW_NL2_INTERFACE.MSIXMessageCount. See RTFW_NL2_INTERFACE. |
|
<LaunchTimeEnabled min="0" max="1" default="0" /> |
Determines whether the NIC supports Launch Time. This capability corresponds to the field RTFW_NL2_INTERFACE_TXQUEUE.pTxQueues.LaunchTimeEnabled. See RTFW_NL2_INTERFACE_TXQUEUE. |
|
<CbsEnabled min="0" max="1" default="0" /> |
Determines whether the NIC supports Credit-Based Shaping (CBS). This capability corresponds to the field RTFW_NL2_INTERFACE_TXQUEUE.pTxQueues.CbsEnabled. See RTFW_NL2_INTERFACE_TXQUEUE. |
Notes for Driver Developers
- If your driver does not support non-standard UDP ports, the IngressTimestampingUDPPort min and max values should be 319. If the driver supports non-standard UDP ports, the min and max values should be 1 and 65535, respectively.
- If your driver does not support non-standard EtherTypes, the IngressTimestampingEtherType min and max values should be 0x88F7. If the driver supports non-standard UDP ports, the min and max values should be 0x0600 and 0xFFFF, respectively.
See wRTOS Supported NICs for an up-to-date list of supported devices.