U.S. patent number 6,226,299 [Application Number 09/234,231] was granted by the patent office on 2001-05-01 for sanitizing fibre channel frames.
This patent grant is currently assigned to Emulex Corporation. Invention is credited to Karl M. Henson.
United States Patent |
6,226,299 |
Henson |
May 1, 2001 |
Sanitizing fibre channel frames
Abstract
A port for connecting a node to a network loop is disclosed. The
port includes a detect element, a frame termination generator, a
buffer data generator, a switching element, and a control element.
The detect element monitors data from the node and sets an error
flag when invalid data is received at the port. The frame
termination generator generates frame termination primitives. The
buffer data generator generates buffer data. The switching element
has a control input, an output, and a plurality of data inputs.
Each of an output of the node, the upstream node, the frame
termination generator, and the buffer data generator is connected
to a corresponding data input. The control element is connected to
the detect element and the control input of the switching element.
The control element selects, according to the error flag, one of
the data inputs of the switching element. The selection connects to
the output of the switching element to be output by the port to a
downstream node. The control element terminates a current data
frame by selecting the data input corresponding to the frame
termination generator when the error flag indicates that the
current data frame includes invalid data.
Inventors: |
Henson; Karl M. (Rancho Santa
Margarita, CA) |
Assignee: |
Emulex Corporation (Costa Mesa,
CA)
|
Family
ID: |
22880495 |
Appl.
No.: |
09/234,231 |
Filed: |
January 20, 1999 |
Current U.S.
Class: |
370/420;
370/452 |
Current CPC
Class: |
H04L
1/00 (20130101); H04L 1/0082 (20130101); H04L
12/433 (20130101); H04L 25/4908 (20130101); H04L
2001/0097 (20130101) |
Current International
Class: |
H04L
1/00 (20060101); H04L 12/26 (20060101); H04L
12/427 (20060101); H04L 12/433 (20060101); H04L
012/56 () |
Field of
Search: |
;370/420,452-456,462,535 |
References Cited
[Referenced By]
U.S. Patent Documents
Other References
Fiber Channel Tutorial,
http://www.fibrechannel.com/technology/tutorial.htm [online]. Jan.
1998. .
Fibre Channel Overview,
http://www.cern.ch/HSI/fcs/spec/overview.htm [online]. Aug. 1994.
.
Fibre Channel Glossary,
http://www.iol.unh.edu/training/fc/fcglossary.html [online]. Jul.
1996..
|
Primary Examiner: Nguyen; Chau
Assistant Examiner: Kwoh; Jasper
Attorney, Agent or Firm: Fish & Richardson, P.C.
Claims
What is claimed is:
1. A port for connecting a node to a network loop, the port
comprising:
a detect element, where the detect element monitors data from the
node and sets an error flag when invalid data is received at the
port;
a frame termination generator, which generates frame termination
primitives;
a buffer data generator, which generates buffer data;
a switching element having a control input, an output, and a
plurality of data inputs, where each of an output of the node, the
upstream node, the frame termination generator, and the buffer data
generator is connected to a corresponding data input; and
a control element connected to the detect element and the control
input of the switching element, where the control element selects,
according to the error flag, one of the data inputs of the
switching element to connect to the output of the switching element
to be output by the port to a downstream node, and the control
element terminates a current data frame by selecting the data input
corresponding to the frame termination generator when the error
flag indicates the current data frame includes invalid data, such
that the control element replaces a first word of said invalid data
with said frame termination primitives, and replaces subsequent
words of said invalid data with said buffer data from said buffer
data generator.
2. The port of claim 1, where the port is a hub port in a Fibre
Channel Arbitrated Loop.
3. The port of claim 1, where the invalid data is an invalid
character in an invalid transmission word.
4. The port of claim 1, where the invalid data is a misaligned
special character in an invalid transmission word.
5. The port of claim 1, where the invalid data is within a data
frame received from the node.
6. The port of claim 1, where the frame termination primitives are
FC-AL EOFA ordered sets.
7. The port of claim 1, where the buffer data are FC-AL current
fill words.
8. The port of claim 1, where the buffer data are FC-AL current
fill words which are the same as a current fill word received
immediately before a frame including the invalid data.
9. The port of claim 1, where the control element causes the
switching element to change from connecting the data input
corresponding to data from the node to a different data input after
the error flag has been set.
10. The port of claim 1, where, after the error flag has been set,
the control element causes the switching element to change from
connecting the data input corresponding to data from the node to
the data input corresponding to the frame termination generator,
and then to the data input corresponding to the buffer data
generator.
11. The port of claim 1, where the detect element sets an
interframe flag when a primitive which is not a frame termination
primitive is received at the port.
12. The port of claim 11, where, after the error flag has been set,
the control element causes the switching element to change from
connecting the data input corresponding to data from the node to
the data input corresponding to the frame termination generator,
then to the data input corresponding to the buffer data generator
until the interframe flag is set, and then to the data input
corresponding to data from the node.
13. A hub port for connecting a node to a Fibre Channel Arbitrated
Loop, the hub port comprising:
a node port input, connected to an output of the node;
a detection circuit connected to the node port input, where the
ordered set detection circuit monitors data from the node, and sets
an error flag when an invalid transmission word is received at the
hub port from the node and sets an interframe flag when an ordered
set which is not an end of frame ordered set is received at the hub
port from the node;
an end of frame generator, which generates end of frame abort
ordered sets;
a current fill word generator, which generates current fill word
ordered sets;
a hub port output;
a hub port input;
a multiplexer having a multiplexer control input, a multiplexer
output, and a plurality of multiplexer inputs, where the
multiplexer output is connected to the hub port output and each of
the node port input, the hub port input, the end of frame
generator, and the current fill word generator is connected to a
corresponding multiplexer input; and
an output control circuit connected to the detection circuit and
the multiplexer control input, where the output control circuit
controls which multiplexer input is connected to the multiplexer
output according to the error flag and the interframe flag, and the
output control circuit terminates a current data frame by selecting
the multiplexer input corresponding to the end of frame generator
when the error flag and interframe flag indicate the current data
frame includes an invalid transmission word, such that the output
control circuit replaces the invalid transmission word with said
end of frame abort ordered sets, and replaces subsequent words with
said current fill word ordered sets.
14. The hub port of claim 13, where the invalid transmission word
includes a misaligned special character.
Description
TECHNICAL FIELD
The present invention relates to electronic network communications
systems, and more specifically to sanitizing a datastream between
ports in a network loop.
BACKGROUND INFORMATION
Electronic data systems are frequently interconnected using network
communication systems. Area-wide networks and channels are two
approaches that have been developed for computer network
architectures. Traditional networks (e.g., LAN's and WAN's) offer a
great deal of flexibility and relatively large distance
capabilities. Channels, such as the Enterprise System Connection
(ESCON) and the Small Computer System Interface (SCSI), have been
developed for high performance and reliability. Channels typically
use dedicated short-distance connections between computers or
between computers and peripherals.
Features of both channels and networks have been incorporated into
a new network standard known as "Fibre Channel". Fibre Channel
systems combine the speed and reliability of channels with the
flexibility and connectivity of networks. Fibre Channel products
currently can run at very high data rates, such as 1062 Mbps. These
speeds are sufficient to handle quite demanding applications, such
as uncompressed, full motion, high-quality video. ANSI
specifications, such as X3.230-1994, define the Fibre Channel
network. This specification distributes Fibre Channel functions
among five layers. The five functional layers of the Fibre Channel
are: FC-0--the physical media layer; FC-1--the coding and encoding
layer; FC-2--the actual transport mechanism, including the framing
protocol and flow control between nodes; FC-3--the common services
layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network:
simple point-to-point connections; arbitrated loops; and switched
fabrics. The simplest topology is the point-to-point configuration,
which simply connects any two Fibre Channel systems directly.
Arbitrated loops are Fibre Channel ring connections that provide
shared access to bandwidth via arbitration. Switched Fibre Channel
networks, called "fabrics", are a form of cross-point
switching.
Conventional Fibre Channel Arbitrated Loop ("FC-AL") protocols
provide for loop functionality in the interconnection of devices or
loop segments through node ports. However, direct interconnection
of node ports is problematic in that a failure at one node port in
a loop typically causes the failure of the entire loop. This
difficulty is overcome in conventional Fibre Channel technology
through the use of hubs. Hubs include a number of hub ports
interconnected in a loop topology. Node ports are connected to hub
ports, forming a star topology with the hub at the center. Hub
ports which are not connected to node ports or which are connected
to failed node ports are bypassed. In this way, the loop is
maintained despite removal or failure of node ports.
More particularly, an FC-AL network is typically composed of two or
more node ports linked together in a loop configuration forming a
single data path. Such a configuration of a node port-to-node port
loop is shown in FIG. 1. In FIG. 1, six node ports 102, 104, 106,
108, 110, 112 are linked together by data channels 114, 116, 118,
120, 122, 124. In this way, a loop is created with a datapath from
node port 102 to node port 104 through data channel 114 then from
node port 104 to node port 106 through data channel 116, and so on
to node port 102 through data channel 124.
When there is a failure at any point in the loop, the loop datapath
is broken and all communication on the loop halts. For example, if
node port 104 fails, data no longer passes through node port 104. A
failure may also occur in a data channel between node ports, such
as by a physical break in the wire or electromagnetic interference
causing significant data corruption or loss at that point. At this
point, loop 100 has been broken. Data no longer flows in a circular
path and the node ports are no longer connected to one another. The
loop has, in effect, become a unidirectional linked list of node
ports.
A conventional technique to avoid broken datapaths in a node
port-to-node port loop introduces a hub within a loop. A hub
creates a physical configuration of node ports in a star pattern,
but the virtual operation of the node ports continues in a loop
pattern. The connection process (i.e., sending data between node
ports) and interaction with the hubs is effectively transparent to
the node ports connected to the hub, which perceive the
relationship as a standard Fibre Channel arbitrated loop
configuration.
FIG. 2 illustrates an arbitrated loop 200 with a centrally
connected hub. Similar to loop 100 illustrated in FIG. 1, loop 200
includes six node ports 202, 204, 206, 208, 210, 212, each attached
to a hub 214. Hub 214 includes six hub ports 216, 218, 220, 222,
224, 226 where each hub port is connected to another hub port in a
loop topology by a sequence of internal hub links. In this way,
node ports 202-212 are each connected to a corresponding hub port
216-226. Thus, node ports 202-212 operate as though connected in a
loop fashion as illustrated in FIG. 1. Data typically flows into a
hub port from an upstream hub port, into the attached node port,
back from the node port to the hub port, and out of the hub port to
a downstream hub port.
When a node port or a data channel fails or is disconnected, the
loop is maintained by bypassing the failed node port. In a
conventional hub, when a hub port no longer receives data from a
node port, the hub port goes into a bypass mode. In bypass mode,
rather than passing data received on the data channel from the node
port, the hub port passes data received along the internal hub link
from the previous, upstream hub port Thus, nodes are removed and
inserted in the loop by changing the corresponding hub port in and
out of bypass mode.
The content of a datasteam of an FC-AL network is defined by FC-AL
protocols. Characters are constantly moving through the loop from
one port to the next. These characters may be actual data or loop
control signals. Loop control signals are always present in the
datastream except when a data frame is being sent from a source
node port to a destination node port. Under FC-AL protocols, the
loop control signals are ordered sets, including primitive signals
and primitive sequences. Ordered sets typically begin with a
special character indicating the beginning of an ordered set, such
as K28.5.
A data frame includes a series of one or more data words preceded
by a frame initiation primitive and followed by a frame termination
primitive. An FC-AL data frame includes an uninterrupted stream of
data preceded by a special ordered set called a Start Of Frame
("SOF") and succeeded by a special ordered set called an End Of
Frame ("EOF"). An End Of Frame Abort ("EOFA") is a special type of
EOF ordered set, for aborting a frame. An interframe gap occurs
after a frame termination primitive and before the next frame
initiation primitive. Under FC-AL protocols, an interframe gap is
defined to include six ordered sets, by default.
A datastream of encoded characters ideally always has a valid
"running disparity". The encoded characters are defined according
to a conventional 8B/10B encoding scheme, defined in Fibre Channel
protocols. The running disparity at the end of a character in the
datastream is the difference between the number of 1's and 0's in
the bit encoding of the character. A character with more 1's than
0's has a positive running disparity. A character with more 0's
than 1's has a negative running disparity. A character with an
equal number of 1's and 0's has a neutral running disparity. An
encoder transmits a positive, negative, or neutral disparity
encoded character. A neutral character does not affect the running
disparity of the datastream. A positive character changes the
running disparity from negative to positive and a negative
character changes the running disparity from positive to
negative.
Each word has an overall running disparity as well. The running
disparity for a word determines the effect that word has on the
running disparity of the datastream. As with characters, a word
with a positive running disparity changes the running disparity to
positive at the end of the word. Similarly, a word with a negative
disparity changes the running disparity to negative and a word with
a neutral disparity leaves the running disparity the same as the
running disparity before the word.
The running disparity between the words that form the interframe
gap is defined to be negative. The last word of a frame, an EOF,
ensures that the running disparity is negative. Each ordered set in
the gap between frames has an overall running disparity of neutral
so that the running disparity at the end of each word remains
negative.
If the encoder sends a negative disparity encoded character when
the running disparity is negative, or a positive encoded character
when the running disparity is positive, a running disparity error
results. This error typically introduces an invalid character into
the loop.
Ideally, all the data in the loop are valid data characters, all
the control signals are valid ordered sets, there are no running
disparity errors, data is properly formatted into data frames, and
only ordered sets are present between data frames. However, errors
are sometimes introduced into loops for a variety of reasons, such
as when devices are inserted into the loop, bad cables are used, or
when a device does not comply with FC-AL protocols. These errors
can create invalid characters and hence invalid transmission words
inside of data frames. Invalid transmission words occur when: a
word, either a data word or an ordered set, includes an invalid
character; an ordered set does not have the correct beginning
running disparity; or, a word includes a misaligned special
character.
The conventional solution upon receiving an invalid transmission
word is to replace the invalid character in the invalid tranission
word with a valid transmission character. This replacement
typically occurs when the invalid word is decoded. The decoder
generates a valid word by replacing the invalid character in the
received word with a pseudo-random valid character. Hence, this
replacement simply "hides" an error in a seemingly valid word. In
addition, this replacement does not correct for an invalid
transmission word caused by invalid special character alignment.
Because these errors remain uncorrected, they are also in effect
hidden. Thus, data frames which include hidden errors can propagate
throughout the loop. The downstream ports do not have any
indication that the frame was received in error. When the seemingly
valid word is later encoded at a downstream hub port, the hidden
error is included in the encoded word, further compounding the
error. Because of these hidden errors, the destination node needs
to check the CRC (i.e., cyclical redundancy checking) code for each
frame to ensure that the frame does not include such hidden
errors.
The inventor has determined that it would be desirable to provide
apparatus and methods for clearly identifying frames which are
received in error and avoiding the propagation of data frames
including hidden errors.
SUMMARY
The invention provides methods and apparatus for implementing a
technique for sanitizing data frames in a network loop. In a
preferred implementation, a port for connecting a node to a network
loop includes a detect element, where the detect element monitors
data from the node and sets an error flag when invalid data is
received at the port; a frame termination generator, which
generates frame termination primitives; a buffer data generator,
which generates buffer data; a switching element having a control
input, an output, and a plurality of data inputs, where each of an
output of the node, the upstream node, the frame termination
generator, and the buffer data generator is connected to a
corresponding data input; and a control element connected to the
detect element and the control input of the switching element,
where the control element selects, according to the error flag, one
of the data inputs of the switching element to connect to the
output of the switching element to be output by the port to a
downstream node, and the control element terminates a current data
frame by selecting the data input corresponding to the frame
termination generator when the error flag indicates the current
data frame includes invalid data.
In an FC-AL implementation, a hub port for connecting a node to a
network loop includes a node port input, connected to an output of
the node; a detection circuit connected to the node port input,
where the ordered set detection circuit monitors data from the
node, and sets an error flag when an invalid character is received
at the hub port from the node and sets an interframe flag when an
ordered set which is not an end of frame ordered set is received at
the hub port from the node; an end of frame generator, which
generates end of frame abort ordered sets; a current fill word
generator, which generates current fill word ordered sets; a hub
port output; a hub port input; a multiplexor having a multiplexor
control input, a multiplexor output, and a plurality of multiplexor
inputs, where the multiplexor output is connected to the hub port
output and each of the node port input, the hub port input, the end
of frame generator, and the current fill word generator is
connected to a corresponding multiplexor input; and an output
control circuit connected to the detection circuit and the
multiplexor control input, where the output control circuit
controls which multiplexor input is connected to the multiplexor
output according to the error flag and the interframe flag.
In another implementation, node data is received from a node. When
the node data is invalid data, a frame termination primitive is
transmitted to a downstream node. After transmitting the frame
termination primitive, buffer data is transmitted to the downstream
node until a data frame including the invalid data from the node
ends. The node can be in a network loop, such as an FC-AL. In an
FC-AL implementation, the frame termination primitive is an end of
frame abort ordered set, and the buffer data is a current fill
word
The technique of the present invention provides several advantages.
A data frame which contained an error is positively identified as
the frame flows through the loop. The received invalid transmission
word does not cause subsequent errors to be logged unnecessarily by
downstream node ports and hub ports. When the first detected
invalid transmission word in a frame is in fact the first in a
series of invalid transmission words in the frame, all of the
following invalid words are replaced by fill words.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a prior art loop of directly interconnected node
ports.
FIG. 2 shows a prior art loop including a hub.
FIG. 3A shows a block diagram of a hub port according to the
invention.
FIG. 3B shows a block diagram of a sanitization component according
to the invention.
FIG. 4 is a flow chart of a process of sanitizing a data frame.
FIG. 5A shows a datastream received by a hub port.
FIG. 5B shows a sanitized datastream output by a hub port of a
preferred implementation.
DETAILED DESCRIPTION
The invention provides apparatus and methods for sanitizing data
frames in a network loop. The invention is explained below in the
context of a Fibre Channel Arbitrated Loop ("FC-AL") network as an
illustration of a preferred implementation. However, the invention
may have applicability to networks with similar characteristics to
FC-AL networks.
In a preferred implementation, each hub port of a hub in a network
loop connects an attached node port to the loop (recall FIG. 2).
Not all hub ports are necessarily attached to node ports at all
times. Each hub port includes components to detect invalid data,
network primitives, and frame termination primitives. Using these
detection components, a hub port monitors the datastream from the
node port connected to the hub port. The hub port detects any
invalid words in a data frame received from the connected node
port. The hub port replaces the first invalid word in the frame
with a frame termination primitive. The hub port replaces the
remaining words in the frame with buffer data, including the frame
termination primitive at the end of the frame. In an FC-AL
implementation, the invalid word is replaced with an EOFA ordered
set and the remainder of the words in the frame are replaced with
current fill words. After the frame ends, the hub port returns to
passing the data from the node port to the downstream hub port.
By replacing an invalid word with a frame termination primitive, a
frame including an invalid word is terminated and the invalid word
is not propagated throughout the loop. A data frame which contained
an error is positively identified as the frame flows through the
loop. The received invalid transmission word does not cause
subsequent errors to be logged by downstream node ports and hub
ports. In addition, when the first detected invalid transmission
word in a frame is in fact the first in a series of invalid
transmission words in the frame, all of the following invalid words
are replaced by buffer data.
FIG. 3A shows a hub port 300 according to a preferred
implementation. Hub port 300 includes an incoming internal hub link
302 connected to a transmit circuit 304. Incoming internal hub link
302 carries data from an upstream hub port (not shown) to hub port
300 and into transmit circuit 304. Transmit circuit 304 transmits
the data to node port 308 on a data channel 306 in a form usable to
node port 308. Node port 308 is a connection to a node or loop
segment (not shown). In an FC-AL implementation, transmit circuit
304 preferably encodes (preferably using 8B/10B encoding) and
serializes the data before transmitting the data to node port 308.
Transmit circuit 304 encodes the data to maintain correct running
disparity.
Node port 308 transmits data from the node back to hub port 300 on
a data channel 310. Data channel 310 is connected to a receive
circuit 312. In an FC-AL implementation, receive circuit 312
preferably deserializes and decodes the data from node port 308,
preferably using 10B/8B decoding. Receive circuit 312 includes a
detect circuit 314 and an output control circuit 316. Detect
circuit 314 can also be connected to incoming internal hub link
302. Detect circuit 314 monitors the content of the datastream from
node port 308 and sends flags to output control circuit 316,
described in more detail below. In an alternative implementation,
instead of responding to separate flags generated by detect circuit
314, control circuit 316 directly monitors the datastream to be
output by receive circuit 312. Alternatively, detect circuit 314
and control circuit 316 are combined into a single component.
A switching device such as a multiplexor 318 controls the output of
hub port 300 in response to control signals from output control
circuit 316. Receive circuit 312 sends data from node port 308 to a
first data input A of multiplexor 318. Incoming internal hub link
302 is connected to a second data input B of multiplexor 318. A
frame termination generator 320 is connected to a third data input
C of multiplexor 318. Frame termination generator 320 preferably
generates frame termination primitives. In an FC-AL implementation,
frame termination generator 320 preferably generates EOFA ordered
sets. As noted above, an EOFA ordered set is a special type of EOF
ordered set indicating an abort of the current frame. A buffer data
generator 322 is connected to a fourth data input D of multiplexor
318. Buffer data generator 322 preferably generates buffer data. In
an FC-AL implementation, buffer data generator 322 preferably
generates current fill words according to FC-AL protocols. In one
implementation, buffer data generator 322 generates a current fill
word which is the same as the last fill word received by the hub
port from the node port before the current frame began.
An output of multiplexor 318 is connected to an outgoing internal
hub link 324. Output control circuit 316 is connected to a control
input of multiplexor 318 to select the data input of multiplexor
318 to connect to outgoing internal hub link 324. Outgoing internal
hub link 324 sends data to a downstream hub port (not shown) in the
loop.
In operation, when hub port 300 is in bypass mode, such as when a
node is not connected to hub port 300 or the node has failed,
output control circuit 316 causes data input B to be connected to
outgoing internal hub link 324. When hub port 300 is not in bypass
mode, output control circuit 316 causes data input A to be
connected to outgoing internal hub link 324.
FIG. 3B shows another implementation which does not include a
connection to an upstream node port. The components shown in FIG.
3B operate similarly to those described above with respect to FIG.
3A. A sanitization component 350 receives data from a node port
358, processes and outputs data on outgoing link 374 as described
above. The sanitization component 350 can be positioned in a hub or
between the node port 358 and the device to which the node port 358
is connected, such as a hub or another node port.
FIG. 4 shows a process 400 of sanitizing data from node port 308.
Hub port 300 examines the datastream from the upstream node (step
405). Detect circuit 314 checks each word in the datastream. When
detect circuit 314 detects an invalid transmission word in a data
frame, indicated by an invalid character, detect circuit 314 sets
an error flag (step 410). The error flag indicates to output
control circuit 316 that the current word in the datastream from
node port 308 is invalid. In response, output control circuit 316
causes multiplexor 318 to connect data input C to outgoing internal
hub link 324 (step 415), such that the invalid data from node port
308 is replaced by a frame termination primitive from frame
termination generator 320. As a result, the inserted frame
termination primitive terminates the current frame. After one frame
termination primitive has been inserted into the datastream sent to
the downstream hub port, output control circuit 316 causes
multiplexor 318 to connect data input D to outgoing internal hub
link 324, such that buffer data from buffer data generator 322 is
inserted into the datastream and sent to the downstream hub port
(step 420). Detect circuit continues to monitor the datastream from
node port 308 to determine the end of the current frame. When
detect circuit 314 detects a primitive which is not a frame
termination primitive, detect circuit 314 sets an interframe flag
The interframe flag indicates to output control circuit 316 that
the current frame in the datastream from node port 308 has ended.
In response, output control circuit 316 causes multiplexor 318 to
connect data input A to outgoing internal hub link 324 (step 425),
such that data from node port 308 is transmitted to the downstream
hub port.
FIGS. 5A and 5B illustrate the change in an FC-AL datastream caused
by a hub port according to the invention. FIG. 5A shows an FC-AL
datastream 500 received from a node port including an invalid
transmission word 505. The received datastream 500 sequentially
includes a fill word 510, an SOF ordered set 515, zero or more data
words 520, invalid transmission word 505, zero or more data words
525, an EOF ordered set 530, and an ordered set 535. FIG. 5B shows
a datastream 550 output by the hub port in response to receiving
the datastream 500 shown in FIG. 5A. The hub port outputs without
change fill word 510, SOF 515, and data words 520 as received by
the hub port before invalid transmission word 505. The hub port
replaces invalid transmission word 505 with an EOFA ordered set
555, aborting the current frame. The hub port replaces data words
525 and EOF 530 with current fill words 560. Current fill words 560
are preferably the same fill word as fill word 510 which
immediately preceded the current frame. The hub port outputs
without change ordered set 535 which followed the end of the
frame.
The sanitization process described above can be implemented in
various alternative ways. In one alternative implementation, the
sanitization process occurs in the node itself, rather than in a
hub port. Such a node can be connected directly to other nodes. The
node connection circuits can alter the datastream output by the
node, again using the techniques described above. In another
implementation, nodes are directly interconnected and the
sanitization process is carried out by a component introduced into
a connection or link between nodes. A separate sanitization
component can be introduced between each pair of neighboring nodes
in a loop of nodes. In another implementation, a centralized
sanitization component can be connected to each of the nodes
similar to a hub.
Various implementations of the invention have been described.
However, variations which fall within the scope of the following
claims are within the scope of the present invention. For example,
the detect circuit and the output control circuit may be positioned
outside the receive circuit of a hub port. Alternatively, the
switching device (e.g., multiplexor 318 in FIG.3A) may be a
cross-point switch. In another implementation, the technique can be
implemented in programmable hardware or software. Accordingly, the
present invention is not limited to the implementations described
above but only by the scope of the following claims.
* * * * *
References