Methods for routing data, configuring, allocating identifiers and accessing a service in a communication network implementing network slices, entities and corresponding computer programs.
By associating network slices with unique identifier sets and using algorithmic configuration, the complexity of traffic classification in communication networks is reduced, enhancing resource optimization and service quality.
Patent Information
- Application Number
- FR2023010990
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-12
- Publication Date
- 2025-04-18
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The complexity of applying traffic classification rules in communication networks implementing network slices leads to difficulties in optimizing resource use, ensuring traffic insulation, and guaranteeing network availability and resilience, exacerbated by evolving traffic patterns and network structures.
A data delivery process that associates network slices with unique sets of identifiers, allowing terminals to transmit or receive data via specific network slices using an algorithm-based configuration, eliminating the need for maintaining state tables in network entities.
Simplifies data packet classification and routing by eliminating the need for state table maintenance, enabling efficient resource utilization and ensuring consistent quality of service across dynamic network conditions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Methods for routing data, configuring, allocating identifiers and accessing a service in a communication network implementing network slices, entities and corresponding computer program.
[0001] 1. Technical field
[0002] The field of the invention is that of communications within at least one communication network, and in particular the field of value-added IP services.
[0003] More specifically, the invention relates to the routing of data from or to a terminal which uses the network slice resources of a communications network.
[0004] In particular, the invention proposes a solution for simplifying the method of identifying one or more network slices to be used in order to optimize the routing of data from or to a terminal.
[0005] 2. Prior art
[0006] A network slice can be defined as a logical or physical partition of the network, such as a virtual private network (VPN) deployed on a fixed infrastructure, mobile infrastructure, or a combination of both.
[0007] The characteristics of a network slice are mainly expressed in terms of capacity (bandwidth) and quality of service (for example latency or unidirectional transit time), or even security (for example preservation of the confidentiality of information transmitted within the VPN by using encryption techniques) and service functions (“Service Functions (SF)”).
[0008] As an illustration, the 3GPP organization has defined different types of network slices according to their characteristics, for example: - a first type of network slices allowing the provision of an improved mobile broadband service (“enhanced Mobile BroadBand” or eMBB in English); - a second type of network slices enabling a service to be offered as part of a (massive) deployment of the Internet of Things (massive Internet of Things or mloT in English); and - a third type of network slices enabling the provision of an ultra-reliable, low-latency communications service (“Ultra Reliable Low Latency Communications” or URLLC in English).
[0009] The choice of designing and deploying a type of network slice is conditioned by the nature of the traffic characteristic of the applications or services used or subscribed to by a user. For example, a so-called "immersive" service that uses augmented or virtual reality techniques is generally very demanding in terms of latency and reliability of data exchanges: the use of URLLC-type slices is therefore preferred for an immersive service of this type when it is deployed on a 5G mobile network infrastructure.
[0010] The characteristics of a network slice are for example presented in the document “A Framework for Network Slices in Networks Built from IETF Technologies” by A. Farrel et al., version 25 published on September 14, 2023.
[0011] An example of using network slices deployed in a 5G mobile infrastructure is presented in the document “A Realization of IETF Network Slices for 5G Networks Using Current IP / MPLS Technologies” by KG Szarkowicz et al., version 9 published on May 23, 2023.
[0012] Conventionally, traffic that may be routed within a network slice is subject to authorization (also called access control) to take the path(s) established within said slice. Such authorization is typically based on the application of traffic classification rules. These rules are generally applied by a node located at the edge of the network within which network slices have been deployed. Such an edge node is generally deployed in front of client access (for example, an access router) or used to connect a network to other neighboring networks (for example, an edge router or edge node). For example, such an edge node may be located at the connection interface of a gateway that provides access to the Internet. This gateway is called a “Packet Gateway” for the most recent generations (4G, 5G) of mobile networks.In this case, the traffic classification function can be located at the connection interface of a "Packet Gateway" to the Internet network. An edge node can also be located at the connection interface of a mobile terminal (or "User Equipment" or UE in English) to the radio access network (or "Radio Access Network" or RAN in English), in particular so as to optimize the use of radio resources according to the type of network slice and the profile of the traffic that it is likely to carry. A traffic profile is the set of characteristics specific to the traffic. These characteristics can reflect the sensitivity of applications to latency, transit delay or packet loss, but also usage practices, for example traffic that would only be generated over a given period (such as management traffic linked to the execution of a maintenance operation on equipment scheduled during the night).
[0013] In summary, traffic classification and admission control rules are applied at the edge of the network, in the edge nodes (access router, border router for example).
[0014] The application of traffic classification rules can be complex, because the level of granularity associated with the engineering and deployment of a network slice can be macroscopic (for example, a network slice deployed to route traffic destined for the Internet), or microscopic (for example, a network slice deployed for application traffic exchanged between two mobile terminals).
[0015] This granularity generates an overall complexity of the engineering of network slices, for example a difficulty in optimizing the use of the resources implemented by a network slice, by a set of network slices, or by all the network slices, or a difficulty in strictly guaranteeing the isolation of the traffic routed within a network slice, or even a difficulty in strictly guaranteeing the level of quality or security associated with a network slice, or even the level of availability and resilience of a given network slice, etc.
[0016] In particular, the complexity of the configuration and application of traffic classification rules associated with the implementation of a given network slice evolves with the diversity of traffic, the richness of the organization of the structure that operates the network slice (for example, an accounting department, an R&D department, a production department) or even the mode of use of the network slice (for example, management of traffic overloads during busy hours or principles of distribution of the traffic load). This complexity can in particular be aggravated by the evolution of the traffic classification rules over time (for example, in the context of the deployment of a network slice for the retransmission of a sporting or cultural event, the traffic classification rules can evolve with the number and profile of the users of the network slice).
[0017] There is therefore a need for a new technique seeking to simplify the application of traffic classification rules in a network implementing network slices.
[0018] 3. Statement of the invention
[0019] The invention proposes a solution which does not have all the drawbacks of the prior art, in the form of a method for routing data from or to a terminal in a communication network implementing network slices, comprising: • obtaining configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of network slice, • obtaining at least one data packet containing an identifier of terminal capable of uniquely identifying a terminal sending or receiving said at least one data packet, • the selection of a network slice or a type of network slice associated with the set of identifiers to which said terminal identifier belongs, from said configuration information, • routing said at least one data packet via said selected network slice or network slice type.
[0020] Such steps may in particular be implemented by an entity at the edge of the network, also called an edge node, for example an access router (in particular for accessing the Internet network) or an edge router (in particular in the case where several networks are involved in supporting the slices), to route a data flow to a network slice (or a type of network slice) identified from the data flow.
[0021] To do this, a network slice, or a type of network slice, is previously associated with a set of identifiers by a network entity, for example by a network management entity, such as a controller. An algorithm for associating a single network slice (or type of network slice) with a single set of identifiers is thus defined. Configuration information for an algorithm can then be transmitted to the different entities of the network, allowing each of these entities to execute the algorithm for associating a single network slice (or type of network slice) with a single set of identifiers.
[0022] A set of identifiers comprises at least one identifier, or at least a portion of at least one identifier, or more generally the result of applying a function (e.g. “hash” function) to at least one identifier.
[0023] An identifier belonging to said set is also previously allocated to the terminal, for example to a network interface of the terminal or to other software modules embedded in the terminal such as containers, so that the terminal can transmit or receive data packets. Such an identifier is called a terminal identifier in this document. Such a terminal identifier may be a source identifier, when the terminal transmits data, or a destination identifier, when the terminal receives data. Such a terminal identifier may in particular be recorded in the header of the data packets. Such an identifier is typically unique per terminal.
[0024] When a data stream is received by an edge node, the latter can obtain the identifier of the terminal sending or receiving this data stream. As a result, the edge node can determine the set of identifiers to which the terminal identifier belongs, and thus the network slice (or the type of network slice) associated with this set, from the configuration information of an algorithm. The network slice thus selected can then be used to route the data flow to the terminal if the terminal is the recipient of the data flow, or to another entity if the terminal is the sender of the data flow.
[0025] In this way, the procedure for routing a data stream is simplified.
[0026] In particular, the proposed solution does not require the maintenance of state tables by different network entities, for example through border routers or access routers. The solution thus simplifies the operations implemented by the different network entities for routing traffic.
[0027] In a particular embodiment, the method also comprises marking said at least one data packet with an identifier capable of uniquely identifying said network slice or said selected type of network slice, called slice identifier.
[0028] In this way, the classification of data packets is facilitated, and each entity receiving a data packet can thus route it via the selected network slice by applying the classification rules corresponding to the slice identifier, associated with the terminal identifier included in the data packet and as received by an edge node.
[0029] In particular, when a data packet arrives in the network, the edge entity through which this packet passes applies a classification rule based on the terminal identifier, so as to determine the network slice (or type of network slice) to be used for routing the data, if the data packet is eligible.
[0030] For example, if the data packet is intended for the terminal, a border router located on the path of this packet is caused to receive said packet and obtain the terminal identifier (destination identifier). Subsequently, it can determine the set of identifiers to which the terminal identifier thus obtained belongs, then the associated network slice (or network slice type). The border router can optionally mark the packet with a slice identifier allowing intermediate routers to uniquely identify the network slice (or network slice type), and associate said packet with the appropriate network slice.
[0031] The classification rules are therefore not specific to a given terminal. They are determined for at least one set of identifiers. In particular, associating a set of identifiers with a network slice (or a type of slice) in an algorithmic manner avoids the management and maintenance of state tables by different network entities each time a new terminal connects to the network. In doing so, a terminal eligible to use the resources of a network slice can benefit from this service even when dynamic IP addresses or prefixes are allocated to this terminal. Such an approach is therefore independent of the terminal(s). connected to the network.
[0032] According to a first embodiment, said selection step comprises: • determining the set of identifiers to which said terminal identifier, • the determination of said network slice or said type of network slice associated with said set of identifiers.
[0033] For example, the set of identifiers comprises one or more ranges of IP addresses, contiguous or not. Each set of identifiers can in particular be identified by a unique reference, associated with an identifier capable of uniquely identifying a network slice or a type of network slice.
[0034] The configuration of the different sets of identifiers, and their association with the network slices or slice types, can be carried out beforehand, for example by a network management entity.
[0035] According to a second embodiment, said selection step comprises: • the extraction of a portion of said terminal identifier, • the determination of said network slice or said type of network slice associated with said portion.
[0036] For example, the terminal identifier is an IP address and the identifier portion is a binary sequence of said address, associated with a network slice or a type of network slice.
[0037] This second embodiment does not require the prior configuration of different sets of identifiers.
[0038] In another embodiment, the invention relates to an entity adapted to implement the data routing method described above. Such an entity may of course have the various characteristics relating to the data routing method according to the invention, which may be combined or considered in isolation. Thus, the characteristics and advantages of this entity are the same as those of the method and are not detailed further.
[0039] For example, such an entity is an edge node, such as a border router or an access router.
[0040] Another aspect of the invention relates to a method for configuring a communication network implementing network slices, intended to route data from or to at least one terminal.
[0041] Such a method comprises: - a step of associating, with at least one network slice or with at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set identifiers being associated with a single network slice or a single type of network slice, - a step of transmitting configuration information of an algorithm to at least one entity of said network, allowing said entity to associate said at least one network slice or said at least one type of network slice with said at least one set of identifiers.
[0042] Such an association may in particular be implemented by a management entity of said network to associate a set of at least one identifier with a network slice or a type of network slice during a prior network preparation step (and typically, to ensure the appropriate configuration of the different network entities). The configuration information may then be transmitted to other network entities, such as an identifier allocation server, edge nodes, etc. Each of these entities may then execute an algorithm to find the sets of identifiers associated with the network slices, or vice versa. Note that different algorithms may be used according to different criteria. For example, a first association algorithm may be implemented for the traffic sent and received by a terminal connected to the network and a second association algorithm may be implemented for the management traffic “internal” to the network.
[0043] Alternatively, other network entities, such as an allocation server, an access router, or an edge router, may directly implement this association step. In particular, if it is implemented by the allocation server, the latter may transmit the configuration information to the edge nodes.
[0044] Thus, an access router and / or a border router, as well as an allocation server which allocates the identifiers to a terminal when it connects to the network, have the configuration information.
[0045] In this way, the different entities of the network can be configured in a homogeneous manner. In particular, they can execute an algorithm making it possible to identify, from a terminal identifier, a network slice or a type of network slice to be used to route data to or from the terminal. Thus, when an entity processes a data packet, it knows how to associate it with the appropriate slice. Note that access routers and / or border routers do not require precise knowledge of the identifiers as well as the terminals to which an identifier has been allocated.
[0046] Optionally, a version of the algorithm as well as a timestamp may be stored in a storage area (memory or register, for example) of the entity. For example, it is possible to change the algorithm version when the number of terminals to which an identifier must be allocated increases and more generally if the configuration parameters of the algorithm have been modified.
[0047] In a particular embodiment, each set of identifiers is identified by a unique reference and said association step associates said unique reference with an identifier capable of uniquely identifying said network slice or said type of network slice considered, called slice identifier.
[0048] For example, the unique reference assigned to a set of identifiers is noted "pool_id_#" and the slice identifier is noted "slice_id_#". A function "f(pool_id_#) = slice_id_#" can thus be defined to algorithmically determine the network slice (or the type of network slice) associated with a set of identifiers.
[0049] For example, said at least one set of identifiers comprises at least one identifier belonging to the group comprising: • an IP (“Internet Protocol”) address, • an IP prefix, • a MAC (“Media Access Control”) address, • a VLAN (“Virtual Local Area Network”) identifier, • an LSID (“Instance Service Identifier”), • an ESI identifier (“Ethernet Segment Identifier”), • an identifier according to the LISP protocol (“Locator / ID Separation Protocol”) • a combination of all or part of the identifiers above, • a result of a function applied to at least one of the above identifiers (hash function, truncation function, etc.).
[0050] The LISP protocol is for example described in the document “The Locator / ID Separation Protocol (LISP)”, D. Farinacci Etal., January 2013.
[0051] A set of identifiers can thus comprise one or more identifiers, or a portion of an identifier.
[0052] In a particular embodiment, at least one of said sets of identifiers comprises at least two non-contiguous identifiers. According to a first example, a set of identifiers comprises at least two non-contiguous VLAN identifiers, for example VLAN#61 and VLAN#64. According to another example, a set of identifiers comprises at least two non-contiguous IP addresses. According to yet another example, a set comprises several address ranges, and these ranges may or may not be contiguous.
[0053] In another embodiment, the invention relates to an entity suitable for implementing the configuration method described above. Such an entity may of course have the various characteristics relating to the configuration method according to the invention, which may be combined or considered in isolation. Thus, the characteristics and advantages of this entity are the same as those of the method and are not detailed further.
[0054] For example, such an entity is a network management entity, a network resource allocation server (e.g. IP addresses), an edge router, an access router, etc.
[0055] The invention also relates to a method for allocating at least one identifier to a terminal in a communication network implementing network slices, comprising: • obtaining configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of slice, • the reception, from a terminal connected to the network, of at least one request for allocation of at least one identifier intended to be used by said terminal to send or receive at least one data packet via a network slice or a type of network slice to which or to which said terminal is authorized to connect, • determining the set of identifiers associated with said network slice or said type of network slice, from said configuration information, • the transmission, to said terminal, of at least one identifier of said set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier.
[0056] Such steps may in particular be implemented by an identifier allocation server, for example a DHCP server as described in document RFC 2131 (“Dynamic Host Configuration Protocol” R. Droms, March 1997) or DHCPvô as described in document RFC 8415 (“Dynamic Host Configuration Protocol for IPv6 (DHCPvô)” T. Mrugalski et al., November 2018).
[0057] In particular, upon receipt of an identifier allocation request, the server checks the availability of at least one identifier in the set of identifiers associated with a network slice (or type of slice) to which the terminal is authorized to connect. If an identifier is available, it is allocated to the terminal and makes it possible to uniquely identify said terminal. If no identifier is available, the allocation request may be rejected. Alternatively, an allocation server may, if necessary, ignore the slice (or type of network slice) indicated in the allocation request if no identifier is available in the set of identifiers associated with this network slice or if the indicated slice is not available for this terminal, and choose to use at least one other slice to which said terminal is authorized to connect. Such a habi quotation can be determined by an allocation server by requesting, for example, a RADIUS server according to the mechanism described in RFC 9445 (“RADIUS Extensions for DHCP-Configured Services”, M. Boucadair et al., August 2023).
[0058] In other words, from the configuration information of an algorithm, the server can execute an algorithm (or a function) to identify a set of identifiers to use according to the network slice requested by or authorized for the terminal, select an available identifier from the set of identifiers, and return the selected identifier to the terminal.
[0059] In particular, even if the set of identifiers comprises several identifiers (for example an IP prefix corresponding to a range of addresses), a distinct terminal identifier can be allocated to different terminals to access the same network slice.
[0060] In another embodiment, the invention relates to an entity adapted to implement the identifier allocation method described above. Such an entity may of course have the various characteristics relating to the identifier allocation method according to the invention, which may be combined or considered in isolation. Thus, the characteristics and advantages of this entity are the same as those of the method and are not detailed further.
[0061] For example, such an entity is an identifier allocation server.
[0062] The invention further relates to a method for accessing at least one service by a terminal, via a communication network implementing network slices, comprising, for at least one network slice or type of network slice to which or to which said terminal is authorized to connect: • the transmission of a request for allocation of at least one identifier intended to be used by said terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, • the reception, in response to said request, of at least one identifier from a set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier, • the storage of said terminal identifier associated with said network slice or said type of network slice.
[0063] Such a method may in particular be implemented by a terminal, so as to allocate at least one terminal identifier to it. For example, at least one terminal identifier may be allocated to at least one network interface of the terminal. Alternatively, at least one terminal identifier may be allocated to at least one software module embedded in the terminal (for example a container).
[0064] As indicated previously, such a terminal identifier may be a source identifier, when the terminal transmits data, or a destination identifier, when the terminal receives data. In particular, such a terminal identifier belongs to a set of identifiers associated with a network slice (or network slice type) negotiated with a service instance. Note that a response from the allocation server may include several identifiers (e.g., IP addresses), each associated with a given slice (or slice type).
[0065] According to a particular embodiment, the terminal implements a prior step of selecting at least one network slice, or a type of network slice, intended to be used by said terminal to transmit or receive data associated with said at least one service.
[0066] If no network slice or slice type is requested by the terminal, the preceding steps can be implemented for all network slices to which the terminal is authorized to connect, according to the network information.
[0067] According to a particular embodiment, the terminal can insert an identifier of the network slice or of the type of network slice in the identifier allocation request.
[0068] New DHCP options can be defined for this purpose.
[0069] If the terminal is a CPE (“Customer Promises Equipment” in English), or if the terminal exposes a local address to applications (i.e., not routable on the Internet, for example, a private IPv4 address drawn from the space defined by RFC 1918 "Address Allocation for Private Internets", Y. Rekhter et al., February 1996), an API (Application Programming Interface) may optionally be implemented to ensure that the terminal identifier is used as the external identifier of the terminal. For example, a table may be maintained to associate a local address of the terminal with the terminal identifier. In this way, the terminal identifier (source or destination identifier) is always used by the terminal to transmit or receive data packets, which makes it possible to determine the network slice (or type of network slice) to be used for data routing, as described previously.
[0070] According to a particular embodiment, said method implements, prior to the transmission of at least one data packet, a step of selecting the terminal identifier to be used for a transmission via a target network slice, from among the terminal identifier(s) stored by said terminal.
[0071] Indeed, following the sending of at least one identifier allocation request, the terminal has at least one terminal identifier associated with at least one network slice. An API of the terminal can in particular be used to request that the data packets sent by an application embedded in the terminal be sent via a target network slice. The terminal can then choose, depending on the target network slice, the terminal identifier (source identifier) to be used from among the terminal identifiers stored by said terminal.
[0072] According to a particular embodiment, the method further comprises a step of replacing a local address of said terminal with said terminal identifier selected for routing data packets via a target network slice.
[0073] In other words, a rewriting of the local address used by the terminal (possibly controlled via a terminal API) by an (external) terminal identifier which corresponds to the target network slice via which the data packet is to be routed can be implemented.
[0074] In another embodiment, the invention relates to a terminal adapted to implement the access method described above. Such a terminal may of course have the various characteristics relating to the access method according to the invention, which may be combined or considered in isolation. Thus, the characteristics and advantages of this terminal are the same as those of the method and are not detailed further.
[0075] For example, such a terminal is a user equipment, a CPE or a service instance.
[0076] In the various embodiments envisaged, at least one of said network slices may be composed of at least one local network slice deployed in at least one sub-network of the communication network (for example in an access network, a collection network, a core network, a transit network).
[0077] The invention also relates to at least one computer program comprising instructions for implementing at least one of the methods described above, when this or these programs are executed by a processor, as well as at least one information medium readable by a computer comprising instructions of at least one computer program as mentioned above.
[0078] The method according to the invention can be implemented in various ways, in particular in wired form or in software form.
[0079] 4. List of figures
[0080] Other characteristics and advantages of the invention will appear more clearly on reading the following description of a particular embodiment, given as an illustrative and non-limiting example, and the appended drawings, among which: - [Fig. 1] illustrates an example of a communication network composed of several sub-networks; - [Fig.2] illustrates an example of aggregation of several services within the same network slice; - [Fig.3] illustrates an example of deployment of several service instances; - [Fig.4] represents a system in which the invention can be implemented; - [Fig.5] illustrates the main steps of the methods according to at least one embodiment of the invention; - [Fig.6] illustrates an example of implementation according to a particular embodiment; - [Fig.7] presents the simplified structure of the different entities according to a particular embodiment.
[0081] 5. Description of an embodiment of the invention
[0082] 5.1 General
[0083] We consider a communication network (possibly composed of several networks or subnetworks) which supports network slices. A network slice can be associated with other network slices to provide value-added services. For example, a service provider can rely on slices set up in different subnetworks to provide a service whose traffic is intended to be routed in the “global” network slice composed of the slices deployed in the different subnetworks. This is called a “multi-domain slice” (or “stitched slices” or “hierarchical slices”). Such a network slice can indeed reflect a hierarchical structure.
[0084] For example, as illustrated in [Fig. 1], the SSP (Slice Service Provider) network 12 may be composed of several subnetworks 121, 122 and 123. Each subnetwork may support one or more network slices. For example, the first subnetwork 121 supports four network slices, the second subnetwork 122 supports three network slices, and the third subnetwork 123 supports four network slices. The first network slice SI. #1 161 of the communication network is for example composed of the network slices SI. #3 deployed on the subnetwork 121, SI. #2 deployed on the subnetwork 122 and SI. #2 deployed on subnetwork 123. The connection interfaces between adjacent slices ("Attachment Circuits" in English) are for example managed using the mechanisms described in the document "YANG Data Models for 'Attachment Circuits'-as-a-Service (ACaaS)" by M. Boucadair et al., version 6 released on May 3, 2023. .
[0085] For example, each subnetwork may be associated with a distinct domain (for example, a communications network may be composed of an access network, a collection network, a core network, and a transit network). Each of these domains supports network slices whose engineering and operation are characteristic of the domain (for example, a slice deployed on a 5G mobile core network may use traffic processing and operation functions characteristic of a 5G mobile core network). Each domain (access, collection, core, transit, etc.) may exploit different technologies for the realization of the network slices.
[0086] Thus, the creation of a network slice which extends over several domains is not conditioned by the availability or activation of the same technologies used for the creation of the slices “local” to each domain.
[0087] For example, with reference to [Fig. 1], a first domain associated with the first subnet 121 sets up IPsec tunnels that are used to route traffic in the slices deployed in this domain, while a second domain associated with the second subnet 122 uses network-level virtual private network engineering (“Layer 3 VPN” or L3VPN) combined with traffic engineering mechanisms (“Traffic Engineering” or TE) to route traffic in the slices deployed in this domain, while a third domain associated with the third subnet 123 uses the resources of segment routing based on the IPv6 protocol (“Segment Routing IPv6” or SRv6) to route traffic in the slices deployed in this domain.
[0088] According to another example, a network slice in a mobile network (5G for example) may be based on the establishment of network slices in the following different subnetworks / segments: radio access network (“Radio Access Network” or RAN), core network (“Core Network” or CN) and transport network (“Transport Network” or TN).
[0089] The association of a network slice, for example a 5G network slice in the case of a latest generation mobile network, with the network slices deployed in each of the segments / subnetworks making up the 5G mobile network is carried out in the control plane and at the edge of each of the RAN, CN and TN networks. The network slice deployed in the TN network is sometimes called an “IETF Network Slice”.
[0090] According to the invention, no assumption is made as to the nature of the network slices deployed in a network, their number, and the “mapping” between network slices of neighboring domains (for example RAN and TN, TN and CN).
[0091] For example, the mechanisms described in the document “A Realization of IETF Network Slices for 5G Networks Using Current IP / MPLS Technologies” cited above are implemented for the realization of network slices in an IP / MPLS network (which is an example of a transport network within the meaning of 3GPP).
[0092] It is further noted that the same network slice can be used to aggregate the traffic of one or more services. Thus, as illustrated by [Fig.2], a first service SI served by one or more service instances 21 can be provided to a first client UE1 via a network slice SI. #3 of the SSP network, a second service S2 served by one or more service instances 22 can be provided to a second client UE2 via the same network slice SI. #3 of the SSP network, a third service S3 served by one or more service instances 23 can be provided to the second client UE2 via the same network slice SI. #3 of the SSP network.
[0093] In addition, a network slice may involve one or more service functions (or "Service Functions" in English, according to the terminology used by the document RFC7665 - "Service Function Chaining (SFC) Architecture" by J. Halpern et al. published in October 2015, or "Network Functions" such as gNB ("gNodeB") or UPF ("User Plane Function") according to the terminology used by 3GPP). The same service function may be provided by one or more service instances.
[0094] [Fig. 3] illustrates an example of deployment of service instances. In particular, a service instance may be hosted by the SSP (e.g. service instances 33 and 34) or within another infrastructure (e.g. service instance 35).
[0095] In a particular embodiment, service chains (Service Function Chain or SFC) can be set up in order to facilitate the routing of traffic of different natures and having different profiles for the needs of creating a network slice or within a network slice (for example the service instances 311, 312 and 313 of [Fig. 3]).
[0096] We also consider a terminal, connected to at least one network. A terminal can be a user equipment (“User Equipment” in English), a service instance, a CPE, etc. The terminal can be mobile, fixed, etc.
[0097] Applications (or application clients) can be used to access a service from a terminal. These applications can request, via APIs exposed by the terminal's operating system (OS), specific processing.
[0098] 5.2 General principle
[0099] The general principle of the invention is based on the association of a network slice, or a type of network slice, with a set of identifiers, without requiring the explicit configuration of all the identifiers at the level of the different entities involved in the routing of packets, i.e. without requiring the management and maintenance of state tables.
[0100] To do this, the different network entities involved in the routing of packets can execute an association algorithm, based on previously obtained algorithm configuration information.
[0101] For example, such configuration information may be updated periodically or when a change is detected in the network (e.g., configuration or deletion of a new network slice). In this way, the different network entities involved in the routing of packets may execute an association algorithm that takes these changes into account.
[0102] Such a set of identifiers comprises at least one identifier or the result of a function applied to at least one identifier, capable of being used by a terminal for transmit or receive at least one data packet via the network slice, or type of network slice, considered.
[0103] For example, a set of identifiers is a “pool” of identifiers associated with a single network slice. A distinct identifier, chosen from said set of identifiers, can be allocated to each terminal wishing to connect to the same network slice. Such an identifier, called a terminal identifier, is capable of uniquely identifying the terminal sending or receiving a data packet.
[0104] This algorithm for associating a network slice, or a type of network slice, with a set of identifiers can be known to the different entities of the network. It is therefore not specific to a terminal.
[0105] In this way, the routing of packets via the edge nodes is facilitated, since the network slice to be used can be determined from a terminal identifier (for example a source address used by a terminal to transmit data or a destination address used by a terminal to receive data, allocated to a network interface of the terminal or to a software module embedded in the terminal for example).
[0106] In particular, as already indicated, edge nodes do not need to maintain a state table to determine which network slice to use for routing data.
[0107] Such a procedure is hereinafter called “Simplified Packet Identification and classification in sliced Networks” or SPINS, for simplified procedure for classifying and identifying packets in networks implementing network slices. The different entities which intervene in the routing of packets and participate in this procedure are also called “SPINS elements”.
[0108] [Fig.4] illustrates an example of a system in which the invention can be implemented.
[0109] For example, we consider that the terminal is a user equipment UE 41 (“User Equipment” in English) wishing to access at least one service via a communication network SSP 42 implementing network slices, for example two network slices SI. #1 421 and SI. #2 422 (“Slice” in English).
[0110] The UE terminal 41 may optionally be connected to the network 42 via an intermediate router, for example a CPE.
[0111] The service may be provided by at least one service instance, for example by two service instances SFI #1 431 and SFI #2 432. A service instance may be connected to the network 42 via a network border router. For example, the instance 431 is connected to the network 42 via the first border router BR 441, and the second instance 432 is connected to the network 42 via the second border router BR 442. Service instances are not necessarily directly connected to border routers.
[0112] An identifier allocation server, for example a DHCP server 45, may in particular provide a terminal identifier to the UE terminal 41, as explained below.
[0113] A management entity, for example a controller 46, may define an association algorithm for associating a network slice, or a type of network slice, with a set of identifiers, and transmit configuration information of the algorithm to different entities of the network, for example to the border routers 441 and 442 and to the server 15. Thus, each entity may execute the association algorithm to determine a network slice (or a type of network slice) to use from a set of identifiers.
[0114] We now present, in relation to [Fig.5], the main steps implemented by the different entities of the network according to an embodiment of the invention.
[0115] To prepare the routing of data via network slices, a management entity, for example the controller 46, implements a step 461 of associating at least one network slice or at least one type of network slice, with at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, considered. Each set of identifiers is associated with a single network slice or a single type of network slice.
[0116] According to a first embodiment, the association step associates a set of at least two identifiers with a network slice or a type of network slice.
[0117] According to a second embodiment, the association step associates a mask (for example a portion of an identifier capable of being used by the terminal to transmit or receive at least one data packet) with a network slice or a type of network slice. More generally, it is possible to envisage associating the result of any other type of function applied to such an identifier with a network slice or a type of network slice.
[0118] The controller 46 then transmits to different entities of the network configuration information of an algorithm making it possible to find the association thus defined.
[0119] The controller 46 can thus configure during a step 462 at least one entity of the network (for example an access router, or the border routers 441 and 442, or the allocation server 45) with the configuration information obtained, for example by communicating the association algorithm to said at least one entity of the network.
[0120] For example, the border router 441, respectively the allocation server 45, obtains the configuration information during a step 4411, respectively 451.
[0121] Thus, in one embodiment, the step of obtaining 4411 (respectively 451) configuration information, implemented by the border router 441 (respectively by the allocation server 45) implements the reception of configuration information from a separate entity.
[0122] Alternatively, the step 4411 (respectively 451) of obtaining configuration information implements the steps 461 of associating and 462 of transmitting configuration information (to the allocation server 45 if the steps 461 of associating and 462 of transmitting are implemented by the border router 441, or to the border router 441 if the steps 461 of associating and 462 of transmitting are implemented by the allocation server 45).
[0123] Furthermore, in order to obtain at least one terminal identifier, for example an external address that the terminal UE 41 can use to send or receive data, the terminal UE 41 implements the following main steps.
[0124] During a first optional step 411, the UE terminal 41 can select at least one network slice or one type of network slice intended to be used by the terminal to transmit or receive data associated with at least one service.
[0125] During a second step 412, the terminal transmits a request for allocation of at least one identifier intended to be used by the terminal to transmit or receive at least one data packet via a network slice (or a type of network slice) to which the terminal is authorized to connect. If the terminal selects at least one network slice (or a type of network slice) during step 411, the allocation request may include an indicator of the selected network slice(s). Alternatively, no network slice indication is provided in the allocation request if the terminal wishes to retrieve the identifiers associated with all the network slices for which said terminal is authorized.
[0126] Such a request may in particular be received (452) by the identifier allocation server 45.
[0127] Upon receipt of the allocation request, the identifier allocation server 45 determines (453) a set of identifiers associated with the network slice (or the type of network slice) to which the terminal is authorized to connect (possibly selected by the terminal), by executing the association algorithm, and allocates to the terminal at least one free identifier chosen from said set. Such a terminal identifier is capable of uniquely identifying said terminal. The terminal identifier may be a source identifier, intended to be used by the UE terminal 41 to transmit data. Alternatively, the terminal identifier may be a destination identifier intended to be used by the UE terminal 41 to receive data. The same identifier may be used for sending and receiving data packets.
[0128] After having received at least one terminal identifier, the terminal can in particular storing during a step 414, for example in a memory or a register of the terminal, the terminal identifier received during a step 413 and the associated network slice (or slice type). In this way, the terminal identifier is always available at the terminal and can be used by the terminal as an external identifier (external address, typically) to send and / or receive data.
[0129] We now present the main steps implemented by a network entity through which traffic passes to or from a terminal. For example, such an entity is an access router or a border router.
[0130] Such an entity, for example the border router 441, receives during a step 4412 at least one data packet sent by the terminal if we consider a flow coming from the terminal, or at least one data packet intended for the terminal if we consider a flow destined for the terminal.
[0131] Such a packet carries a terminal identifier capable of uniquely identifying a terminal sending or receiving said at least one data packet.
[0132] During a step 4413, the entity considered, for example the border router 441, can select the network slice or the type of network slice associated with the set of identifiers to which the terminal identifier belongs by executing the association algorithm.
[0133] According to a first embodiment, the selection of the network slice or the type of network slice implements the determination of the set to which the terminal identifier belongs, and the determination of the network slice (or the type of network slice) associated with the set of identifiers. For example, a first set of identifiers comprises a first range of IP addresses and is associated with a first network slice, a second set of identifiers comprises a second range of IP addresses and is associated with a second network slice, a third set of identifiers comprises a third range of IP addresses and is associated with a third network slice, etc. If the terminal identifier belongs to the second range of IP addresses, then the selected network slice is the second network slice, associated with the second identifier.The configuration of the different sets of identifiers, and their association with the network slices or slice type, can be carried out beforehand, for example by the controller 46. The controller 46 can then send configuration information of the association algorithm to the border router 441, so that the border router 441 can execute the algorithm and find the network slice associated with the set to which the terminal identifier belongs.
[0134] According to a second embodiment, the selection of the network slice or the type of network slice implements the extraction of a portion of the terminal identifier, and the determination of the network slice (or the type of network slice) associated with the portion. For example, a bitmask can be defined to indicate the position of the bits to be extracted to obtain a portion of an identifier. If we consider IP addresses, this mask can be, for example: - “48-56” to indicate the bits to be extracted from the terminal identifier, to obtain a portion of identifier, are those between bit 48 and 56 of an IPv6 address. - “48-64” to indicate the bits to be extracted to obtain a portion identifiers are those between bits 48 and 64 of an IPv6 address.
[0135] Different masks may also be allocated to the different slices. For example, if 8 bits are used to form a bitmask, the mask 00011000 is allocated to a first network slice, the mask 01010101 is allocated to a second network slice, etc. Upon presentation of a terminal identifier, the entity considered (also called SPINS element), for example the border router 441, extracts the bits that correspond to the bitmask and then compares the bits thus extracted with the different masks to identify the corresponding network slice.
[0136] For example, if the extracted portion of the source (respectively destination) identifier is equal to “01010101”, then the second network slice is selected.
[0137] During a step 4414, the entity considered, for example the border router 441, can then route the data packet(s) via the network slice or type of network slice obtained. Optionally, the data packets can be marked with a slice identifier corresponding to the network slice obtained.
[0138] As illustrated in [Fig.5] and described above, the entity considered, for example the border router 441, may have received beforehand, during a step 4411, configuration information of an algorithm making it possible to associate a network slice or a type of network slice with a set of identifiers, for example from the controller 46 or the identifier allocation server 45. In particular, the masks according to the second embodiment may be transmitted in the configuration information, or known beforehand to the entity considered. The border router does not have to know the exact characterization of the addresses allocated to the terminals for a given network slice.
[0139] 5.3 Example of implementation
[0140] An example of implementation of the invention is now presented.
[0141] In this example, the identifiers of a set of identifiers are considered to be IP addresses or IP prefixes. In other embodiments, such identifiers are MAC addresses, VLAN identifiers, LSID, ESI, LISP, etc., a combination of all or part of these identifiers, the result of a function applied to at least one of these identifiers.
[0142] The terminal is also considered to be user equipment. In other embodiments, such a terminal is a CPE or a service instance.
[0143] 5.3.1 Construction of sets of identifiers
[0144] A set of identifiers according to the invention comprises at least one identifier, or more generally the result of the application of a function to at least one identifier (hash function, truncation function, etc.).
[0145] For example, a set of identifiers includes at least two addresses.
[0146] Each set of identifiers is dedicated to a network slice (or a type of network slice).
[0147] Assume that the network deploys “N” network slices. Each of the network slices can be identified by a unique slice identifier: “slice_id_i”, where “i” is an integer between 1 and N.
[0148] This slice identifier may be the same or different from that used for marking data packets.
[0149] One or more network slices may each be associated with one or more sets of identifiers comprising only IPv4 addresses, one or more network slices may each be associated with one or more sets of identifiers comprising only IPv6 addresses, one or more network slices may each be associated with one or more sets of identifiers comprising IPv4 addresses and IPv6 addresses.
[0150] For example, the system for managing addresses used in (or operated by) the network allocates “M” sets of identifiers, each set being identified by a unique reference: “pool_id_j”, with “j” an integer between 1 and M. A set of identifiers may comprise several ranges of identifiers; each range being identified by a unique reference “pool_k”, with “k” an integer. Such a system is commonly called IP AM (“IP Address Management”). It may be implemented by an allocation server, for example a DHCP server, or by a management entity, for example a controller 46. No assumption is made as to the nature of the IP AM solution deployed in a network.
[0151] A set of identifiers comprises at least one identifier, for example at least one IP address. A set of identifiers may include IPv4 and IPv6 addresses. Alternatively, sets per address family (for example at least a first set for IPv4 addresses, and at least a second set for IPv6 addresses) may be envisaged.
[0152] A set of identifiers may be a block of contiguous addresses. A first example of a set of identifiers comprising at least two contiguous addresses is: "1.2.3.4 / 16". A second example of a set of identifiers comprising at least two contiguous addresses is: "2001:db8:: / 32".
[0153] A set of identifiers can be a block of non-contiguous addresses, or two blocks non-contiguous. A first example of a set of identifiers with at least two non-contiguous blocks is: "1.2.3.0 / 24, 55.66.77.88 / 24". A second example of a set of identifiers with at least two non-contiguous blocks is: "200 l:db8 :: / 50, 2001:db8:l:c000:: / 50". Several non-contiguous blocks can therefore belong to the same set.
[0154] The sets of identifiers can be of the same size or of different sizes.
[0155] 5.3.2 Associating sets of identifiers with network slices
[0156] It is assumed that network entities, such as access routers, border routers or an AM IP server, have the ability to execute an algorithm that makes it possible to associate a set of identifiers, for example identified by the reference “pool_id_j”, with one and only one network slice (or one type of network slice), for example identified by the slice identifier “slice_id_i”.
[0157] A first example of an algorithm is described as follows:
[0158] FILTER(ADDRESS_FAMILY=Y / N)
[0159] SORT(POOLS, CRITERIA)
[0160] slice_id_j = pool_id_i mod(N); (where mod() corresponds to the modulo operation)
[0161] According to the first step of this algorithm (application of the FILTER function), if sets per address family are used (for example at least a first set for IPv4 addresses, and at least a second set for IPv6 addresses) then the procedure described is executed per address family (identified by the variable Y). Otherwise, the procedure is executed independently of the address family.
[0162] According to the second step of this algorithm (application of the SORT function), the different sets of identifiers (POOLS) are sorted taking into account one or more determined criteria (CRITERIA), such as for example their size (which can be defined by the number of identifiers which make up a set) or according to an order relationship, etc.
[0163] Finally, each set of identifiers is associated with a single network slice, or a type of network slice.
[0164] A second example of an algorithm for associating a set of identifiers with one and only one network slice (or one type of network slice) is proposed below.
[0165] During a first step, a mask is defined, allowing to specify a portion to be extracted from an identifier. This mask ("bitmask") is for example: - "48-56" to indicate that the bits to be extracted for the identification are those between bits 48 and 56 of an IPv6 address. - “48-64” to indicate that the bits to be extracted for identification are those between bits 48 and 64 of an IPv6 address.
[0166] During a second step, masks are allocated by slice: for example “00011000” for slice 1, “01010101” for slice 3, etc. This associates a network slice with a portion extracted from an identifier.
[0167] According to these different examples, we can therefore execute an algorithmic function “f()” allowing us to associate a network slice with a set of identifiers. For example, “slice_id = f(pool_id)”.
[0168] Note that the configuration of the function “f()” can change over time. In particular, it can be defined in another entity, for example a controller 46.
[0169] The configuration parameters (for example the size of the set of identifiers, filtering by address family, order criteria according to a prioritization policy which would require, for example, drawing identifiers from a first set, then from a second after the first has been exhausted (or a threshold corresponding to "x%" of the number of identifiers available or used has been reached), etc., the order of selection of the identifiers can be defined according to the organization of the entity responsible for managing the sets of identifiers, the nature of the traffic, etc., the number of network slices, etc.), a timestamp, and possibly a version of the "f()" function can be recorded at each configuration change, for example when a new terminal connects to the network.
[0170] The function “f()” can be executed by the following entities, taking into account the different configuration parameters: - an address or prefix allocation server, or more generally, an identifier allocation server (for example, DHCP or DHCPvô type), - a router that activates a prefix delegation function, - an edge node responsible for classifying packets coming from or going to a terminal: access router, border routers (for example, ASBR routers “Autonomous System Border Routers”), etc.
[0171] If a new network slice is configured or deleted in a network, or if the engineering of a network slice is modified, the configuration of the parameters used to execute the function "f()" may be modified to reflect the impact of the previously mentioned events (addition / deletion / modification). For example, when a traffic threshold is reached within the slice, an update of the bandwidth resources may be necessary. In this case, the operator may decide to allocate additional transmission resources to this slice, when a network slice has been resized to serve more (or fewer) users, or when addresses initially belonging to a set of identifiers "pool_id_i" have been transferred to another set of identifiers "pool_id_j".
[0172] This new configuration can in particular be communicated to the various entities involved in the calculation of the function “f()”.
[0173] In particular, the new configuration must be coordinated / synchronized between the different entities, in order to avoid the traffic being inadvertently classified as having to be routed within a network slice other than that with which it must be associated, which would risk degrading the quality of the service of which this traffic is characteristic, and, therefore, the quality of the service as perceived by the user.
[0174] 5.3.3 Connection request
[0175] In order to be able to transmit and / or receive data, a terminal must connect to at least one network slice.
[0176] To do this, the terminal negotiates with at least one SSP from which the user of the terminal has subscribed to a (connectivity) service a list of network slices that it is likely to use to send or receive traffic. For each network slice, its type can also be negotiated between the terminal and the network.
[0177] In particular, the terminal requests a terminal identifier, for example an address or a prefix, to be used to transmit or receive data via the network slice(s) to which it wishes to connect. To do this, as illustrated by [Fig.5], the terminal transmits (412) a request for allocation of at least one identifier to a dedicated entity, for example an identifier allocation server (DHCP server for example).
[0178] According to a particular implementation mode, a terminal can insert an identifier of the type of network slice or of the requested network slice in the identifier allocation request (address allocation or prefix delegation for example). New DHCP options “SLICETYPE” and “SLICEID” can be defined for this purpose.
[0179] An example of a DHCPvô option “OPTION_SLICEID” allowing to insert a network slice identifier (SLICEID) of variable length “OPTION_LEN” is
[0180] An example of a DHCPvô option “OPTION_SLICETYPE” allowing to insert a network slice type (SLICETYPE) of variable length “OPTION_LEN” is proposed below: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 OPTION_SLICETYPE OPTION_LEN SLICETYPE (variable length)
[0181] Upon receipt of the address / prefix allocation request by the allocation server (or more generally by the entity requested for the allocation of identifiers), the latter can check whether the terminal is authorized to access a given slot.
[0182] The server may then execute the function "f()" to determine the set of identifiers to be used for the network slice(s) requested by the terminal ("target" network slices). The identity of the target network slice(s), for example a slice identifier, may be extracted from the authorization information for that terminal or from the allocation request.
[0183] For a network slice, one or more available addresses (and / or one or more prefixes), selected from the set of identifiers, may be allocated to the terminal.
[0184] For example, the identity of the network slice associated with an address (or prefix) may be explicitly indicated in a response sent by the allocation server, in particular if a “common” (or grouped) response is used for the different network slices. For example, one of the DHCP options “SLICETYPE” or “SLICEID” may be returned in the response sent by the allocation server to the terminal to inform it of the address (or prefix) allocated for a given network slice. It should be noted that the identification of the network slice is not necessary if the information recorded in the response makes it possible to uniquely identify the network slice concerned.
[0185] Upon receipt (413) of the response sent by the allocation server, the terminal records (414) the association between an identifier allocated to the terminal (address / prefix for example), called terminal identifier, and the associated network slice. For example, if the terminal identifier is allocated to a network interface of the terminal, the terminal records the association between the terminal identifier and the associated network slice for the network interface via which the information was received. If the terminal identifier is allocated to a software module embedded in the terminal, the terminal records the association between the terminal identifier and the associated network slice for the software module through which the information was received.
[0186] It is assumed that a table is maintained for this purpose by the terminal. This table is for example called here “ADDR_S LICES”.
[0187] 5.3.4 Data transmitting terminal
[0188] It is considered below that the terminal wishes to transmit data via a target network slice.
[0189] An application may notably use a terminal API to request that data packets be routed via a given network slice.
[0190] According to a first example, it is assumed that the terminal hosts a SPINS manager which has the capacity to impose the source address of the packets sent by the terminal to a given network slice in accordance with the descriptive information of this network slice, and as recorded in the ADDR_SLICES table. According to a second example, the imposition (resp. the order of use - for example according to the nature of the application which can favor the use of the address assigned to the Wi-Fi© interface of the terminal before using the address assigned to the 5G interface of the terminal or control the preference for using the available slices and therefore the associated addresses) of the source address is carried out (resp. sent) directly by the application. The imposition of the source address therefore consists of influencing the choice of the external source address to be used by a terminal for sending a data packet generated by an application.
[0191] In other words, the source address of data packets sent by the terminal via a network slice must match the terminal identifier recorded in the ADDR_SLICES table for that network slice.
[0192] If a local address is used by the application (e.g., a private IPv4 address or an IPv6 link-local address), then a state may be stored locally to maintain the link between the internal address of the terminal as perceived by the application and the source address (terminal identifier) selected for the purposes of the SPINS procedure.
[0193] Optionally, one or more access nodes may perform checks to ensure that traffic received from a terminal is sent with a source address associated with a slot to which that terminal is authorized to connect.
[0194] 5.3.5 Terminal receiving data
[0195] For packets received from a neighboring network (for example, a network operated by another operator, a data center or a cloud infrastructure that would also be operated by a third party), an edge node extracts the identifier of the destination terminal (for example the destination address), which may in particular be recorded in the header of such packets. It then identifies the set of identifiers to which this destination identifier belongs, and consequently the slice network, or network slice type, associated with this set of identifiers.
[0196] For example, if a set of identifiers is found, the edge node determines the unique reference associated with the set of identifiers: "pool_id_i". The edge node then executes the function "f()" using the unique reference "pool_id_i" as an input parameter. The returned network slice identifier, "slice_id", corresponds to the selected network slice. It can be used, among other things, to mark data packets to be routed through this network slice.
[0197] If applicable, the edge node marks the traffic and routes it through the network slice thus selected.
[0198] If no set of identifiers is found, the edge node may process the traffic according to a default rule. For example, such a rule is to send the traffic into the network without requesting any of the available network slices.
[0199] By way of illustration, [Fig.6] provides an example of implementation of the invention. For example, we consider a terminal 61 connected to an access node 62, itself connected to the Internet network 63 via an edge router 64.
[0200] As previously indicated, the edge nodes (access node 62, edge router 64) can be configured with the same configuration parameters for executing the function "f()".
[0201] Terminal 61 has an ADDR_SLICES table for listing terminal identifiers, allocated by the allocation server, and the associated network slices {@, Slice#}.
[0202] For example, an application APP1 uses the API exposed by the terminal 61 to request that packets be routed via a network slice “Slice 1” and an application APP2 uses this API to request that packets be routed via a network slice “Slice2”. The terminal 61 selects (611) the terminal identifier (source identifier: src_@) corresponding to the requested network slices, by consulting the ADDR_SLICES table. For example, the terminal identifier “@1” can be used by the terminal to send data via the network slice “Slice”, and the terminal identifier “@2” can be used by the terminal to send data via the network slice “Slice2”.
[0203] Upon receipt of data from the terminal 61, the access node 62 can in particular verify (621) whether the received data has indeed been sent with the source terminal identifier associated with the ad hoc network slice: thus, if the access node 62 receives data from the terminal via the network slice “Slice2” (for example, via a dedicated tunnel), it can verify whether the source identifier is indeed the address “@2”. The access node 62 can in particular forward the data to the border router 64, via the selected network slice(s) (“Slice 1” for the application APP1, “Slice2” for the application APP2).
[0204] For return traffic, the border router extracts the terminal identifier (destination identifier: dst_@) as recorded in the header of the data packets. By executing the function "f()", it can in particular identify (624) the network slice to be used to transmit the data to the terminal.
[0205] We have described above the case where the function “f()” makes it possible to associate a network slice with a set of identifiers identified by a unique reference.
[0206] In the case where the “f()” function implements a “bitmask”, a SPINS element can in particular extract the bits of the terminal identifier (source or destination) which correspond to the “bitmask”, then compare the bits thus extracted with the different masks to identify the corresponding network slice.
[0207] 5.4 Variants
[0208] Various examples have been described above in which the terminal is a user equipment. In other embodiments, implementing similar steps, the terminal may be a CPE or a service instance.
[0209] 5.5 Simplified structure of corresponding entities
[0210] Finally, in relation to [Fig.7], the simplified structures of an entity are presented, for example an edge node, a management entity, an identifier allocation server or a terminal according to at least one embodiment described above.
[0211] As illustrated by [Fig.7], such an entity comprises at least one memory 71 comprising a buffer memory, at least one processing unit 72, equipped for example with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 73, implementing steps of at least one method according to at least one embodiment of the invention.
[0212] At initialization, the code instructions of the computer program 73 are for example loaded into a RAM memory before being executed by the processor of the processing unit 72.
[0213] If the entity is an edge node, the processor of the processing unit 72 implements steps of the data routing method described previously, according to the instructions of the computer program 73, to: • obtain configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to send or receive at least one data packet via said network slice, or said type of network slice, considered, each set of identifiers being associated with a single network slice or a single type of network slice, • obtain at least one data packet comprising a terminal identifier capable of uniquely identifying a terminal sending or receiving said at least one data packet, • select a network slice or a type of network slice associated with the set of identifiers to which said terminal identifier belongs, from said configuration information, • route said at least one data packet via said selected network slice or network slice type.
[0214] If the entity is a management entity, the processor of the processing unit 72 implements steps of the configuration method described previously, according to the instructions of the computer program 73, to: - associating, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of network slice, - transmitting configuration information of an algorithm to at least one entity of said network, allowing said entity to associate said at least one network slice or said at least one type of network slice with said at least one set of identifiers.
[0215] If the entity is an identifier allocation server, the processor of the processing unit 72 implements steps of the allocation method described previously, according to the instructions of the computer program 73, to: • obtain configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to send or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of slice, • receive, from a terminal connected to said network, at least one request for allocation of at least one identifier intended to be used by the terminal to send or receive at least one data packet via a network slice or a type of network slice to which or to which said terminal is authorized to connect, • determine the set of identifiers associated with said network slice or audit network slice type, from said configuration information, • transmit, to said terminal, at least one identifier of said set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier.
[0216] If the entity is a terminal, the processor of the processing unit 72 implements steps of the method for accessing at least one service described previously, for at least one network slice or type of network slice to which or to which said terminal is authorized to connect, according to the instructions of the computer program 73, to: • transmit a request for allocation of at least one identifier intended to be used by the terminal to send or receive at least one data packet via said network slice, or said type of network slice, • receive, in response to said request, at least one identifier from a set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier, • store said at least one terminal identifier associated with said network slice or said type of network slice.
Claims
Claims
1. Method for routing data from or to a terminal in a communication network implementing network slices, comprising: • obtaining (4411) configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to send or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of network slice, • obtaining (4412) at least one data packet comprising a terminal identifier capable of uniquely identifying a terminal sending or receiving said at least one data packet,• the selection (4413) of a network slice or a type of network slice associated with the set of identifiers to which said terminal identifier belongs, from said configuration information, • the routing (4414) of said at least one data packet via said network slice or said type of network slice selected.,
2. Method according to claim 1, characterized in that it also comprises marking said at least one data packet with an identifier capable of uniquely identifying said network slice or said selected type of network slice, called slice identifier.
3. Method according to any one of claims 1 and 2, characterized in that said selection step comprises: • determining the set of identifiers to which said terminal identifier belongs, • determining said network slice or said type of network slice associated with said set of identifiers.
4. Method according to any one of claims 1 to 3, characterized in that said selection step comprises: • extracting a portion of said terminal identifier, • determining said network slice or said type of network slice associated with said portion.
5. Method for configuring a communication network implementing network slices, intended to route data from or to at least one terminal, comprising: - a step of associating (461), with at least one network slice or with at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or with a single type of network slice, - a step of transmitting (462) information for configuring an algorithm to at least one entity of said network, allowing said entity to associate said at least one network slice or said at least one type of network slice with said at least one set of identifiers.
6. Method according to claim 5, characterized in that said at least one set of identifiers is identified by a unique reference and in that said association step associates said unique reference with an identifier capable of uniquely identifying said network slice or said type of network slice, called slice identifier.
7. Method according to any one of claims 5 and 6, characterized in that said at least one set of identifiers comprises at least one identifier belonging to the group comprising: • an IP address, • an IP prefix, • a MAC address, • a VLAN identifier, • an LSID identifier, • an ESI identifier, • an identifier according to the LISP protocol, • a combination of all or part of the identifiers above, • a result of a function applied to at least one of the identifiers above.
8. Method according to any one of claims 5 to 7, characterized in that at least one of said sets of identifiers comprises at least two non-contiguous identifiers.
9. Method for allocating at least one identifier to a terminal in a communication network implementing network slices, comprising: • obtaining (451) configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of slice, • receiving (452), from a terminal connected to said network, at least one request for allocation of at least one identifier intended to be used by said terminal to transmit or receive at least one data packet via a network slice or a type of network slice to which or to which said terminal is authorized to connect,• the determination (453) of the set of identifiers associated with said network slice or said type of network slice, from said configuration information, • the transmission (454), to said terminal, of at least one identifier of said set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier.,
10. Method for accessing at least one service by a terminal, via a communication network implementing network slices, comprising, for at least one network slice or type of network slice to which said terminal is authorized to connect: • the transmission (412) of a request for allocation of at least one identifier intended to be used by said terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, • the reception (413), in response to said request, of at least one identifier from a set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier, • the storage (414) of said at least one terminal identifier associated with said network slice or said type of network slice.
11. Method according to claim 10, characterized in that, prior to the transmission of at least one data packet, it comprises a step of selecting the terminal identifier to be used for a transmission via a target network slice, from among the terminal identifier(s) stored by said terminal.
12. Method according to claim 11, characterized in that it further comprises a step of replacing a local address of said terminal, by said terminal identifier selected for the routing of data packets via a target network slice.
13. Entity capable of routing data from or to a terminal in a communication network implementing network slices, comprising at least one processor configured to: • obtain configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to send or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of network slice, • obtain at least one data packet comprising a terminal identifier capable of uniquely identifying a terminal sending or receiving said at least one data packet, • select a network slice or a type of network slice associated with the set of identifiers to which said terminal identifier belongs, from said configuration information, • route said at least one data packet via said selected network slice or type of network slice.
14. Entity capable of configuring a communication network implementing network slices, intended to route data from or to at least one terminal, comprising at least one processor configured to: associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of network slice, transmit configuration information of an algorithm to at least one entity of said network, allowing said entity to associate said at least one network slice or said at least one type of network slice with said at least one set of identifiers.
15. Server for allocating at least one identifier to a terminal in a communications network implementing network slices, comprising at least one processor configured to: • obtain configuration information of an algorithm making it possible to associate, with at least one network slice or at least one type of network slice, at least one set of identifiers capable of being used by a terminal to transmit or receive at least one data packet via said network slice, or said type of network slice, each set of identifiers being associated with a single network slice or a single type of slice, • receive, from a terminal connected to said network, at least one request for allocation of at least one identifier intended to be used by said terminal to transmit or receive
16. at least one data packet via a network slice or type of network slice to which or to which said terminal is authorized to connect, • determine the set of identifiers associated with said network slice or said type of network slice, • transmit, to said terminal, at least one identifier of said set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier. Terminal capable of accessing at least one service, via a communication network implementing network slices, comprising at least one processor configured to: • transmit a request for allocation of at least one identifier intended to be used by said terminal to send or receive at least one data packet via a network slice or a type of network slice to which or to which said terminal is authorized to connect, • receive, in response to said request, at least one identifier from a set of identifiers, allocated to said terminal and capable of uniquely identifying said terminal, called terminal identifier, • store said terminal identifier associated with said network slice or said network slice type.