Patent ID: 8902892
Filing Date: 2014-12-02
Classification: H04L

Abstract:
1. A method of routing data packets in a computer network having a multitude of nodes and a multitude of links connecting the nodes together, each data packet including a class identifier identifying the data packet as belonging to one of a plurality of packet classes, the method comprising: embedding a plurality of configurable virtual logical networks in the computer network, each of the virtual logical networks being formed by a configurable set of the nodes of the computer network, and each of the packet classes being associated with one of said virtual logical networks; each node, for each of a defined set of data packets, looking at the data packet to identify the class of the data packet from the class identifier of the data packet; and routing the data packet from the node based on the identified class of the data packet; and wherein an identified collective of the data packets is processed to compute a number of resulting data packets based on data of the identified collective of packets without reducing the number of data packets routed through the network; wherein each node includes a route descriptor table including one or more route descriptors, each of the one or more route descriptors specifying one or more routes from said each node to one or more other nodes, and wherein each of the plurality of packet classes is associated with one of the one or more route descriptors, and wherein the routing step includes the steps of, each node, for each of the defined set of data packets, identifying the one of the route descriptors, in the route descriptor table of said each node, associated with the class of said each data packet; and routing the data packet from said each node to one or more of the other nodes on the one or more routes specified by the route descriptor with which the class of said each data packet is associated; and wherein to route the data packet through the one of the virtual logical networks associated with the one of the packet classes to which the data packet belongs; and changing the configuration of one or more of the configurable virtual logical networks by changing which ones of the nodes are in the configurable set of the nodes forming said one or more of the configurable virtual logical networks by changing one or more of the route descriptors of one or more of the route descriptor tables; and wherein: each node includes one or more channels, each of the channels for sending the data packets from said each node to a respective one of the other nodes; each route descriptor, of the route descriptor table of said each node, identifies one or more of said channels for routing the data packets, of the packet class associated with said each route descriptor, from said each node to one or more of the other nodes; the route descriptor of each node includes two bits associated with each of the channels of said each node; for each route descriptor of each node, a first of the two bits of the route descriptor indicates whether the channel associated with said first bit is a source channel for the packet class associated with said each route descriptor, and a second of the two bits of the route descriptor indicates whether the channel associated with said second bit is a target channel for data packets belonging to the packet class associated with said each route descriptor; and for each of the nodes: if one of the data packets enters said each node from one of the channels of the node that is indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to the channels of the node indicated as target channels by the route descriptor associated with the packet class to which said one of the data packets belongs; and if one of the data packets enters said each node from one of the channels of the node that is not indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to all the channels of the node indicated as source channels by the route descriptor associated with the packet class to which said one of the data packets belongs.