Patent Publication Number: US-2017373987-A1

Title: Method of sharing network resource and network coordination apparatus

Description:
This application claims the benefit of U.S. provisional application Ser. No. 62/353,598, filed Jun. 23, 2016, and Taiwan application Serial No. 106113063, filed Apr. 19, 2017, the disclosures of which are incorporated by reference herein in its entirety. 
    
    
     TECHNICAL FIELD 
     The disclosure relates to a method of sharing network resource and a network coordination apparatus. 
     BACKGROUND 
     In order to provide convenient mobile network (cellular network) service, network operators usually need to use rigid and high cost equipment, complicated control-plane protocol, conventional vendor-specific configuration interfaces and so forth. 
     Different core networks have been built by different network operators so that user devices corresponding to different network operators can access internet though their own core networks. However, due to concerns such as independent operation and separate management, different network operators cannot freely share their own networks. 
     SUMMARY 
     The disclosure is directed to a method of sharing network resource and a network coordination apparatus capable of dynamically allocating network resource to different tenants in response to request of which and status of a shared transport network. Accordingly, different tenants can independently and flexibly share the resource of the shared transport network and complexity of network sharing setting can be simplified. 
     According to one embodiment, a method of sharing network resource is provided. The method includes following steps. A resource sharing request is firstly received from a tenant, and a controller is requested to determine whether resource of a shared transport network is satisfied with the resource sharing request. The controller is configured to manage a plurality of forward devices in the shared transport network. Then, a tenant ID is generated for the tenant when the controller determines the resource of the shared transport network is satisfied with the resource sharing request. The tenant ID is transmitted to the tenant. The tenant returns at least one group ID and at least one transport service type corresponding to each of the at least one group ID in response. The controller is requested to generate at least one packet header for the at least one transport service type corresponding to the each of the at least one group ID. Furthermore, the controller is requested to update a plurality of flow tables of the plurality of forward devices according to the at least one packet header. 
     According to another embodiment, a network coordination apparatus is provided. The network coordination apparatus includes an interface circuit and a processing circuit. The processing circuit is coupled to the interface circuit. The processing circuit is configured to perform following steps. The processing circuit firstly receives a resource sharing request from a tenant, and requests a controller to determine whether resource of a shared transport network is satisfied with the resource sharing request. The controller is configured to manage a plurality of forward devices in the shared transport network. Then, the processing circuit generates a tenant ID for the tenant when the controller determines the resource of the shared transport network is satisfied with the resource sharing request, and the processing circuit transmits the tenant ID to the tenant. The tenant returns at least one group ID and at least one transport service type corresponding to each of the at least one group ID in response. The processing circuit requests the controller to generate at least one packet header for the at least one transport service type corresponding to each of the at least one group ID. Furthermore, the processing circuit requests the controller to update a plurality of flow tables of the plurality of forward devices according to the at least one packet header. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram illustrating a network system according to an embodiment of the present disclosure. 
         FIG. 2  is a schematic flow diagram illustrating the method of sharing network resource according to the embodiment of the present disclosure. 
         FIG. 3  is a schematic diagram illustrating a network system that the network sharing module coordinates the controller to control the forward device in response to a request of the tenant according to an embodiment of the present disclosure. 
     
    
    
     In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically shown in order to simplify the drawing. 
     DETAILED DESCRIPTION 
       FIG. 1  is a schematic diagram illustrating a network system according to an embodiment of the present disclosure. In the network system  10  shown in  FIG. 1 , the user devices  102   a  and  102   b  can connect to the shared transport network  106  through a regional radio access network  104 . Through the shared transport network  106 , the regional radio access network  104  is further connected to the core networks  110   a  and  110   b , which are respectively corresponding to tenants  108   a ,  108   b . Then, the user devices  102   a  and  102   b  can access the internet  112 . 
     For the sake of illustration, the embodiment in  FIG. 1  shows only two user devices  102   a ,  102   b , two tenants  108   a ,  108   b  and two core networks  110   a ,  110   b , but the present disclosure is not limited to the embodiment. According to another embodiment, the network system may include at least one user device, at least one tenant and at least one core network. 
     The tenants  108   a ,  108   b  can be, for example, a physical network operator, a virtual network operator, or a service provider. In this embodiment, the core networks  110   a  and  110   b  are respectively built or rent by the tenants  108   a  and  108   b . The user devices  102   a  and  102   b  are users of the tenants  108   a  and  108   b , respectively. 
     The radio access network  104  includes, for example, at least one base station facility  1042 , for providing radio access service to the user devices  102   a  and  102   b . In this embodiment, the base station facility  1042  can be shared by the user devices (for example, user devices  102   a  and  102   b ) of different tenants. 
     The shared transport network  106  includes at least one forward device  1062  being in communication with each other. The forward device  1062  can be a switch, a router, or any types of network node packet capable of receiving and transmitting packets according to a specific rule. 
     Each of the forward devices  1062  may have, for example, a flow table, and the flow table may include at least one flow entry to describe information such as packet forward rule, execution action and transmission statistics and so forth. Among the information, for example, the packet forward rule may exist in the flow entry in a format of packet header. 
     The forward device  1062  may refer to the flow table to determine how the received packet(s) should be processed. For example, when a forward device  1062  receives a packet, the forward device  1062  parses the information of the packet and compares the parsed information and the rule described in the flow entry in order to forward the packet to a specific network node. 
     In this embodiment, different tenants  108   a ,  108   b  may share the transport resource of the shared transport network  106  through coordination of the controller  114  and the network sharing module  116 . Therefore, the data packet of the user device  102   a  can be transmitted to the core network  110   a  corresponding to the tenant  108   a  through the shared transport network  106 , and the data packet of the user device  102   b  can be transmitted to the core network  110   b  corresponding to the tenant  108   b  through the shared transport network  106 . 
     The controller  114  centrally manages the forward device  1062  in the shared transport network  106 . For example, the controller  114  may add, modify or delete packet forward rule in each of the forward device  1062  and update its flow table. 
     The network sharing module  116  is in communication with the tenants  108   a ,  108   b  and the controller  114 . According to an embodiment of the present disclosure, the tenants  108   a ,  108   b  can communicate with the network sharing module  116  through a representational state transfer (hereinafter, REST) application interface, and the network sharing module  116  and controller  114  can communicate with each other through the REST application interface. 
     The network sharing module  116  receives requests about using the shared transport network  106  from the tenants  108   a ,  108   b . In response to requests from the tenants  108   a ,  108   b , the network sharing module  116  coordinates the controller  114  to load, update, or delete a specific packet forward rule in the forward device  1062 , and each of the tenants  108   a ,  108   b  can plan and use the network resource of the shared transport network  106  under the capability of the shared transport network  106 . 
     The controller  114  and the network sharing module  116  may be implemented by hardware, software, or a combination of both. According to an embodiment, the controller  114 , is, for example, a software-defined Network (hereinafter, SDN) controller. The network sharing module  116 , for example, is a network sharing application module at upper layer of the controller  114 . 
     The controller  114  and the network sharing module  116  may be jointly implemented at an identical calculation device (for example, computer) or separately implemented by different calculation devices. A calculation device for implementing functions of the network sharing module  116  is defined as a network coordination apparatus. The network coordination apparatus may include an interface circuit and a processing circuit coupled to the interface circuit. The interface circuit is, for example, an input/output (hereinafter, I/O) circuit, used for transceiving signal. The processing circuit may be, for example, a micro processing circuit, a micro controller, a digital signal processing circuit (hereinafter, DSP), a programmable logic device (hereinafter, PLD), a state machine, an independent hardware circuit or any other suitable control logic for implementing functions of the network sharing module  116  as described in the present disclosure. Generally speaking, the procedure and logic flow described in the present disclosure can be executed by a programmable processing circuit executing at least one computer program to implement the functions described in the context. 
       FIG. 2  is a schematic flow diagram illustrating the method of sharing network resource according to the embodiment of the present disclosure. 
     In step S 202 , the tenant (for example, the tenant  108   a  or the tenant  108   b ) transmits a resource sharing request to the network sharing module (for example, the network sharing module  116 ). The tenant may be, for example, a physical network operator, a virtual network operator, or a service provider intending to use the resource of the shared transport network. 
     According to an embodiment of the present disclosure, the network sharing module provides a request template so that the tenant can input the resource sharing request. The resource sharing request includes, for example, a bandwidth request value needed by the tenant, or other QoS parameter. The request template may be implemented through, for example, the REST application interface. 
     In step S 204 , the network sharing module requests the controller (for example, controller  114 ) to determine whether the resource of the shared transport network (for example, the shared transport network  106 ) is satisfied with the resource sharing request. 
     In step S 206 , the controller determines whether the resource of the shared transport network is satisfied with the resource sharing request. 
     For example, the controller determines whether the remaining available transmission bandwidth of the shared transport network is sufficient to support the bandwidth request value as requested by the tenant. Then, the controller accordingly determines whether the resource of the shared transport network is satisfied with the resource sharing request. 
     In step S 208 , the controller returns a determination result to the network sharing module. 
     In a case that the determination result shows that the resource of the shared transport network is not satisfied with the resource sharing request, for example, the remaining available transmission bandwidth of the shared transport network is not sufficient for the bandwidth request value described in the resource sharing request, the network sharing module informs the tenant that currently the shared transport network cannot provide resource for sharing in response. Then, the whole flow of sharing network resource suspends, as shown by step S 208   a.    
     On the other hand, when the determination result shows that the resource of the shared transport network is satisfied with the resource sharing request, in step S 210 , the network sharing module generates a tenant identifier (hereinafter, ID) for the tenant in response. Moreover, the network sharing module stores information related to the tenant. The information related to the tenant can be information such as available transmission bandwidth, available virtual network topology and so forth. 
     In step S 212 , the network sharing module transmits the tenant ID to the tenant. 
     In step S 214 , the tenant returns at least one group ID to the network sharing module. The tenant also transmits a transport service type corresponding to the group ID to the network sharing module. The transport service type is, for example, a service type to be used by the tenant. 
     For example, according to the acquired tenant ID, the tenant can request for various transport service type to the network sharing module, and define the transport service types with their corresponding group ID. The group IDs and their corresponding transport service types are transmitted to the network sharing module in return. 
     In an embodiment, the tenant utilizes the REST application interface to input the requested transport service type and its corresponding group ID in a request template being provided by the network sharing module. 
     In step S 216 , the network sharing module requests the controller to generate at least one packet header for the transport service type corresponding to each group ID so that the controller can update the flow table of the forward device. 
     The packet header, for example, is a portion of the flow entry that describes the packet forward rule. Alternatively speaking, the network sharing module requests the controller to load at least one specific packet forward rule for transmitting packet of specific service type to the forward device in the shared transport network. 
     In step S 218 , the controller responds the request of the network sharing module. According to the generated packet header, the controller adds, modifies or deletes flow entry of the flow table in the forward device. Therefore, the packet forward rule satisfied with the transport service type as requested by the tenant can be implemented in the shared transport network. 
     In an embodiment, the group ID returned by the tenant is assumed to include a first group ID and a second group ID. The first group ID is corresponding to the first transport service type requested by a tenant, and the second group ID is corresponding to the second transport service type requested by the same tenant. The first transport service type and second transport service type are, for example, corresponding to different service types. The network sharing module may request controller to generate at least one first packet header specific to the first transport service type, and the controller updates flow table of the forward device according to the at least one first packet header. The network sharing module may also request the controller to generate at least one second packet header to the second transport service type, and the controller updates the flow table of the forward device according to the at least one second packet header. 
     In addition, the network sharing module may create a mapping table corresponding to each tenant. Based on the mapping table, the network sharing module maps the first group ID to at least one of the first packet header provided by the controller and maps the second group ID to the at least one second packet header provided by the controller. Details of the mapping table will be further illustrated in tables 1˜4 and  FIG. 3 . 
     According to the embodiment of the present disclosure, the network sharing module detects and manages the resource sharing status of the shared transport network corresponding to each tenant. For the tenants being allowed to use the resource of the shared transport network, the network sharing module respectively assigns a specific tenant ID to these tenants. Then, these tenants request the transport service type to the network sharing module based on its assigned tenant ID. Each transport service type is corresponding to a group ID. The network sharing module may record mapping relationship between the group IDs and their corresponding transport service types. The network sharing module also requests the controller to provide corresponding packet header for different transport service types. Accordingly, the controller modifies the flow tables of the forward devices. 
     As illustrated above, the request of the tenant may be automatically mapped to the flow entry of the forward device through coordination of the network sharing module and the controller. In a case that the tenant wants to use the shared transport network resource, the tenant needs to input its request in the request template being provided by the network sharing module. Then, the transport service requested by the tenant can be implemented in the shared transport network, without the need of setting each of the forward devices in the shared transport network. Then, the complexity of network sharing setting of the tenant can be simplified dramatically. Besides, after the tenant received the tenant ID, the transport service type requested by the tenant can be dynamically updated or deleted. That is, different tenants keep their independency and flexibility of managing resource of the shared transport network. 
     For the sake of illustration,  FIG. 3  illustrates a network system according to an embodiment of the present disclosure. In the network system shown in  FIG. 3 , how the network sharing module coordinates the controller to manage the forward devices in the shared transport network when two tenants request for sharing the resource in the shared transport network is illustrated. 
       FIG. 3  is a schematic diagram illustrating a network system that the network sharing module coordinates the controller to control the forward device in response to a request of the tenant according to an embodiment of the present disclosure. 
     In this example, the network sharing module  302  is assumed to provide the network resource in the shared transport network  306  to the tenants  304   a  and  304   b . The shared transport network  306  includes multiple forward devices  3062 . These forward devices  3062  are centrally managed by the controller  308 . The forward device  3062  is, for example, an SDN-based switch. The controller  308  is, for example, an SDN controller. 
     The network sharing module  302  creates a mapping table corresponding to each of the tenants (for example, tenants  304   a  and  304   b ). The mapping table includes a tenant ID of the tenant, at least one group ID, and transport service type corresponding to each of the group IDs. The mapping table further includes at least one packet header that is generated by the controller as being requested by the network sharing module  302 . 
     As shown in  FIG. 3 , the network sharing module  302  stores mapping tables M 1 , M 2  corresponding to tenants  304   a ,  304   b . The mapping tables M 1 , M 2  mainly include three fields: a tenant ID, a group ID, and a service type. 
     In mapping table M 1 , the tenant ID X 1  represents a specific name or number being assigned by the network sharing module  302  to the tenant  304   a . 
     The tenant  304   a  may propose the request of the transport service type to the network sharing module  302  based on the tenant ID X 1 , and accordingly define different transport service types corresponding to the group IDs. According to another embodiment, the mapping table M 1  further includes the packet header information being requested to and generated by the controller  308 . 
     For example, after receiving the tenant ID X 1  from the network sharing module  302 , the tenant  304   a  inputs the request template provided by the network sharing module  302  with the service type to be requested. Each of the service types is corresponding to a group ID. As shown in  FIG. 3 , the groups IDs G 1 ˜GN are respectively corresponding to the service types P 1 ˜PN, and N is a positive integer. 
     Similarly, in mapping table M 2 , the tenant ID X 2  represents a specific name or number being assigned by the network sharing module  302  to the tenant  304   b . The tenant  304   b  may propose the request of the transport service type to the network sharing module  302  based on the tenant ID X 2 . 
     For example, after receiving the tenant ID X 2  provided by the network sharing module  302 , the tenant  304   b  inputs the request template provided by the network sharing module  302  with the service type to be requested. Each of the service types is corresponding to a group ID. As shown in  FIG. 3 , the groups IDs G 1 ′˜GN&#39; are respectively corresponding to the service types P 1 ′˜PN&#39;, and N′ is a positive integer. 
     The mapping tables M 1 , M 2  are stored in the network sharing module  302 . Compared with the controller  308  and the forward device  3062 , the network sharing module  302  is the one knows the mapping relationship between the group IDs and their corresponding service types. Later, the tenant (for example, the tenant  304   a ) describes its tenant ID (for example, the tenant ID X 1 ) while issuing commands. The tenant also uses a specific group ID (for example, the group ID G 1 ) to modify or delete a specific transport service type (for example, the service type P 1 ). 
     Based on the mapping table M 1 , M 2 , the network sharing module  302  requests the controller  308  to provide different packet headers corresponding to different service types P 1 ˜PN, P 1 ′˜PN&#39;. The packet header represents the packet forward rule of the flow entry in the forward device  3062 . 
     In response to the request of the network sharing module  302 , the controller  308  will add, modify or delete the flow entry of the flow table FT in the forward device  3062 . Then, the forward device  3062  can process and forward the packet according to packet forward rule being satisfied with the requests of the tenants  304   a ,  304   b.    
     Furthermore, because the network sharing module  302  assigns different tenant ID to different tenants, the tenants  304   a  and  304   b  are corresponding to separate and independent mapping relationships between the group IDs and the service types. 
     Tables 1˜4 further illustrate information stored in the mapping table. For the sake of convenience, the mapping table M 1  corresponding to the tenant  302   a  is illustrated as an example. However, in practical application, content and format of the mapping table are not limited. 
     According to the example in table 1, after receiving the tenant 
     ID “X 1 ”, the tenant  302   a  proposes a request of transport service type to the network sharing module  302 . The request of transport service type includes two service types, that is, a service type of control-plane and a service type of user-plane. These two service types are respectively corresponding to group IDs “G 1 ” and “G 2 ”. 
     The network sharing module  302  records mapping relationships between the tenant  302   a , the tenant ID “X 1 ” and the group IDs “G 1 ”, “G 2 ”. The network sharing module  302  also records the mapping between the group ID“G 1 ”, “G 2 ” and their corresponding service types. The recorded mapping relationship may be represented by, for example, a mapping table, or other suitable data structures. 
     In response to the request of the network sharing module  302 , the controller  308  provides at least one first packet header for the service type corresponding to the group ID “G 1 ” , and provide at least one second packet header for the service type corresponding to the group ID “G 2 ”. According to an embodiment, the network sharing module  302  records the mapping relationship between the group ID “G 1 ” and the first packet header, and the mapping relationship between the record group ID “G 2 ” and the second packet header in the mapping table M 1 . With the mapping table M 1 , the network sharing module  302  is capable of mapping the group ID “G 1 ” to the first packet header provided by the controller  308 , and mapping the group ID “G 2 ” to the second packet header provided by the controller  308 . 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                   
                 tenant ID 
                 group ID 
                 service type 
               
               
                   
                   
               
             
            
               
                   
                 tenant 
                 X1 
                 G1 
                 service type of control-plane 
               
               
                   
                 302a 
                   
                 G2 
                 service type of user-plane 
               
               
                   
                   
               
            
           
         
       
     
     In Long Term Evolution (hereinafter, LTE) network system, different priority sequences can be assigned to packets corresponding to the same control-plane. For example, for the service type of control-plane, priority of login attach service type may be higher than priority of a service type of tracking area update. Alternatively, for service type of the user-plane, the priority of service type of VoIP is probably higher than the priority of the service type of web-browsing. The tenant  302   a  may determine different group IDs specifically for service types in each of the control-plane and the user-plane. 
     After creating the mapping relationship between the tenant ID, the group ID, and the packet type, the network sharing module  302  requests the controller  308  to update the flow table FT of the at least one forward device  3062  in the shared transport network  306 . Therefore, while forwarding packets according to the flow table FT, the at least one forward device  3062  follows the priority sequence to forward packets in the control-plane and data-plane. Tables 2˜4 are examples showing different group IDs are corresponding to different service types of the control-plane and the user-plane. 
     Table 2 is an example of another mapping table. According to table 2, after obtaining the tenant ID “X 1 ”, the tenant  302   a  proposes a request of transport service type to the network sharing module  302 . The request of transport service type can include four service types, a service type  1  of control-plane, a service type  2  of control-plane, a service type  1  of user-plane, and a service type  2  of user-plane. These four service types are respectively mapped to group IDs “G 1 ”, “G 2 ”, “G 3 ”and “G 4 ”. 
     In practical application, the tenant  302   a  may define more categories of priority sequence for service types of the control-plane and user-plane, and map the priority sequence to different group IDs. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                   
                 tenant ID 
                 group ID 
                 service type 
               
               
                   
               
             
            
               
                 tenant 
                 X1 
                 G1 
                 service type 1 of control-plane 
               
               
                 302a 
                   
                 G2 
                 service type 2 of control-plane 
               
               
                   
                   
                 G3 
                 service type 1 of user-plane 
               
               
                   
                   
                 G4 
                 service type 2 of user-plane 
               
               
                   
               
            
           
         
       
     
     Please refer to table 3. Table 3 is an application that the service type based on the example shown in table 2 is further defined. In table 3, the service type  1  of the control-plane is assumed to be an Attach service type, the service type  2  of the control-plane is assumed to be a Handover service type, the service type  1  of the user-plane is assumed to be a VoIP service type, and the service type  2  of user-plane is assumed to be a video service type. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
               
                   
                 tenant ID 
                 group ID 
                 service type 
               
               
                   
               
             
            
               
                 tenant 
                 X1 
                 G1  
                 service type 1 of control-plane:  
               
               
                 302a  
                   
                   
                 Attach  
               
               
                   
                   
                 G2  
                 service type 2 of control-plane:  
               
               
                   
                   
                   
                 Handover  
               
               
                   
                   
                 G3  
                 service type 1 of user-plane: VoIP  
               
               
                   
                   
                 G4  
                 service type 2 of user-plane: Video 
               
               
                   
               
            
           
         
       
     
     Please refer to table 4.  FIG. 4  is another application that the service types based on the example shown in table 2 are further defined. The service type  1  of the control-plane is assumed to be a mobility management entity (hereinafter, MME) service type, the service type  2  of control-plane is assumed to be a serving gateway (hereinafter, S-GW) service type, the service type  1  of user-plane is assumed to be a VoIP service type, and the service type  2  of user-plane is assumed to be a video service type. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 4 
               
               
                   
               
               
                   
                 tenant ID 
                 group ID 
                 service type 
               
               
                   
               
             
            
               
                 tenant 
                 X1 
                 G1 
                 service type 1 of control-plane: MME 
               
               
                 302a 
                   
                 G2 
                 service type 2 of control-plane: 
               
               
                   
                   
                   
                 S-GW 
               
               
                   
                   
                 G3 
                 service type 1 of user-plane: VoIP 
               
               
                   
                   
                 G4 
                 service type 2 of user-plane: Video 
               
               
                   
               
            
           
         
       
     
     According to illustrations in tables 1˜4, according to its own demand or plan, each of the tenants may transmit different requests of the transport service type to the network sharing module. Each transport service type is corresponding to a group ID. The network sharing module may create a mapping table for each tenant, so that the mapping relationship between the group IDs and their corresponding services are recorded. 
     After creating the mapping table, the network sharing module requests the controller to provide packet headers appropriate to the various service types. The controller accordingly updates the flow tables in the forward devices, and the packet forward rule satisfied with request of the tenant are implemented in the shared transport network. According to some embodiments, the network sharing module further records mapping relationship between the packet headers and the group IDs in the mapping table. 
     It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.