Hierarchical switching device

文档序号:1061138 发布日期:2020-10-13 浏览:10次 中文

阅读说明:本技术 分层交换设备 (Hierarchical switching device ) 是由 N·G·麦克唐纳 D·N·埃莫特 于 2019-04-18 设计创作,主要内容包括:示例涉及包括形成完全互连的全连接网络的多个子交换机的分层交换设备。子交换机包括内部输入端口和内部输出端口以与完全互连的全连接网络内的其他子交换机交换分组。子交换机的内部输入端口能够独占访问用于相应子交换机的每个外部输出端口的队列分区。交换机控制器在多个子交换机中的第一子交换机处接收分组,该分组将被路由到多个子交换机中的第二子交换机的特定外部输出端口。交换机控制器使用第一子交换机的内部输出端口和第二子交换机的队列分区将分组从第一子交换机直接路由到第二子交换机,该队列分区用于第二子交换机的该特定外部输出端口。(Examples relate to a hierarchical switching device comprising a plurality of sub-switches forming a fully interconnected, fully connected network. The sub-switches include internal input ports and internal output ports to switch packets with other sub-switches within the fully interconnected, fully connected network. The internal input ports of the sub-switches have exclusive access to the queue partitions for each external output port of the corresponding sub-switch. The switch controller receives a packet at a first one of the plurality of sub-switches, the packet to be routed to a particular external output port of a second one of the plurality of sub-switches. The switch controller routes packets from the first sub-switch directly to the second sub-switch using the internal output port of the first sub-switch and a queue partition of the second sub-switch for the particular external output port of the second sub-switch.)

1. A hierarchical switching apparatus comprising:

a plurality of sub-switches forming a fully interconnected, fully connected network, the sub-switches including internal input ports and internal output ports to switch packets with other sub-switches within the fully interconnected, fully connected network;

wherein each sub-switch internal input port has exclusive access to the queue partition for each external output port of the corresponding sub-switch; and

a switch controller to, in response to receiving a packet at a first one of the plurality of sub-switches that is to be routed to a particular external output port of a second one of the plurality of sub-switches, route the packet directly from the first sub-switch to the second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch, the queue partition of the second sub-switch being directed to the particular external output port.

2. The hierarchical switching device of claim 1, wherein a particular queue partition for a particular external output port of a particular sub-switch has independent packet flows relative to other queue partitions for different external output ports of the particular sub-switch.

3. The hierarchical switching device of claim 1, wherein the queue partition for the external output port accessible to the internal input port is selected from the group consisting of: a virtual output queue at the internal input port of the respective sub-switch, and an output queue associated with a node of a fully buffered crossbar of the respective sub-switch.

4. The hierarchical switching device of claim 1, wherein the switch controller is to monitor a status of the queue partition that the internal input port has exclusive access to, and to arbitrate which packet from any of the queue partitions is to be routed between the first and second sub-switches based on the status of the queue partition.

5. The hierarchical switching device of claim 1, wherein an external input port of the sub-switch has exclusive access to a queue partition for each internal output port of the sub-switch.

6. The hierarchical switching device of claim 1, wherein each of the plurality of sub-switches includes a packet scheduler to distribute the packets received in a particular input port among the queue partitions exclusively accessible to the particular input port.

7. The hierarchical switching device of claim 1, wherein the switch controller is located within the switching device and is configured to receive and route all packets received at the switching device.

8. The hierarchical switching device of claim 1, wherein each of the plurality of sub-switches includes a respective switch controller to receive and route packets received at the corresponding sub-switch.

9. The hierarchical switching device of claim 1, wherein the hierarchical switching device is a multi-die switch.

10. The hierarchical switching device of claim 1, comprising inter-sub-switch links connecting sub-switches to each other, wherein the inter-sub-switch links are links selected from: electrical links, optical links, and combinations thereof.

11. A method of switching packets in a hierarchical switching device comprising a plurality of sub-switches forming a fully interconnected, fully connected network, and wherein the sub-switches comprise internal input ports and internal output ports to switch packets with other sub-switches within the fully interconnected, fully connected network, the method comprising:

