Patent Publication Number: US-2016226753-A1

Title: Scheme for performing one-pass tunnel forwarding function on two-layer network structure

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority of U.S. provisional application Ser. No. 62/111,701 filed on Feb. 4, 2015, which is entirely incorporated herein by reference. 
    
    
     BACKGROUND 
     Generally speaking, network visualization can be achieved by establishing a tunnel across a public network such as a cloud network to send packet(s) from an end point to a remote end point. Tunneling can provide virtual private network (VPN) services for users. Routing nodes or bridges in the public network are unaware that the transmission is part of a private network. Tunneling can allow the use of the Internet to convey data on behalf of the private network. 
     SUMMARY 
     One of the objectives of the present invention is to provide a novel system, method, and corresponding controller for performing packet encapsulation and transmission by providing/executing one-pass tunnel forwarding scheme/function on a two-layer network structure. 
     According to embodiments of the present invention, a system running a device within a data center is disclosed. The system comprises a first table, a second table, and a controller. The first table comprises forwarding information of at least one station corresponding to an overlay network structure. The second table comprises forwarding information of at least one station corresponding to an underlay network structure. The controller, couple to the first and second tables and configured for: receiving a packet; computing a specific overlay path/tree and a specific underlay path/tree according to the first table, the second table, and a destination to transmit the packet,; obtaining information of an overlay next hop station and information of an underlay next hop station according to the specific overlay path/tree and the specific underlay path/tree; and, performing packet encapsulation and transmission for the packet according to the information of the overlay next hop station and the information of the underlay next hop station. 
     According to embodiments of the present invention, a method used within a data center is disclosed. The method comprises: receiving a packet; computing a specific overlay path/tree and a specific underlay path/tree according to a destination to transmit the packet, a first table, and a second table, wherein the first table comprises forwarding information of at least one station corresponding to an overlay network structure, and the second table comprises forwarding information of at least one station corresponding to an underlay network structure; obtaining information of an overlay next hop station and information of an underlay next hop station according to the specific overlay path/tree and the specific underlay path/tree; and, performing packet encapsulation and transmission for the packet according to the information of the overlay next hop station and the information of the underlay next hop station. 
     According to embodiments of the present invention, a controller used by a system running a device within a data center is disclosed. The controller comprises a processing circuit and an output circuit. The processing circuit is configured for receiving a packet, computing a specific overlay path/tree and a specific underlay path/tree according to a destination to transmit the packet, a first table, and a second table, obtaining information of an overlay next hop station and information of an underlay next hop station according to the specific overlay path/tree and the specific underlay path/tree, and performing packet encapsulation for the packet according to the information of the overlay next hop station and the information of the underlay next hop station. The output circuit is coupled to the processing circuit and configured for transmitting the encapsulated packet. The first table comprises forwarding information of at least one station corresponding to an overlay network structure, and the second table comprises forwarding information of at least one station corresponding to an underlay network structure. 
     These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a systematic diagram showing the flowchart of a system according to an embodiment of the present invention. 
         FIG. 2  is a diagram of an embodiment of the system as shown in  FIG. 1 . 
         FIG. 3  is a diagram of a hardware embodiment of the controller as shown in  FIG. 2 . 
         FIG. 4  is a diagram showing a first example scenario of the present invention for L3 network topology. 
         FIG. 5  is a diagram showing a second example scenario of the present invention for L2 network topology. 
         FIG. 6A  is a systematic diagram showing the flowchart of a system according to another embodiment of the present invention. 
         FIG. 6B  is a diagram showing a dual-port memory device comprising first and second tables according to an embodiment. 
         FIG. 7A  is a diagram showing an example scenario of the present invention for multicast transmission of packets on L3 network topology. 
         FIG. 7B  and  FIG. 7C  are diagrams respectively showing examples of different forwarding trees for multicast transmission as shown in  FIG. 7A . 
     
    
    
     DETAILED DESCRIPTION 
     Please refer to  FIG. 1 , which is a systematic diagram showing the flowchart of a system  100  according to an embodiment of the present invention. The system  100  is arranged to run on a switch device (or a router device) within a data center, can be implemented by using a single integrated circuit chip, and is capable of providing/executing a one-pass tunnel forwarding scheme/function on a two-layer network structure (including structures of overlay network and underlay network). One-pass means that the system  100  can process/encapsulate packets within a single one switch device without using two switch devices and without re-circuiting an output of a device back to the input of the device. This reduces circuit costs. Tunnel forwarding means that the system  100  can establish data tunnel(s) for unicast/multicast/broadcast traffic flows to provide virtual private network (VPN) and network virtualization services. 
     The overlay network for example can be a virtual private tunnel between a local data center and a remote data center, and is implemented on top of an existing physical network. The overlay network may employ an overlay table storing any kinds of reference information for the overlay network to transfer packet (s). For example, the overlay table includes inner (i.e. overlay) header information such as VLAN ID, forwarding domain (FD) ID, MAC address, virtual routing forwarding (VRF), IP address, and/or IP prefix. For instance, for L3 overlay network, information of VRF or Destination IP address can be used to search the overlay table so as to obtain a lookup result (i.e. next hop information) such as remote TEP (Tunnel Endpoint) ID or Tunnel ID (for single path or multiple path after ECMP path selection). For L2 overlay network, information of FD ID or Destination MAC address can be used to search the overlay table so as to obtain a lookup result (i.e. next hop information) such as TRILL Pseudo nickname or MC_LAG ID (for single path or multiple path after ECMP path selection). 
     The underlay network for example can be a public core network including multiple switch devices, and is reconfigured to provide the paths required to provide the inter-endpoint network connectivity. The underlay network may employ an underlay table storing any kinds of reference information for the underlay network to transfer packet(s). For example, the underlay table includes outer (i.e. underlay) header information such as VLAN ID, forwarding domain (FD) ID, MAC address, virtual routing forwarding (VRF), IP address, IP prefix, TRILL Pseudo nickname, MC_LAG ID, TEP (Tunnel Endpoint) ID, and/or Tunnel ID. For instance, the TRILL based underlay network can employ information of Routing Bridge ID (RB ID) as reference. Alternatively, the MPLS based underlay network can employ information of MPLS labels as reference. For instance, for L3 underlay network, information of TEP_ID or Tunnel ID can be used to search the overlay table so as to obtain a lookup result (i.e. next hop information) such as Next hop transit router information (e.g. the MAC address and the egress interface for the next hop router) (for single path or multiple path after ECMP path selection). For L2 underlay network, information of TRILL Pseudo nickname or MC_LAG ID can be used to search the overlay table so as to obtain a lookup result (i.e. next hop information) such as Next hop transit router information (e.g. the MAC address and the egress interface for the next hop router) (for single path or multiple path after ECMP path selection). 
     Provided that substantially the same result is achieved, the steps of the flowchart shown in  FIG. 1  need not be in the exact order shown and need not be contiguous, that is, other steps can be intermediate. Steps of  FIG. 1  are detailed in the following: 
     Step  105 : receiving a packet; 
     Step  110 : looking up a first table according to a destination to transmit the packet, to obtain information of at least one overlay station; 
     Step  115 : selecting a specific overlay path/tree among at least one overlay path/tree formed by the at least one overlay station; 
     Step  120 : obtaining information of an overlay next hop station according to the specific overlay path/tree; 
     Step  125 : looking up a second table according to the information of the overlay next hop station, to obtain information of at least one underlay station; 
     Step  130 : selecting a specific underlay path/tree among at least one underlay path/tree formed by the at least one underlay station; 
     Step  135 : obtaining information of an underlay next hop station according to the specific underlay path/tree; and 
     Step  140 : performing packet encapsulation and transmission for the packet according to the information of the overlay next hop station and the information of the underlay next hop station. 
     In this embodiment, the first table is a forwarding table (or can be regarded as a routing database) for the overlay network and comprises/stores reference information for the overlay network to transfer packet(s). For instance, the first table comprises forwarding information of station(s) corresponding to the overlay network. The first table may comprise information index such as identifier (ID) and/or address of station(s) and network prefixes of the overlay network structure (i.e. same modification for the underlay network structure). The second table is a forwarding table (or can be regarded as a routing database) for an underlay network and comprises/stores reference information for the underlay network to transfer packet(s). For instance, the second table comprises forwarding information of station(s) corresponding to the underlay network structure. The second table may comprise information index such as identifier (ID) and/or address of a station on the underlay network structure. In addition, the forwarding information comprised by the first table and the forwarding information comprised by the second table may correspond to Internet Protocol addresses (IP addresses), IP identifications (ID), or IP prefix respectively. 
     Alternatively, the forwarding information comprised by the first table and the forwarding information comprised by the second table may correspond to MAC (media access control) addresses or MAC identifications, respectively. Alternatively, the forwarding information comprised by the first table may comply with one format of IP network specification and MAC network specification, and the forwarding information comprised by the second table may comply with the other format of the IP network specification and MAC network specification. That is, both the forwarding information comprised by the first table and the forwarding information comprised by the second table can be implemented by using/providing IP addresses, IP identifications, MAC addresses, MAC identifications, or any one format combination of IP network specification and MAC network specification. 
     In addition, an overlay station means a station on the overlay network structure, and correspondingly an underlay station indicates a station on the underlay network structure. The above-mentioned path/tree means a forwarding path/tree, and the system  100  is capable of selecting a shortest-path forwarding path/tree and/or selecting a load-balancing based forwarding path/tree for a case of equal-cost-multiple-path (ECMP) path/tree. The above-mentioned overlay path/tree means a forwarding path/tree on the overlay network structure, and the underlay path/tree means a forwarding path/tree on the underlay network structure. The system  100  can make routing/forwarding decisions on the overlay network structure and underlay network structure based on a variety of kinds of routing/forwarding protocols and/or based on different requirements for quality of service. In addition, an overlay next hop station indicates a next hop station on the overlay network structure, and this station is determined after computing and selecting the specific overlay path/tree. An underlay next hop station indicates a next hop station on the underlay network structure, and this station is determined after computing and selecting the specific underlay path/tree. 
     After obtaining the information of overlay next hop station and the information of underlay next hop station, the system  100  is arranged for encapsulating data of the packet with the information and transmitting the encapsulated packet. Thus, by steps of  FIG. 1 , the system  100  provides overlay header forwarding lookup (looking up the first table) as well as underlay header forwarding lookup (looking up the second table) during a single packet processing procedure for encapsulation of the received packet. Compared with conventional schemes, the system  100  can reduce longer latency and save internal bandwidth without losing the capability of multi-path load balance or load sharing. Additionally, the forwarding information stored by the first table can comply with IP network specification or data-link-layer network such as MAC network specification and the forwarding information stored by the second table can comply with IP network specification or data-link-layer network such as MAC network specification. Thus, the system  100  is capable of supporting L2/L3 overlay network and L2/L3 underlay network. 
       FIG. 2  is a diagram of an embodiment of the system  100  as shown in  FIG. 1 . The system  100  comprises a first table  205 A, a second table  205 B, and a controller  210 . The first table  205 A is a forwarding/routing table for the overlay network structure and comprises/stores forwarding information of the overlay network structure. The second table  205 B is a forwarding/routing table for the underlay network structure and comprises/stores forwarding information of the underlay network structure. The controller  210  is coupled to the first table  205 A and second table  205 B, and comprises corresponding multiple logics  210 A adapted for performing Steps  105 - 140  of  FIG. 1 . For example, the logics  210 A may include eight logics for respectively performing/executing operations of Steps  105 - 140  of  FIG. 1 , and the eight logics can be formed by a pipeline mechanism to process incoming data simultaneously. This makes that ideally no logics will be idle. In addition, the multiple logics can be implemented by an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to as “module.” The first table  205 A and second table  205 B can be implemented by using identical or different memory devices. This is not intended to be a limitation of the present invention. 
     In addition, the controller  210  can be implemented by using an entirely hardware embodiment.  FIG. 3  is a diagram of a hardware embodiment of the controller  210  as shown in  FIG. 2 . The controller  210  comprises a processing circuit  215  and an output circuit  220 . The processing circuit  215  is configured to perform Steps  105 - 135  and the encapsulation operation of Step  140 , and the output circuit  220  is coupled to the processing circuit  215  and configured to perform the transmission operation of Step  140  for packets. This also fails within the scope of the present invention. 
     In order to clearly describe the spirit of the present invention, several different scenarios are provided in this paragraph and the following paragraphs.  FIG. 4  shows a first example scenario of the present invention for L3 network topology. As shown in  FIG. 4 , the net  405  comprises three subnets  405 A,  405 B,  405 C, and the net  410  comprises  410 A,  410 B,  410 C. Switch devices TEP_A, TEP_B, TEP_B′ are respectively connected between nets and the cloud network. The cloud network for example comprises multiple transit routers R 1 -R 5 . For the undelay network structure, the switch devices TEP_A, TEP_B, TEP_B′ are used as roles of transit routers like R 1 -R 5 . For the overlay network structure, the switch devices TEP_A, TEP_B, TEP_B′ are used as roles of tunnel end points for performing tunnel initiation and termination. For example, the tunnel end point TEP_A performs tunnel initiation and the tunnel endpoint TEP_A performs tunnel termination so that TEP_A and TEP_B can establish a tunnel for providing data transmission services (e.g. VPN service) for two subnets located within different nets  405  and  410 . In another example, the tunnel end points TEP_A and TEP_B′ can establish another tunnel. 
     The system  100  can be applied to a switch device such as any one of TEP_A, TEP_B, TEP_B′. For example, a packet may be generated from a source such as subnet  405 A to a remote destination such as subnet  410 A. Taking an example of switch device TEP_A, the system  100  (or controller  210 ) is arranged to run on the switch device TEP_A. Specifically, the controller  210  receives the packet (Step  105 ). The controller  210  then looks up the first table  205 A according to the destination (i.e. subnet  410 A) to transmit the packet, to obtain forwarding information of at least one overlay station. In this example, the controller  210  obtains information of two overlay stations, i.e. the tunnel end points TEP_B and TEP_B′. The controller  210  knows that the packet can be sent to the subnet  410 A via either tunnel end point TEP_B or tunnel end point TEP_B′. For tunnel end points TEP_A, two different overlay forwarding paths are formed wherein one forwarding path is from TEP_A to TEP_B and the other forwarding path is from TEP_A to TEP_B′. The controller  210  may select a shortest-path forwarding path as the specific overlay path if costs of the two forwarding paths are different. 
     Alternatively, the controller  210  may select an equal-cost-multiple-path (ECMP) forwarding path as the specific overlay path based on load-balancing scheme and/or load sharing schemes if costs of the two forwarding paths are identical. Alternatively, if only one of the tunnel end points TEP_B, TEP_B′ exists, the controller  210  may select/determine a single one forwarding path as the specific overlay path. For example, in this scenario, the controller  210  decides the forwarding path from TEP_A to TEP_B as the specific overlay path. Then, based on the determined specific overlay path, the controller  210  obtains information (e.g. index and/or address) of an overlay next hop station such as tunnel end point TEP_B. It should be noted that the overlay next hop station may be another tunnel end point in another scenario if the determined specific overlay path comprises intermediate tunnel end point (s). 
     After obtaining the information (e.g. index, identifier (s) and/or address) of the overlay next hop station (i.e. tunnel end point TEP_B), the controller  210  looks up the second table according to the information of the tunnel end point TEP_B, to obtain information of at least one underlay station. The at least one underlay station forms at least one underlay forwarding path. In this scenario, as shown in  FIG. 4 , the controller  210  may find/obtain two forwarding paths on the underlay network structure after looking up the second table  205 B wherein one forwarding path may comprise the transit router R 1  as a next hop station and the other forwarding path may comprise another transit router R 2  as a next hop station. The controller  210  knows that the packet can sent to the tunnel end point TEP_B via any one of the two forwarding paths, and then selects one forwarding path among the two forwarding paths as the specific underlay path. The controller  210  may select a shortest-path forwarding path as the specific overlay path if costs of the two forwarding paths are different. Alternatively, the controller  210  may select one of equal-cost-multiple-path (ECMP) forwarding paths as the specific forwarding path based on load-balancing scheme and/or load sharing schemes if costs of the two forwarding paths are identical. Alternatively, if only single one forwarding path is found, the controller  210  may select/determine this single one forwarding path as the specific underlay path. For example, in this scenario, the controller  210  decides the forwarding path comprising the next hop station R 1  as the specific overlay path. 
     After determining the specific overlay path, the controller  210  can obtain the information of an underlay next hop station (i.e. transit router R 1 ) based on the specific overlay path. Finally, the controller  210  performs packet encapsulation and transmission for the packet according to the information of the overlay next hop station (e.g. tunnel end point TEP_B) and the information of underlay next hop station (e.g. transit router R 1 ). 
     Alternatively, the system  100  can be applied into data-link-layer network such MAC network.  FIG. 5  shows a second example scenario of the present invention for L2 network topology (TRILL (Transparent Interconnection of Lots of Links) network topology). As shown in  FIG. 5 , routing bridge RB_A (or called switch device) is connected between virtual machine VM 1  and the cloud network, and routing bridges RB_B, RB_B′ are respectively connected between virtual machine VM 2  and the cloud network. The cloud network for example comprises multiple transit routing bridges RB 1 -RB 5 . For the undelay network structure, routing bridges RB_A, RB_B, RB_B′ are used as roles of transit routing bridges like RB 1 -RB 5 . For the overlay network structure, routing bridges RB_A, RB_B, RB_B′ are used as roles of tunnel endpoints for performing tunnel initiation and termination. For example, the tunnel end point RB_A as an ingress routing bridge performs tunnel initiation and the tunnel endpoint RB_B as an egress routing bridge performs tunnel termination so that RB_A and RB_B can establish a tunnel (shown by dotted lines) for providing data transmission services for virtual machines VM 1  and VM 2 . In another example, the tunnel end points RB_A and RB_B′ can establish another tunnel (shown by dotted lines). 
     The system  100  can be applied to a routing bridge such as any one of RB_A, RB_B, RB_B′. For example, a packet may be generated from virtual machine VM 1  to a remote destination such as virtual machine VM 2 . Taking an example of routing bridge RB_A, the system  100  (or controller  210 ) is arranged to run on the routing bridge RB_A. Specifically, the controller  210  receives the packet (Step  105 ). The controller  210  then looks up the first table  205 A according to the destination (i.e. virtual machine VM 2 ) to transmit the packet, to obtain forwarding information of at least one overlay station. In this example, the controller  210  obtains information of two overlay stations, i.e. the routing bridges RB_B and RB_B′. The controller  210  knows that the packet can be sent to the virtual machine VM 2  via either RB_B or RB_B′. For routing bridge RB_A, two different overlay forwarding paths are formed wherein one forwarding path is from RB_A to RB_B and the other forwarding path is from RB_A to RB_B′. The controller  210  may select a shortest-path forwarding path as the specific overlay path if costs of the two forwarding paths are different. 
     Alternatively, the controller  210  may select an equal-cost-multiple-path (ECMP) forwarding path as the specific overlay path based on load-balancing scheme and/or load sharing schemes if costs of the two forwarding paths are identical. Alternatively, if only one of routing bridges RB_B, RB_B′exists, the controller  210  may select/determine a single one forwarding path as the specific overlay path. For example, in this scenario, the controller  210  decides the forwarding path from RB_A to RB_B as the specific overlay path. Then, based on the determined specific overlay path, the controller  210  obtains information (e.g. index and/or address) of an overlay next hop station such as routing bridge RB_B. It should be noted that the overlay next hop station may be another routing bridge in another scenario if the determined specific overlay path comprises intermediate routing bridge(s). 
     After obtaining the information (e.g. index, identifier(s) and/or address) of the overlay next hop station (i.e. routing bridge RB_B), the controller  210  looks up the second table according to the information of routing bridge RB_B, to obtain information of at least one underlay station. The at least one underlay station forms at least one underlay forwarding path. In this scenario, as shown in  FIG. 5 , the controller  210  may find/obtain two forwarding paths on the underlay network structure after looking up the second table  205 B wherein one forwarding path may comprise the transit routing bridge RB 1  as a next hop station and the other forwarding path may comprise another transit routing bridge RB 2  as a next hop station. The controller  210  knows that the packet can sent to the routing bridge RB_B via any one of the two forwarding paths, and then selects one forwarding path among the two forwarding paths as the specific underlay path. The controller  210  may select a shortest-path forwarding path as the specific overlay path if costs of the two forwarding paths are different. 
     Alternatively, the controller  210  may select one of equal-cost-multiple-path (ECMP) forwarding paths as the specific forwarding path based on load-balancing scheme and/or load sharing schemes if costs of the two forwarding paths are identical. Alternatively, if only single one forwarding path is found, the controller  210  may select/determine this single one forwarding path as the specific underlay path. For example, in this scenario, the controller  210  decides the forwarding path comprising the next hop station RB 1  as the specific overlay path. 
     After determining the specific underlay path, the controller  210  can obtain the information of an underlay next hop station (i.e. transit routing bridge RB 1 ) based on the specific underlay path. Finally, the controller  210  performs packet encapsulation and transmission for the packet according to the information of the overlay next hop station (e.g. routing bridge RB_B) and the information of underlay next hop station (e.g. transit routing bridge RB 1 ). 
     Additionally, the above-mentioned first and second tables can be stored by using a single dual-port memory device. The operations of looking up the first table and looking up the second table can be simultaneously performed.  FIG. 6A  is a systematic diagram showing the flowchart of a system  600  according to another embodiment of the present invention. The system  600  is arranged to run on a switch device or a router device within a data center, implemented by using a single integrated circuit chip, and is capable of providing a one-pass tunnel forwarding scheme/function on the two-layer network structure (including structures of overlay network and underlay network). Provided that substantially the same result is achieved, the steps of the flowchart shown in  FIG. 6A  need not be in the exact order shown and need not be contiguous, that is, other steps can be intermediate. Steps of  FIG. 6A  are detailed in the following: 
     Step  605 : receiving packets P 1  and P 2 ; 
     Step  610 : looking up the first table  205 A for packet P 2  to obtain information of at least one overlay station, and simultaneously looking up the second table  205 B for packet P 1  to obtain information of at least one underlay station; 
     Step  615 : selecting a specific overlay path/tree for packet P 2  and simultaneously selecting a specific underlay path/tree for packet P 1 ; 
     Step  620 : obtaining information of an overlay next hop station for packet P 2  and simultaneously obtaining information of an underlay next hop station for packet P 1 ; and 
     Step  625 : performing packet encapsulation and transmission for each packet P 1  and P 2  based on information of corresponding overlay/underlay next hop stations. 
     As shown in  FIG. 6A , the dotted line means that the flow goes to Step  610  to look up another forwarding table for underlay network after Step  620  for each packet such as P 1 . That is, taking an example of packet P 1 , Steps  605 - 620  are performed sequentially to find information of overlay next hop station, and then flow goes back to sequentially perform Steps  610 - 620  to find information of underlay next hop station. In addition, the packet P 2  follows the packet P 1 , and the first and second tables  205 A &amp;  205 B are implemented by the dual-port memory device. The system  600  can simultaneously access the first and second tables. Thus, the system  600  can looking up the second table  205 B for the previous packet P 1  to obtain information of underlay station(s) and simultaneously looking up the first table  205 A for the next packet P 2  to obtain information of overlay station(s). 
     Please refer to  FIG. 6B , which is a diagram showing the dual-port memory device  630  comprising first and second tables  205 A &amp;  205 B according to an embodiment. As shown in  FIG. 6B , the dual-port memory device  630  comprises two portions where the upper portion can be used for storing information of first table  205 A and the lower portion can be used for storing information of second table  205 B. For example, the controller  210  can look up the first table  205 A by a memory address ADDR 2  and simultaneously look up the second table  205 B by another memory address ADDR 1 . In addition, the system  600  can select/determine the specific underlay forwarding path/tree for the previous packet P 1  and simultaneously select/determine the specific overlay forwarding path/tree for next packet P 2 . In addition, the system  600  can obtain information of an underlay next hop station for the previous packet P 1  and simultaneously obtain information of an overlay next hop station for the next packet P 2 . For each packet, after information of corresponding overlay and underlay next hop stations have been collected, the system  600  is arranged for performing packet encapsulation and transmission. It should be noted that the system  600  as shown in  FIG. 6A  can be also implemented by using any one of the embodiments showing  FIG. 2  and  FIG. 3 . Corresponding description is not detailed for brevity. 
     Further, in addition to unicast transmission for packet(s), the system  100 / 600  can be arranged for processing multicast transmission for packet(s) or traffic flow(s). For multicast transmission, the system  100 / 600  is arranged for selecting specific overlay and underlay forwarding trees to find/decide information of overlay and underlay next hop stations. In order to clearly describe the operations of processing multicast/broadcast transmission for packet (s),  FIGS. 7A-7C  are provided.  FIG. 7A  shows an example scenario of the present invention for multicast transmission of packets on L3 network topology.  FIG. 7B  and  FIG. 7C  respectively show examples of different forwarding trees for multicast transmission. As shown in  FIG. 7A , this network topology can be provided for Virtual Extensible Local Access Network (VXLAN) with L2 overlay service and for IP global network with L3 underlay service. The virtual machine VM 1  is arranged to send a multicast traffic to remote virtual machines VM 2 -VM 5  within the same L2 domain. The system  100 / 600  is applied into VXLAN tunnel end points VTEP_A, VTEP_B, and VTEP_C for providing tunnel end point function of VXLAN tunnel. For example, the VXLAN tunnel end point VTEP_A is used for encapsulating the multicast traffic sent from virtual machine VM 1  into a multicast VXLAN tunnel and routing/forwarding VXLAN packets through a multicast tree (i.e. a specific underlay forwarding tree) in the transport L3 network. 
     Specifically, as shown in  FIG. 7A , the VXLAN tunnel end point VTEP_A is connected between virtual machine VM 1  and the cloud network (transport L3 network), and VXLAN tunnel end points VTEP_B, VTEP_C are respectively connected between virtual machines VM 2 -VM 3  &amp; VM 4 -VM 5  and the cloud network. The cloud network comprises multiple transit routers R 1 -R 5 . For the undelay network structure, VXLAN tunnel end points VTEP_A, VTEP_B, VTEP_C are used as roles of transit routers like R 1 -R 5 . For the overlay network structure, VXLAN tunnel end points VTEP_A, VTEP_B, VTEP_C are used as roles of tunnel end points for performing tunnel initiation and termination. For example, for multicast transmission of traffic flows, the VXLAN tunnel end point VTEP_A as an ingress point can perform tunnel initiation with the VXLAN tunnel end points VTEP_B and VTEP_C to establish a multicast VXLAN tunnel. For example, a multicast traffic flow may be generated from virtual machine VM 1  to multiple remote destinations such as virtual machines VM 2 -VM 5 . 
     Taking an example of VXLAN tunnel end point VTEP_A, the system  100  (or controller  210 ) is arranged to run on VXLAN tunnel end point VTEP_A. The controller  210  receives packet (s) of the multicast traffic flow. The controller  210  then looks up the first table  205 A according to the destinations (i.e. virtual machines VM 2 - 5 ) to transmit the packet, to obtain forwarding information of at least one overlay station. In this example, the controller  210  obtains information of two overlay stations, i.e. VXLAN tunnel end points VTEP_B and VTEP_C. The controller  210  knows that the packet can be sent to the virtual machines VM 2 -VM 5  via both VTEP_B and VTEP_C. For VXLAN tunnel end point VTEP_A, an overlay forwarding tree is formed and this tree comprises a branch from VTEP_A to VTEP_B and a branch from VTEP_A to VTEP_C. That is, the controller  210  can perform multicast transmission on the overlay network structure. The controller  210  selects the overlay forwarding tree as the specific overlay tree since only one single tree is formed/found. 
     Alternatively, the controller  210  may select a least-cost forwarding tree as the specific overlay tree if multiple forwarding trees are formed or found. Alternatively, the controller  210  may select an equal-cost forwarding tree as the specific overlay tree based on load-balancing scheme and/or load sharing schemes if costs of the multiple forwarding trees are identical. Then, based on the determined specific overlay tree, the controller  210  obtains information (e.g. index and/or address) of overlay next hop station (s) such as VTEP_B and VTEP_C. It should be noted that the overlay next hop station(s) may be another VXLAN tunnel end point(s) in another scenario if the determined specific overlay tree comprises intermediate VXLAN tunnel end point(s). 
     After obtaining the information (e.g. index, identifier(s) and/or address) of the overlay next hop station(s) such as VTEP_B and VTEP_C, the controller  210  looks up the second table  205 B according to the information of overlay next hop station(s) VTEP_B and VTEP_C, to obtain information of at least one underlay station. The at least one underlay station forms at least one underlay forwarding tree. In this scenario, as shown in  FIG. 7B  and  FIG. 7C , the controller  210  may find/obtain multiple underlay forwarding trees on the underlay network structure after looking up the second table  205 B wherein one underlay forwarding tree is shown in  FIG. 7B  (represented by bold lines) and another underlay forwarding tree is shown in  FIG. 7C  (represented by bold lines). The controller  210  knows that the packets can sent to the VXLAN tunnel end points VTEP_B and VTEP_C via any one of the two forwarding trees, and then selects one forwarding tree among the two forwarding trees as the specific underlay tree. The controller  210  may select a least-cost forwarding tree as the specific overlay tree. Alternatively, the controller  210  may dynamically select one of equal-cost forwarding trees as the specific forwarding tree based on load-balancing scheme and/or load sharing schemes if costs of the two forwarding trees are identical. Alternatively, if only single one forwarding tree is found or formed, the controller  210  may select/determine this single one forwarding tree as the specific underlay tree. For example, the controller  210  can decide the forwarding tree of  FIG. 7B  as the specific underlay tree for packets of a multicast flow, and decide the forwarding tree of  FIG. 7C  as the specific underlay tree for packets of another different multicast flow. Thus, the VXLAN tunnel end point VTEP_A can provide the capability of encapsulating different multicast flows into different VXLAN multicast tunnels with the same L2 network domain. This introduces better load balancing. After determining the specific underlay tree, the controller  210  can obtain the information of underlay next hop station(s) such as transit router R 1  based on the specific underlay tree. Finally, the controller  210  performs packet encapsulation and transmission for packets of multicast flows according to the information of the overlay next hop station (s) (e.g. VTEP_B and VTEP_C) and the information of underlay next hop station (s) (e.g. transit router R 1 ). 
     It should be noted that the above-mentioned system  100 / 600  and controller  210  can also be applied for processing packets of broadcast traffic flows. In addition, the system  100 / 600  and controller  210  can be suitable for network topologies with L2/L3 overlay network service and L2/L3 underlay network service. 
     Furthermore, the system  100 / 600  and controller  210  can dynamically update the first table  205 A and second table  205 B. In addition, the system  100 / 600  and controller  210  can temporarily cache look-up result(s) of previous packet(s) for first table  205 A and second table  205 B, and thus can directly obtain information of overlay next hop station(s) and information of underlay next hop station(s) according to the look-up result(s) of previous packet(s) when a destination of an incoming packet is equal to that of the previous packet (s). The corresponding look-up result (s) of previous packet (s) can be cached respectively in the first table  205 A and second table  205 B or can be cached in another storage device. 
     Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.