Abstract:
The proposed methodology enables finding the most efficient roots in the network to carry multicast traffic, while further providing a theoretical basis for such selection. It guarantees the minimum expected delivery cost for multicast frames in the absence of any knowledge about the source and receivers.

Description:
RELATED APPLICATION 
       [0001]    This application is a Division of co-pending U.S. application Ser. No. 13/767,438 entitled “Mechanism and Framework for Finding Optimal Multicast Tree Roots Without the Knowledge of Traffic Sources and Receivers for Fabricpath and TRILL” filed Feb. 14, 2013, which is incorporated herein by reference. 
     
    
     BACKGROUND 
       [0002]    Layer-2 link-state protocols such as Fabricpath and Transparent Interconnection of Lots of Links (TRILL) networks (TRILL)—are currently being deployed as the networking fabric to enable large scale data centers. TRILL is an IETF (Internet Engineering Task Force) protocol implemented by devices such as Routing Bridges. TRILL introduces new data and control planes for Ethernet networks. FabricPath protocol allows combining plug-and-play simplicity of Ethernet with the reliability and scalability of Layer 3 routing. FabricPath, allows for the build of highly scalable Layer 2 multipath networks without the Spanning Tree Protocol. Such networks are used, for example, with large virtualization deployments, private clouds, and high-performance computing (HPC) environments. 
         [0003]    The main motivation behind using such technologies is their layer-2 like simplicity while they ensure efficient data forwarding by using shortest path routes for known unicast traffic. However, to carry unknown unicast traffic (such as frames destined to broadcast MAC address FF:FF . . . :FF or for which destination MAC and switch-id binding is not known) and multicast traffic tree-based forwarding mechanism is used. 
         [0004]    Prior mechanisms simply choose the root for the multicast trees based on the priority of the nodes. This may lead to inefficient forwarding if root nodes are not chosen carefully. There is a need for a mechanism to choose the optimal roots for multicast trees used for carrying multicast/unknown|unicast/broadcast traffic while minimizing the overall delivery cost. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments. In the drawings: 
           [0006]      FIG. 1  illustrates an example network environment for embodiments of this disclosure; 
           [0007]      FIG. 2  illustrates an example network environment for embodiments of this disclosure; 
           [0008]      FIG. 3  is a flow chart illustrating embodiments of this disclosure; and 
           [0009]      FIG. 4  is a block diagram of a computing network device. 
       
    
    
     DESCRIPTION OF EXAMPLE EMBODIMENTS 
     Overview 
       [0010]    Consistent with embodiments of the present disclosure, systems and methods are disclosed finding optimal multicast tree toots without the knowledge of the traffic sources and receivers. 
         [0011]    In some embodiments, a method for optimized root node identification without prior knowledge of multicast traffic sources and receivers is described. A priority value may be computed for each of a plurality of nodes as equal to a maximum priority value less a normalized distance value calculated as: a distance of the largest shortest path from the node to any other of the plurality of nodes added to the average distance from the node to any other of the plurality of nodes. An optimal candidate node may then be selected to become the root for one or more multicast trees, wherein the optimal candidate node is a node determined to have the minimum expected distance based on the computed priority values. 
         [0012]    In some embodiments, a method to select a root node candidate which minimizes the expected distance for multicast frame travel may be described. A plurality of unicast SPF runs may be performed to determine SPF costs. Each run may first comprise maintaining a first variable for the value of the largest SPF cost to be computed for any node so far. Next, a second variable may be maintained for the value of the total SPF cost for all nodes for which unicast SPF costs have been computed. A third variable may also be maintained for the number of nodes for which SPF cost has been computed. A root node candidate node may be selected based on the first variable, the second variable and the third variable. 
         [0013]    In some embodiments, methods may determine an average SPF cost for each of a plurality of nodes. Expected distance values may be calculated for each of the plurality of nodes as (the average SPF path cost+a largest determined SPF cost for each node). The expected distance values may then be normalized. Optimized root priorities may be calculated for each of the plurality of nodes as equal to a default root priority value+a bracketing value*(1−the normalized expected distance value). 
         [0014]    It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory only, and should not be considered to restrict the application&#39;s scope, as described and claimed. Further, features and/or variations may be provided in addition to those set forth herein. For example, embodiments of the present disclosure may be directed to various feature combinations and sub-combinations described in the detailed description. 
       DETAILED DESCRIPTION 
       [0015]    The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of this disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and substituting, reordering, or adding stages to the disclosed methods may modify the methods described herein. Accordingly, the following detailed description does not limit the disclosure. Instead, the proper scope of the disclosure is defined by the appended claims. 
         [0016]    The cost to deliver a multicast frame may be computed as the Shortest Path First (SPF) distance between the source node and the node farthest from the source along the multicast tree used for forwarding. SPF may be used as the basis for route calculation. It has a computational complexity of the square of the number of nodes, which can be decreased to the number of links in the domain times the log of the number of nodes for sparse networks (networks which are not highly connected). 
         [0017]    Embodiments of the present disclosure describe a methodology to identify the nodes which minimize an expected distance value for multicast frames. Notably, such embodiments work without the prior knowledge of multicast traffic sources and receivers. 
         [0018]    Referring to  FIG. 1 , an example of a network  100  in which embodiments described herein may be implemented is shown. The embodiments described herein may operate in the context of a data communication network including multiple network devices. Some of the devices in the network may be routing bridges, switches, bridges, routers, gateways, or other network devices. In some embodiments, the network device is implemented on a general purpose machine as described below with respect to  FIG. 4 . 
         [0019]    In some embodiments, network  100  may be a TRILL network and one or more of the network devices are routing bridges. The network  100  shown in  FIG. 1  includes routing bridge  105  and routing bridge  110  located at an edge of network  100 . Network  100  may further include a plurality of internal routing bridges  115 ,  120 ,  125 ,  130 ,  135 . Routing bridge  105  and routing bridge  100  (also referred to as “edge routers”) may operate as ingress and egress nodes, respectively, for a flow entering network  100  at routing bridge  105  and leaving the network respectively at routing bridge  110 , for example. 
         [0020]    In a network, such as network  100 , a tree with a network device as a root node, wherein the root network device has the smallest largest shortest path distance to any node in the network. Such a root network device may be used to provide the least cost (or distance) multicast tree for delivering traffic to all the other nodes (network devices). As the traffic sources are unknown, an assumption may be made that all the nodes have same probability of having traffic sources behind them with uniformly distributed traffic loads. Therefore, a node which has overall minimum average cost to all the other nodes, guarantees the minimum expected distance from the source node to the node. 
         [0021]    For the purpose of illustrating embodiments of the present invention, the largest shortest path distance from a node x to any other node may be denoted as Isp_distance(x). Isp_distance(x) represents the maximum cost to deliver the multicast frame to all the receivers from the root node, which is same as the largest shortest path from node x to any other node in the network. Next, the cost to deliver the multicast frame from the source node to root node x is given by the shortest path distance between the root and the source node. 
         [0022]    Since an assumption was made that sources could be behind any node in the network with the same probability, the expected cost to deliver the packet from the source node to the root node x of the tree may be represented by the average shortest path distance to any other node from node x. This value may be denoted as avg_distance(x). Finally, the expected distance in the forwarding of a multicast frame with the node x as the root of the multicast tree can be given by (expected_distance(x)): expected_distance(x) N Expected distance between the root of the tree (node x) and all the other source nodes+Largest distance in delivering the multicast frame from the root to all the receivers. 
         [0000]      expected_distance(x)≈avg_distance(x)+Isp_distance(x),   (Eq. 1)
 
         [0000]      expected_distance( x )≧Isp_distance( x )   (Eq. 2)
 
         [0023]    In some embodiments, expected_distance for node x is defined as the expected Shortest Path First (“SPF”) cost to deliver the packet from the source node to all the other nodes in the network, when node x is the root for the multicast tree used. Based on Eq. (1) and (2): the node y with minimum expected_distance(x) is given by: 
         [0000]        y =argminx_nodes(expected_distance( x ))−, wherein “nodes” refers to the set of all nodes in the network.   (Eq. 3)
 
         [0024]    Therefore, based on Eq. (3) the node y with minimum expected_distance(y) will minimize the overall SPF cost and hence y should be the optimal candidate to become the root for multicast trees. 
         [0025]    Based on the above observations embodiments derive the formula for computing the root_priority for a node x as: 
         [0000]      root_priority( x )=max_priority−normalize (Isp_distance( x )+avg_distance( x )) wherein, max_priority=255 and normalize is a function which normalizes the value so that it is between 0 and 254.   (Eq. 4)
 
         [0026]    The locally calculated root_priority by a node may be advertised to all the other nodes using the existing mechanism by using the largest shortest path. Based on Eq.(4) a node which has the minimum expected latency will have the highest priority value, and hence would be chosen as the root node. In case of a tie, it is broken using the existing methodology of comparing system ids and switch ids. 
         [0027]    Embodiments of the present disclosure maintain a number of state variables during each unicast SPF run. These state variables may be reset before the beginning of each unicast SPF run. A first state variable may be indicated as the largest_spf_path_cost. largest_spf_path_cost may be initialized to 0, and may be used during operation to hold the value of the largest spf cost to any node for which path has been computed during operation. 
         [0028]    A second state variable may be indicated as total_spf_path_cost. total_spf_path_cost may be initialized to 0, and may be used during operation to hold the total spf cost for all nodes for which unicast shortest paths have been computed. Similarly, a third state variable may be indicated as total_nodes. total_nodes may be initialized to 1 to include the identified local node. Each time a shortest path is computed for a node, total_nodes may be incremented by one. 
         [0029]    After the unicast SPF run, embodiments of the present disclosure compute a root_priority value as follows. First, the avg_spf_path_cost may be set equal to total_spf_path_cost/total_nodes. The expected_distance values may be similarly calculated as (avg_spf_path_cost+largest_spf_path_cost) normalized_expected_distance=max(expected_distance/(MAX_DISTANCE*2), 1). In some embodiments of the present disclosure, MAX_DISTANCE may be set to 1000, however, it should be understood that MAX_DISTANCE may be determined based on the network diameter or other parameters. 
         [0030]    The optimized_root_priority may then be equal to the default_root_priority+128*(1−normalized_expected_distance). In some embodiments of the present disclosure, default_root_priority may be set to 64 as the default value. Based on the above, optimized_root_priority may then be bounded by the interval [64, 192]. It should be understood that the interval boundary may be different depending upon differing predetermined parameters. For example, since a maximum possible configured value of root_priority could be up to 255, and a maximum value based on the optimized_root_priority may be 192, a window of values between [193, 255] may be provided for operators if they want to override the optimized root selection feature and configure a certain selected node as the root. 
         [0031]    In some embodiments, if the optimized_root_priority is different from a currently advertised value of the root priority in the LSP of the node, then the following two things are done in some embodiments of the present disclosure. First, the LSP may be updated with the new value so that other nodes can re-run the root election with the updated priority. Secondly, root election may be run locally before each multicast tree computation. 
         [0032]      FIG. 2  is a flow chart illustrating operation of embodiments of the present disclosure. Method  200  may start at step  210  where a priority value for each of a plurality of nodes is calculated as equal to a maximum priority value less a normalized distance value calculated as: a distance of the largest shortest path from the node to any other of the plurality of nodes added to the average distance from the node to any other of the plurality of nodes. 
         [0033]    Subsequently, at step  220 , an optimal candidate node may be selected as the root for one or more multicast trees, wherein the optimal candidate node is a node determined to have the minimum expected distance based on the computed priority values. In some embodiments, a predetermined maximum value may be established under which the priority value must fall. 
         [0034]    In some embodiments, the expected distance for the optimal candidate node is the expected SPF cost to deliver a multicast packet from a source node to all the other nodes in the network, when the optimal candidate node is the root for the multicast tree used. 
         [0035]    In some embodiments, the expected distance may comprise in part the largest distance in delivering the multicast frame from the root to all the network devices. To point, in some embodiments the expected distance may be greater than or equal to the largest shortest path distance. 
         [0036]    In some embodiments, the expected cost to deliver the packet from the source node to a root candidate node is the average shortest path distance to any other node is from node x. 
         [0037]    Method  200  may then proceed to step  230  where it may be determined whether two or more nodes are determined to have the same priority value. In some embodiments, if two or more nodes are determined to have the same priority value differing priority values may be assigned based on a comparison of network device identifiers. Method  200  may proceed to step  240 . At step  240 , the priority value for the optimal candidate node may be advertised to all the other nodes. 
         [0038]      FIG. 3  is a flow chart illustrating operating of embodiments of the present disclosure. Method  300  may begin at step  310  where a first unicast SPF run begins to determine SPF costs for a node. Method  300  proceeds first to step  320 . At step  320  a value of the largest SPF cost is set to the larger of the previously stored largest SPF cost and the SPF cost calculated for the current node. 
         [0039]    Next, method  300  may proceed to step  330  where a value of the total SPF cost for all nodes for which unicast SPF costs may be computed as the previous value of the total SPF cost plus the SPF cost calculated for the current node. 
         [0040]    Method  300  may then proceed to step  340 . At step  340  a value for the number of nodes for which SPF cost may be computed as the previous value of the number of nodes for which SPF cost has been computed plus 1. 
         [0041]    At step  350 , method  300  determines whether or not additional unicast SPF runs are needed to obtain SPF costs for the respective nodes. If additional unicast SPF runs are desired, method  300  returns to step  310 . Alternatively, if no additional unicast SPF runs are desired, method  300  proceeds to step  360  where a root node candidate may be selected based on the values obtained in method  300 . In some embodiments, the root node candidate is selected by determining node priority values based on the values in method  300 . 
         [0042]    In some embodiments, prior to the initial execution of method  300 , the value of the largest SPF cost may be initialized to zero. Similarly, the total SPF cost for all nodes for which unicast SPF costs may be computed may be initialized to zero. 
         [0043]    Employment of embodiments of the present disclosure has several advantages over previous approaches. Notably, present embodiments are optimal to prior root selection methodology in the absence of identifying source and receivers of the multicast traffic. Such efficient root election helps in the efficient use of network resources which significantly improves the multicast traffic delivery for cloud-based implementations. 
         [0044]    Furthermore, presently described embodiments provide a framework which is completely distributed in nature. Each node can compute their priority independently, and then use the existing LSP-based information carrying methodology to find the best root in the network. Presently described embodiments are intuitive to implement without any disruptions to existing mechanisms. Further it creates only minimal computation overhead, as the shortest paths to other nodes are available as a part of the unicast SPF run. 
         [0045]      FIG. 4  illustrates a computing device  400 , such as a server, host, or other network devices described in the present specification. Computing device  400  may include processing unit  425  and memory  455 . Memory  455  may include software configured to execute application modules such as an operating system  410 . Computing device  400  may execute, for example, one or more stages included in the methods as described above. Moreover, any one or more of the stages included in the above describe methods may be performed on any element shown in  FIG. 4 . 
         [0046]    Computing device  400  may be implemented using a personal computer, a network computer, a mainframe, a computing appliance, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal. The aforementioned systems and devices are examples and the processor may comprise other systems or devices. 
         [0047]    Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of this disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. 
         [0048]    While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods&#39; stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure. 
         [0049]    All rights including copyrights in the code included herein are vested in and are the property of the Applicant. The Applicant retains and reserves all rights in the code included herein, and grants permission to reproduce the material only in connection with reproduction of the granted patent and for no other purpose. 
         [0050]    While the specification includes examples, the disclosure&#39;s scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as examples for embodiments of the disclosure.