assigning a queue partition for each external output port of a particular one of the plurality of sub-switches for each internal input port of the particular sub-switch;

receiving a packet at an external input port of a first one of the plurality of sub-switches, wherein the packet is to be routed to a particular external output port of a second one of the plurality of sub-switches;

routing, by a switch controller, the packet directly from the external input port of the first sub-switch to the external output port of the second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch, the queue partition of the second sub-switch being for the particular external output port of the second sub-switch.

12. The method of claim 11, comprising partitioning different queues for different external output ports of a particular sub-switch to enable independent packet flows with respect to each other.

13. The method of claim 11, comprising: selecting the queue partition for the external output port accessible to the internal input port from the group consisting of: a virtual output queue at the internal input port of the respective sub-switch, and an output queue associated with a node of a fully buffered crossbar fabric of the respective sub-switch.

14. The method of claim 11, comprising:

monitoring, by the switch controller, a status of the queue partition accessible to the internal input port; and

arbitrating, by the switch controller, which packet from which of the queue partitions is to be routed between the first sub-switch and the second sub-switch based on the state of the queue partition.

15. The method of claim 11, assigning a queue partition for each internal output port of a particular one of the plurality of sub-switches to each external input port of the particular sub-switch.

16. The method of claim 11, comprising: distributing, by a packet scheduler, the packet received in a particular input port of a particular sub-switch among the queue partitions associated with the input ports of the particular sub-switch.

17. The method of claim 11, comprising: determining, by the switch controller, an external output port of the hierarchical switching device for the packet to be routed towards its destination.

18. A non-transitory machine-readable storage medium having stored thereon machine-readable instructions for causing a computer processor of a switch controller to:

assigning, for each internal input port of a particular sub-switch of a plurality of sub-switches of a hierarchical switching apparatus, a queue partition for each external output port of the particular sub-switch, the queue partitions having packet flows that are independent with respect to each other, and wherein the plurality of sub-switches form a fully interconnected, fully connected network and the sub-switches include internal input ports and internal output ports to switch packets with other sub-switches within the fully interconnected, fully connected network; and

in response to receiving a packet at a first one of the plurality of sub-switches, the packet to be routed to a particular external output port of a second one of the plurality of sub-switches, the packet is routed directly from the first sub-switch to the second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch, the queue partition of the second sub-switch being for the particular external output port of the second sub-switch.

19. The non-transitory machine-readable storage medium of claim 18, comprising instructions to select the queue partition for the external output port accessible to the internal input port from the group consisting of: a virtual output queue at the internal input port of the respective sub-switch, and an output queue associated with a node of the fully buffered crossbar fabric of the respective sub-switch.

20. The non-transitory machine-readable storage medium of claim 18, comprising instructions to assign a queue partition for each internal output port of a particular one of the plurality of sub-switches to each external input port of the particular sub-switch.

Background

Network switching devices may be implemented as interconnected subnetworks connecting input and output ports of the network switching devices. For example, a network switching device such as a router or switch may be implemented as a monolithic crossbar that does not exhibit port-to-port dependencies. Having a network switching device that does not exhibit port-to-port dependencies may ensure deadlock free in the network. The port-to-port dependency may determine that the success of a packet that is expected to exit the network switching device on a particular port is not permanently dependent on the success of another packet exiting a different port of the same network switching device. The routing algorithm may avoid port-to-port dependencies in order to ensure deadlock free in the network switching device and thus in the network to which the network switching device is connected. The size of monolithic crossbars grows with a polynomial factor. The network switching device may be implemented as a hierarchical switching device to reduce the size required for implementation. Careful design practices should be followed to ensure that the hierarchical switching device does not create port-to-port dependencies that may cause deadlock.

Drawings

Fig. 1 is a block diagram of an example hierarchical switching device having multiple sub-switches connected to one another forming a fully interconnected all-to-all network.

Fig. 2 is a block diagram of the example hierarchical switching apparatus of fig. 1, where a packet is routed from an external input port of a first sub-switch to an external output port of a second sub-switch.

