Duplex mismatch detection

Information

  • Patent Application
  • 20070183349
  • Publication Number
    20070183349
  • Date Filed
    September 19, 2006
    19 years ago
  • Date Published
    August 09, 2007
    18 years ago
Abstract
Embodiments of the present invention provide techniques for both ends of a link suffering from duplex mismatch to correct the duplex mismatch. According to some embodiments, the half-duplex end of the link can detect that the other end of the link is in full-duplex mode by detecting late and/or very late collisions, and can correct the duplex mismatch by changing to full-duplex mode. According to some embodiments, the full-duplex end of the link can detect that the other end of the link is in half-duplex mode by one or more techniques including detecting cyclic redundancy check (CRC) errors and frame fragments, and can correct the duplex mismatch by changing to half-duplex mode.
Description

DESCRIPTION OF DRAWINGS


FIG. 1 shows a communication system comprising a network device capable of detecting and correcting duplex mismatch when in half-duplex mode according to a preferred embodiment of the present invention.



FIG. 2 shows a process for the network device of FIG. 1 according to a preferred embodiment of the present invention.



FIG. 3 shows a communication system comprising a network device capable of detecting and correcting duplex mismatch when in full-duplex mode according to a preferred embodiment of the present invention.



FIG. 4 shows a process for the network device of FIG. 3 according to a preferred embodiment of the present invention.


