Patent ID: 6496516
Filing Date: 2002-12-17
Classification: H04L

Abstract:
A communications network controller, for use as a node of a packet-based unidirectional ring network having a plurality of. nodes, comprising:(a) a ring input port operative to conduct received message packets and control characters from a previous upstream node to said controller; (b) a ring output port operative to conduct transmitted message packets and control characters to a next downstream node of said controller; (c) a bypass queue operative to buffer message packets being passed from said ring input port to said ring output port; (d) a receive queue operative to buffer message packets being passed from said ring input port to said controller; (e) an address filter coupled to said ring input port, said receive queue and said bypass queue, and operative to read the destination addresses of message packets received from said ring input port and passing said message packets to said bypass queue if said message packets are not destined for said controller and passing said message packets to said receive queue if said message packets are destined for said controller; (f) a transmit queue operative to buffer message packets to be sent to said ring output port by said controller; (g) a queue arbiter coupled to said bypass queue, said ring output port and said transmit queue and operative to select message packets from one of said bypass queue and said transmit queue for transfer to said ring output port in accordance with predetermined selection criterion; (h) DATA characters that are transmitted on said ring output port, operative to carry message data to be sent, and received from said ring input port, operative to carry message data to be received; (i) IDLE and BUSY control characters that transmitted on said ring outputs port and received from said ring input port, operative to indicate flow control status of said ring network; and (j) a flow state manipulator coupled to said queue arbiter and operative to process said IDLE and BUSY control characters received from said ring input port, determine said flow control status of said ring network, communicate said flow control status to said queue arbiter and generate said IDLE and BUSY control characters to be transmitted on said ring output port, wherein said flow state manipulator: causes (NOT BUSY,IDLE), (NOT BUSY,DATA), (BUSY,IDLE) and (BUSY,DATA) symbol pairs corresponding to (node has no data to transmit and is not attempting to flow control an upstream node), (node is beginning a transmitted message and is not attempting to flow control an upstream node), (node is not currently transmitting but is attempting to flow control an upstream node) and (node is beginning a transmitted message and is attempting to flow control an upstream node), respectively, and interprets (NOT BUSY,IDLE), (NOT BUSY,DATA), (BUSY,IDLE) and (BUSY,DATA) symbol pairs as (node has no data to transmit and is not attempting to flow control an upstream node), (node is beginning a transmitted message and is not attempting to flow control an upstream node), (node is not currently transmitting but is attempting to flow control an upstream node) and (node is beginning a transmitted message and is attempting to flow control an upstream node), respectively.