Fig. 3 is a flow diagram of an example method for routing packets using a hierarchical switching device having a plurality of sub-switches connected to one another forming a fully interconnected, fully connected network.

Fig. 4 is a block diagram of an example hierarchical switching device having a plurality of sub-switches connected to one another forming a fully interconnected fully-connected network and including a machine-readable storage medium storing instructions to be executed by a switch controller of the hierarchical switching device.

Detailed Description

Examples disclosed herein describe a hierarchical switching device including a plurality of output queued sub-switches connected to one another forming a fully interconnected fully connected network. Each sub-switch of the switching device may include internal input ports and internal output ports to switch packets with other output queuing sub-switches within the fully interconnected fully connected network. The internal input ports of the sub-switches have exclusive access to the queue partitions of each external output port of the corresponding sub-switch. For example, in a virtual output queuing technique, a physical buffer for each input port of a network device may maintain a separate virtual output queue for each output port of the network device. Each of these virtual output queues may correspond to a queue partition of a physical buffer of the port. As used herein, a fully interconnected fully connected network may be a network in which all nodes are connected to each other. For example, a fully interconnected fully connected network may be a one-dimensional HyperX network or a one-dimensional flat butterfly network.

As used herein, a switching device may refer to a device that determines a route or direction to be taken by a data packet in a network. Examples of switching devices may be routers or switches. A hierarchical switching device may refer to a switching device formed of a plurality of interconnected sub-switches.

As used herein, a sub-switch may refer to a switching device that participates with other switching devices within a logical complex such that multiple sub-switches appear as a single switching device.

The hierarchical switching device may also include a switch controller to receive a packet at a first one of the plurality of output queuing sub-switches, for example, at an external input port of the first sub-switch. The external input port may be a port that receives packets from a device external to the switching device. The received packet may be for routing to a second one of the plurality of sub-switches, e.g., to a particular external output port of the second sub-switch. The external output port may be a port for transmitting packets to other devices external to the switching device. The switch controller, in response to receiving the packet, may route the packet directly from the first sub-switch to the second sub-switch using the internal output port of the first sub-switch and a queue partition of the second sub-switch, wherein the queue partition of the second sub-switch is for a particular external output port of the second sub-switch to which the packet is to be routed. Thus, the internal input port of the second sub-switch that has received the packet, and thus the queue partition of the second sub-switch that the first sub-switch has access to, is a queue partition dedicated to a particular external output port of the second sub-switch to which the packet is to be routed in its path towards its destination.

In some examples, the packet may be routed directly between the first sub-switch and the second sub-switch via a minimum path. As used herein, a minimum or direct path may refer to a path that directly interconnects a first sub-switch and a second sub-switch in a fully interconnected network. Thus, routing the packet through the minimum path avoids the packet passing through any intermediate sub-switches.

The layered switching apparatus with a plurality of sub-switches forming a fully interconnected, fully connected network and with disjoint input and output ports that avoid the plurality of sub-switches exhibiting any sustainable dependencies on each other may create an internal layered switching architecture that may internally cut off all port-to-port dependencies such that a composite design may appear as a single switching apparatus. Thus, such an inner hierarchical switching architecture may be deadlock free.

In some examples, a particular queue partition of an internal input port and for a particular external output port of a particular sub-switch may have independent packet flows relative to other queue partitions for different external output ports of the particular sub-switch in the same internal input port. In this way, each queue partition into which the internal input port is divided may be scheduled by itself, so in the event that one of the queue partitions for a particular external output port blocks, the remaining queue partitions in the internal input port that may be for the remaining output ports of the same sub-switch may remain flowing. Thus, the lack of dependency on queue partitions corresponding to different external output ports may avoid deadlock blocking.

In some other examples, the external input ports of the sub-switch can also have exclusive access to the queue partitions for each internal output port of the sub-switch. This can significantly reduce head-of-line blocking at packet ingress in the switching device.