Claims
  • 1. An apparatus comprising: at least one port to transmit first frames of data in half-duplex mode, and to receive second frames of the data, over a communication channel, wherein the at least one port comprises a collision detect circuit to detect collisions on the communication channel between the first frames of the data and the second frames of the data; anda duplex mismatch circuit to declare a duplex mismatch when the collision detect circuit detects a predetermined number of late collisions involving the first frames of the data, wherein each of the late collisions occurs after a first predetermined amount of the data has been transmitted in the respective first frame of the data; orthe collision detect circuit detects a very late collision involving one of the first frames of the data, wherein the very late collision occurs after a second predetermined amount of the data has been transmitted in the one of the first frames of the data, wherein the second predetermined amount of the data is greater than the first predetermined amount of the data; andwherein the duplex mismatch indicates that a full-duplex mode is used with respect to the second frames of the data.
  • 2. The apparatus of claim 1: wherein at least one of the predetermined amounts of the data is selected according to a size of a collision domain of the communication channel.
  • 3. The apparatus of claim 1: wherein at least one of the predetermined amounts of the data is selected according to multiple of a size of a collision domain of the communication channel.
  • 4. The apparatus of claim 1, wherein the duplex mismatch circuit declares the duplex mismatch by performing at least one action including: setting a flag in a memory circuit or transmitting a message or both.
  • 5. The apparatus of claim 1, wherein the at least one port further comprises: a duplex mode circuit to change the at least one port from half-duplex mode to full-duplex mode when the duplex mismatch circuit declares a duplex mismatch.
  • 6. A network device incorporating the apparatus according to claim 1, wherein the network device is compliant with at least one of a plurality of standards including IEEE standards 802.3, 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.
  • 7. A network device incorporating the apparatus according to claim 1, wherein the network device includes one of: a switch;a router; anda network interface controller.
  • 8. An apparatus comprising: at least one port means for transmitting first frames of data in half-duplex mode, and for receiving second frames of the data, over a communication channel, wherein the at least one port means comprises collision detect means for detecting collisions on the communication channel between the first frames of the data and the second frames of the data; andduplex mismatch means for declaring a duplex mismatch when the collision detect means detects a predetermined number of late collisions involving the first frames of the data, wherein each of the late collisions occurs after a first predetermined amount of the data has been transmitted in the respective first frame of the data; orthe collision detect means detects a very late collision involving one of the first frames of the data, wherein the very late collision occurs after a second predetermined amount of the data has been transmitted in the one of the first frames of the data, wherein the second predetermined amount of the data is greater than the first predetermined amount of the data; andwherein the duplex mismatch indicates that a full-duplex mode is used with respect to the second frames of the data.
  • 9. The apparatus of claim 8: wherein at least one of the predetermined amounts of the data is selected according to a size of a collision domain of the communication channel.
  • 10. The apparatus of claim 8: wherein at least one of the predetermined amounts of the data is selected according to multiple of a size of a collision domain of the communication channel.
  • 11. The apparatus of claim 8, wherein the duplex mismatch means declares the duplex mismatch by performing at least one action including: setting a flag in a memory circuit or transmitting a message or both.
  • 12. The apparatus of claim 8, wherein the at least one port means further comprises: duplex mode means for changing the at least one port means from half-duplex mode to full-duplex mode when the duplex mismatch means declares a duplex mismatch.
  • 13. A network device incorporating the apparatus according to claim 8, wherein the network device is compliant with at least one of a plurality of standards including IEEE standards 802.3, 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.
  • 14. A network device incorporating the apparatus according to claim 8, wherein the network device includes one of: a switch;a router; anda network interface controller.
  • 15. A method comprising: transmitting first frames of data in half-duplex mode, and receiving second frames of the data, over a communication channel;detecting collisions on the communication channel between the first frames of the data and the second frames of the data; anddeclaring a duplex mismatch when a predetermined number of late collisions involving the first frames of the data are detected, wherein each of the late collisions occurs after a first predetermined amount of the data has been transmitted in the respective one of the first frames of the data; ora very late collision involving one of the first frames of the data is detected, wherein the very late collision occurs after a second predetermined amount of the data has been transmitted in the one of the first frames of the data, wherein the second predetermined amount of the data is greater than the first predetermined amount of the data; andwherein the duplex mismatch indicates that a full-duplex mode is used with respect to the second frames of the data.
  • 16. The method of claim 15: wherein at least one of the predetermined amounts of the data is selected according to a size of a collision domain of the communication channel.
  • 17. The method of claim 15: wherein at least one of the predetermined amounts of the data is selected according to multiple of a size of a collision domain of the communication channel.
  • 18. The method of claim 15, wherein declaring the duplex mismatch comprises performing at least one of: setting a flag in a memory circuit andtransmitting a message.
  • 19. The method of claim 15, further comprising: transmitting the first frames of the data in full-duplex mode after declaring a duplex mismatch.
  • 20. A computer program executable on a processor, comprising: instructions for detecting collisions on a communication channel between first frames of data transmitted in half-duplex mode over the communication channel and second frames of the data received over the communication channel; andinstructions for declaring a duplex mismatch when a predetermined number of late collisions involving the first frames of the data are detected, wherein each of the late collisions occurs after a first predetermined amount of the data has been transmitted in the respective one of the first frames of the data; ora very late collision involving one of the first frames of the data is detected, wherein the very late collision occurs after a second predetermined amount of the data has been transmitted in the one of the first frames of the data, wherein the second predetermined amount of the data is greater than the first predetermined amount of the data; andwherein the duplex mismatch indicates that a full-duplex mode is used with respect to the second frames of the data.
  • 21. The computer program of claim 20: wherein at least one of the predetermined amounts of the data is selected according to a size of a collision domain of the communication channel.
  • 22. The computer program of claim 20: wherein at least one of the predetermined amounts of the data is selected according to multiple of a size of a collision domain of the communication channel.
  • 23. The computer program of claim 20, wherein the instructions for declaring the duplex mismatch comprise instructions for performing at least one of: setting a flag in a memory circuit andcausing transmission of a message.
  • 24. An apparatus comprising: at least one port to transmit first frames of data in full-duplex mode, and to receive second frames of the data, over a communication channel, wherein the at least one port comprises one or both of a cyclic redundancy check (CRC) error detect circuit to detect CRC errors in the second frames of the data, anda fragment detect circuit to detect fragments of the second frames of the data; anda duplex mismatch circuit to declare a duplex mismatch when the CRC error detect circuit detects a CRC error in one of the second frames of the data when the at least one port is transmitting one of the first frames of the data, orthe fragment detect circuit detects a fragment of one of the second frames of the data, or both; andwherein the duplex mismatch indicates that a half-duplex mode is used with respect to the second frames of the data.
  • 25. The apparatus of claim 24, wherein the duplex mismatch circuit declares the duplex mismatch by performing at least one action including: setting a flag in a memory circuit or transmitting a message or both.
  • 26. The apparatus of claim 24, wherein the at least one port further comprises: a duplex mode circuit to change the at least one port from full-duplex mode to half-duplex mode when the duplex mismatch circuit declares a duplex mismatch.
  • 27. The apparatus of claim 24, wherein the at least one port further comprises: a collision forcing circuit to cause the at least one port to transmit one of the first frames of the data while receiving a one of the second frames of the data after receiving a predetermined amount of the data in the one of the second frames of the data in response to the duplex mismatch circuit declaring a duplex mismatch
  • 28. The apparatus of claim 27, wherein the at least one port further comprises: a duplex mode circuit to change the at least one port from full-duplex mode to half-duplex mode when the duplex mismatch circuit declares a duplex mismatch after the collision forcing circuit causes the at least one port to transmit the one of the first frames of the data.
  • 29. A network device incorporating the apparatus according to claim 24, wherein the network device is compliant with at least one of a plurality of standards including IEEE standards 802.3, 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.
  • 30. A network device incorporating the apparatus according to claim 24, wherein the network device includes one of: a switch;a router; anda network interface controller.
  • 31. An apparatus comprising: at least one port means for transmitting first frames of data in full-duplex mode, and for receiving second frames of the data, over a communication channel, wherein the at least one port means comprises one or both of cyclic redundancy check (CRC) error detect means for detecting CRC errors in the second frames of the data, andfragment detect means for detecting fragments of the second frames of the data; andduplex mismatch means for declaring a duplex mismatch when the CRC error detect means detects a CRC error in one of the second frames of the data when the at least one port means is transmitting one of the first frames of the data, orthe fragment detect means detects a fragment of one of the second frames of the data, or both; andwherein the duplex mismatch indicates that a half-duplex mode is used with respect to the second frames of the data.
  • 32. The apparatus of claim 31, wherein the duplex mismatch means declares the duplex mismatch by performing at least one action including: setting a flag in a memory circuit or transmitting a message or both.
  • 33. The apparatus of claim 31, wherein the at least one port means further comprises: duplex mode means for changing the at least one port means from full-duplex mode to half-duplex mode when the duplex mismatch means declares a duplex mismatch.
  • 34. The apparatus of claim 31, wherein the at least one port means further comprises: collision forcing means for causing the at least one port means to transmit a one of the first frames of the data while receiving one of the second frames of the data after receiving a predetermined amount of the data in the one of the second frames of the data in response to the duplex mismatch means declaring a duplex mismatch
  • 35. The apparatus of claim 34, wherein the at least one port means further comprises: duplex mode means for changing the at least one port means from full-duplex mode to half-duplex mode when the duplex mismatch means declares a duplex mismatch after the collision forcing means causes the at least one port means to transmit the one of the first frames of the data.
  • 36. A network device incorporating the apparatus according to claim 31, wherein the network device is compliant with at least one of a plurality of standards including IEEE standards 802.3, 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.
  • 37. A network device incorporating the apparatus according to claim 31, wherein the network device includes one of: a switch;a router; anda network interface controller.
  • 38. A method comprising: transmitting first frames of data in full-duplex mode, and receiving second frames of the data, over a communication channel;declaring a duplex mismatch when a CRC error is detected in one of the second frames of the data when transmitting one of the first frames of the data, ora fragment of one of the second frames of the data is received, or both; andwherein the duplex mismatch indicates that a half-duplex mode is used with respect to the second frames of the data.
  • 39. The method of claim 38, wherein declaring the duplex mismatch comprises performing at least one of a plurality of actions including: setting a flag in a memory circuit andtransmitting a message.
  • 40. The method of claim 38, further comprising: transmitting the first frames of the data in full-duplex mode after declaring a duplex mismatch.
  • 41. The method of claim 38, further comprising: transmitting one of the first frames of the data while receiving one of the second frames of the data after receiving a predetermined amount of the data in the one of the second frames of the data after a duplex mismatch is declared.
  • 42. The method of claim 41, further comprising: transmitting the first frames of the data in full-duplex mode when a duplex mismatch is declared after transmitting the first one of the frames.
  • 43. A computer program executable on a processor, comprising: instructions for causing first frames of data to be transmitted in full-duplex mode over a communication channel, wherein second frames of the data are received over the communication channel; andinstructions for declaring a duplex mismatch when a CRC error is detected in one of the second frames of the data when one of the first frames of the data is being transmitted, ora fragment of one of the second frames of the data is received, or both; andwherein the duplex mismatch indicates that a half-duplex mode is used with respect to the second frames of the data.
  • 44. The computer program of claim 43, wherein the instructions for declaring the duplex mismatch comprise instructions for performing at least one of a plurality of actions including: setting a flag in a memory and transmitting a message.
  • 45. The computer program of claim 43, further comprising: instructions for causing the first frames of the data to be transmitted in half-duplex mode after a duplex mismatch is declared.
  • 46. The computer program of claim 43, further comprising: instructions for causing transmission of one of the first frames of the data while receiving one of the second frames of the data after receiving a predetermined amount of the data in the one of the second frames of the data after a duplex mismatch is declared
  • 47. The computer program of claim 46, further comprising: instructions for causing the first frames of the data to be transmitted in half-duplex mode in response to declaring a duplex mismatch after transmitting the one of the first frames of the data.
Provisional Applications (2)
Number Date Country
60771559 Feb 2006 US
60786477 Mar 2006 US