Legal claims defining the scope of protection, as filed with the USPTO.
1. A system for source routing packets, the system comprising: a network fabric comprising a plurality of fabric switches interconnected in the network fabric; and a switch controller, comprising logic configured to: configure the network fabric; determine one or more paths through the network fabric between any two hosts connected thereto; create a source-routing table to store the one or more paths through the network fabric between any two hosts connected thereto; store the one or more paths through the network fabric between any two hosts connected thereto to the source-routing table; and store, to a first host, at least one path through the network fabric originating from the first host in response to a determination that the first host comprises a forwarding table that includes source-routing information for packets being sent to other end hosts connected to the network fabric, wherein the at least one path comprises: a destination address corresponding to the first host connected to the network fabric; a destination address corresponding to a second host connected to the network fabric; and a destination port set representing each device or hop between the first host and the second host, each destination port comprising a device identifier and an egress port identifier for the device or hop in the path.
2. The system as recited in claim 1 , wherein the switch controller is configured to operate according to software-defined network (SDN) and/or OpenFlow standards, wherein at least one of the plurality of fabric switches is SDN and/or OpenFlow compliant, wherein the network fabric is a physical and/or virtual network fabric, wherein the fabric switches are physical and/or virtual fabric switches, and wherein the hosts are physical and/or virtual hosts.
3. The system as recited in claim 1 , wherein the logic is further configured to determine address resolution protocol (ARP) entries associated with either local ARP connectivity for the switch controller or general subnet distribution in the network fabric, wherein the destination port and the egress port are physical and/or virtual ports, and wherein the device is a physical and/or virtual device.
4. The system as recited in claim 3 , wherein destination ports included in each destination port set are ordered successively from the first host to the second host, or vice versa.
5. The system as recited in claim 1 , wherein the switch controller further comprises logic configured to edit a forwarding table stored to each fabric switch capable of source routing that is capable of communicating with the switch controller with source-routing information for each path utilizing the fabric switch.
6. The system as recited in claim 1 , wherein the switch controller further comprises logic configured to edit a forwarding table stored to each host capable of source routing connected to the network fabric that is capable of communicating with the switch controller with source-routing information for each path which includes the host capable of source routing.
7. The system as recited in claim 1 , wherein each host capable of source routing further comprises logic configured to: receive source-routing information from the switch controller; edit a source-routing table that indicates a sequence of devices or hops between the host capable of source routing and each known destination address in the network fabric; and insert source-routing information into any egress packets.
8. The system as recited in claim 7 , wherein the logic is executed by a network interface card (NIC) of each host capable of source routing.
9. The system as recited in claim 7 , wherein the logic configured to insert the source-routing information into any egress packets comprises logic configured to: edit a packet header for each of the egress packets to include a source-routing tag (SR-Tag), the SR-Tag comprising source-routing information, enforcement options, and hop count information; and send the egress packets according to a first device or hop indicated by the source-routing information in the SR-Tag.
10. The system as recited in claim 9 , wherein the SR-Tag farther comprises: an enforcement options field; a hop count indicator field for indicating a current device or hop in a path; and a set of source-routing information for the path, comprising abridge indicator associated with a logical port indicator and options thereof for each device or hop in the path.
11. A system for source routing packets, the system comprising: a network fabric comprising a plurality of fabric switches interconnected in the network fabric; and a switch controller, comprising logic configured to: configure the network fabric; determine one or more paths through the network fabric between any two hosts connected thereto; and create a source-routing table to store the one or more paths through the network fabric between any two hosts connected thereto, wherein each fabric switch capable of source routing in the network fabric comprises logic configured to: receive source-routing information from the switch controller; edit a source-routing table that indicates a sequence of devices or hops between the fabric switch capable of source routing and each known destination address in the network fabric; receive a packet having no source-routing information included therein; edit a packet header for the received packet to include source-routing information, enforcement options, and hop count information in a source routing tag (SR-Tag); and forward the received packet according to a next hop indicated by the source-routing information in the SR-Tag.
12. The system as recited in claim 11 , wherein the SR-Tag further comprises: an enforcement options field; a hop count indicator field for indicating a current device or hop in a path; and a set of source-routing information for the path, comprising a bridge indicator associated with a logical port indicator and options thereof for each device or hop in the path.
13. A computer program product for source routing packets, the computer program product comprising a computer readable storage device having program code embodied therewith, the program code readable/executable by a switch controller to: configure a network fabric comprising a plurality of fabric switches interconnected in the network fabric; determine one or more paths through the network fabric between any two hosts connected thereto; create a source-routing table to store the one or more paths through the network fabric between any two hosts connected thereto; store the one or more paths through the network fabric between any two hosts connected thereto to the source-routing table; and store, to a first host, at least one path through the network fabric originating from the first host in response to a determination that the first host comprises a forwarding table that includes source-routing information for packets being sent to other end hosts connected to the network fabric.
14. The computer program product as recited in claim 13 , wherein the switch controller is configured to operate according to OpenFlow standards, and wherein one or more of the fabric switches are OpenFlow compliant, wherein the routing table comprises each of the one or more paths through the network fabric between any two hosts connected thereto, each of the one or more paths comprising: a first destination address corresponding to a first host accessible via the network fabric; a second destination address corresponding to a second host accessible via the network fabric; and a destination port set representing each device or hop between the first host and the second host, each destination port comprising a device identifier and an egress port identifier for the device or hop in the path, wherein destination ports included in each destination port set are ordered successively from the first host to the second host, or vice versa.
15. The computer program product as recited in claim 13 wherein the program code readable/executable by the switch controller is further configured to edit a forwarding table stored to each fabric switch capable of source routing that is capable of communicating with the switch controller with source-routing information for each path utilizing the fabric switch.
16. The computer program product as recited in claim 13 , wherein the program code readable/executable by the switch controller is further configured to edit a forwarding table stored to each host capable of source routing connected to the network fabric that is capable of communicating with the switch controller with source-routing information for each path which includes the host capable of source routing.
17. A method for source routing packets, the method comprising: receiving or creating a packet using a network interface card (NIC) of a host connected to a network fabric comprising a plurality of fabric switches interconnected therein; determining a path through the network fabric by consulting a source-routing table stored to the host; storing source-routing information to a packet header for the packet, the source-routing information comprising the path; and sending the packet to a first device or hop indicated by the path in the source-routing information.
18. The method as recited in claim 17 , further comprising: receiving source-routing information from a switch controller; and storing the source-routing information to the source-routing table.
19. The method as recited in claim 18 , wherein the switch controller and the NIC are configured to operate according to OpenFlow standards, and the method further comprises receiving source-routing table details and rules from the switch controller via OpenFlow.
20. The method as recited in claim 17 , wherein the storing the source-routing information to the packet header comprises storing the source-routing information in a source routing tag (SR-Tag), the SR-Tag comprising: an enforcement options field; a hop count indicator field for indicating a current device or hop in the path; and the source-routing information for the path, comprising a bridge indicator associated with a logical port indicator and options thereof for each device or hop in the path.
Unknown
February 23, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.