In some examples, the queue partition of the external output port that the internal input port can access, including the queue partitions associated with the internal and external input ports, may be a virtual output queue at the input port of the sub-switch. In such an example, packets received at a particular sub-switch are dispatched directly in a virtual output queue for the corresponding sub-switch output port. In some other examples, the queue partitions accessed for the internal input ports of the external output ports, including the queue partitions associated with the internal and external input ports, may be virtual queues associated with nodes of a fully buffered crossbar fabric of the respective sub-switches. In such an example, each sub-switch implements a fully buffered crossbar in which packets received in a particular sub-switch are distributed among queues for sub-switch output ports associated with buffers of nodes of the fully buffered crossbar fabric.

In some other examples, the switch controller may monitor the status of the queue partitions of the internal input ports and arbitrate which packets from any of the queue partitions will be routed between the first and second sub-switches based on the status of the queue partitions. Thus, the switch controller may decide which packets in the plurality of queue partitions of the first sub-switch qualify for routing towards the second sub-switch based on the state of the queue partition. For example, the switch controller may preferentially route packets from queue partitions that store a number of packets below a predefined threshold.

In some other examples, each of the plurality of sub-switches includes a packet scheduler to distribute packets received in a particular sub-switch input port among a plurality of queue partitions that the sub-switch input port has exclusive access to.

In some examples, the switch controller may be within a hierarchical switching device and may receive and route all packets received at the switching device. However, in some other examples, each of the plurality of sub-switches may include a respective switch controller to receive and route packets received at the corresponding sub-switch.

As used herein, queue partitioning may refer to the portion of a physical buffer that may be assigned by a switch controller dynamically or statically in association with a corresponding port. For example, the switch controller may store dynamic pointers to different queue partitions of the buffer for each input port of the switch device, which may change during operation. In some other examples, the switch controller may store static pointers to different queue partitions or may store a combination of static pointers to a particular queue partition and dynamic pointers to other queue partitions within the same buffer for a particular input port.

In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to "an example" or similar language means that a particular feature, structure, or characteristic described in connection with the example is included as described, but may not be included in other examples.

Turning now to the drawings, FIG. 1 shows a block diagram of an exemplary hierarchical switching device 100 having a plurality of sub-switches 101 and 104 connected to one another to form a fully interconnected fully-connected network 105. Although fig. 1 shows a hierarchical switching device 100 including four fully interconnected sub-switches, the hierarchical switching device 100 may include any number of fully interconnected sub-switches.

The hierarchical switching device 100 has twelve external input ports 108 for receiving packets from other external devices to which the switching device 100 may be connected and twelve external output ports 109 for transmitting packets to these external devices. More specifically, the sub-switch 1101 is connected to the external input port 108a and the external output port 109a, the sub-switch 2102 is connected to the external input port 108b and the external output port 109b, the sub-switch 103 is connected to the external input port 108c and the external output port 109c, and the sub-switch 4104 is connected to the external input port 108d and the external output port 109 d.

Further, the sub-switch 1101 has three internal input ports 110a for receiving packets from the remaining sub-switches 102 and 104 forming the fully connected network 105 and three internal output ports 111a for sending packets to the remaining sub-switches 102 and 104. Further, sub-switch 2102 has three internal input ports 110b and three internal output ports 111b, sub-switch 3103 has three internal input ports 110c and three internal output ports 111c, and sub-switch 4104 has three internal input ports 110d and three internal input ports 111 d. Although fig. 1 shows all of the sub-switches 101-104 having three external input ports and three external output ports, the sub-switches may have any number of external input and output ports. In some examples, the sub-switches may have different numbers of input ports and output ports, or may have different numbers of ports between sub-switches. In some other examples, some sub-switches may not have external output or input ports, and thus may act as forwarding sub-switches within a fully connected network.

Each external input port 108 of sub-switch 101-104 has exclusive access to queue 107 b. These queues may be any queues such as circular queues, priority queues, etc. Furthermore, each of the internal input ports 110 of sub-switches 101-104 is capable of exclusively accessing the virtual output queue 107a of each of the external output ports 109 of the corresponding sub-switches 101-104. In particular, three internal input ports 110a of the sub-switch 1101 have access to three virtual output queues 107a, one corresponding to each of the external output ports 109 a. The three internal input ports 110b of the sub-switch 2102 are able to access three virtual output queues 107a, one corresponding to each of the external output ports 109 b. The three internal input ports 110c of the sub-switch 3103 have access to three virtual output queues 107, one corresponding to each of the external output ports 109 c. The three internal input ports 110d of the sub-switch 4104 have access to three virtual output queues 107a, one corresponding to each of the external output ports 109 d.

