and other devices had an uplink/normal switch to go back and forth between MDI and MDI-X on a specific port. The requirement of connecting the transmitter of one side to the receiver on the other side and vice versa makes it necessary to always have an odd number of crossovers between two devices, with an MDI-X port containing an internal crossover. Thus, connecting MDI to MDI-X requires a straight-through cable (one crossover in total). Connecting MDI to MDI (no crossover) or MDI-X to MDI-X (two crossovers) requires a(nother) crossover in the cable to get an odd number. When using more complicated setups through multiple patch panels in structured cabling, the connection can use multiple patch and building cable segments. It is a good idea to have all necessary crossovers on one side, i.e. either on the central hub/switch or on each secondary hub/switch. Auto MDI-X To connect two ports of the same configuration (MDI to MDI or MDI-X to MDI-X) with a 10 or 100 Mbit/s connection (10BASE-T or 100BASE-TX), an Ethernet crossover cable is needed to cross over the transmit and receive signals in the cable, so that they are matched at the connector level. The confusion of needing two different kinds of cables for anything but hierarchical star network topologies prompted a more automatic solution. Auto MDI-X (aka "auto crossover") automatically detects the required cable connection type and configures the connection appropriately, removing the need for crossover cables to interconnect switches or connect PCs peer-to-peer. As long as it is enabled on either end of a link, either type of cable can be used. For auto MDI-X to operate correctly, the data rate on the interface and duplex setting must be set to "auto". Auto MDI-X was developed by Hewlett-Packard engineers Daniel Joseph Dove and Bruce W. Melvin. A pseudo-random number generator decides whether or not a network port will attach its transmitter, or its receiver to each of the twisted pairs used to auto-negotiate the link. When two auto MDI-X ports are connected together, which is normal for modern products, the algorithm resolution time is typically < 500 ms. However, a ~1.4 second asynchronous timer is used to resolve the extremely rare case (with a probability of less than 1 in 5×1021) of a loop where each end keeps switching. Subsequently, Dove promoted auto MDI-X within the 1000BASE-T standard and also developed patented algorithms for "forced mode