Instructions to use Windows Teaming Drivers with DBL ---------------------------------------------------- Installation ------------ 1. Install the DBL driver. The teaming driver requires DBL version 1.0.1 or above. 2. Install the teaming driver. Please read README.txt included in the teaming driver package. Essentially, you install the driver as a protocol driver on top of the DBL adapters. 3. Create a team adapter. Assume you have two DBL adapters (ports) and want to team them. Follow the instructions in README.txt. In the teaming driver's properties dialog, click on both DBL adapters. They should look as selected. Enter the team adapter's name. For example, "dbl team1". Leave the check boxes and radio buttons as they are (default options). Do NOT check LACP. Leave "Use One Adapter" as checked. Then, click "Create" and close the rest of the windows. Once the team adapter is created, you should see "dbl team1" adapter appear in Network Connections. Operation --------- 1. MAC address of the team adapter It is same as the MAC address of one of the two underlying DBL adapters. 2. "Use One Adapter" mode The teaming driver selects one underlying adapter as the active adapter. The active adapter sends and receives packets. The other adapter is backup or non-active. The backup adapter never sends packets but may receive packets. The backup adapter's link is up unless it is unplugged. When the active adapter's link goes down, the backup adapter becomes the active adapter unless its link is also down. It remains as the active adapter until its link goes down. You can see which adapter is active in the teaming driver's properties dialog (View/Delete tab). 3. Duplicate broadcast or multicast packets The team adapter may receive duplicate broadcast or multicast packets, especially if both adapters are plugged into one switch. The switch floods broadcast packets and may flood certain multicast packets. These packets are received by both the active adapter and the backup adapter. The team adapter passes all packets up the network stack. From the stack's viewpoint, one broadcast/multicast packet is followed by its duplicate. If such duplicate packets cause problems, set NonActiveAdaptersDropNonUnicast to 1 in the registry (run regedit.exe and search for the name). When set to 1, the backup adapter drops broadcast or multicast packets received from the network. 4. Reverse ARP (RARP) The active adapter sends an RARP packet once every 60 seconds by default. The RARP packet's source MAC is the team adapter's MAC. When the backup adapter becomes the active adapter, it sends an RARP packet as soon as possible. 5. IP addresses The team adapter is automatically bound to the TCP/IP driver. You can assign an IP address to the team adapter as usual. The underlying DBL adapters are only bound to the teaming driver. The TCP/IP driver is unbound from the adapter when you create the team adapter. So, these adapters do not have IP addresses. You can manually bind the TCP/IP driver to the underlying adapters and assign IP addresses to them. 6. Toy tests Plug both adapters to the switch and run ping, ntttcp, netperf, etc. between two machines. While tests are running, unplug one adapter. Programs may experience a slight hiccup but should continue to run. DBL and teaming --------------- Currently, DBL is not aware of teaming and does not know which adapter is active or backup. dbl_open selects the adapter using the user-specified IP address. dbl_open internally figures out the MAC address of the adapter that owns the IP address, and then selects the adapter with that MAC address. 1. dbl_open using the team adapter's IP address The team adapter's MAC address is same as one of the underlying adapters. dbl_open selects whichever adapter has the team adapter's MAC address. 2. dbl_open using the underlying adapter's IP address You first have to bind the TCP/IP driver to the underlying adapter and assign an IP address to it. dbl_open selects the underlying adapter that owns the IP address. This way, you can specifically tell dbl_open to use a particular adapter.