In case these internal input ports 110 have access to the virtual output queues 107, when a packet arrives at any internal input port 110, it is placed in the virtual output queue 107 associated with the external output port 109 that will route the packet towards its destination. Thus, packets destined for different external output ports are in separate virtual output queues 107 until they are processed. In other examples, the virtual output queue 107 at the internal input port 110 may be replaced with a fully buffered crossbar structure in which there is an output queue associated with a node of the buffered crossbar for an output port of the corresponding sub-switch. Thus, when a packet arrives at any input port of a sub-switch, the packet may be placed in an output queue associated with an output port through which the packet will be routed towards its destination. Thus, packets destined for different output ports are in separate output queues of the fully buffered crossbar architecture until the packets are processed.

In some other examples, external input ports 108a-d of sub-switches 101-104 can have exclusive access to the virtual output queues for internal output ports 111a-d of respective sub-switches 101-104. This can avoid packet collisions at the ingress of the hierarchical switching apparatus 100 and thus can reduce head-of-line blocking.

The hierarchical switching device 100 receives packets via any of its external input ports 108. The packet may include a header specifying its destination so that the switch controller 106 may determine the external output port 109 of the switching device 100 for the packet to be routed towards its destination. The external input port 108 through which the packet is received and the external output port 109 through which the packet is sent towards its destination may belong to different sub-switches 101-104. Thus, the switch controller 106 determines the minimum route within the fully interconnected fully connected network 105 and routes the packet directly from the sending (source) sub-switch to the receiving (destination) sub-switch by minimizing the route and using the internal output port 111 of the sending sub-switch and the queue partition of the receiving sub-switch for the external output port 109 of the receiving sub-switch to which the packet is to be routed. This queue partition for routing packets is a queue partition dedicated to a particular external output port 109 previously determined by switch controller 106.

Sub-switches 101-104 are connected to each other by inter-sub-switch links 112. These interswitch links 112 may be electrical links, optical links, or a combination of electrical and optical links.

In some examples, hierarchical switching device 100 may be a multi-die switch with at least one sub-switch on a particular die. For example, each die may include one, two, or a different number of sub-switches, where sub-switches within a common die and sub-switches in different dies of a multi-die switch are all interconnected to form a fully connected network.

Fig. 2 is a block diagram of the example hierarchical switching device 200 of fig. 1, where a packet is routed from an external input port of a first sub-switch to an external output port of a second sub-switch.

The switching device 200 receives the first packet 213 via a first external input port, in particular via an external input port 2.2, which external input port 2.2 is connected to a sub-switch 2202 of the fully interconnected plurality of sub-switches 201 and 204. The first packet 213 is stored in the queue 207b of the external input port 2.2 until it is processed. The switching device 200 then receives a second packet 214 via a second external input port, in particular external input port 2.1, which external input port 2.1 is connected to the same one 2202 of the fully interconnected plurality of sub-switches 201 and 204. The second packet 214 is stored in the queue 207b of the external input port 2.2 until it is processed. The queue 207b may be any kind of queue, such as a circular queue, a priority queue, etc. Although in the example of fig. 2, packets 213, 214 are received at the same ingress sub-switch, packets may be received at different sub-switches and routed via a common or different egress sub-switch.

The switch controller 206 reads the header of the first packet 213 to know its destination. Based on the destination, the switch controller 206 determines that the first packet 213 will exit the hierarchical switching device 200 through the external output port 3.1 in its path towards its destination, the switch controller 206 may for example store the structure and topology of the network (not shown in this figure) to which the hierarchical switching device 200 is connected. The external output port 3.1 is connected to a sub-switch 3203 of the fully interconnected, fully connected network 205. In turn, the switch controller 206 reads the header of the second packet 214 to know its destination. Based on the destination, the switch controller 206 determines that the second packet 214 will exit the hierarchical switching device 200 through the external output port 3.3 in its path toward its destination. External output port 3.3 is also connected to sub-switch 3203.

