CSMA/CD is used to implement flow control in a full-duplex ethernet network in a lossless fashion. Uniquely identifiable flow control transmit on/off ("XON/XOFF") messages are transmitted, preferably during IPG, by a receiving station about to be congested to the transmitting station whose data output is to be controlled. The transmitting station physical layer receives and decodes these messages. If XOFF is recognized, the transmitting station continuously asserts CRS to its MAC layer at the MII, regardless of the prior CRS current state. CRS is continuously asserted until the receiving station transmits an XON flow control signal, indicating its ability to accept further data. During CRS assertion, the transmitting station defers transmission, e.g., is flow controlled. The MAC layer is slightly modified (but is still backward compatible with half-duplex networks) to provide separate transmit deferral receive data frame mechanisms using separate and independent input status signals, namely CRS and RX_DV. CRS provides a carrierSense signal used for deferral within the MAC transmit process, and RX_DV provides a receive_carrierSense signal that frames data within the MAC receive process. As long as CRS remains asserted, the transmitting station defers transmission, thereby implementing flow control. In addition to slight MAC layer modification, the present invention slightly modified the physical layer, MII interface and reconciliation sublayer.
|
0. 22. A method for providing full duplex flow control in a manner operable with an IEEE 802.3 standard, comprising:
at a transmitting endstation, receiving a first flow control signal from a destination endstation, wherein the first flow control signal is compliant with the IEEE 802.3 standard; and responsive to receiving the first flow control signal, delaying transmission for a predetermined period of time measured by a timer managed by a medium access control layer of the transmitting endstation.
0. 20. A method for providing full duplex flow control in a full duplex ethernet network, comprising:
receiving a flow control signal at a source station; responsive to receiving the flow control signal, starting a timer having an expiration time, wherein said timer is implemented in a medium access control layer of said source station; and delaying transmission from said source station until at least the expiration time; wherein said timer is a timer other than a back-off timer applied after a collision.
0. 24. A method for providing full duplex flow control in a manner operable with an IEEE 802.3 standard, comprising:
at a transmitting endstation, deferring transmission during a period of time measured by a timer maintained by a medium access control layer of the transmitting endstation; receiving a flow control signal from a destination endstation, wherein the flow control signal is compliant with the IEEE 802.3 standard; and responsive to receiving the flow control signal, resuming transmission from the transmitting endstation.
0. 26. A flow control method for use with a full duplex ethernet network that includes at least a source station coupled by a medium to a destination station for transmission of signals therebetween, comprising:
receiving a pause command from a destination station at a source station; and halting the transmission of data from the source station to the destination station until one of: an expiration of a given time measured by a medium access control layer of the source station; and receipt of a resume command from the destination station. 0. 25. A flow control method for use with a full duplex ethernet network that includes at least a source endstation coupled by a medium to a destination endstation for transmission of signals therebetween, comprising:
establishing a communication connection between the source endstation and the destination endstation for the purpose of exchanging data; upon receipt of a transmit off message at the source endstation from the destination endstation, pausing the transmission of data from the source endstation; and resuming the transmission of data from the source endstation upon expiration of a timer maintained in a medium access control (MAC) layer of the source endstation.
0. 28. A method of performing flow control between a first communication endstation and a second communication endstation, comprising:
establishing a communication connection between a first endstation and a second endstation; receiving a first flow control signal at the first endstation from the second endstation; in response to said first flow control signal, asserting a carrier sense (CRS) signal toward a medium access control (MAC) layer in the first endstation to defer transmission from the first endstation to the second endstation; and de-asserting said CRS signal in response to one of: a second flow control signal from the second endstation; and expiration of a timer initiated in response to said first flow control signal. 0. 29. A method of applying flow control between endstation in a communication network, comprising:
establishing a communication connection between a first endstation and a second endstation in a communication network in order to exchange data; transmitting one or more communication units from the first endstation to the second endstation; receiving at the first endstation a first flow control signal from the second endstation; initiating, in a medium access control (MAC) layer of the first endstation, a delay timer; and delaying transmission of a next communication unit from the first endstation to the second endstation until one of: said delay timer expires; and a second flow control signal countermanding said first flow control signal is received at the first endstation from the second endstation. 1. A flow control method for use with a full-duplex ethernet network that includes at least a first station endstation coupled by a medium to a second station endstation for transmission of signals therebetween, each station endstation definable as including at least a physical layer and a reconciliation sublayer and a media independent interface (MII) therebetween, and a media access control layer, the method including the following steps:
(a) when resources of said second station endstation approach a threshold level of congestion, causing said second station endstation to periodically transmit a first flow control (XOFF) signal over said medium to said first station endstation, and causing said second station endstation to periodically transmit a second flow control (XON) signal otherwise over said medium to said first station endstation, said XOFF signal and said XON signal being distinguishable from data signals transmittable over said medium; (b) upon receipt of a said XOFF flow control signal, causing said first station endstation to continuously assert a carrier sense (CRS) signal to the media access control layer of said first endstation until receipt by said first station endstation of a control signal commanding de-assertion of said CRS flow control signal; wherein assertion of said CRS continues for a time period not exceeding receipt by said first station endstation of a said XON signal from said second station endstation; wherein during assertion of said CRS flow control signal, said first station endstation is flow controlled.
2. The method of
3. The method of
4. The method of
said MII interface provides data transmission paths including transmit data (TXD<3:0>), transmit clock (TX_CLK), transmit enable (TX_EN), and transmit error (TX_ER), and provides reception paths including receive data (RXD<3:0>), receive clock (RX_CLK), receive data valid (RX_DV), and receive error (RX_ER), and provides asynchronous media status signals including carrier sense (CRS) and collision (COL), and further provides a management interface for control and status gathering including management data clock (MDC) and management data input/output (MDIO); said TX_CLK is continuously active, said RX CLK is continuously active during reception by said second station endstation of data from said first station endstation, and during an inter-packet gap (IPG); and transmission and reception of data by a said station endstation is uninterrupted with within a protocol data unit (PDU).
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
17. The method of
18. The method of
19. The method of
0. 21. The method of
0. 23. The method of
responsive to receiving a second flow control signal compliant with the IEEE 802.3 standard, re-starting transmission.
0. 27. The method of
responsive to receiving a second flow control signal prior to the expiration time, re-starting transmission.
|
This invention relates to networks in general including Ethernet networks, and more specifically to implementing an Ethernet network having full duplex flow control.
A network is a communications facility that permits a number of workstations, computers or other equipment (hereinafter collectively "computer(s)") to communicate with each other. Portions of a network involve hardware and software, for example, the computers or stations (which individually may comprise one or more central processing units, random access and persistent memory), the interface components, the cable or fiber optics used to connect them, as well as software that governs the access to and flow of information over the network. In networks in which data flow is 100 Mbits/sec. ("Mbps") or higher, the transmission medium is often fiber optics. In networks in which a slower data rate is acceptable, e.g., 10 Mbps, the transmission medium may be coaxial cable or, as is often the case for an Ethernet network, twisted wires.
In a network, network architecture defines protocols, message formats and other standards to which the computers and other equipment, and software must adhere. Most network architectures have adopted a model comprising functional layers in which a given layer is responsible for performing a specific set of functions, and for providing a specific set of services. Thus, the services provided by each layer and the interlayer interfaces can define a network architecture. Protocols define the services covered across a layer interface and the rules followed in the processing performed as a part of that service. organizations have proposed models and standards that have been accepted within the networking community. The International Standards Organization ("ISO"), for example, has proposed a seven layer reference model for computer networking that is called the open systems interconnect ("OSI") architecture. Another set of standards has been promulgated by the Institute of Electrical and Electronics Engineers ("IEEE") set of proposed local area network ("LAN") standards known as IEEE Project 802. This model conforms to the seven-layer OSI model, but directly solely to the lowest two OSI layers, namely the physical layer and the data link layer.
The bottommost layer 30 in both the ISO and Project 802 model is a physical layer that is concerned with connections between two machines (e.g., computers 10, 10') to allow transmission of bit streams over a physical transmission medium (e.g., cable 20). Thus, physical layer 30 is concerned with types of cabling, cable plugs, connectors, and the like.
As will be described shortly, the present invention is directed to Ethernet networks adhering to the carrier sense multiple access with collision detection ("CSMA/CD") standard. In the 802 model for CSMA/CD, a reconciliation interface 40 defined by a Media Independent Interface ("MII") standard exists for the reconciliation sublayer 40 interface between physical layer 30 and a media access control ("MAC") sublayer 50B. The existing MII signal set provides independent four bit-wide paths for transmission and reception of data, and includes specific "hooks" for link level data flow control. (As used herein, flow control refers to inhibiting access to a network, or one or more links within the network.)
Interestingly, before adoption of MII, the MAC standard defined a single carrier sense signal ("CRS") from the physical layer to the MAC that the MAC used to describe the state of the transmit and receive medium. This one CRS signal was used by the MAC transmit process to implement deferral of data transmission, and was by the MAC receive process to frame received data. With introduction of MII, this one CRS signal was decoupled into a CRS signal that again went to the MAC transmit process to implement deferral of data transmission, and into a receive data valid ("RX_DV") signal that went to the MAC receive process. Thus, with MII, CRS is used solely by the MAC transmit process.
Under MII, data and delimiters are synchronous to the corresponding clock, and two asynchronous media status signals are provided, namely carrier sense ("CRS"), and collision ("COL"). MII provides a two wire serial management interface for control and status gathering, namely management data clock ("MDC"), and management data input/output ("MDIO"). In the OSI seven-layer model, the layer above the physical layer is a data link layer that is responsible for error-free transmission of data frames between network nodes. A data link control protocol describes operation and interfaces of this layer, which must also shield higher layers in the model from concerns about the physical transmission medium.
But in the 802 model shown in
The MAC sublayer 50B provides services to the overlying LLC sublayer 50A, and manages sharing of the transmission medium among the different stations on the network. A media access management function receives a frame from the data encapsulation function after the necessary control information has been added. Thereafter, media access management is responsible for ensuring physical transmission of the data. The data frame in an Ethernet full-duplex environment has a maximum size of 1,518 bytes.
Several 802 standards exist for MAC sublayer 50B, but only the carrier sense multiple access with collision detection ("CSMA/CD") standard is relevant to the present invention, more specifically the 802.3 standard. The existing 802.3 MAC standard presently contains several mechanisms for performing flow control in a half-duplex environment, including a Deference process, and WatchForCollission and BackOff procedures. CSMA/CD defines data encapsulation/decapsulation and media access management functions performed by MAC sublayer 50B itself, the data encoding/decoding function being performed by underlying physical layer 30.
Physical transmission of the data may be ensured using carrier sensing to defer transmission until the network is clear. In brief, a transmitting station (e.g., computer or user 10) listens or monitors the transmission medium (e.g., cable 20) before transmitting to determine whether another station (e.g., computer or user 10') is currently transmitting a message, e.g., to learn whether the medium is free. Using the services of the physical layer 30, the media access management determines whether the transmission medium (or carrier) is presently being used. If the medium is not being used, media access management passes the data frame to physical layer 30 for transmission. Even after transmission of the frame has begun media access management continues to monitor the carrier. If the carrier is busy, media access management continues monitoring until no other stations are transmitting. Media access management then waits a specified random time to allow the network to clear and thereafter begins transmission.
But other station(s) having messages to send may all listen simultaneously, discern that the transmission medium appears quiet, and begin to transmit messages simultaneously. The result is a collision and garbled messages. If signal collision is detected, receiving stations ignore the garbled transmission, transmitting stations stop transmitting messages immediately and transmit a jamming signal over the medium. Following collision, each transmitting station will attempt to re-transmit after waiting for a random backoff-delay time period for the carrier to clear. Thus, a station transmitting must listen sufficiently long to ensure that collision has not occurred.
In
Transport layer 70 provides data transfer between two stations at an agreed upon level of quality once a connection is established between the stations. Transport layer 70 selects the particular class of service to be used, monitors transmission to ensure maintained service quality, and advises the stations (or users) if quality cannot be maintained.
Session layer 80 provides services that organize and synchronize a dialogue occurring between stations, and manages data exchange between stations. As such, session layer 80 controls when stations can send and receive data, based upon whether they can send and receive concurrently or alternately.
Presentation layer 90 ensures that information is presented to network users meaningfully, and may provide character code translation services, data conversion, data compression and expansion services.
Application layer 100 provides a mechanism for application processes to access system interconnection facilities for information exchange. The application layer provides services used to establish and terminate inter-user connections, and to monitor and manage the interconnected systems and the resources they employ.
Those skilled in the art will appreciate that the network shown in
As such, the CSMA/CD algorithm provides a useful pacing mechanism that will inhibit or defer access of arrival new data into the half-duplex network until the network is adequately prepared. In addition, a so-called backpressure algorithm is also used in half-duplex environments to inhibit a station from sending data into the network by transmitting to that station. Receipt of the transmission causes the would be transmitting station to believe the network is busy, and to defer or inhibit transmission.
By contrast, in full-duplex, there are transmit and a receive communications paths, and one or more stations may transmit and receive simultaneously. The dual communications channel or path may in fact be multiple wires or cables, or a single wire or cable that simultaneously carries transmit and receive signals in both directions, perhaps using frequency division. Full-duplex networks can provide a higher data rate than half-duplex networks, often 100 Mbps, and are often preferred because of the more rapid communication rate.
Unfortunately, in going to a full-duplex environment, the IEEE 802.3 CSMA/CD MAC half-duplex mechanisms for collision avoidance and for transmission deferral must be abandoned. In a full-duplex environment, a transmitting station that in a half-duplex network would be subject to flow control is permitted to transmit at the same time a receiving station can transmit. The concept of "collisions" or avoiding collisions is meaningless in a full-duplex environment. Further, since a station desiring to transmit over a full-duplex network does not monitor the medium, half-duplex deferral and backpressure flow control procedures are also useless. Thus, the various half-duplex CSMA/CD data pacing mechanisms cannot be used in full-duplex to control or limit access to the network. However, a full-duplex network nonetheless needs some mechanism to inhibit a station from transmitting.
The need for flow control arises because a full-duplex network contains resources that are finite. Networks include devices such as switches, routers, bridges, etc. that connect two network segments together and move data between the segments. These devices typically include buffer memory to accommodate data rate adaptation between links carrying signals at different rates, e.g., perhaps 100 Mbps incoming data presented to a network link capable of handling only 10 Mbps, or to otherwise function when other resources are occupied. While such devices can temporarily store rapidly arriving data during a slower read-out, device memories can readily fill and congest unless some mechanism can halt or slow the entry of new data into the network, or at least the link including the congested device. (While half-duplex networks can also have links with different data rates, the problem is aggravated in full-duplex networks in which considerably more data flows, especially at 100 Mbps.)
Unfortunately, in the prior art there is no flow control mechanism for full-duplex Ethernet networks that avoid such data congestion and resultant data loss, without sacrificing data throughput. Flow control devices implemented in full-duplex networks at the transport layer are slow and inefficient. Transport layer mechanisms can detect a data congestion condition and slow transmission rates. Unfortunately, data throughput will be slower than the rate associated with the congested device using such flow control mechanisms. Thus, data output from a 10 Mbps device receiving data at 100 Mbps will be substantially less than the 10 Mbps rate associated with the device.
Thus, there is a need for a flow control mechanism for a full-duplex Ethernet network. Preferably such mechanism should provide CSMA/CD collision and deferral access to a full-duplex Ethernet network as a flow control method, while maintaining back compatibility with existing networks and standards. Such method should sense when a receiving station or device is about to be (or is) congested with data and should temporarily inhibit a transmitting station or device from transmitting new data until the present data can be handled.
To be compatible with existing networks and equipment and software, such flow control should conform to IEEE 802 standards. Further, to promote its wide use, such flow control mechanism should involve only minor modifications to such standards. Such mechanism should control flow such that the data rate from a slow device coupled to a fast device is the data rate capability of the slow device. Further, while flow control should include a "refresh" mode in which flow control signals are sent relatively often, an option for a time-out mechanism should be provided to deactivate flow control in the event a re-activate flow control signal is somehow not received by a transmitting station.
Further, there is a need in a full-duplex Ethernet network for a MAC layer whose transmitter process and receiver process are each responsive to separately and independently generated signals.
The present invention discloses such a flow control mechanism and such a MAC layer for a full-duplex Ethernet network.
The present invention utilizes CSMA/CD to implement flow control in a full-duplex Ethernet network in a lossless fashion, without reliance upon a single signal to describe the state of both the transmitting and receiving process of a station that is to be flow controlled. Flow control transmit on/off ("XON/XOFF") messages are transmitted by a receiving station that is about to be congested, across the physical layer to the transmitting station whose data output is to be controlled. The XON/XOFF signals have a format distinguishable from normal data and preferably are transmitted in the inter-packet gap ("IPG") between data frames as frequently as every IPG. If the receiving station resources can receive at least a frame of additional data, XON is transmitted during the IPG, otherwise XOFF is transmitted. Alternatively, rather than send (e.g., "refresh") XON/XOFF after every single frame, a timer within the transmitting station may be started by receipt of an XOFF, and after expiration of a given time, transmission can re-start even if no XON was received (perhaps due to data corruption). The timer mechanism may be used with a per/IPG refresh control signal to ensure reestablishment of transmission should an XON control signal fail to be received by the flow controlled transmitting station.
At the physical layer of the transmitting station at the other end of the medium, the uniquely formatted flow control messages are received, decoded, and distinguished from each other and from data. If XOFF is recognized, the transmitting station asserts its carrier sense signal (CRS) to its MAC layer at the MII.
The present invention slightly modifies the MAC layer to provide separate and independent transmit deferral receive data frame mechanisms using separate and independent input status signals, namely CRS and RX_DV. Within the slightly modified MAC layer, the CRS signal is used to provide a carrier sense signal that is used to perform a deferral function within the MAC transmit process. Further, when RX_DV is asserted on the MII, MAC receive processing logic accepts and process data from the physical layer, and then passes the processed data to the logical link control layer. However, the modified MAC is fully back-compatible with half-duplex networks.
When threatened congestion is imminent, a receiving station sends XOFF to the physical layer of the transmitting station. Upon receipt of XOFF, the transmitting physical layer asserts CRS at the MII (or other interface), and continues to assert this status signal until XON is received. As long as CRS is asserted, the transmitting MAC will defer data transmission, and is thus flow controlled or inhibited from transmitting onto the network.
When receiving station resources permit accepting additional data, its physical layer emits XON over the medium to the transmitting station, preferably during the IPG during its own data transmission. (The fact that the receiving station may be congested does not affect its ability to transmit in the full-duplex environment.) The originally transmitting station receives and recognized XON, and de-asserts CRS, which permits its MAC to transit.
Preferably the receiving station sends an XOFF signal when it is within a frame or so of being congested. At the transmitting end, if an XOFF is received during frame transmission, XOFF does not take effect until that frame transmission is complete. Thus flow control is lossless, with ± one frame granularity.
Other features and advantages of the invention will appear from the following description in which the preferred embodiments have been set forth in detail, in conjunction with the accompanying drawings.
It will be appreciated that layers from and including the logical link control layer 50A and upward are unchanged, as are the computers 10, 10' and the interconnecting medium 20. Because only the MAC sublayer 50B', the reconciliation sublayer 40', the MII interface MII' and physical layer 30' are slightly changed, the network is fully IEEE 802 compatible, and is also compatible with the newly promulgated IEEE 802.3u standard. As a result, link level flow control is readily achieved without violating system capability with existing standards, including the 802.3 standard.
According to the present invention, a unit of data terminating equipment ("DTE"), e.g., computer 10, physical layer 30', interface MII', reconciliation sublayer 40', and MAC layer 50B sends an XON or XOFF message to flow control the DTE at the remote end of a link. With reference to
Using the present invention, a DTE may transmit as long as it has not received an XOFF message from the DTE at the far end of the link. Upon receiving such an XOFF message, a DTE must first receive an XON message before it is allowed to transmit. In
A DTE may initiate transmission of an XON or XOFF message via the following primitive:
As used herein, the term "primitive" refers to a formal definition of a service interface provided by a model layer. For example, layers in communication with processes are defined by the services the layers provide to other layers and the individual specification of such services are primitives.
A DTE may receive an XON or XOFF message via the following primitive:
A DTE may recover from a lost XON message via the following primitive:
XON and XOFF messages may be transmitted only during the IPG, or the first half of the preamble.
In the conventional MII signal set independent four bit-wide paths for transmission and reception of data are present, as are specific "hooks" for link level data flow control. The four transmission paths are transmit data or TXD<3:0>, transmit clock or TX_CLK, transmit enable or TX_EN, and transmit error or TX_ER. TX_CLK is generated by the physical layer and is used by the MAC as a data reference clock. TX_CLK runs at 25% of the bit rate on the transmission media, e.g., 25 MHz for a 100 Mbps transmission rate and is continuously active. TX_EN is MAC-provided, and frames or delimits data to be transmitted by the physical layer. TX_EN is asserted into the active state ("1") at the start of a frame transmission, and remains active until de-assertion to logical "0" at end of frame transition. The transmit data TXD is actual frame data from the MAC to the physical layer. The TXD<3:0>nomenclature denotes that the transmit data is a four bit wide bundle. TX_ER is a signal from the MAC to the physical layer advising that contents of the data bundle are not data code, e.g., perhaps corrupted data or XON, XOFF.
The four reception paths are receive data or RXD<3:0>, receive clock or RX_CLK, receive data valid or RX_DV, and receive error or RX_ER. As noted, TX_CLK is continuously active, whereas RX_CLK is continuous active during data reception and an inter-packet gap3A ("IPG"). Within a protocol data unit ("PDU"), data transmission and reception is uninterrupted. As used herein, the notation TXD<3.0> or RXD<3,0> denotes that these signals are a four-bit wide bundle.
The production and handling of messages for the network of
An XON message is produced by the RS 40' in response to the RS_FlowControl.request(START) primitive. The XON message is conveyed on the MII' signals as follows:
These XON and XOFF messages are conveyed in one TX_CLK period.
FIG. 3C and
The physical layer 30' sends an XOFF message to the RS 40' when the physical layer received an XOFF from the remote end of the link. The XOFF message is conveyed on the MII' signals as follows:
The RS generates FS_FlowControl.indicate(STOP) when it receives an XOFF message.
The physical layer sends an XON message to the RS when the physical layer receives an XON from the remote end of the link. The XON message is conveyed on the MII' signals as follows:
The RS generates RS_FlowControl.indicate(START) when it receives an XON message. The XON and XOFF messages are conveyed in one RX_CLK period.
In a preferred "refresh mode" embodiment, XON or XOR is transmitted by a receiving station preferably during each IPG, although these flow control signals could instead be transmitted with a repetition less than once per IPG. In an alternative "time-out" embodiment, a timer, shown in FIG. 2 as 110, associated with the MAC layer times an interval AT commencing with receipt of an XOFF flow control signal. If after interval ΔT an XON signal has not been received (perhaps due to corruption or other error), the transmitting station's MAC issues a RELEASE signal ("1100" in
The RELEASE message is generated by the transmitting station's reconciliation sublayer 40' in response to the RS_FlowControl_Release.request() primitive. The RELEASE message is conveyed on the MII' signals as follows:
This RELEASE message is conveyed in one TX_CLK period.
The RS 40' must ensure that flow control messages are only sent during the IPG or during the first nibble of the preamble. Messages may be sent when the following conditions are met:
In
The present invention does not require changes to the MAC transmitting process to emit flow control messages, but instead assumes a parallel process logically separate from the MAC transmitting process. While this assumption promotes protocol compatibility, there is no correlation between sequencing of the MAC transmission processes and the state of the process that emits the flow control messages. Stated differently, the two processes neither know nor can predict each other's actions for the next TX_CLK cycle. Thus, the MAC could start transmitting a data packet when the process wishing to signal flow control begins to send XON, XOFF, or RELEASE. To avoid interference, the flow control generating process can monitor the state of TX_EN and if TX_EN is "0", or if it was de-asserted to "0" on the previous TX_CLK cycle, then a flow control message may be sent. But if TX_EN is asserted and was asserted on the previous TX_CLK cycle, then no flow control message can be sent. Thus, the process sending flow control messages must monitor TX_EN and may only send flow control messages when TX_EN is de-asserted, or when it was de-asserted during the previous TX_CLK signal.
TX_EN is generated by the MAC to the physical layer at the MII to indicate that a data frame is being transmitted, and the CRS and COL are signals from the physical layer to the MAC. CRS is asserted by the physical layer in response to the transmission. CRS remains asserted during transmission, and de-asserts after TX_EN de-asserts. The MAC defer process, a portion of a state machine associated with the MAC layer, begins time the IPG with the de-assertion of CRS. COL remains inactive or "0" at all times for a full-duplex environment.
By contrast, if
It is important to appreciate that while XOFF was received from a remote (congested) station perhaps at the end of a link, the RELEASE signal is received from the near end of the link, namely from a station management entity ("STA") 150 in the transmitting station (see FIG. 4).
Turning now to
In
For example, if a DTE STA 150 detects imminent resource congestion and wishes to emit a flow control signal (e.g., XOFF), the STA uses a RS STOP service primitive. The STA sends this primitive to RS 40', which encodes the primitive in MII'. The MII' then causes the associated physical layer 30' to emit the appropriate control flow signal, here XOFF.
It is important to appreciate from
RS_FLOW_CONTROL_RELEASE.request | (input) | |
RS_FLOW_CONTROL.request | (input) | |
PLS_RX_CARRIER.indicate | (output) | |
RS_FLOW_CONTROL.indicate | (output) | |
These new reconciliation service layer primitives contain processes, only the most relevant of which are depicted in FIG. 5. The various service primitives shown on the left side of
As shown in
In the preferred embodiment, separate CRS and RX_DV signals at MII' are provided to RS 40', which outputs among the various service primitives shown in
For purposes of the present invention, it suffices that separate and independently generated signals give rise to carrierSense and receive_carrierSense within the modified MAC layer 50B'. Stated differently, it need not be required that CRS and RX_DV give rises to these signals. Regardless of how the separate and independently generated signals are created, in response the modified MAC layer 50B' performs separate deferral and data framing procedures similarly to what is accomplished for a half-duplex network using a MAC layer according to the prior art. Further, a modified MAC layer 50B' is fully backwards compatible with prior art networks that use the same CRS and RX_DV signals. The present invention slightly and semantically modified the 802.3 MAC standard as follows:
The interface to the physical layer is as follows, wherein bold type indicates newly added features, e.g., receive_carrierSense is a newly defined variable:
var | |
receive_carrierSense: Boolean;{indicates incoming bits} | |
carrierSense: Boolean; {indicates transmission deferral} | |
transmitting: Boolean; {indicates outgoing bits} | |
wasTransmitting: Boolean; {indicates transmission in progress} | |
collisionDetect: Boolean; {Indicates medium contention} | |
procedure TransmitBit (bitparam: Bit);{Transmits one bit} | |
function ReceiveBit: Bit; {Receives one bit} | |
procedure Wait (bitTimes:integer); {Waits for indicate number | |
of bit-times} | |
State Variable Initialization according to the present invention | |
may be implemented as follows: | |
Procedure Initialize; | |
begin | |
frameWaiting := false; | |
deferring := false; | |
newCollision := false; | |
transmitting := false; | |
receiving := false; | |
while carrierSense or receive_carrierSense do nothing; | |
{Start execution of all processes} | |
end; {Initialize} | |
Frame Reception preferably is implemented as follows:
process BitReceiver; | |
var b: Bit; | |
begin | |
cycle {outer loop} | |
while receiving do | |
begin {inner loop} | |
if currentReceiveBit = 1 then | |
PhysicalSignalDecap; {Strip off the preamble and | |
start frame delimiter} | |
b := ReceiveBit; {Get next bit from physical Media | |
Access } | |
if receive_carrierSense then | |
begin {append bit to frame} | |
incomingFrame{currentReceiveBit := b; | |
currentReceiveBit := currentReceiveBit + 1 | |
end {append bit to frame} | |
receiving := receive_carrierSense | |
end {inner loop} | |
frameSize := currentReceiveBit - 1 | |
end {outer loop} | |
end; {BitReceiver} | |
The present invention makes slight modification to the reconciliation sublayer as follows:
As shown in
RS_FLOW_CONTROL.request (REQUEST_TYPE) is generated by the STA to the reconciliation sublayer, and the REQUEST_TYPE parameter can take one of two values: STOP and START. Upon receipt of this primitive, the reconciliation sublayer maps the STOP and START values to messages on the MII' as follows:
In the present invention, RS_FLOW_CONTROL.indicate (INDICATE_TYPE) is generated by the reconciliation sublayer to the STA. The INDICATE_TYPE parameter can take one of two values:
The reconciliation sublayer generates this primitive by decoding messages from MII and mapping them as follows:
The RS_FLOW_CONTROL_RELEASE.request() primitive is generated by the STA to the reconciliation sublayer and takes no parameters. Upon receipt of this primitive, the reconciliation sublayer generates a RELEASE message on the MII'.
To recapitulate, it will be appreciated from all of the foregoing, that the present invention implements flow control in a full-duplex Ethernet environment, while preserving backward compatibility with existing environments and hardware. Flow control is provided using a slightly modified MII' signal set, with minor changes to the MAC layer 50B', with minor additions to the reconciliation sublayer 40' and with minor changes to the physical layer 30'.
The present invention provides deferral and data framing preferably using two independently generated signals. The resultant flow control is lossless and permits a reduced data rate equal to the date rate of the slower resource whose imminent congestion gives rise to the flow control. In short, link level flow control for full-duplex Ethernet networks may be implemented in a simple and cost-effective fashion, while maintaining backward compatibility.
Modifications and variations may be made to the disclosed embodiments without departing from the subject and spirit of the invention as defined by the following claims.
Muller, Shimon, Frazier, Howard M.
Patent | Priority | Assignee | Title |
7072349, | Oct 02 2001 | STMicroelectronics, Inc | Ethernet device and method for extending ethernet FIFO buffer |
7269139, | Jun 27 2001 | Cisco Technology, Inc. | Method and apparatus for an adaptive rate control mechanism reactive to flow control messages in a packet switching system |
7304952, | May 21 2002 | MACOM CONNECTIVITY SOLUTIONS, LLC | Protocol-mapping network access device with user-provisionable wide area network flow control |
7813348, | Nov 03 2004 | Extreme Networks, Inc. | Methods, systems, and computer program products for killing prioritized packets using time-to-live values to prevent head-of-line blocking |
8072887, | Feb 07 2005 | Extreme Networks, Inc.; Extreme Networks, Inc | Methods, systems, and computer program products for controlling enqueuing of packets in an aggregated queue including a plurality of virtual queues using backpressure messages from downstream queues |
8089984, | Jun 23 2009 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for network communications via a configurable multi-use ethernet PHY |
8166156, | Nov 30 2006 | WSOU Investments, LLC | Failure differentiation and recovery in distributed systems |
8804578, | Jun 29 2009 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for jitter and frame balance and/or rebalance for EEE refresh cycles |
8913502, | Jun 23 2009 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for network communications via a configurable multi-use Ethernet PHY |
9413551, | Jun 23 2009 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for network communications via a configurable multi-use Ethernet PHY |
Patent | Priority | Assignee | Title |
4926415, | Feb 04 1987 | Kabushiki Kaisha Toshiba | Local area network system for efficiently transferring messages of different sizes |
5007051, | Sep 30 1987 | Hewlett-Packard Company | Link layer protocol and apparatus for data communication |
5121382, | Oct 11 1989 | ENTERASYS NETWORKS, INC | Station-to-station full duplex communication in a communications network |
5140679, | Sep 14 1988 | National Semiconductor Corporation | Universal asynchronous receiver/transmitter |
5313582, | Apr 30 1991 | Standard Microsystems Corporation | Method and apparatus for buffering data within stations of a communication network |
5381413, | Dec 28 1992 | CONGRESS FINANCIAL CORPORATION NEW ENGLAND , A MASSACHUSETTS CORPORATION | Data throttling system for a communications network |
5404353, | Jun 28 1991 | ENTERASYS NETWORKS, INC | Dynamic defer technique for traffic congestion control in a communication network bridge device |
5418784, | Jun 30 1993 | ENTERASYS NETWORKS, INC | Method and apparatus for use in a network of the ethernet type, to improve fairness by controlling the interpacket gap in the event of channel capture |
5526355, | Jun 30 1993 | ENTERASYS NETWORKS, INC | Method and apparatus for use in a network of the ethernet type, to improve performance by reducing the occurrence of collisions in the event of channel capture |
5541957, | Jun 15 1994 | National Semiconductor Corporation | Apparatus for transmitting and/or receiving data at different data transfer rates especially in applications such as dual-rate ethernet local-area networks |
5577069, | Dec 09 1994 | National Semiconductor Corporation | Signalling method and structure suitable for out-of-band information transfer in communication network |
5673254, | Jun 07 1995 | Advanced Micro Devices Inc | Enhancements to 802.3 media access control and associated signaling schemes for ethernet switching |
5793748, | Jun 21 1994 | NEC Corporation | Priority control method of virtual circuit and a device thereof |
5978359, | Jul 19 1995 | FUJITSU LIMITED, A JAPANESE CORPORATION | Allocated and dynamic switch flow control |
5982776, | Jul 19 1995 | Fujitsu Network Communications, Inc.; Fujitsu Limited | Multipoint-to-point arbitration in a network switch |
6029202, | Nov 06 1995 | Sun Microsystems, Inc. | Full duplex flow control for ethernet networks |
EP310360, | |||
EP333225, | |||
EP404337, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 14 2000 | Sun Microsystems, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Dec 04 2003 | ASPN: Payor Number Assigned. |
Feb 06 2006 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 06 2006 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Mar 22 2006 | RMPN: Payer Number De-assigned. |
Dec 23 2009 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Jan 29 2010 | ASPN: Payor Number Assigned. |
Date | Maintenance Schedule |
Nov 11 2006 | 4 years fee payment window open |
May 11 2007 | 6 months grace period start (w surcharge) |
Nov 11 2007 | patent expiry (for year 4) |
Nov 11 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 11 2010 | 8 years fee payment window open |
May 11 2011 | 6 months grace period start (w surcharge) |
Nov 11 2011 | patent expiry (for year 8) |
Nov 11 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 11 2014 | 12 years fee payment window open |
May 11 2015 | 6 months grace period start (w surcharge) |
Nov 11 2015 | patent expiry (for year 12) |
Nov 11 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |