Method and apparatus for preventing loops in a full-duplex bus
AssigneeApple Computer, Inc.
InventorsJerrold V. Hauck, Colin Whitby-Strevens
Life of this patent
Estimating the term…
Abstract
A method and apparatus is disclosed for preventing loops in a full-duplex bus. One method has the acts of: selecting at least two candidates to join said bus; establishing a dominant candidate from one of said at least two candidates; testing for loops in said bus; and joining said dominant candidate if no loops are found in said bus. Another method has the acts of: selecting a plurality candidates to join said bus; establishing at least one dominant candidate; testing for loops in said bus; and joining said at least one dominant candidate if no loops are found in said bus. Alternative embodiments are shown that utilize unique identifiers to facilitate candidate selection and to establish dominance on the bus.
Claims32
In a full-duplex bus having a plurality of nodes, wherein at least one of the nodes has an untested connection, a method for preventing loops comprising the acts of:
- selecting the untested connection by the plurality of nodes to join the bus;
- establishing dominant nodes that dominate the full-duplex bus by the nodes which selected said untested connection;
- testing for loops through said untested connection by said dominant nodes;
- and
- joining said untested connection to said full-duplex bus by said dominant nodes if no loops are found in said bus.
A method for preventing loops in a full-duplex bus, said method comprising the acts of:
- a. selecting a plurality candidates to join said bus;
- b. establishing at least one dominant candidate;
- c. testing for loops in said bus;
- and
- d. joining said at least one dominant candidate if no loops are found in said bus.
A method for breaking loops in a bus containing both full-duplex and uniplex devices, said method comprising the acts of:
- a. determining whether said loop comprises only full-duplex devices and breaking said loop at any point on said bus;
- b. determining whether the loop comprises only uniplex devices and quarantining said loops comprising uniplex devices from said bus;
- and
- c. determining whether said loop comprises both uniplex and full-duplex devices, and breaking said loop by utilizing only full-duplex device to break said loop.
An electronic device adapted to communicate on a full-duplex bus having a plurality of nodes, wherein at least one of the nodes has an untested connection, said device comprising:
- a. means for selecting the untested connection by the plurality of nodes to join the bus;
- b. means for establishing dominance of the full-duplex bus by those nodes which selected said untested connection;
- c. means for testing for loops through said untested connection by said dominant nodes;
- and
- d. means for joining said untested connection to said full-duplex bus by said dominant nodes if no loops are found in said bus.
An electronic device adapted to communicate on a full-duplex bus, said device comprising:
- a. means for selecting a plurality candidates to join said bus;
- b. means for establishing at least one dominant candidate;
- c. means for testing for loops in said bus;
- and
- d. means for joining said at least one dominant candidate if no loops are found in said bus.
A method for detecting and breaking loops in a full-duplex electronic bus, said method comprising the acts of:
- a. selecting candidates to join to said bus;
- b. arbitrating for control of said bus;
- c. transmitting a loop test packet containing a unique identifier on said bus;
- d. receiving loop test packets from said bus, said received loop test packets containing a unique identifier;
- e. surrendering control of said bus if any said unique identifier contained in any said received loop test packet is greater than said unique identifier contained in said transmitted loop test packet and waiting for said bus to return to idle before attempting to join said bus again;
- and
- f. joining said selected candidates to said bus if any said unique identifier contained in said transmitted loop test packet is greater than or equal to any said unique identifier contained in said received loop test packet.
A method for detecting and breaking loops in a full-duplex electronic bus, said method comprising the acts of:
- a. connecting a device to said bus;
- b. testing for a loop in said bus;
- c. quarantining said device from said bus a loop is found;
- d. resuming said device if no loop is found;
- e. testing for a loop in said bus if said device does not resume within a predetermined time period
- f. activating said device;
- and
- g. testing for a loop in said bus if said device does not activate within said predetermined time period.
A method for detecting and breaking loops in a full-duplex electronic bus, said method comprising the acts of:
- a. connecting a device to said bus;
- b. testing for a loop in said bus;
- c. quarantining said device from said bus a loop is found;
- d. resuming said device if no loop is found;
- e. testing for a loop in said bus if said device does not resume within a predetermined time period;
- f. activating said device;
- and
- g. testing for a loop in said bus if said device does not activate within said predetermined time period.
A program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to prevent loops on a full-duplex bus, said device comprising:
- a. means for selecting two candidates to join said bus;
- b. means for establishing a dominant candidate;
- c. means for testing for loops in said bus;
- and
- d. means for joining said dominant candidate if no loops are found in said bus.
A program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to prevent loops on a full-duplex bus, said device comprising:
- a. means for selecting a plurality candidates to join said bus;
- b. means for establishing at least one dominant candidate;
- c. means for testing for loops in said bus;
- and
- d. means for joining said at least one dominant candidate if no loops are found in said bus.
A program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to prevent loops on a full-duplex bus, said device comprising:
- a. means for selecting the untested connection by a plurality of nodes to join the bus;
- b. means for establishing dominance of the full-duplex bus by those nodes which selected said untested connection;
- c. means for testing for loops through said untested connection by said dominant nodes;
- and
- means for joining said untested connection to said full-duplex bus by said dominant nodes if no loops are found in said bus.
Dependencies are inferred from the claim text.