Thus, switch controller 206 calculates all possible candidate routes between sub-switch 2202 and sub-switch 3203. Switching device 206 then routes both packets 213, 214 using the minimum route between sub-switch 2202 and sub-switch 3203. The minimum route corresponds to intersubswitch link 212 interconnecting internal output port 211b of subswitch 2202 and internal input port 210c of subswitch 3203. The internal input port 210c of the sub-switch 3203 has access to three virtual output queues 207a, wherein each virtual output queue 207a is directed to a respective external output port of the sub-switch 3203, in particular to output ports 3.1, 3.2 and 3.3. Thus, once packets 213, 214 are routed from queues 207 of external input port 2.1 and external input port 2.2 to internal input port 210c of sub-switch 3203 via internal output port 211b of sub-switch 2202, respectively, first packet 213 is stored in virtual output queue 207a of internal input port 210c for external output port 3.1 until the first packet is processed. Similarly, a second packet 214 is stored in the virtual output queue 207a of the internal input port 210c for the external output port 3.2 until it is processed. Routing packets by minimal or direct routing avoids port-to-port dependencies that may occur when non-minimal routing is used. Non-minimal or indirect routing may cause packets originating from different input ports destined for different output ports to compete against the same intermediate queue. Such contention may lead to port-to-port dependencies.

Then, packets 213, 214 are simultaneously and independently routed from virtual output queue 207a towards their corresponding destinations to their external output ports, external output port 3.1 and external output port 3.3, respectively, in sub-switch 3203. The independent flow of packets in the virtual output queues accessible by the same input port avoids packet collisions at the entry of internal input port 210c and ensures deadlock freedom. The routes calculated for packets 213 and 214 may be calculated by switch controller 206 independently of each other. For example, a first decomposition portion of switch controller 206 routes packet 213 and routes packet 213 toward its external output port, while a second decomposition portion of switch controller 206 routes packet 214 and routes packet 214 toward its corresponding external output port. Another exploded portion of the switch controller 206 may arbitrate between the packets 213 and 214 to determine the order in which the packets 213, 214 proceed toward the corresponding common virtual output queue 207a at the internal output port 211b over the inter-sub-switch link 212.

In some other examples, the external input ports of sub-switches 201 and 204, and in particular external input ports 1.1-3, 2.1-3, 3.1-3, and 4.1-3, are able to exclusively access the virtual output queues of internal output ports 111a-d of respective sub-switches 201 and 204. Thus, when more than one packet is received at a particular external input port of a particular sub-switch at the same time, the packets will be routed through different internal output ports of the particular sub-switch, and a virtual output queue is allocated for each of the internal output ports to avoid packet collisions at the ingress of the switching device 200 and to reduce head-of-line blocking.

Although in the example of fig. 2 all of the sub-switches 201 and 204 include external input ports and external output ports, in some examples there may be sub-switches within the fully connected network that lack external input ports and therefore can only send packets to other switching devices in the same or different networks. In other examples, there may be sub-switches within the fully connected network that lack external output ports, and therefore these sub-switches can only receive packets from other switching devices in the same or different networks. In other examples, there may be switches within the fully-connected network that do not have external or internal output ports, and therefore these sub-switches can only forward packets to other sub-switches within the same fully-interconnected fully-connected network.

Fig. 3 is a flow diagram of an example method 300 for routing packets using a hierarchical switching device configured as a fully connected topology. The hierarchical switching device includes a plurality of output queuing sub-switches forming a fully interconnected, fully connected network. Each of the sub-switches includes internal input ports and internal output ports to switch packets with other sub-switches within the fully interconnected, fully connected network. For example, a fully interconnected fully connected network may be a one-dimensional HyperX network or a one-dimensional flat butterfly network.

