WO2023110056A1 - Compute and network-aware distributed service scheduling - Google Patents

Compute and network-aware distributed service scheduling Download PDF

Info

Publication number
WO2023110056A1
WO2023110056A1 PCT/EP2021/085485 EP2021085485W WO2023110056A1 WO 2023110056 A1 WO2023110056 A1 WO 2023110056A1 EP 2021085485 W EP2021085485 W EP 2021085485W WO 2023110056 A1 WO2023110056 A1 WO 2023110056A1
Authority
WO
WIPO (PCT)
Prior art keywords
service function
service
routing device
siid
respective instance
Prior art date
Application number
PCT/EP2021/085485
Other languages
French (fr)
Inventor
Dirk Trossen
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2021/085485 priority Critical patent/WO2023110056A1/en
Publication of WO2023110056A1 publication Critical patent/WO2023110056A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput

Definitions

  • the present disclosure relates generally to the field of network routing, and specifically to constraint-based service routing. More specifically, the present disclosure relates to a routing device for routing a service request to a service function, a method of operating said routing device, and a corresponding computer program.
  • a service client C issues a request to a service SF possible to be served by any one of multiple service instances SFi, SF m that are deployed at various network locations.
  • the request requires scheduling, i.e., a mapping to a particular ‘best’ one of the multiple service instances, meaning that compute capabilities of the multiple service instances are best used and the request latency is constrained as well.
  • Centralized service scheduling may optimize a use of distributed compute capabilities, but at the same time may constitute a performance bottleneck and thus give rise to scalability concerns.
  • Distributed service scheduling may make less efficient use of distributed compute capabilities, may be subject to frequent signaling of decision-making metrics, and may experience request latencies.
  • service completion times are not only dependent on compute capabilities of the multiple service instances, but also on a capability of the network between the service client and the particular service instance.
  • a routing device for routing a service request to a service function.
  • the routing device comprises a processor being configured to: establish a forwarding state for routing the service request to a number of instances of the service function, the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function; establish a network-awareness state comprising a measurement count and a measurement value for the respective instance of the service function; and adapt the forwarding state in accordance with the network-awareness state.
  • routing a service request to a service function may not only take into account the compute capabilities of the respective service instance, but also the network-awareness state, e.g., network capabilities between a service client and a respective service instance. This may result in improved, minimal, and less variable latency in support of better user experience, a better reactivity in light of network fluctuations, and a better convergence to stable state.
  • the processor may further be configured to: receive the service request comprising a service function identifier of the service function as a destination address; and forward the received service request to the next hop towards a particular one of the number of instances of the service function in accordance with the forwarding state.
  • routing of the service request to the service function may actually take place taking also into account the network-awareness state.
  • the processor may further be configured to, so as to forward the received service request to the next hop towards the particular one of the number of instances of the service function in accordance with the forwarding state: iterate, in a forwarding table of the routing device, a unit iterator associated with the service function identifier of the service function, the unit iterator being configured to iterate through the unique indices for each unit of the normalized capacity of processing units associated with the service function identifier of the service function in the forwarding table; retrieve, from the forwarding table, the next hop from the forwarding table in accordance with: the received service function identifier of the service function and the unique index represented by the iterated unit iterator being associated with the service function identifier of the service function; and forward the received service request to the retrieved next hop.
  • each service request is mapped to a unique index.
  • Each unit of the normalized capacity of processing units associated with the service function identifier of the service function has such a unique index, and is associated with a particular service instance of the service function.
  • service requests are mapped to the unique indices, viz., the service instances of the service function, in accordance with the respective normalized capacity of processing units. This may result in a load balancing of service provisioning in accordance with processing capabilities.
  • the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: receive, from an adjacent device, a unique index advertised for a respective unit of the normalized capacity of processing units of the respective instance of the service function and a service function identifier of the service function and populate the forwarding table with the service function identifier of the service function the unique index and the adjacent device as a next hop.
  • each service instance of the service function may advertise its normalized capacity of processing units within the network.
  • the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: re-advertise the unique index and the associated service function identifier.
  • each routing device may disseminate the normalized capacities of processing units received from service instances within the network.
  • the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: re-establish an originally received forwarding state for routing the service request to the number of instances of the service function.
  • each routing device may re-establish the originally received forwarding state in situations with large variations of reported measurements, so as to curtail the scaling and reset the network awareness.
  • the processor may further be configured to, so as to establish the network-awareness state: receive, from a respective service client of the service function, the measurement count and the measurement value for the respective instance of the service function in accordance with a minimum sample size and a reporting periodicity for the respective service client; and populate a network-awareness table with the service function identifier of the service function, the respective instance of the service function, the measurement count and the measurement value for the respective instance of the service function.
  • each routing device may establish network-awareness state comprising measured network capabilities between pairs of service clients and service instances of the service function and facilitating network-aware routing/forwarding decision making.
  • the processor may further be configured to, so as to receive, from the respective service client of the service function the measurement count and the measurement value for the respective instance of the service function: initiate the reception of the measurement count and the measurement value from the respective service client of the service function for the respective instance of the service function.
  • each routing device may trigger measuring and reporting the network-awareness state by adjacent service clients, if necessary.
  • the processor may further be configured to, so as to populate the network-awareness table: recalculate the measurement count and the measurement value for the respective instance of the service function of an existing entry of the network-awareness table associated with the service function identifier of the service function and the respective instance of the service function, using the received measurement count and the received measurement value for the respective instance of the service function.
  • each routing device may revise existing network-awareness state. This may result in adaptive network awareness.
  • the processor may further be configured to, so as to populate the network-awareness table: create a new entry of the network-awareness table associated with the service function identifier of the service function and the respective instance of the service function, the new entry comprising the received measurement count and the received measurement value for the respective instance of the service function.
  • each routing device may establish network-awareness state. This may result in augmented network awareness.
  • the measurement count and the measurement value for the respective instance of the service function being received as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
  • network-awareness state may be encapsulated and communicated in a backwards- compatible manner.
  • the processor may further be configured to, so as to establish the network-awareness state: sending, to the respective service client of the service function one or more of: an update for the minimum sample size for the respective service client, and an update for the reporting periodicity for the respective service client, the updated reporting periodicity being adjusted in accordance with a total number of service clients of the service function being in communication with the routing device.
  • each routing device may trigger measuring and reporting the network-awareness state in accordance with its particular need for information.
  • the one or more updates may be sent as a type-length- value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
  • network-awareness state may be encapsulated and communicated in a backwards- compatible manner.
  • the processor may further be configured to, so as to adapt the forwarding state in accordance with the network-awareness state: upon having established the network-awareness state for each of the number of instances of the service function in accordance with the minimum sample size for the respective service client of the service function, scale the normalized capacity of processing units of the respective instance of the service function to an integer part of a ratio of the measurement value of the respective instance of the service function to a minimum measurement value of the number of instances of the service function and adapt the forwarding state in accordance with the scaled normalized capacity of processing units of the respective instance of the service function.
  • the normalized capacity of processing units of the respective instance may be adapted to also reflect the network capabilities between the pairs of service clients and service instances of the service function. This may result in a load balancing of service provisioning in accordance with processing capabilities as well as network capabilities.
  • the minimum sample size may define a minimum number of measurements prescribed by the routing device.
  • the measurement value for the respective instance of the service function may comprise one of an average throughput for completed service transactions of the respective instance of the service function, and a reciprocal average round trip time for the completed service transactions of the respective instance of the service function.
  • a method of operating a routing device comprises: establishing a forwarding state for routing the service request to a number of instances of the service function the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function establishing a networkawareness state comprising a measurement count and a measurement value for the respective instance of the service function and adapting the forwarding state in accordance with the network-awareness state.
  • the method may be performed by the routing device of the first aspect or any of its implementations.
  • a computer program comprising executable instructions which, when executed by a processor, cause the processor to perform the method of the second aspect or any of its implementations.
  • FIG. 1 illustrates an exemplary network scenario in accordance with the present disclosure
  • FIG. 2 schematically illustrates a routing device and a method of operating the same, both in accordance with the present disclosure
  • FIG. 3 schematically illustrates an interoperation of adjacent routing devices in accordance with the present disclosure.
  • a disclosure in connection with a described method may also hold true for a corresponding apparatus or system configured to perform the method and vice versa.
  • a corresponding device may include one or a plurality of units, e.g. functional units, to perform the described one or plurality of method steps (e.g. one unit performing the one or plurality of steps, or a plurality of units each performing one or more of the plurality of steps), even if such one or more units are not explicitly described or illustrated in the figures.
  • a specific apparatus is described based on one or a plurality of units, e.g.
  • a corresponding method may include one step to perform the functionality of the one or plurality of units (e.g. one step performing the functionality of the one or plurality of units, or a plurality of steps each performing the functionality of one or more of the plurality of units), even if such one or plurality of steps are not explicitly described or illustrated in the figures. Further, it is understood that the features of the various exemplary implementations and/or aspects described herein may be combined with each other, unless specifically noted otherwise.
  • FIG. 1 illustrates an exemplary network scenario in accordance with the present disclosure.
  • the scenario comprises a communication network TV indicated by a cloud shape and comprising routing devices 1 in accordance with the present disclosure as well as further routing / forwarding devices F interconnected by network layer (i.e., layer-3) links.
  • network layer i.e., layer-3
  • a “routing device” as used herein may generally relate to a network node suitable for layer-3 routing.
  • the communication network N may be a routed network, such as an IP network.
  • the routing devices 1 are suited for constraint-based service routing (CBSR) in accordance with the method 2 of operating a routing device 1 which will be explained in more detail in connection with FIGs. 2 - 3 below. More specifically, the routing devices 1 are client-facing CBSR ingress network nodes.
  • service routing may refer to a routing in accordance with addressing of services rather than addressing of network interfaces.
  • service routing may use address foo.com/bar (in binary form, such as a hash of foo.com/ba ) instead of the IP address of foo.com/bar .
  • a number of instances of the service can be registered in the network, all of which can receive service requests for, e.g., foo.com/bar, possibly as forward multicast (i.e., be selected for service provisioning).
  • CBSR may refer to a service routing wherein service instances can constrain their selection for service provisioning by advertising constraint information together with service identifiers. Such information may be piggy-backed on packets of routing protocols and thus be distributed with a possibility for aggregation and/or suppression of advertisements. Forwarding operation may be a two-stage process of longest prefix match (against service identifier) and constraint matching. This can be implemented in P4 (a programming language for network devices in software-defined networks, specifying how data plane devices process packets), for example, at line-speed.
  • Attached to the communication network A is a number of service clients C deployed at various network locations, and a number of instances SF m of a service function SF deployed at servers S at various network locations as well.
  • Service routing may be deployed in limited domains of the global internet, but interconnection to existing Internet services and other CBSR domains may be realized using locator-based forwarding in peer(ing) networks (not shown).
  • a respective server S may issue a service advertisement A (see arrows indicated as ‘A ’) for the service function SF
  • the respective service client C may issue a service request R (see arrows indicated as R ’) for the service function SF, to be served by one of the number of service instances SF m .
  • the present disclosure provides distributed scheduling of service requests R (or other traffic) to a particular ‘best’ one of the number of instances SF m of the service function SF by the routing devices 1, taking into account compute capabilities of the respective instance SF m as well as respective network capabilities between the service client C and the respective service instance SF m .
  • FIG. 2 schematically illustrates a routing device 1 and a method 2 of operating the same, both in accordance with the present disclosure.
  • the routing device 1 and the method 2 are linked by a single general concept. As such, the method 2 may be performed by the routing device 1. Put another way, the routing device 1 is configured to perform the method 2. More specifically, the routing device 1 comprises a processor 11 (see FIG. 2) configured to perform steps of the method 2. In accordance with a most general implementation, the method 2 comprises a step of establishing 21 (see FIG. 2) a forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to a number of instances SIID of the service function SID.
  • the forwarding state SID, CI(SIID), NH(SIID), which is indicated in FIG. 2 as forming part of a forwarding table FT, comprises an identifier of the service function SID, a unique index CI(SIID) for each unit of a normalized capacity of processing units of the respective instance SIID of the service function SID and a next hop NH(SIID) towards the respective instance SIID of the service function SID (see example below).
  • the method 2 further comprises a step of establishing 22 (see FIG. 2) a network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), which is indicated in FIG. 2 as forming part of a network awareness table NT and comprises a measurement count Nmeas(SIID) and a measurement value Vmeas(SIID) for the respective instance SIID of the service function SID.
  • a network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) which is indicated in FIG. 2 as forming part of a network awareness table NT and comprises a measurement count Nmeas(SIID) and a measurement value Vmeas(SIID) for the respective instance SIID of the service function SID.
  • the method 2 further comprises a step of adapting 23 (see FIG. 2) the forwarding state SID, CI(SIID), NH(SIID) in accordance with the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) .
  • the routing devices 1 of the network N may be provided with the processing capabilities of the service instances SIID.
  • the respective routing device 1 may then schedule/assign the service request R to a ‘next one’ of the normalized compute units registered in the servicespecific interval, for example in a round robin manner (the fact that the compute units are normalized actually results in a weighted round robin scheme but the aforementioned flattening of the interval avoids the needed multiplication with the weights, i.e. the compute units per service instance).
  • the respective routing device 1 may iterate over the servicespecific interval maintained in the respective routing device 1.
  • a dissemination of the one or more normalized compute units i.e., the unique indices CI(SIID) of 1 to 10 in the example above) is described next.
  • the processor 11 is configured to establish 21 (see FIG. 2) a forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to a number of instances SIID of the service function SID.
  • the forwarding state SID, CI(SIID), NH(SIID) comprises a unique index CI(SIID) for each unit of a normalized capacity of processing units of the respective instance SIID of the service function SID and a next hop NH(SIID) towards the respective instance SIID of the service function SID.
  • the processor 11 may further be configured to receive 212 (see FIG. 2), from an adjacent device NH(SIID), a unique index CI(SIID) advertised for a respective unit of the normalized capacity of processing units of the respective instance SIID of the service function SID, and a service function identifier SID of the service function SID, and populate 213 (see FIG. 2) the forwarding table with the service function identifier SID of the service function SID, the unique index CI(SIID) and the adjacent device NH(SIID) as a next hop.
  • a unique index CI(SIID) does not preclude more than one unique index CI(SIID) to be advertised.
  • the processor 11 may further be configured to re-advertise 214 (see FIG. 2) the unique index CI(SIID) and the associated service function identifier SID.
  • the processor 11 may further be configured to re-establish 211 (see FIG. 2) an originally received forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to the number of instances SIID of the service function SID. As shown in FIG. 2, this may be in the alternative to the receive 212 block discussed above. Scaling the compute units in situations with large variations of reported measurements may lead to the (total number of) compute units being scaled significantly compared to the initial compute units assignment reported in the original service announcements A. Thus, re-establishing the assignment may curtail the scaling and reset the network awareness.
  • the routing devices 1 of the network N may additionally be provided with the respective network capabilities between the service clients C and the service instances SIID.
  • the respective service client C may maintain a table of completion times of service requests R (i.e., a time from service request R to receiving full response, may be expressed as throughput) per service function SID and per service instance SIID to create network awareness state.
  • the respective service client C may maintain a measurement count and a measurement value, such as an average throughput, for each service instance SIID of the service function SID.
  • the respective service client C may report partial or full network awareness state to the adjacent routing device 1 in accordance with a reporting periodicity ( “every N seconds ”) and a reporting quality, as expressed by a minimum sample size ( “at least m t measurements’”) .
  • the reporting may be performed in a push or pull manner.
  • the reporting periodicity may be dynamically adjusted based on an incoming rate of client reports to keep an overall adjustment frequency stable.
  • the minimum sample size is a configuration value (e.g., m t >10 to ensure suitable confidence in the (average) measurement value.
  • the reporting periodicity and the reporting quality may be adapted by the adjacent routing device 1 upon receiving a report from a service client C, for example.
  • the respective routing device 1 may thus maintain a table of credible completion times of service requests R per service function SID and per service instance SIID in accordance with measurements of its adjacent service clients C.
  • the processor 11 is further configured to establish 22 (see FIG. 2) a network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) comprising a measurement count Nmeas(SIID) and a measurement value Vmeas(SIID) for the respective instance SIID of the service function SID. So as to establish 22 the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), the processor 11 may further be configured to receive 221 (see FIG.
  • the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID may be received as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message. That is to say, local measurement reporting from service clients C to the adjacent routing device 1 could be done as protocol over, e.g., ICMP, or via other available reporting means.
  • the processor 11 may further be configured to initiate 2211 (see FIG. 2) the reception of the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) from the respective service client CID of the service function SID for the respective instance SIID of the service function SID.
  • the processor 11 may further be configured to populate 222 (see FIG. 2) a network-awareness table NT with the service function identifier SID of the service function SID, the respective instance SIID of the service function SID, the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID.
  • the processor 11 may further be configured to recalculate 2221 (see FIG. 2) the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID of an existing entry of the network-awareness table NT associated with the service function identifier SID of the service function SID and the respective instance SIID of the service function SID, using the received measurement count Nmeas(SIID) and the received measurement value Vmeas(SIID) for the respective instance SIID of the service function SID. So as to populate 222 the network-awareness table NT, the processor 11 may further be configured to create 2222 (see FIG.
  • the processor 11 may further be configured to sending 223 (see FIG. 2), to the respective service client CID of the service function SID, one or more of: an update for the minimum sample size Nmeas min(CID) for the respective service client CID, and an update for the reporting periodicity Tmeas(CID) for the respective service client CID.
  • the adjacent routing device 1 can control the reporting periodicity / rate and the number of service clients C used to provide the measurement values needed.
  • the updated reporting periodicity Tmeas(CID) may be adjusted in accordance with a total number of service clients CID of the service function SID being in communication with the routing device 1.
  • the one or more updates may be sent as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
  • the routing devices 1 take into account both the processing capabilities of the service instances SIID as well as the respective network capabilities between the service clients C and the service instances SIID, when scheduling service requests R independently of one another (i.e., in a distributed manner).
  • the processing capabilities of the service instances SIID of a given service function SID may be revised to also reflect the respective network capabilities between the service clients C and the service instances SIID, once the adjacent routing devices 1 have received credible completion times of service requests R from their adjacent service clients C for all the service instances SIID of the given service function SID.
  • This may involve scaling the processing capability of the respective service instances SIID by an integer ratio of the measurement value Vmeas(SIID) of the respective instance SIID and a minimum measurement value minsiiD(Vmeas(SIID)) among all the service instances SIID.
  • integer ratio 7
  • the resulting initial service-specific interval may comprise unique indices CI(SIID) ranging from 7 to 10.
  • the scaling of normalized compute units results from faster response times of some service instances C with respect to other service instances C.
  • the service instances C associated with respective integer ratios of 4 and 5 will subsequently receive 4 and 5 times more service requests R. If network conditions stayed stable, their throughput would drop to 1/4 and 1/5, respectively, with next adjustments keeping the assignment stable (i.e., no further scaling).
  • the processor 11 is further configured to adapt 23 (see FIG. 2) the forwarding state SID, CI(SIID), NH(SIID) in accordance with the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) .
  • the processor 11 may further be configured, upon having established 231 (see FIG. 2) the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) for each of the number of instances SIID of the service function SID in accordance with the minimum sample size Nmeas min(CID) for the respective service client CID of the service function SID, to scale 232 (see FIG. 2)
  • the minimum sample size Nmeas min(CID) may define a minimum number of measurements prescribed by the routing device 1 to ensure suitable confidence in and credibility of the (average) measurement value Vmeas(SIID) .
  • the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID may comprise one of an average throughput (Bytes RTT) for completed service transactions of the respective instance SIID of the service function SID, and a reciprocal average round trip time (1/RTT) for the completed service transactions of the respective instance SIID of the service function SID.
  • the processor 11 may further be configured to receive 24 (see FIG. 2) the service request R comprising a service function identifier SID of the service function SID as a destination address.
  • the processor 11 may further be configured to forward 25 (see FIG. 2) the received service request R to the next hop NH(SIID) towards a particular one SIID of the number of instances of the service function SID in accordance with the forwarding state SID, CI(SIID), NH(SIID).
  • the processor 11 may further be configured to iterate 251 (see FIG. 2), in a forwarding table of the routing device 1, a unit iterator associated with the service function identifier SID of the service function SID.
  • the unit iterator may be configured to iterate through the unique indices CI(SIID) for each unit of the normalized capacity of processing units associated with the service function identifier SID of the service function SID in the forwarding table; retrieve 252 (see FIG.
  • next hop NH(SIID) from the forwarding table in accordance with the received service function identifier SID of the service function SID, and the unique index CI(SIID) represented by the iterated unit iterator being associated with the service function identifier SID of the service function SID,' and forward 253 (see FIG. 2) the received service request R to the retrieved next hop NH(SIID).
  • Forwarding / routing of service requests R can be realized within solutions such as (i) CBSR, (ii) suitable IPv6 header extensions or (iii) IP anycast (with service identifier SID being an IP anycast address), and also in accordance with an ingress-destination architecture (https://tools.ietf.org/html/draft-li-rtgwg-cfn-dyncast-architecture-00), i.e., the respective routing device 1 would hold destination addresses rather than next-hop addresses.
  • an ingress-destination architecture https://tools.ietf.org/html/draft-li-rtgwg-cfn-dyncast-architecture-00
  • the routing device 1 and the method 2 could be implemented directly at the service clients C, treating them as ingress nodes similar to those at data centers.
  • service announcements A would have to be delivered to service clients C, in addition to network routers, possibly even selectively for specific service identifiers SID only.
  • service clients C would merely rely on own measurements instead of using aggregate measurements from connected clients.
  • FIG. 3 schematically illustrates an interoperation of adjacent routing devices 1A, IB in accordance with the present disclosure.
  • the routing device IB may (re-)advertise 214 a unique index CI(SIID) for the respective unit of the normalized capacity of processing units of the respective instance SIID of the service function SID, along with the associated service function identifier SID, and the routing device 1 A (see to the left of FIG. 3) may receive 212 the unique index CI(SIID) advertised from the routing device IB acting as the next hop NH(SIID).
  • the routing device 1 A may forward 253 the received service request R to the retrieved next hop NH(SIID), which in this scenario identifies the routing device IB, and the routing device IB may receive 24 the forwarded service request R. All other steps/activities of the involved routing devices 1A, IB correspond to those set out above and are not repeated here.
  • a computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.
  • a suitable medium such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.

Abstract

Disclosed is a routing device (1) for routing a service request (R) to a service function, the routing device (1) comprising a processor (11), being configured to: establish (21) a forwarding state for routing the service request (R) to a number of instances of the service function, the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function; establish (22) a network-awareness state comprising a measurement count and a measurement value for the respective instance of the service function; and adapt (23) the forwarding state in accordance with the network-awareness state. Thereby, service provisioning may be load-balanced in accordance with processing capabilities of service instances as well as network capabilities between service clients and service instances.

Description

COMPUTE AND NETWORK-AWARE DISTRIBUTED SERVICE SCHEDULING
Technical Field
The present disclosure relates generally to the field of network routing, and specifically to constraint-based service routing. More specifically, the present disclosure relates to a routing device for routing a service request to a service function, a method of operating said routing device, and a corresponding computer program.
Background Art
In a typical scenario, a service client C issues a request to a service SF possible to be served by any one of multiple service instances SFi, SFm that are deployed at various network locations. The request requires scheduling, i.e., a mapping to a particular ‘best’ one of the multiple service instances, meaning that compute capabilities of the multiple service instances are best used and the request latency is constrained as well.
Centralized service scheduling may optimize a use of distributed compute capabilities, but at the same time may constitute a performance bottleneck and thus give rise to scalability concerns.
Distributed service scheduling may make less efficient use of distributed compute capabilities, may be subject to frequent signaling of decision-making metrics, and may experience request latencies.
In addition, service completion times are not only dependent on compute capabilities of the multiple service instances, but also on a capability of the network between the service client and the particular service instance.
Summary
It is an object to overcome these and other drawbacks by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description, and the figures.
According to a first aspect, a routing device for routing a service request to a service function is provided. The routing device comprises a processor being configured to: establish a forwarding state for routing the service request to a number of instances of the service function, the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function; establish a network-awareness state comprising a measurement count and a measurement value for the respective instance of the service function; and adapt the forwarding state in accordance with the network-awareness state.
Thereby, routing a service request to a service function may not only take into account the compute capabilities of the respective service instance, but also the network-awareness state, e.g., network capabilities between a service client and a respective service instance. This may result in improved, minimal, and less variable latency in support of better user experience, a better reactivity in light of network fluctuations, and a better convergence to stable state.
In a possible implementation form, the processor may further be configured to: receive the service request comprising a service function identifier of the service function as a destination address; and forward the received service request to the next hop towards a particular one of the number of instances of the service function in accordance with the forwarding state.
Thereby, the routing of the service request to the service function may actually take place taking also into account the network-awareness state.
In a possible implementation form, the processor may further be configured to, so as to forward the received service request to the next hop towards the particular one of the number of instances of the service function in accordance with the forwarding state: iterate, in a forwarding table of the routing device, a unit iterator associated with the service function identifier of the service function, the unit iterator being configured to iterate through the unique indices for each unit of the normalized capacity of processing units associated with the service function identifier of the service function in the forwarding table; retrieve, from the forwarding table, the next hop from the forwarding table in accordance with: the received service function identifier of the service function and the unique index represented by the iterated unit iterator being associated with the service function identifier of the service function; and forward the received service request to the retrieved next hop. Thereby, each service request is mapped to a unique index. Each unit of the normalized capacity of processing units associated with the service function identifier of the service function has such a unique index, and is associated with a particular service instance of the service function. In other words, service requests are mapped to the unique indices, viz., the service instances of the service function, in accordance with the respective normalized capacity of processing units. This may result in a load balancing of service provisioning in accordance with processing capabilities.
In a possible implementation form, the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: receive, from an adjacent device, a unique index advertised for a respective unit of the normalized capacity of processing units of the respective instance of the service function and a service function identifier of the service function and populate the forwarding table with the service function identifier of the service function the unique index and the adjacent device as a next hop.
Thereby, each service instance of the service function may advertise its normalized capacity of processing units within the network.
In a possible implementation form, the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: re-advertise the unique index and the associated service function identifier.
Thereby, each routing device may disseminate the normalized capacities of processing units received from service instances within the network.
In a possible implementation form, the processor may further be configured to, so as to establish the forwarding state for routing the service request to the number of instances of the service function: re-establish an originally received forwarding state for routing the service request to the number of instances of the service function.
Thereby, each routing device may re-establish the originally received forwarding state in situations with large variations of reported measurements, so as to curtail the scaling and reset the network awareness. In a possible implementation form, the processor may further be configured to, so as to establish the network-awareness state: receive, from a respective service client of the service function, the measurement count and the measurement value for the respective instance of the service function in accordance with a minimum sample size and a reporting periodicity for the respective service client; and populate a network-awareness table with the service function identifier of the service function, the respective instance of the service function, the measurement count and the measurement value for the respective instance of the service function.
Thereby, each routing device may establish network-awareness state comprising measured network capabilities between pairs of service clients and service instances of the service function and facilitating network-aware routing/forwarding decision making.
In a possible implementation form, the processor may further be configured to, so as to receive, from the respective service client of the service function the measurement count and the measurement value for the respective instance of the service function: initiate the reception of the measurement count and the measurement value from the respective service client of the service function for the respective instance of the service function.
Thereby, each routing device may trigger measuring and reporting the network-awareness state by adjacent service clients, if necessary.
In a possible implementation form, the processor may further be configured to, so as to populate the network-awareness table: recalculate the measurement count and the measurement value for the respective instance of the service function of an existing entry of the network-awareness table associated with the service function identifier of the service function and the respective instance of the service function, using the received measurement count and the received measurement value for the respective instance of the service function.
Thereby, each routing device may revise existing network-awareness state. This may result in adaptive network awareness. In a possible implementation form, the processor may further be configured to, so as to populate the network-awareness table: create a new entry of the network-awareness table associated with the service function identifier of the service function and the respective instance of the service function, the new entry comprising the received measurement count and the received measurement value for the respective instance of the service function.
Thereby, each routing device may establish network-awareness state. This may result in augmented network awareness.
In a possible implementation form, the measurement count and the measurement value for the respective instance of the service function being received as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
Thereby, network-awareness state may be encapsulated and communicated in a backwards- compatible manner.
In a possible implementation form, the processor may further be configured to, so as to establish the network-awareness state: sending, to the respective service client of the service function one or more of: an update for the minimum sample size for the respective service client, and an update for the reporting periodicity for the respective service client, the updated reporting periodicity being adjusted in accordance with a total number of service clients of the service function being in communication with the routing device.
Thereby, each routing device may trigger measuring and reporting the network-awareness state in accordance with its particular need for information.
In a possible implementation form, the one or more updates may be sent as a type-length- value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
Thereby, network-awareness state may be encapsulated and communicated in a backwards- compatible manner. In a possible implementation form, the processor may further be configured to, so as to adapt the forwarding state in accordance with the network-awareness state: upon having established the network-awareness state for each of the number of instances of the service function in accordance with the minimum sample size for the respective service client of the service function, scale the normalized capacity of processing units of the respective instance of the service function to an integer part of a ratio of the measurement value of the respective instance of the service function to a minimum measurement value of the number of instances of the service function and adapt the forwarding state in accordance with the scaled normalized capacity of processing units of the respective instance of the service function.
Thereby, the normalized capacity of processing units of the respective instance may be adapted to also reflect the network capabilities between the pairs of service clients and service instances of the service function. This may result in a load balancing of service provisioning in accordance with processing capabilities as well as network capabilities.
In a possible implementation form, the minimum sample size may define a minimum number of measurements prescribed by the routing device.
Thereby, a minimum quality of the network awareness state may be secured.
In a possible implementation form, the measurement value for the respective instance of the service function may comprise one of an average throughput for completed service transactions of the respective instance of the service function, and a reciprocal average round trip time for the completed service transactions of the respective instance of the service function.
Thereby, various metrics of network capacity may be used.
According to a second aspect, a method of operating a routing device is provided. The method comprises: establishing a forwarding state for routing the service request to a number of instances of the service function the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function establishing a networkawareness state comprising a measurement count and a measurement value for the respective instance of the service function and adapting the forwarding state in accordance with the network-awareness state.
In a possible implementation form, the method may be performed by the routing device of the first aspect or any of its implementations.
Thereby, the technical effects and advantages described above in relation with the routing device of the first aspect equally apply to the method of the second aspect having corresponding features.
According to a third aspect, a computer program is provided, comprising executable instructions which, when executed by a processor, cause the processor to perform the method of the second aspect or any of its implementations.
Thereby, the technical effects and advantages described above in relation with the routing device of the first aspect and the method of the second aspect equally apply to the computer program of the third aspect.
Brief Description of Drawings
The above-described aspects and implementations will now be explained with reference to the accompanying drawings, in which the same or similar reference numerals designate the same or similar elements.
The drawings are to be regarded as being schematic representations, and elements illustrated in the drawings are not necessarily shown to scale. Rather, the various elements are represented such that their function and general purpose become apparent to those skilled in the art.
FIG. 1 illustrates an exemplary network scenario in accordance with the present disclosure;
FIG. 2 schematically illustrates a routing device and a method of operating the same, both in accordance with the present disclosure; and
FIG. 3 schematically illustrates an interoperation of adjacent routing devices in accordance with the present disclosure. Detailed Description of Implementations
In the following description, reference is made to the accompanying drawings, which form part of the disclosure, and which show, by way of illustration, specific aspects of implementations of the present disclosure or specific aspects in which implementations of the present disclosure may be used. It is understood that embodiments of the present disclosure may be used in other aspects and comprise structural or logical changes not depicted in the figures. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.
For instance, it is understood that a disclosure in connection with a described method may also hold true for a corresponding apparatus or system configured to perform the method and vice versa. For example, if one or a plurality of specific method steps are described, a corresponding device may include one or a plurality of units, e.g. functional units, to perform the described one or plurality of method steps (e.g. one unit performing the one or plurality of steps, or a plurality of units each performing one or more of the plurality of steps), even if such one or more units are not explicitly described or illustrated in the figures. On the other hand, for example, if a specific apparatus is described based on one or a plurality of units, e.g. functional units, a corresponding method may include one step to perform the functionality of the one or plurality of units (e.g. one step performing the functionality of the one or plurality of units, or a plurality of steps each performing the functionality of one or more of the plurality of units), even if such one or plurality of steps are not explicitly described or illustrated in the figures. Further, it is understood that the features of the various exemplary implementations and/or aspects described herein may be combined with each other, unless specifically noted otherwise.
FIG. 1 illustrates an exemplary network scenario in accordance with the present disclosure.
The scenario comprises a communication network TV indicated by a cloud shape and comprising routing devices 1 in accordance with the present disclosure as well as further routing / forwarding devices F interconnected by network layer (i.e., layer-3) links.
A “routing device” as used herein may generally relate to a network node suitable for layer-3 routing. In other words, the communication network N may be a routed network, such as an IP network. The routing devices 1 are suited for constraint-based service routing (CBSR) in accordance with the method 2 of operating a routing device 1 which will be explained in more detail in connection with FIGs. 2 - 3 below. More specifically, the routing devices 1 are client-facing CBSR ingress network nodes.
As used herein, service routing may refer to a routing in accordance with addressing of services rather than addressing of network interfaces. For example, service routing may use address foo.com/bar (in binary form, such as a hash of foo.com/ba ) instead of the IP address of foo.com/bar . A number of instances of the service can be registered in the network, all of which can receive service requests for, e.g., foo.com/bar, possibly as forward multicast (i.e., be selected for service provisioning). There may be arrangements that allow service clients to maintain affinity with one or more particular instances of the service function after having been directed there for a first time. For example, affinity with a service instance may be achieved by directing subsequent service requests to an IP locator of said service instance.
As used herein, CBSR may refer to a service routing wherein service instances can constrain their selection for service provisioning by advertising constraint information together with service identifiers. Such information may be piggy-backed on packets of routing protocols and thus be distributed with a possibility for aggregation and/or suppression of advertisements. Forwarding operation may be a two-stage process of longest prefix match (against service identifier) and constraint matching. This can be implemented in P4 (a programming language for network devices in software-defined networks, specifying how data plane devices process packets), for example, at line-speed.
Attached to the communication network A is a number of service clients C deployed at various network locations, and a number of instances SFm of a service function SF deployed at servers S at various network locations as well.
Service routing may be deployed in limited domains of the global internet, but interconnection to existing Internet services and other CBSR domains may be realized using locator-based forwarding in peer(ing) networks (not shown). In this exemplary scenario, a respective server S may issue a service advertisement A (see arrows indicated as ‘A ’) for the service function SF, and the respective service client C may issue a service request R (see arrows indicated as R ’) for the service function SF, to be served by one of the number of service instances SFm.
As will be explained in more detail below, the present disclosure provides distributed scheduling of service requests R (or other traffic) to a particular ‘best’ one of the number of instances SFm of the service function SF by the routing devices 1, taking into account compute capabilities of the respective instance SFm as well as respective network capabilities between the service client C and the respective service instance SFm.
In the subsequent passages, a notation will be as follows:
Figure imgf000012_0001
FIG. 2 schematically illustrates a routing device 1 and a method 2 of operating the same, both in accordance with the present disclosure.
The routing device 1 and the method 2 are linked by a single general concept. As such, the method 2 may be performed by the routing device 1. Put another way, the routing device 1 is configured to perform the method 2. More specifically, the routing device 1 comprises a processor 11 (see FIG. 2) configured to perform steps of the method 2. In accordance with a most general implementation, the method 2 comprises a step of establishing 21 (see FIG. 2) a forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to a number of instances SIID of the service function SID.
The forwarding state SID, CI(SIID), NH(SIID), which is indicated in FIG. 2 as forming part of a forwarding table FT, comprises an identifier of the service function SID, a unique index CI(SIID) for each unit of a normalized capacity of processing units of the respective instance SIID of the service function SID and a next hop NH(SIID) towards the respective instance SIID of the service function SID (see example below).
The method 2 further comprises a step of establishing 22 (see FIG. 2) a network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), which is indicated in FIG. 2 as forming part of a network awareness table NT and comprises a measurement count Nmeas(SIID) and a measurement value Vmeas(SIID) for the respective instance SIID of the service function SID.
The method 2 further comprises a step of adapting 23 (see FIG. 2) the forwarding state SID, CI(SIID), NH(SIID) in accordance with the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) .
This is the main design idea specified in terms of steps of the method 2. Similarly, the design idea may be defined in terms of device features as well.
In a first phase, the routing devices 1 of the network N may be provided with the processing capabilities of the service instances SIID.
To this end, one or more normalized compute units (e.g. in accordance with a number of processor cores, a number of threads, etc.) may be assigned to each service instance SIID during orchestration, and advertised throughout the network TV to other routing devices 1. All compute units are flattened and joined to form a service-specific interval. For example, given five service instances advertising a total of 1+2+ 1+4+2 = 10 normalized compute units, the resulting service-specific interval may comprise unique indices CI(SIID) ranging from 1 to 10. Flattening into intervals avoids complex multiplication at forwarding. Upon reception of a service requests, the respective routing device 1 may then schedule/assign the service request R to a ‘next one’ of the normalized compute units registered in the servicespecific interval, for example in a round robin manner (the fact that the compute units are normalized actually results in a weighted round robin scheme but the aforementioned flattening of the interval avoids the needed multiplication with the weights, i.e. the compute units per service instance). In other words, the respective routing device 1 may iterate over the servicespecific interval maintained in the respective routing device 1. A dissemination of the one or more normalized compute units (i.e., the unique indices CI(SIID) of 1 to 10 in the example above) is described next.
In terms of implementation, the processor 11 is configured to establish 21 (see FIG. 2) a forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to a number of instances SIID of the service function SID.
The forwarding state SID, CI(SIID), NH(SIID) comprises a unique index CI(SIID) for each unit of a normalized capacity of processing units of the respective instance SIID of the service function SID and a next hop NH(SIID) towards the respective instance SIID of the service function SID.
So as to establish 21 the forwarding state SID, CI(SIID), NH(SIID, the processor 11 may further be configured to receive 212 (see FIG. 2), from an adjacent device NH(SIID), a unique index CI(SIID) advertised for a respective unit of the normalized capacity of processing units of the respective instance SIID of the service function SID, and a service function identifier SID of the service function SID, and populate 213 (see FIG. 2) the forwarding table with the service function identifier SID of the service function SID, the unique index CI(SIID) and the adjacent device NH(SIID) as a next hop. Those skilled in the art will readily appreciate that ‘a’ unique index CI(SIID) does not preclude more than one unique index CI(SIID) to be advertised.
So as to establish 21 the forwarding state SID, CI(SIID), NH(SIID), the processor 11 may further be configured to re-advertise 214 (see FIG. 2) the unique index CI(SIID) and the associated service function identifier SID.
So as to establish 21 the forwarding state SID, CI(SIID), NH(SIID), the processor 11 may further be configured to re-establish 211 (see FIG. 2) an originally received forwarding state SID, CI(SIID), NH(SIID) for routing the service request R to the number of instances SIID of the service function SID. As shown in FIG. 2, this may be in the alternative to the receive 212 block discussed above. Scaling the compute units in situations with large variations of reported measurements may lead to the (total number of) compute units being scaled significantly compared to the initial compute units assignment reported in the original service announcements A. Thus, re-establishing the assignment may curtail the scaling and reset the network awareness.
In a second phase, the routing devices 1 of the network N may additionally be provided with the respective network capabilities between the service clients C and the service instances SIID.
To this end, the respective service client C may maintain a table of completion times of service requests R (i.e., a time from service request R to receiving full response, may be expressed as throughput) per service function SID and per service instance SIID to create network awareness state. For example, the respective service client C may maintain a measurement count and a measurement value, such as an average throughput, for each service instance SIID of the service function SID. The respective service client C may report partial or full network awareness state to the adjacent routing device 1 in accordance with a reporting periodicity ( “every N seconds ”) and a reporting quality, as expressed by a minimum sample size ( “at least mt measurements’") . The reporting may be performed in a push or pull manner. The reporting periodicity may be dynamically adjusted based on an incoming rate of client reports to keep an overall adjustment frequency stable. The minimum sample size is a configuration value (e.g., mt>10 to ensure suitable confidence in the (average) measurement value. The reporting periodicity and the reporting quality may be adapted by the adjacent routing device 1 upon receiving a report from a service client C, for example. The respective routing device 1 may thus maintain a table of credible completion times of service requests R per service function SID and per service instance SIID in accordance with measurements of its adjacent service clients C.
In terms of implementation, the processor 11 is further configured to establish 22 (see FIG. 2) a network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) comprising a measurement count Nmeas(SIID) and a measurement value Vmeas(SIID) for the respective instance SIID of the service function SID. So as to establish 22 the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), the processor 11 may further be configured to receive 221 (see FIG. 2), from a respective service client CID of the service function SID, the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID in accordance with a minimum sample size Nmeas min(CID) and a reporting periodicity Tmeas(CID) for the respective service client CID.
The measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID may be received as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message. That is to say, local measurement reporting from service clients C to the adjacent routing device 1 could be done as protocol over, e.g., ICMP, or via other available reporting means.
So as to receive 221, from the respective service client CID of the service function SID, the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID, the processor 11 may further be configured to initiate 2211 (see FIG. 2) the reception of the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) from the respective service client CID of the service function SID for the respective instance SIID of the service function SID.
So as to establish 22 the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), the processor 11 may further be configured to populate 222 (see FIG. 2) a network-awareness table NT with the service function identifier SID of the service function SID, the respective instance SIID of the service function SID, the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID.
So as to populate 222 the network-awareness table NT, the processor 11 may further be configured to recalculate 2221 (see FIG. 2) the measurement count Nmeas(SIID) and the measurement value Vmeas(SIID) for the respective instance SIID of the service function SID of an existing entry of the network-awareness table NT associated with the service function identifier SID of the service function SID and the respective instance SIID of the service function SID, using the received measurement count Nmeas(SIID) and the received measurement value Vmeas(SIID) for the respective instance SIID of the service function SID. So as to populate 222 the network-awareness table NT, the processor 11 may further be configured to create 2222 (see FIG. 2) a new entry of the network-awareness table NT associated with the service function identifier SID of the service function SID and the respective instance SIID of the service function SID, the new entry comprising the received measurement count Nmeas(SIID) and the received measurement value Vmeas(SIID) for the respective instance SIID of the service function SID. This new entry is being created in the absence of the existing one mentioned in the previous paragraph.
So as to establish 22 the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), the processor 11 may further be configured to sending 223 (see FIG. 2), to the respective service client CID of the service function SID, one or more of: an update for the minimum sample size Nmeas min(CID) for the respective service client CID, and an update for the reporting periodicity Tmeas(CID) for the respective service client CID. With that, the adjacent routing device 1 can control the reporting periodicity / rate and the number of service clients C used to provide the measurement values needed.
The updated reporting periodicity Tmeas(CID) may be adjusted in accordance with a total number of service clients CID of the service function SID being in communication with the routing device 1. The one or more updates may be sent as a type-length-value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message.
In a third phase, it may be provided that the routing devices 1 take into account both the processing capabilities of the service instances SIID as well as the respective network capabilities between the service clients C and the service instances SIID, when scheduling service requests R independently of one another (i.e., in a distributed manner).
To this end, the processing capabilities of the service instances SIID of a given service function SID may be revised to also reflect the respective network capabilities between the service clients C and the service instances SIID, once the adjacent routing devices 1 have received credible completion times of service requests R from their adjacent service clients C for all the service instances SIID of the given service function SID. This may involve scaling the processing capability of the respective service instances SIID by an integer ratio of the measurement value Vmeas(SIID) of the respective instance SIID and a minimum measurement value minsiiD(Vmeas(SIID)) among all the service instances SIID. In other words, the processing capability of the service instance SIID relating to the minimum measurement value minsiiD(Vmeas(SIID)) remains as-is (i.e., integer ratio = 7), whereas the respective processing capability of those service instances SIID not relating to the minimum measurement value minsiiD(Vmeas(SIID)) may be scaled depending on the respective integer ratio (i.e., integer ratio > 7). For example, given five service instances advertising a total of 1+2+ 1+4+2 = 10 normalized compute units, the resulting initial service-specific interval may comprise unique indices CI(SIID) ranging from 7 to 10. Given the five service instances are further associated with respective network capabilities between the adjacent service clients C and the service instances SIID of, say, 110, 450, 630, 150 and 165, the minimum measurement value minsiiD(Vmeas(SIID)) equals 110 and the respective integer ratios amount to Ll 10/110 J = 1, L450/110 J =4, L630/110 J =5, L150/110 J= 1 and L165/110 J= 1 (wherein L...J stands for the mathematical ‘floor’ function). That is to say, the respective initial normalized compute units of 7, 2, 1, 4 and 2 of the service instances SIID may be scaled by respective integer ratios of 7, 4, 5, 1 and 7 to yield respective normalized compute units of 1x1=1, 2x4=8, 1x5=5, 4x1=4 and 2x1=2, respectively. Of note, the scaling of normalized compute units results from faster response times of some service instances C with respect to other service instances C. The service instances C associated with respective integer ratios of 4 and 5 will subsequently receive 4 and 5 times more service requests R. If network conditions stayed stable, their throughput would drop to 1/4 and 1/5, respectively, with next adjustments keeping the assignment stable (i.e., no further scaling).
In terms of implementation, the processor 11 is further configured to adapt 23 (see FIG. 2) the forwarding state SID, CI(SIID), NH(SIID) in accordance with the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) .
So as to adapt 23 the forwarding state SID, CI(SIID), NH(SIID) in accordance with the networkawareness state SID, SIID, Nmeas(SIID), Vmeas(SIID), the processor 11 may further be configured, upon having established 231 (see FIG. 2) the network-awareness state SID, SIID, Nmeas(SIID), Vmeas(SIID) for each of the number of instances SIID of the service function SID in accordance with the minimum sample size Nmeas min(CID) for the respective service client CID of the service function SID, to scale 232 (see FIG. 2) the normalized capacity of processing units of the respective instance SIID of the service function SID to an integer part of a ratio of the measurement value Vmeas(SIID) of the respective instance SIID of the service function SID to a minimum measurement value minsiiD(Vmeas(SIID)) of the number of instances SIID of the service function SID,' and adapt 233 (see FIG. 2) the forwarding state SID, CI(SIID), NH(SIID) in accordance with the scaled normalized capacity of processing units of the respective instance SIID of the service function SID.
The minimum sample size Nmeas min(CID) may define a minimum number of measurements prescribed by the routing device 1 to ensure suitable confidence in and credibility of the (average) measurement value Vmeas(SIID) .
The measurement value Vmeas(SIID) for the respective instance SIID of the service function SID may comprise one of an average throughput (Bytes RTT) for completed service transactions of the respective instance SIID of the service function SID, and a reciprocal average round trip time (1/RTT) for the completed service transactions of the respective instance SIID of the service function SID.
The processor 11 may further be configured to receive 24 (see FIG. 2) the service request R comprising a service function identifier SID of the service function SID as a destination address.
The processor 11 may further be configured to forward 25 (see FIG. 2) the received service request R to the next hop NH(SIID) towards a particular one SIID of the number of instances of the service function SID in accordance with the forwarding state SID, CI(SIID), NH(SIID).
So as to forward 25 the received service request R to the next hop NH(SIID) towards the particular one SIID of the number of instances of the service function SID in accordance with the forwarding state SID, CI(SIID), NH(SIID), the processor 11 may further be configured to iterate 251 (see FIG. 2), in a forwarding table of the routing device 1, a unit iterator associated with the service function identifier SID of the service function SID. The unit iterator may be configured to iterate through the unique indices CI(SIID) for each unit of the normalized capacity of processing units associated with the service function identifier SID of the service function SID in the forwarding table; retrieve 252 (see FIG. 2), from the forwarding table, the next hop NH(SIID) from the forwarding table in accordance with the received service function identifier SID of the service function SID, and the unique index CI(SIID) represented by the iterated unit iterator being associated with the service function identifier SID of the service function SID,' and forward 253 (see FIG. 2) the received service request R to the retrieved next hop NH(SIID).
Forwarding / routing of service requests R can be realized within solutions such as (i) CBSR, (ii) suitable IPv6 header extensions or (iii) IP anycast (with service identifier SID being an IP anycast address), and also in accordance with an ingress-destination architecture (https://tools.ietf.org/html/draft-li-rtgwg-cfn-dyncast-architecture-00), i.e., the respective routing device 1 would hold destination addresses rather than next-hop addresses. In other words, the general idea disclosed herein works in routed as well as in ingress architectures.
In a further implementation form, the routing device 1 and the method 2 could be implemented directly at the service clients C, treating them as ingress nodes similar to those at data centers. In this case, service announcements A would have to be delivered to service clients C, in addition to network routers, possibly even selectively for specific service identifiers SID only. However, service clients C would merely rely on own measurements instead of using aggregate measurements from connected clients.
FIG. 3 schematically illustrates an interoperation of adjacent routing devices 1A, IB in accordance with the present disclosure.
As a first interaction between the routing devices 1A, IB, the routing device IB (see to the right of FIG. 3) may (re-)advertise 214 a unique index CI(SIID) for the respective unit of the normalized capacity of processing units of the respective instance SIID of the service function SID, along with the associated service function identifier SID, and the routing device 1 A (see to the left of FIG. 3) may receive 212 the unique index CI(SIID) advertised from the routing device IB acting as the next hop NH(SIID).
As a second interaction between the routing devices 1 A, IB, the routing device 1 A may forward 253 the received service request R to the retrieved next hop NH(SIID), which in this scenario identifies the routing device IB, and the routing device IB may receive 24 the forwarded service request R. All other steps/activities of the involved routing devices 1A, IB correspond to those set out above and are not repeated here.
The present disclosure has been described in conjunction with various embodiments as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed matter, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word “comprising” does not exclude other elements or steps and the indefinite article “a” or “an” does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.

Claims

1. A routing device (1) for routing a service request (R) to a service function, the routing device (1) comprising a processor (11), being configured to: establish (21) a forwarding state for routing the service request (R) to a number of instances of the service function, the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function; establish (22) a network-awareness state comprising a measurement count and a measurement value for the respective instance of the service function; and adapt (23) the forwarding state in accordance with the network-awareness state.
2. The routing device (1) of claim 1, the processor (11) further being configured to: receive (24) the service request (R) comprising a service function identifier of the service function as a destination address; and forward (25) the received service request (R) to the next hop towards a particular one of the number of instances of the service function in accordance with the forwarding state.
3. The routing device (1) of claim 2, the processor (11) further being configured to, so as to forward (25) the received service request (R) to the next hop towards the particular one of the number of instances of the service function in accordance with the forwarding state: iterate (251), in a forwarding table of the routing device (1), a unit iterator associated with the service function identifier of the service function, the unit iterator being configured to iterate through the unique indices for each unit of the normalized capacity of processing units associated with the service function identifier of the service function in the forwarding table; retrieve (252), from the forwarding table, the next hop from the forwarding table in accordance with: the received service function identifier of the service function, and the unique index represented by the iterated unit iterator being associated with the service function identifier of the service function; and forward (253) the received service request (R) to the retrieved next hop.
4. The routing device (1) of claim 3, the processor (11) further being configured to, so as to establish (21) the forwarding state for routing the service request (R) to the number of instances of the service function: receive (212), from an adjacent device, a unique index advertised for a respective unit of the normalized capacity of processing units of the respective instance of the service function, and a service function identifier of the service function; and populate (213) the forwarding table with the service function identifier of the service function, the unique index and the adjacent device as a next hop.
5. The routing device (1) of any one of the preceding claims, the processor (11) further being configured to, so as to establish (21) the forwarding state for routing the service request (R) to the number of instances of the service function: re-advertise (214) the unique index and the associated service function identifier.
6. The routing device (1) of any one of the preceding claims, the processor (11) further being configured to, so as to establish (21) the forwarding state for routing the service request (R) to the number of instances of the service function: re-establish (211) an originally received forwarding state for routing the service request (R) to the number of instances of the service function.
7. The routing device (1) of any one of the preceding claims, the processor (11) further being configured to, so as to establish (22) the networkawareness state: receive (221), from a respective service client of the service function, the measurement count and the measurement value for the respective instance of the service function in accordance with a minimum sample size and a reporting periodicity for the respective service client; and populate (222) a network-awareness table (NT) with the service function identifier of the service function, the respective instance of the service function, the measurement count and the measurement value for the respective instance of the service function.
8. The routing device (1) of claim 7, the processor (11) further being configured to, so as to receive (221), from the respective service client of the service function, the measurement count and the measurement value for the respective instance of the service function: initiate (2211) the reception of the measurement count and the measurement value from the respective service client of the service function for the respective instance of the service function.
9. The routing device (1) of claim 7 or claim 8, the processor (11) further being configured to, so as to populate (222) the networkawareness table (NT): recalculate (2221) the measurement count and the measurement value for the respective instance of the service function of an existing entry of the networkawareness table (NT) associated with the service function identifier of the service function and the respective instance of the service function, using the received measurement count and the received measurement value for the respective instance of the service function.
10. The routing device (1) of any one of the claims 7 to 9, the processor (11) further being configured to, so as to populate (222) the networkawareness table (NT): create (2222) a new entry of the network-awareness table (NT) associated with the service function identifier of the service function and the respective instance of the service function, the new entry comprising the received measurement count and the received measurement value for the respective instance of the service function.
11. The routing device (1) of any one of the claims 7 to 10, the measurement count and the measurement value for the respective instance of the service function being received as a type-length- value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message. The routing device (1) of any one of the claims 7 to 11, the processor (11) further being configured to, so as to establish (22) the networkawareness state: sending (223), to the respective service client of the service function, one or more of: an update for the minimum sample size for the respective service client, and an update for the reporting periodicity for the respective service client, the updated reporting periodicity being adjusted in accordance with a total number of service clients of the service function being in communication with the routing device (1). The routing device (1) of claim 12, the one or more updates being sent as a type-length- value, TLV, payload of an Internet Control Message Protocol, ICMP, message or an Internet Control Message Protocol v6, ICMPv6, message. The routing device (1) of any one of the claims 7 to 13, the processor (11) further being configured to, so as to adapt (23) the forwarding state in accordance with the network-awareness state: upon having established (231) the network-awareness state for each of the number of instances of the service function in accordance with the minimum sample size for the respective service client of the service function: scale (232) the normalized capacity of processing units of the respective instance of the service function to an integer part of: a ratio of the measurement value of the respective instance of the service function to a minimum measurement value of the number of instances of the service function; adapt (233) the forwarding state in accordance with the scaled normalized capacity of processing units of the respective instance of the service function. The routing device (1) of any one of the claims 7 to 14, the minimum sample size defining a minimum number of measurements prescribed by the routing device (1).
16. The routing device (1) of any one of the preceding claims, the measurement value for the respective instance of the service function comprising one of an average throughput (BYTES/RTT) for completed service transactions of the respective instance of the service function, and a reciprocal average round trip time (1/RTT) for the completed service transactions of the respective instance of the service function.
17. A method (2) of operating a routing device (1), comprising establishing (21) a forwarding state for routing the service request (R) to a number of instances of the service function, the forwarding state comprising a unique index for each unit of a normalized capacity of processing units of the respective instance of the service function and a next hop towards the respective instance of the service function; establishing (22) a network-awareness state comprising a measurement count and a measurement value for the respective instance of the service function; and adapting (23) the forwarding state in accordance with the network-awareness state.
18. The method (2) of claim 17, being performed by the routing device (1) of any one of the claims 1 to 16.
19. A computer program, comprising executable instructions which, when executed by a processor (11), cause the processor (11) to perform the method (2) of any one of the claims 17 and 18.
PCT/EP2021/085485 2021-12-13 2021-12-13 Compute and network-aware distributed service scheduling WO2023110056A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/085485 WO2023110056A1 (en) 2021-12-13 2021-12-13 Compute and network-aware distributed service scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/085485 WO2023110056A1 (en) 2021-12-13 2021-12-13 Compute and network-aware distributed service scheduling

Publications (1)

Publication Number Publication Date
WO2023110056A1 true WO2023110056A1 (en) 2023-06-22

Family

ID=79270196

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/085485 WO2023110056A1 (en) 2021-12-13 2021-12-13 Compute and network-aware distributed service scheduling

Country Status (1)

Country Link
WO (1) WO2023110056A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160323165A1 (en) * 2013-12-23 2016-11-03 Orange Method of diagnosis of service functions in an ip network
US20180091420A1 (en) * 2016-09-26 2018-03-29 Juniper Networks, Inc. Distributing service function chain data and service function instance data in a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160323165A1 (en) * 2013-12-23 2016-11-03 Orange Method of diagnosis of service functions in an ip network
US20180091420A1 (en) * 2016-09-26 2018-03-29 Juniper Networks, Inc. Distributing service function chain data and service function instance data in a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GLEBKE RENE ET AL: "Service-based Forwarding via Programmable Dataplanes", 2021 IEEE 22ND INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE SWITCHING AND ROUTING (HPSR), IEEE, 7 June 2021 (2021-06-07), pages 1 - 8, XP033942073, DOI: 10.1109/HPSR52026.2021.9481814 *

Similar Documents

Publication Publication Date Title
US11336614B2 (en) Content node network address selection for content delivery
CN110313162B (en) System and method for facilitating content delivery to multiple recipients in a network environment
US11095559B1 (en) Segment routing (SR) for IPV6 (SRV6) techniques for steering user plane (UP) traffic through a set of user plane functions (UPFS) with traffic handling information
US10045247B2 (en) Load balancing traffic in a MPLS network
US7512702B1 (en) Method and apparatus providing highly scalable server load balancing
US10567288B1 (en) Automatic discovery, scaling, and load balancing of multiple cloud data centers in a software-defined network environment
US7784055B2 (en) Method and apparatus for routing data to a load balanced server using MPLS packet labels
US9762494B1 (en) Flow distribution table for packet flow load balancing
US7830896B2 (en) Server load balancing using IP option field approach to identify route to selected server
Younis et al. Constraint-based routing in the internet: Basic principles and recent research
US7047315B1 (en) Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states
US8028088B2 (en) System and method for service assurance in IP networks
US10091012B2 (en) System and method for multi-source multicasting in content-centric networks
US20150124622A1 (en) Multi-Interface, Multi-Layer State-full Load Balancer For RAN-Analytics Deployments In Multi-Chassis, Cloud And Virtual Server Environments
EP1018822A2 (en) Mechanism to guarantee quality of service to real-time traffic on IP networks
US10594605B2 (en) Dynamic packet routing
US20220200887A1 (en) Metric-based multi-hop path selection
CN101729430B (en) Dynamic resource allocation system and allocation method used for supporting end-to-end time delay warranty
US10397791B2 (en) Method for auto-discovery in networks implementing network slicing
JP4066416B2 (en) Intelligent routing for effective use of network signal resources
WO2023110056A1 (en) Compute and network-aware distributed service scheduling
US11784895B2 (en) Performance measurement in a packet-switched communication network
Kumar et al. Performance evaluation of IP network and MPLS network using NS2 simulator
US20240113959A1 (en) Instance-affine service scheduling
US20230180311A1 (en) Session Identifier Handling For Co-Located User Plane Gateways

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21839085

Country of ref document: EP

Kind code of ref document: A1