Apparatus and method for routing packets in a computer network. A network switch for routing packets in a computer network includes a plurality of ports for communicative connection of computing devices to the switch, and routing logic. The routing logic is configured to extract, from a packet received via a first of the ports, a destination address that identifies a destination device to which the packet is directed; to extract from the destination address a switch ID value and a port ID value; to compare the switch ID value extracted from the destination address to a switch ID value identifying the network switch; and to transmit the packet via a second of the ports of the network switch corresponding to the port ID value based on the switch ID value extracted from the destination address being equal to the switch ID value identifying the network switch.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A network switch for routing packets in a computer network, comprising: a plurality of ports for communicative connection of computing devices to the network switch; and routing logic configured to: extract, from a packet received via a first of the plurality of ports, a destination address that identifies a destination device to which the packet is directed, wherein the destination address identifies the destination device by specifying, within the destination address, a device connectivity hierarchy that identifies a plurality of network devices that are hierarchically connected to the destination device; apply the destination address to route the packet without referencing routing information not provided in the destination address, in routing the packet to: extract from the destination address: a switch ID value identifying a destination switch to which the destination device is connected; and a port ID value identifying a port, of the destination switch, to the destination device is connected; compare the switch ID value extracted from the destination address to a switch ID value identifying the network switch; and transmit the packet via a second of the plurality of ports of the network switch corresponding to the port ID value based on the switch ID value extracted from the destination address being equal to the switch ID value identifying the network switch.
2. The network switch of claim 1 , wherein the routing logic is configured to: extract from the destination address a site prefix value that identifies a physical location of the destination device; compare the site prefix value extracted from the destination address to a site prefix value identifying a physical location of the network switch; and transmit the packet via the second of the ports based on the site prefix value extracted from the destination address being equal to the site prefix value identifying the physical location of the network switch.
3. The network switch of claim 1 , wherein the routing logic is configured to: extract from the destination address a controller ID value that identifies a controller to which the destination switch is connected; compare the controller ID value extracted from the destination address to a controller ID value identifying a controller to which the network switch is connected; and transmit the packet via the second of the ports based on the controller ID value extracted from the destination address being equal to the controller ID value identifying the controller to which the network switch is connected.
4. The network switch of claim 1 , wherein the routing logic is configured to: retrieve routing information from a controller to which the network switch is connected via the network based on the switch ID value extracted from the destination address not being equal to the switch ID value identifying the network switch; store the retrieved routing information in a routing table of the network switch; and apply the routing information to route the packet to the destination device.
5. The network switch of claim 1 , wherein the routing logic is configured to: access a routing table of the network switch to determine whether routing information for the destination address is stored in the routing table; and route the packet to the destination device based on the routing information for the destination device stored in the routing table.
6. The network switch of claim 1 , further comprising a content addressable memory configured to store routing information; wherein the routing logic is configured to route the packet to the destination device without retrieving routing information from the content addressable memory.
7. The network switch of claim 1 , wherein the routing logic is configured to retrieve from a controller to which the network switch is connected: the switch ID value identifying the network switch, a site prefix value that identifies a physical location of the network switch, and a controller ID value that identifies a controller to which the network switch is connected.
8. A method for routing a packet in a computer network, comprising: receiving, by a network switch, a packet via a first port of the network switch; extracting, from the packet, by the network switch, a destination address that identifies a destination device to which the packet is directed, wherein the destination address identities the destination device by specifying, within the destination address, a device connectivity hierarchy that identifies a plurality of network devices that are hierarchically connected to the destination device; applying, by the network switch, the destination address to route the packet without referencing routing information not provided in the destination address, the routing comprising: extracting, by the network switch, from the destination address: a switch ID value identifying a destination switch to which the destination device is connected; and a port ID value identifying a port of the destination switch to the destination device is connected; comparing, by the network switch, the switch ID value extracted from the destination address to a switch ID value identifying the network switch; and transmitting, by the network switch, the packet via a second port of the network switch corresponding to the port ID value based on the switch ID value extracted from the destination address being equal to the switch ID value identifying the network switch.
9. The method of claim 8 , further comprising: extracting from the destination address: a site prefix value that identifies a physical location of the destination device; and a controller ID value that identifies a controller to which the destination switch is connected; comparing the site prefix value extracted from the destination address to a site prefix value identifying a physical location of the network switch; comparing the controller ID value extracted from the destination address to a controller ID value identifying a controller to which the network switch is connected; and transmitting the packet via the second port based on the site prefix value extracted from the destination address being equal to the site prefix value identifying the physical location of the network switch, and the controller ID value extracted from the destination address being equal to the controller ID value identifying the controller to which the network switch is connected.
10. The method of claim 8 , further comprising: retrieving routing information for the destination address from a controller to which the network switch is connected via the network responsive to the switch ID value extracted from the destination address not being equal to the switch ID value identifying the network switch; and storing the retrieved routing information in a routing table of the network switch.
11. The method of claim 8 , further comprising: accessing a routing table of the network switch to determine whether routing information for the destination address is stored in the routing table; routing the packet to the destination device based on the routing information for the destination device stored in the routing table; and retrieving routing information from a controller to which the network switch is connected via the network responsive to the routing table lacking routing information for the destination address.
12. The method of claim 8 , further comprising: for each of a plurality of computing devices connected to the network switch via the network: constructing, by a controller connected to the network switch, via the network, an address comprising: a site prefix value that identifies a physical location of the controller generating the address; a controller ID value that identifies the controller generating the address; a switch ID value identifying the network switch; a port ID value identifying a port, of the network switch to which the computing device is connected, to which the computing devices is connected; and a medium access controller address of the computing device; and transmitting the address to the computing device via the network.
13. The method of claim 8 , further comprising: for each switch connected to a controller via the network: constructing, by the controller, location based addressing information comprising: a site prefix value that identifies a physical location of the controller generating the address; a controller ID value that identifies the controller generating the address; and a switch ID value identifying the switch; and transmitting the addressing information to the switch via the network.
14. The method of claim 8 , further comprising routing the packet to the destination device without retrieving routing information from a content addressable memory of the network router.
15. A computer network, comprising: a network switch comprising a plurality of ports; and a plurality of computing devices, each of the computing devices coupled to one of the plurality of ports of the switch; wherein the network switch is configured to: receive, via a first of the plurality of ports, a packet transmitted by one of the computing devices; extract, from a packet, a destination address that identifies a destination device to which the packet is directed, wherein the destination address identifies the destination device by specifying, within the destination address, a device connectivity hierarchy that identifies a plurality of network devices that are hierarchically connected to the destination device; apply the destination address to route the packet without referencing routing information not provided in the destination address, in routing the packet to: extract from the destination address: a switch ID value identifying a destination switch to which the destination device is connected; and a port ID value identifying a port of the destination switch to the destination device is connected; compare the switch ID value extracted from the destination address to a switch ID value identifying the network switch; and transmit the packet via a second of the plurality of ports that corresponding to the port ID value based on the switch ID value extracted from the destination address being equal to the switch ID value identifying the network switch.
16. The computer system of claim 15 , wherein the switch is configured to: extract from the destination address: a site prefix value that identifies a physical location of the destination device; and a controller ID value that identifies a controller to which the destination switch is connected; compare the site prefix value extracted from the destination address to a site prefix value identifying a physical location of the network switch; compare the controller ID value extracted from the destination address to a controller ID value identifying a controller to which the network switch is connected; and transmit the packet via the second of the ports based on the site prefix value extracted from the destination address being equal to the site prefix value identifying the physical location of the network switch, and the controller ID value extracted from the destination address being equal to the controller ID value identifying the controller to which the network switch is connected.
17. The computer system of claim 15 , further comprising: a controller connected to the switch via the network, the controller configured to, for each of the plurality of computing devices: construct an address comprising: a site prefix value that identifies a physical location of the controller generating the address; a controller ID value that identifies the controller generating the address; a switch ID value identifying the network switch; a port ID value identifying a port, of the network switch to which the computing device is connected, to which the computing devices is connected; and a medium access controller address of the computing device; and transmit the address to the computing device via the network.
18. The computer system of claim 15 , wherein each of the computing devices is configured to include in each packet transmitted via the network: a location based source address comprising: a site prefix value that identifies a physical location of the computing device transmitting the packet; a controller ID value that identifies a controller that generated the location based source address; a switch ID value identifying a switch to which the computing device transmitting the packet is connected; a port ID value identifying a port, of the switch to which the computing device transmitting the packet is connected, to which the computing device is connected; and a medium access controller address of the computing device; and a location based destination address comprising: a site prefix value that identifies a physical location of a computing device to receive the packet; a controller ID value that identifies a controller that generated the location based destination address; a switch ID value identifying a switch to which the computing device to receive the packet is connected; a port ID value identifying a port, of the switch to which the computing device to receive the packet is connected, to which the computing device to receive the packet is connected; and a medium access controller address of the computing device to receive the packet.
19. The computer system of claim 15 , wherein the switch is configured to: retrieve routing information from a controller to which the network switch is connected via the network based on the switch ID value extracted from the destination address not being equal to the switch ID value identifying the network switch; and store the retrieved routing information in a routing table of the network switch.
20. The computer system of claim 15 , wherein the network switch comprises a content addressable memory configured to store routing information, and the network switch is configured to route the packet to the destination device without retrieving routing information from the content addressable memory.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 24, 2014
October 10, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.