At step 301 of method 300, each internal input port of a particular one of a plurality of sub-switches forming a fully interconnected, fully connected network is assigned a queue partition for each external output port of the respective sub-switch. Thus, method 300 assigns as many queue partitions to each internal input port of a particular sub-switch as there are external output ports that the particular sub-switch has. In some examples, each external input port of a particular sub-switch is assigned a queue partition for each internal output port of the corresponding sub-switch. Thus, method 300 may assign as many queue partitions to each external input port of a particular sub-switch as there are internal output ports that the particular sub-switch has.

At step 302 of method 300, a packet is received at an external input port of a first one of a plurality of sub-switches. The received packet will be internally routed to an external output port of a second one of the plurality of sub-switches. The external output port may interconnect the current switching device with another switching device or with any other device within the same network to which the current switching device is connected, or to any network external to the current switching device.

At step 303 of method 300, a switch controller of the hierarchical switching device routes packets between an external output port of a first sub-switch to an external output port of a second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch for the external output port to which packets of the second sub-switch are to be routed. The queue partition is a queue partition previously assigned to an external output port of the second sub-switch through which packets are to be routed. In some examples, for a particular internal input port of a particular sub-switch, the method may implement different queue partitions for different external output ports of the particular internal input port having packet flows that are independent with respect to each other. Thus, the packet flows in each queue partition are independent of each other.

In some examples, the switch controller may determine a minimum or direct route for the packet, for example, by performing an arithmetic operation using a pre-existing routing table stored in the switching device that stores the internal topology of the hierarchical switching device, or by, for example, using fixed function logic in the switching device. The routing table may also store the topology of the network to which the switching device is connected so that the switch controller can identify the external output port that the packet is to take to be routed to its destination. The routing table may be periodically updated by a network controller communicatively connected to the switching device. The network controller may also provide the topology of the network to which the switching device is connected. In some other examples, there may be a first routing table that stores an internal topology of the hierarchical switching device and a second routing table that stores a topology of a network to which the switching device is connected. For example, the switch controller may first determine the external output port of the switching device through which to route the packet by examining the second routing table. Then, the switch controller can determine the minimum route through the internal fully connected network of the switching device by checking the first table, since it is aware of the external input port through which the packet is received and the external output port to which the packet is to be routed.

In some examples, method 300 may select a queue partition for an output port accessible by an input port, including queue partitions accessible by external and internal input ports, from the group consisting of a virtual output queue output at an input port of a respective sub-switch, and an output queue associated with a node of a fully buffered crossbar of the respective sub-switch.

In some other examples, the switch controller may monitor the status of queue partitions that internal input ports of the sub-switches have access to. The switch controller may then arbitrate which packets from which of the queue partitions are to be routed between the first and second sub-switches based on the state of the queue partition.

In some examples, a packet scheduler of a switching device may distribute packets received in a particular input port of a particular sub-switch among queue partitions accessible to the input port of the particular sub-switch.

Fig. 4 is a block diagram of an example hierarchical switching device 400 having a plurality of interconnected output queuing sub-switches 407 forming a fully interconnected fully connected network and 409 and including a machine readable storage medium 402 storing instructions to be executed by a switch controller 401 of the hierarchical switching device 400. It should be understood that the hierarchical switching device 400 shown in fig. 4 may include additional components, and that some of the components described herein may be removed and/or modified, without departing from the scope of the example hierarchical switching device 400. Additionally, the implementation of the hierarchical switching device 400 is not limited to this example. It should also be understood that the switch controller 401 may represent a combination of hardware and software logic within the hierarchical switching device 400 for routing packets from the first sub-switch 407 and 409 to the second sub-switch 407 and 409.

The hierarchical switching device 400 is depicted as including: nine external input ports 411a, 412a and 413a through which data packets are received; and nine external output ports 411b, 412b, and 413b through which the packet is forwarded toward its destination to the next hop in the network (not shown in the figure) to which the hierarchical switching device 400 is connected. The hierarchical switching device 400 further comprises a machine readable storage medium 402, a switch controller 401 and a plurality of output queuing sub-switches 407 and 409 connected to each other forming a fully interconnected fully connected network a. The switch controller 401 may include hardware and software logic to execute instructions, such as instructions 403 and 406 stored in the machine-readable storage medium 503. Each sub-switch 407- & 409 comprises: two internal input ports 414a, 415a and 416a through which packets are received from the other sub-switches 407 and 409; and two internal output ports 414b, 415b and 416b through which packets are sent to the other sub-switches 407 and 409. In some examples, hierarchical switching device 400 may include a routing table that stores all possible routes within all networks that are fully interconnected. In some other examples, the routing table may also store all possible routes between the hierarchical switching device 400 and the rest of the network devices in the network.

