Abstract: Clock information related to a reference clock is distributed from a master network node to a slave network node in an asynchronous packet-based network by embedding the clock information into an additional bit stream and multiplexing the additional bit stream with a primary data stream using an out-of-band channel. Multiplexing the additional bit stream with the primary bit stream using an out-of-band channel may involve selecting yB codes of an xB/yB encoded bit stream to represent bits of the additional bit stream or to balance the running disparity of the xB/yB encoded bit stream. The clock information that is embedded into the additional bit stream is used to generate a clock that is synchronized with a reference clock. In an embodiment, the clock information represents the time difference between a transmitted frame of the additional bit stream and a next edge of the reference clock.
Abstract: Managing a primary bit stream involves converting a qB/rB encoded bit stream to an xB/yB encoded bit stream and multiplexing an additional bit stream with the xB/yB encoded bit stream at a transmission side of a link. The additional bit stream is then demultiplexed from the xB/yB encoded bit stream and the xB/yB encoded bit stream is converted back to the qB/rB encoded bit stream at the receiver side of the link. The qB/rB encoded bit stream is converted to and from the xB/yB encoded bit stream so that the additional bit stream can be multiplexed with the qB/rB encoded bit stream using multiplexing/demultiplexing systems that are compatible with the xB/yB multiplexing system. In an application, a 4B/5B encoded bit stream is converted to an 8B/10B encoded bit stream and an additional bit stream is multiplexed with the 10B code-words of the 8B/10B encoded bit stream using code-word manipulation.
Abstract: Preventing transmission loops in a ring network that utilizes label switching involves generating right side and left side ring packets from an ingress packet and setting right and left TTL values for the packets that prevent the packets from traveling on the same transmission link. Setting the right and left TTL values of the ring packets to values that prevent the packets from traveling on the same link transforms the physical topology of the ring into a logical arc. In an embodiment, the logical arc established by a network node can be dynamically rotated in response to various network conditions to avoid packet transmissions on a particular link of the ring network.
Abstract: Managing a reusable resource, such as a pool of integers, involves a doubly linked list of elements that represents free integers in an integer pool. Each element of the doubly linked list includes a next pointer for identifying a next element and a previous pointer for identifying a previous element. A specific free integer can be allocated from the integer pool in an order of one, O(1), operation by indexing into the linked list and then utilizing the next and previous pointers of the linked list element to remove the linked list element from the linked list. The desired element is removed by adjusting the next pointer of the previous element and the previous pointer of the next linked list element. A non-specific free integer can be allocated from the integer pool in an O(1) operation through a head element that identifies a next free integer in the linked list.
Abstract: Multiplexing an additional bit stream with a primary bit stream, where the primary bit stream is encoded into an xB/yB encoded bit stream, involves selecting yB code-words to convey the additional bit stream. Each xB word is represented by one yB code-word from a corresponding group of yB code-words, with each group of yB code-words including at least one yB code-word belonging to a category of code-words that tends to exhibit positive DC balance and at least one yB code-word belonging to a category that tends to exhibit negative DC balance. Bits of the additional bit stream are multiplexed with the primary bit stream by selecting code-words from one of the two categories to convey 1's and from the other category to convey 0's. Code-words that are not selected to convey bits of the additional bit stream are selected to balance the running disparity of the encoded bit stream.
Abstract: Updating a content addressable memory (CAM) involves identifying a new entry that is to be added to the CAM, identifying a free location in the CAM that is the fewest number of prefix levels away from the prefix level of the new entry, moving an existing CAM entry into the free location to create a newly freed location that is a fewer number of prefix levels away from the prefix level of the new entry, repeating the move process until a free location is created at the desired prefix level of the new entry, and then adding the new entry into the newly freed location. The specific algorithm for moving entries to free a location in the desired prefix level is a function of whether the prefix level of the first free location is above or below the prefix level of the new entry.