Configuring Windows NIC discovery
Windows NIC discovery is configured in the $TIDEWAY/etc/winproxy.conf file. There are two sections for each card type:
- A regex to identify the card type
- A lookup list for speed, duplex, and negotiation information
The various adapters are configured in the <adapters> section. An annotated excerpt of the winproxy.conf file is shown in the following sections.
Adapters section
The adapters section begins with the <adapters> statement:
Search expression
The next statement is a regular expression to search for in the adapter key in the registry. This is specified in the <adapter> statement.
<adapter match="^Intel(R) PRO/100">
The search is performed on the hive "HKLM" and the key SYSTEM\CurrentControlSet\Control\Class\ {4D36E972-E325-11CE-BFC1-08002BE10318}.
Search parameter
You specify the parameter name, which in this case, is SpeedDuplex:
<!-- name in registry key to search for info eg. SpeedDuplex -->
The names of some network cards might contain special characters (for example, '*'). For these cards, you must specify the actual attribute; for example:
When you define the network card name, ensure that the adapter-key name matches the adapter-map name. In this example, it is SpeedDuplex.
With other network cards, you might need to search for different parameter names in the registry key; for example:
<adapter-key name="DuplexMode"/>
Speed Duplex and Negotiation Determination
The parameter name you search for returns an integer. The value of the integer represents the particular combination of speed, duplex, and negotiation currently in use on that card. The following table shows an example (in this case, for the SpeedDuplex parameter in the Intel® PRO/100 network card):
An <adapter-map ParameterName="value"> statement block is entered for each value expected for the parameter name. Contained in this statement are adapter-value statements with name-value pairs for (in this case) speed, duplex, and negotiation; for example:
<adapter-value name="speed" value="10"/>
<adapter-value name="duplex" value="HALF"/>
<adapter-value name="negotiation" value="FORCED"/>
</adapter-map>
Example Mapping
The following section shows an example for the Intel® PRO/100 network card:
<adapter-map SpeedDuplex="0">
<adapter-value name="speed" value=""/>
<adapter-value name="duplex" value=""/>
<adapter-value name="negotiation" value="AUTO"/>
</adapter-map>
<adapter-map SpeedDuplex="1">
<adapter-value name="speed" value="10"/>
<adapter-value name="duplex" value="HALF"/>
<adapter-value name="negotiation" value="FORCED"/>
</adapter-map>
<adapter-map SpeedDuplex="2">
<adapter-value name="speed" value="10"/>
<adapter-value name="duplex" value="FULL"/>
<adapter-value name="negotiation" value="FORCED"/>
</adapter-map>
<adapter-map SpeedDuplex="3">
<adapter-value name="speed" value="100"/>
<adapter-value name="duplex" value="HALF"/>
<adapter-value name="negotiation" value="FORCED"/>
</adapter-map>
<adapter-map SpeedDuplex="4">
<adapter-value name="speed" value="100"/>
<adapter-value name="duplex" value="FULL"/>
<adapter-value name="negotiation" value="FORCED"/>
</adapter-map>
<adapter-map SpeedDuplex="6">
<adapter-value name="speed" value="1000"/>
<adapter-value name="duplex" value="FULL"/>
<adapter-value name="negotiation" value="AUTO"/>
Finally, the adapter and adapter XML statements are closed:
</adapters>