Page tree
Skip to end of metadata
Go to start of metadata

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 below:

Adapters section

The adapters section begins with the <adapters> statement

<adapters>

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.

   <!-- regex to find the adapter type eg. "^Intel(R) PRO/100" -->
   <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.

      <adapter-key name="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:

      <adapter-key name="SpeedDuplex" actual="*SpeedDuplex"/>

While defining the network card name, make sure that the adapter- key name matches with 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 match="^Realtek RTL8139 Family PCI Fast Ethernet NIC">
      <adapter-key name="DuplexMode"/>

Speed Duplex and Negotiation Determination

The parameter name which 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. An example, in this case for the SpeedDuplex parameter in the Intel® PRO/100 network card is shown in the Table below.

Parameter Value

Speed

Duplex

Negotiation

0

N/A

N/A

AUTO

1

10

HALF

FORCED

2

10

FULL

FORCED

3

100

HALF

FORCED

4

100

FULL

FORCED


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-map SpeedDuplex="1">
         <adapter-value name="speed" value="10"/>
         <adapter-value name="duplex" value="HALF"/>
         <adapter-value name="negotiation" value="FORCED"/>
      </adapter-map>

Example Mapping

An example for the Intel® PRO/100 network card is shown below:

      <adapter-key name="SpeedDuplex" actual="*SpeedDuplex"/>
            <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 adapters XML statements are closed.

   </adapter>
</adapters>
  • No labels