The external input ports 411a, 412a, and 413a and the external output ports 411b, 412b, and 413b of the hierarchical switching device 400 are connected to the respective sub-switches 407 and 409 such that the external input port 411a and the external output port 411b are connected to the sub-switch 1407, the external input port 412a and the external output port 412b are connected to the sub-switch 2408, and the external input port 413a and the external output port 413b are connected to the sub-switch 3409. External input ports 411a, 412a, and 413a have exclusive access to queue 110 b. These queues 110b may be any queues such as circular queues, priority queues, and the like. The plurality of sub-switches 407 and 409 are connected to each other by inter-sub-switch links.

Switch controller 401 assigns 403 a queue partition for each internal input port 414a, 415a, and 416a of sub-switch 407 and 409 for each external output port 411b, 412b, and 413b of the corresponding sub-switch 407 and 409. In such an example, switch controller 401 assigns three queue partitions to each internal input port 414a, 415a, and 416a, enabling the internal input ports to have exclusive access to the allocated queue portions. The queue partitions have independent packet flows relative to each other so that each queue partition can be scheduled by itself.

The switch controller 401, in response to receiving a packet at 404 at a first one of the plurality of sub-switches 407 and 409, routes the packet between the first sub-switch and a second sub-switch 405 through a minimum path and using an internal output port of the first sub-switch and a queue partition of the second one of the plurality of sub-switches 407 and 409 for an external output port to which the packet in the second sub-switch is to be routed. For example, if a packet is received at external input port 411a of sub-switch 1407 and is to be routed to external output port 413b of sub-switch 3409, switch controller 401 may route the packet through the minimum path between sub-switch 1407 and sub-switch 409 and using internal output port 414b of sub-switch 1407 and output partition 410a of sub-switch 3409, which output partition 410 is external output port 413b through which the packet is to be routed towards its destination. The minimum path corresponds to inter-subswitch link 406 x.

In some examples, switch controllers 401 route different received packets independently of each other. For example, different decomposition portions of the switch controller 401 calculate corresponding routes for different received packets and route them towards their external output ports. The other decomposition portion of the switch controller 401 arbitrates the received packets at the output ports of the sub-switches 407 and 409 to determine the order in which the packets proceed toward their destinations.

In some examples, machine-readable storage medium 402 includes instructions to select a queue partition of external output ports accessible by the internal input ports from a group including virtual output queues at the internal input ports of the respective sub-switches and output queues associated with nodes of a fully-buffered crossbar fabric of the respective sub-switches.

In some examples, machine-readable storage medium 402 includes instructions to assign a queue partition for each internal output port of a particular sub-switch of the plurality of sub-switches to each external input port of the particular sub-switch.

The switch controller 401 may include hardware and software logic to perform the functions described above with respect to instructions 403 and 405. The machine-readable storage medium 402 may be located in a computing device executing machine-readable instructions or remote from but accessible to (e.g., via a computer network) the computing device for execution.

As used herein, a "machine-readable storage medium" may be any electronic, magnetic, optical, or other physical storage device that contains or stores information such as executable instructions, data, and the like. For example, any of the machine-readable storage media described herein can be any one or combination of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a storage drive (e.g., a hard disk drive), a solid state drive, any type of storage disk (e.g., optical disk, DVD, etc.), and the like. Further, any of the machine-readable storage media described herein may be non-transitory. In the examples described herein, one or more machine-readable storage media may be part of an article (or an article of manufacture). An article or article of manufacture may refer to any manufactured single component or multiple components.

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于发送OFDM信号的方法及装置和用于接收OFDM信号的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!