Patent classifications
H04L49/1546
Managed switch architectures: software managed switches, hardware managed switches, and heterogeneous managed switches
For a logical switching element implemented across several managed switching elements, some embodiments provide a method that receives a packet for processing through a logical processing pipeline of the logical switching element. The method processes the packet through a first set of stages of the logical processing pipeline of the logical switching element. The method modifies a set of context tag values to indicate a logical output port of the logical switching element for the packet. The method forwards the packet to a managed switching element of the several managed switching elements based on the logical output port in the set of context tag values stored in the packet.
Splitting data into an information vector and a control vector and processing, at a stage of a control pipeline, the control vector and a data block of the information vector extracted from a corresponding stage of a data pipeline
Disclosed herein are techniques for improving the performance of a pipeline in an integrated circuit. An integrated circuit includes a pipeline including a plurality of stages, and a plurality of storage circuits coupled to corresponding stages in the plurality of stages of the pipeline. A first stage of the plurality of stages is configured to split a set of data into a first vector and a second vector. The plurality of stages is configured to transport the first vector through the pipeline, and sequentially perform operations on the first vector of the set of data. The plurality of storage circuits is configured to transport the second vector among the plurality of storage circuits. Each storage circuit of the plurality of storage circuits is configured to provide a data block in the second vector to the corresponding stage in the plurality of stages of the pipeline for data processing.
Joining data within a reconfigurable fabric
Techniques are disclosed for managing data within a reconfigurable computing environment. In a multiple processing element environment, such as a mesh network or other suitable topology, there is an inherent need to pass data between processing elements. Subtasks are divided among multiple processing elements. The output resulting from the subtasks is then merged by a downstream processing element. In such cases, a join operation can be used to combine data from multiple upstream processing elements. A control agent executes on each processing element. A memory buffer is disposed between upstream processing elements and the downstream processing element. The downstream processing element is configured to automatically perform an operation based on the availability of valid data from the upstream processing elements.
Method and apparatus for interacting with a network information base in a distributed network control system with multiple controller instances
A control system including several controllers for managing several switching elements. A first controller registers a second controller for receiving a notification when a data tuple changes in a network information base (NIB) storage of the first controller that stores data for managing a set of switching elements. The first controller changes the data tuple in the NIB. The first controller sends the notification to the second controller of the change to the data tuple in the NIB. The first and second controllers operate on two different computing devices. Each controller receives logical control plane data for specifying logical datapath sets and converts the logical control plane data to physical control plane data for enabling the switching elements to implement the logical datapath sets.
Method and apparatus for interacting with a network information base in a distributed network control system with multiple controller instances
A control system including several controllers for managing several switching elements. A first controller registers a second controller for receiving a notification when a data tuple changes in a network information base (NIB) storage of the first controller that stores data for managing a set of switching elements. The first controller changes the data tuple in the NIB. The first controller sends the notification to the second controller of the change to the data tuple in the NIB. The first and second controllers operate on two different computing devices. Each controller receives logical control plane data for specifying logical datapath sets and converts the logical control plane data to physical control plane data for enabling the switching elements to implement the logical datapath sets.
ROBUSTNESS ENHANCING ROUTER FOR CONTROLLER AREA NETWORKS
A method for routing CAN or CAN-FD frames by receiving at least a portion of an incoming frame; applying a programmed policy to determine to which of one or more destination interfaces the incoming frame should be forwarded, at any time when the policy can be evaluated against the incoming frame, even if before the incoming frame is received in its entirety; and initiating queuing or immediate transmission of the received frame on the destination interfaces, possibly before the incoming frame has been received in its received entirety. The method may include applying a programmed policy to the incoming frame which includes a rate limit, specifying the rate at which the policy may forward frames. And may further include enacting a frame modification during the reception or transmission, with the modification further encoded within the programmed policy modification of the CAN frame as it is received or transmitted.
Identifying congestion in a network
Some embodiments of the invention provide a method for reporting congestion in a network that includes several forwarding elements. In a data plane circuit of one of the forwarding elements, the method detects that a queue in the switching circuit of the data plane circuit is congested, while a particular data message is stored in the queue as it is being processed through the data plane circuit. In the data plane circuit, the method then generates a report regarding the detected queue congestion, and sends this report to a data collector external to the forwarding element. To send the report, the data plane circuit in some embodiments duplicates the particular data message, stores it in the duplicate data message information regarding the detected queue congestion, and sends the duplicate data message to the external data collector.
PACKET HEADER FIELD EXTRACTION
Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.
PACKET HEADER FIELD EXTRACTION
Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.
PACKET HEADER FIELD EXTRACTION
Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.