idnits 2.17.1 draft-bernardos-sfc-distributed-control-operation-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 10, 2021) is 930 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Outdated reference: A later version (-06) exists of draft-bernardos-sfc-distributed-control-04 == Outdated reference: A later version (-10) exists of draft-bernardos-sfc-fog-ran-09 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SFC WG CJ. Bernardos 3 Internet-Draft UC3M 4 Intended status: Experimental A. Mourad 5 Expires: March 14, 2022 InterDigital 6 September 10, 2021 8 Distributed SFC control operation 9 draft-bernardos-sfc-distributed-control-operation-03 11 Abstract 13 Service function chaining (SFC) allows the instantiation of an 14 ordered set of service functions and subsequent "steering" of traffic 15 through them. In order to set up and maintain SFC instances, a 16 control plane is required, which typically is centralized. In 17 certain environments, such as fog computing ones, such centralized 18 control might not be feasible, calling for distributed SFC control 19 solutions. This document describes a general framework for 20 distributed SFC operation. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on March 14, 2022. 39 Copyright Notice 41 Copyright (c) 2021 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 58 3. Problem statement . . . . . . . . . . . . . . . . . . . . . . 5 59 4. Distributed SFC control operation . . . . . . . . . . . . . . 7 60 4.1. P-CTRL taking over C-CTRL . . . . . . . . . . . . . . . . 8 61 4.1.1. P-CTRL taking over C-CTRL due to a local monitoring 62 event . . . . . . . . . . . . . . . . . . . . . . . . 8 63 4.1.2. P-CTRL taking over C-CTRL due to a C-CTRL failure . . 10 64 4.1.3. C-CTRL gaining back control . . . . . . . . . . . . . 12 65 4.2. Inter P-CTRL seamless handover . . . . . . . . . . . . . 13 66 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 68 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 70 8.1. Normative References . . . . . . . . . . . . . . . . . . 14 71 8.2. Informative References . . . . . . . . . . . . . . . . . 14 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 74 1. Introduction 76 Virtualization of functions provides operators with tools to deploy 77 new services much faster, as compared to the traditional use of 78 monolithic and tightly integrated dedicated machinery. As a natural 79 next step, mobile network operators need to re-think how to evolve 80 their existing network infrastructures and how to deploy new ones to 81 address the challenges posed by the increasing customers' demands, as 82 well as by the huge competition among operators. All these changes 83 are triggering the need for a modification in the way operators and 84 infrastructure providers operate their networks, as they need to 85 significantly reduce the costs incurred in deploying a new service 86 and operating it. Some of the mechanisms that are being considered 87 and already adopted by operators include: sharing of network 88 infrastructure to reduce costs, virtualization of core servers 89 running in data centers as a way of supporting their load-aware 90 elastic dimensioning, and dynamic energy policies to reduce the 91 monthly electricity bill. However, this has proved to be tough to 92 put in practice, and not enough. Indeed, it is not easy to deploy 93 new mechanisms in a running operational network due to the high 94 dependency on proprietary (and sometime obscure) protocols and 95 interfaces, which are complex to manage and often require configuring 96 multiple devices in a decentralized way. 98 Service Functions are widely deployed and essential in many networks. 99 These Service Functions provide a range of features such as security, 100 WAN acceleration, and server load balancing. Service Functions may 101 be instantiated at different points in the network infrastructure 102 such as data center, the WAN, the RAN, and even on mobile nodes. 104 Service functions (SFs), also referred to as VNFs, or just functions, 105 are hosted on compute, storage and networking resources. The hosting 106 environment of a function is called Service Function Provider or 107 NFVI-PoP (using ETSI NFV terminology). 109 Services are typically formed as a composition of SFs (VNFs), with 110 each SF providing a specific function of the whole service. Services 111 also referred to as Network Services (NS), according to ETSI 112 terminology. 114 With the arrival of virtualization, the deployment model for service 115 function is evolving to one where the traffic is steered through the 116 functions wherever they are deployed (functions do not need to be 117 deployed in the traffic path anymore). For a given service, the 118 abstracted view of the required service functions and the order in 119 which they are to be applied is called a Service Function Chain 120 (SFC). An SFC is instantiated through selection of specific service 121 function instances on specific network nodes to form a service graph: 122 this is called a Service Function Path (SFP). The service functions 123 may be applied at any layer within the network protocol stack 124 (network layer, transport layer, application layer, etc.). 126 The concept of fog computing has emerged driven by the Internet of 127 Things (IoT) due to the need of handling the data generated from the 128 end-user devices. The term fog is referred to any networked 129 computational resource in the continuum between things and cloud. A 130 fog node may therefore be an infrastructure network node such as an 131 eNodeB or gNodeB, an edge server, a customer premises equipment 132 (CPE), or even a user equipment (UE) terminal node such as a laptop, 133 a smartphone, or a computing unit on-board a vehicle, robot or drone. 135 In fog computing, the functions composing an SFC are hosted on 136 resources that are inherently heterogeneous, volatile and mobile 137 [I-D.bernardos-sfc-fog-ran]. This means that resources might appear 138 and disappear, and the connectivity characteristics between these 139 resources may also change dynamically. These scenarios call for 140 distributed SFC control solutions, where there are SFC pseudo 141 controllers, enabling autonomous SFC self-orchestration capabilities. 142 The concept of SFC pseudo controller (P-CTRL) is described in 143 [I-D.bernardos-sfc-distributed-control], as well different procedures 144 for their discovery and initialization. 146 This document introduces a framework for local distributed SFC 147 operation, by allowing P-CTRLs to temporarily substitute the central 148 controller (C-CTRL) in its task to carry out the global lifecycle 149 management of the given SFC. 151 2. Terminology 153 The following terms used in this document are defined by the IETF in 154 [RFC7665]: 156 Service Function (SF): a function that is responsible for specific 157 treatment of received packets (e.g., firewall, load balancer). 159 Service Function Chain (SFC): for a given service, the abstracted 160 view of the required service functions and the order in which they 161 are to be applied. This is somehow equivalent to the Network 162 Function Forwarding Graph (NF-FG) at ETSI. 164 Service Function Forwarder (SFF): A service function forwarder is 165 responsible for forwarding traffic to one or more connected 166 service functions according to information carried in the SFC 167 encapsulation, as well as handling traffic coming back from the 168 SF. 170 SFI: SF instance. 172 Service Function Path (SFP): the selection of specific service 173 function instances on specific network nodes to form a service 174 graph through which an SFC is instantiated. 176 The following terms are defined and used in this document: 178 SFC Pseudo Controller (P-CTRL): logical entity 179 [I-D.bernardos-sfc-distributed-control], complementing the SFC 180 controller/orchestrator found in current architectures and 181 deployments. It is service specific, meaning that it is defined 182 and meaningful in the context of a given network service. 183 Compared to existing SFC controllers/orchestrators, which manage 184 multiple SFCs instantiated over a common infrastructure, pseudo 185 controllers are constrained to service specific lifecycle 186 management. 188 SFC Central Controller (C-CTRL): central control plane logical 189 entity in charge of configuring and managing the SFC components 190 [RFC7665]. 192 3. Problem statement 194 Mobile network architectures are evolving to support network 195 virtualization and service function orchestration. Current Service 196 Function Chain (SFC) architectures [RFC7665] rely on a centralized 197 controller/orchestrator (C-CTRL) which shall be connected to all the 198 hosts participating in a given SFC. This poses issues and 199 inefficiencies in fog computing environments especially because of 200 the mobility and volatility of some hosts, as well as the associated 201 signaling overhead. 203 These problems can be alleviated by enabling autonomous SFC self- 204 orchestration (SOC), based on the concept of SFC pseudo controller 205 (P-CTRL) introduced in [I-D.bernardos-sfc-distributed-control]. A 206 pseudo controller is capable of substituting (at least temporarily 207 and partially) the centralized SFC controller in situations where the 208 centralized controller may not be able to perform its functions 209 (e.g., when the connectivity with some hosts is broken). 211 [I-D.bernardos-sfc-distributed-control] introduces the role of the 212 SFC pseudo controller and describes mechanisms to select and 213 initialize a service-specific SFC pseudo controller among host nodes 214 which are participating in the SFC. This document specifies 215 mechanisms to enable an SFC pseudo controller trigger and control NS 216 lifecycle management operations, such as migration of NS functions, 217 chains or parts of a chain. 219 Figure 1 shows an exemplary scenario where a host UE makes use of an 220 NS composed of the chain of SFs F1-F2-F3. These functions may be 221 application functions -- using 3GPP jargon -- network functions or 222 over-the-top functions. Non-limiting examples of these functions 223 are: load balancers, traffic steering, performance enhancement 224 proxies (PEPs), video transcoders, firewalls, etc. In this example, 225 F1 instance runs on a first UE (node A), F2 instance runs on a second 226 UE (node B), and F3 instance runs on a gNB (node D). SFC pseudo 227 controller instances are assumed running on UE node A and D (which is 228 a gNB). Node A and B are connected via D2D communications. If all 229 the UEs move out of the coverage of the gNB node D, the service chain 230 will then need to be reconfigured to maintain service continuity as 231 gNB node D is hosting one function (F3) of the chain and would become 232 disconnected. Since gNB node D is also providing the UEs with 233 connectivity to the network infrastructure where the SFC central 234 controller is hosted, this type of event cannot be resolved by the 235 SFC controller, as the nodes hosting the functions would be 236 disconnected from the central controller. Similar problems arise in 237 highly mobile/volatile and/or latency-demanding scenarios, where 238 centralized lifecycle management becomes unsuitable. 240 o 241 node B | 242 +--------|-+ F1+-.-.-+F2+-.-.-+F3 SFC 243 | ........ | 244 <==== | |P-CTRL| | 245 | ........ | 246 +-.-.-+F2 | 247 o / +---+------+ ________ 248 | . . _( )_ 249 +--------|-+ / / _( +--------+ )_ 250 | | . . (_ | C-CTRL | _) 251 | | / / (_+--------+_) 252 | |. | (________) 253 | +-.-./ . 254 | F1 | | ( (oo) ) 255 +----------+ . o /\ ........ 256 node A | | /\/\ |P-CTRL| 257 +-----.--|-+ /\/\/\........ 258 | | | /\/ \/\ (F3) 259 | . | node D 260 <==== | | | 261 | + | 262 | F3 | 263 +----------+ 264 node C 266 Figure 1: Example scenario: disrupted SFC due to mobility 268 In these scenarios, an SFC pseudo controller can substitute (at least 269 temporarily and partially) the centralized SFC controller when the 270 latter is not available or able to perform a given task. This 271 document proposes solutions addressing the following problem: How to 272 enable SFC pseudo controllers to perform NS lifecycle management 273 operations, such as migration of functions, service chains or parts 274 of a chain? This requires solving the sub-problems listed below. 276 o When a SFC centralized controller (C-CTRL) is in charge, what 277 mechanisms and exchanges are needed between the C-CTRL and a SFC 278 pseudo-controller (P-CTRL), and the nodes, so as to facilitate a 279 seamless transition from C-CTRL to P-CTRL (due to an event, e.g. 280 failure, of the C-CTRL)? 282 o When P-CTRL takes over from the C-CTRL, what actions shall it take 283 towards other P-CTRLs, so as to sustain seamless transition if a 284 first P-CTRL fails (e.g., moving from P-CTRL A to P-CTRL B)? 286 o When C-CTRL is back into the picture, how shall the control 287 transfer seamlessly back from P-CTRL to C-CTRL? 289 4. Distributed SFC control operation 291 A key concept is to allow a P-CTRL to take over temporarily and 292 partially from the C-CTRL to perform NS lifecycle management 293 decisions. The definition, selection and initialization of a P-CTRL 294 is covered in [I-D.bernardos-sfc-distributed-control]. 296 Using Figure 1, we can think of an example where a function (F3) is 297 migrated from node D to node C, triggered by the move of nodes A and 298 B hosting F1 and F2 away from the coverage of node D hosting F3 299 (nodes A nd B are UEs within coverage of node D which is a gNB). The 300 P-CTRL in node B performs OAM operations locally and monitors the NS- 301 specific SLAs. Upon detecting or predicting that the NS-specific 302 SLAs may not be met in the near future, P-CTRL A takes actions to 303 temporary and partially substitute C-CTRL, and starts performing 304 local NS lifecycle management operations (e.g., instantiating F3 on 305 node C, since current hosting node -- node D --is predicted to become 306 unreachable soon). 308 Note that, in the previous example, the prediction and local NS 309 lifecycle management operations could have been performed by P-CTRL 310 running at node D as well. We have assumed that the active 311 (designated) P-CTRL is running at node B, but could have been at node 312 D as well, which would imply the need to also migrate the active 313 P-CTRL role to node B. 315 Thanks to enabling P-CTRL B to perform local NS lifecycle management 316 decisions, service continuity will be guaranteed when C-CTRL fails or 317 is out of reach. 319 The "activation" of P-CTRL operation only occurs when C-CTRL cannot 320 properly operate (e.g., it is disconnected from the SFC or it is not 321 reacting fast enough to the local changing conditions). For example, 322 P-CTRL can send a scaling command to a given node, in order to adapt 323 the resources to the current NS demands. P-CTRL would also notify 324 this to C-CTRL, as soon as the connection to C-CTRL is recovered so 325 that both are synchronized. 327 In order to support the operation of P-CTRLs complementing or 328 replacing the operation of the C-CTRL, the following operations are 329 needed: 331 o When an NS is onboarded, the C-CTRL receives an NS descriptor 332 (NSD), together with the VNF descriptors (VNFDs) of the functions 333 composing the service, and the Operations, Administration and 334 Maintenance Descriptor (OAMD), which includes the information of 335 what needs to be monitored to ensure a given SLA. 337 o When the NS is instantiated, in addition to the regular 338 orchestration decisions (e.g., placement of functions on available 339 resources, etc.), the C-CTRL, based on its knowledge of existing 340 P-CTRLs, decides how monitoring is going to be performed. This 341 includes: (i) What is monitored by each P-CTRL node (e.g., vCPU 342 load, bandwidth of a certain link, etc.) and how (e.g., active, 343 passive or hybrid monitoring); (ii) Which orchestrators are in 344 charge of collecting and processing the measurements. 346 Currently defined mechanisms assume a semi-static environment and the 347 standardized message flows do not support dynamic migration of the 348 SFC controller role to other entities. Therefore, new signaling 349 flows need to be defined between C-CTRL and P-CTRLs and in-between 350 P-CTRLs: (i) allowing prediction of events via local monitoring and 351 faster reaction, (ii) enabling orchestration when C-CTRL is 352 temporarily unreachable, and (iii) supporting migrating CTRL role to 353 P-CTRLs. 355 4.1. P-CTRL taking over C-CTRL 357 There are two main triggers for a P-CTRL to take over from the 358 C-CTRL: a local monitoring event or a C-CTRL failure. We specify 359 next the procedures for each of these two triggers. 361 4.1.1. P-CTRL taking over C-CTRL due to a local monitoring event 363 In this case, the C-CTRL has delegated some monitoring actions to the 364 P-CTRL, as indicated in the OAMD sent by the C-CTRL to the P-CTRL. 366 +---------+ +----+ +---------+ +---------+ +----------+ +------+ 367 | node A | | C | | node B | | node D | | 3GPP | | SFC | 368 |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| 369 +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ 370 | | | | | | | | | 371 | F1@A<->F2@B<->F3@D SFC network service | | 372 | |<-.-.-.-.-.-.-.-.-.>|<-.-.-.-.->| |A.Serv. OAM | 373 | | | | | | | |<-.-.-.-.-.>| 374 | | | | |B.Serv. OAM monitor. | | 375 | | | | |-.-.-.-.-.-.-.-.-.-.>| | 376 | | | | |<-.-.-.-.-.-.-.-.-.-.| | 377 | | | | | | | | | 378 | | | | |C.Serv. OAM monitor. | | 379 | | | | |<-.-.-| | | | 380 | | | | |-.-.-.-.-.-.-.-.-.-.>| | 381 | | | | |<-.-.-.-.-.-.-.-.-.-.| | 382 | | | | |-.-.->| | | | 383 | | D.Serv. OAM monitor. | | | | 384 | | |<-.-.->| | | | | | 385 | | | |<-.-.-.-.->| | | | 386 |<-.>|<-.-.-.-.-.-.->| | | | | | 387 |<-.-.-.-.-.-.-.-.-.>| | | | | | 388 | | | | | | | | | 389 | | P-CTRL@B detects that it's | | | 390 | | loosing connectivity with D | | | 391 | | | | | | | | | 392 | | Orch. signal. | | | | | | 393 | | |<-.-.->| | | | | | 394 | |<-.-.-.-.-.-.->| | | | | | 395 | | | | | Sync. with C-CTRL | | 396 | | | | |<.-.-.-.-.-.-.-.-.-.>| | 397 | | | | | | | | | 399 Figure 2: P-CTRL taking over C-CTRL due to a local monitoring event 401 A detailed message sequence chart is shown in Figure 2. The 402 different steps are described next: 404 o (We assume that the network service has been instantiated and 405 there is traffic: F1@A--F2@B--F3@D). 407 o C-CTRL runs overall OAM monitoring of the network services. This 408 can be done for example by contacting the 3GPP network to obtain 409 different network analytics via NEF. This is shown in the figure 410 as A. 412 o P-CTRLs are running service specific OAM monitoring actions, as 413 indicated in the OAMD sent by the C-CTRL in the network service 414 instantiation procedure. This requires signaling procedures. 415 Various non-limiting example options are possible: 417 * The P-CTRL may directly obtain information metrics from 418 different network functions through the network exposure 419 function (NEF). This is shown in the figure as B. 421 * The P-CTRL may indirectly obtain the information metrics 422 through the local AF or NF hosted on the UE, which interacts 423 with any other entity inside or outside 3GPP (e.g., AF to AF, 424 NF to AF, or NF to NF) and then parse these on the interface to 425 the P-CTRL. If the function hosted on the UE is an NF, and the 426 info is about 3GPP network data analytics, then the NF will go 427 get some data from NWDAF and locally at the UE, expose these to 428 the P-CTRL. This is shown in the figure as C. 430 * In addition to the former (mutually exclusive approaches), it 431 is also possible to perform local OAM monitoring via standalone 432 procedures, such as local OAM monitoring and the use of SFC 433 OAM. This is shown in the figure as D. 435 The interface between the P-CTRL and the SFC functions running on 436 the UE to obtain OAM metrics may be a local API, or standard 437 interface like IETF SFC OAM, or like the interface between 3GPP 438 NWDAF and an NWDAF service consumer. 440 o At a certain point in time, a local monitoring event, which cannot 441 be detected by the C-CTRL, triggers the whole process. In the 442 example of the figure P-CTRL@node B detects that B is losing 443 connectivity with node D. 445 o The P-CTRL takes an orchestration decision based on its local 446 knowledge and signals it to the involved nodes. The decision 447 consists in migrating/moving F3 from node D to C. New extensions 448 to MIPv6 are used, as described in TBD. Alternatively, extensions 449 to IETF SFC NSH can also be used, as described in TBD. 451 o The P-CTRL also informs the C-CTRL to keep it synchronized. 452 Similarly, the C-CTRL can then update other P-CTRLs if needed. 453 New extensions to NSH are used (NS lifecycle management), as 454 described in TBD. 456 4.1.2. P-CTRL taking over C-CTRL due to a C-CTRL failure 458 In this case, the P-CTRL detects/predicts a C-CTRL failure (e.g., it 459 becomes unreachable). 461 +---------+ +----+ +---------+ +---------+ +----------+ +------+ 462 | node A | | C | | node B | | node D | | 3GPP | | SFC | 463 |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| 464 +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ 465 | | | | | | | | | 466 | F1@A<->F2@B<->F3@D SFC network service | | 467 | |<-.-.-.-.-.-.-.-.-.>|<-.-.-.-.->| | | 468 | | | | | | | | | 469 | | | | | C-CTRL connectivity failure | 470 | | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->| 471 | P-CTRL@B detects that connectivity | | 472 | with C-CTRL is lost (or about to be) | | 473 | | | | | | | | | 474 | | | | | Sync with C-CTRL (if | 475 | | | | | failure is predicted) | 476 | | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->| 477 | | P-CTRL@B becomes the | | | | 478 | | CTRL for the service | | | | 479 | | | | | | | | | 480 | P-CTRL activation | | | | | | 481 |<-.-.-.-.-.-.-.-.-.>| | | | | | 482 | | | | | | | | | 483 | | Orch. signal. | | | | | | 484 | | |<-.-.->| | | | | | 485 | |<-.-.-.-.-.-.->| | | | | | 486 | | | | | | | | | 488 Figure 3: P-CTRL taking over C-CTRL due to a C-CTRL failure 490 A detailed message sequence chart is shown in Figure 3. The 491 different steps are described next: 493 o (We assume that the network service has been instantiated and 494 there is traffic: F1@A--F2@B--F3@D). 496 o A failure can be detected by a P-CTRL via multiple mechanisms, 497 such as: (i) Sending periodic keep-alive messages to the C-CTRL; 498 (ii) Transport-layer mechanisms that allow detecting connectivity 499 failures; (iii) Observing a lack of action from the C-CTRL upon an 500 event that requires an orchestration action. 502 o A failure can also be predicted by a P-CTRL, by using local 503 monitoring information. 505 o When a C-CTRL failure is detected, the designated backup P-CTRL 506 takes over the orchestration of the network service, by: 508 * Notifying other P-CTRLs, as well as selecting a new designated 509 backup P-CTRL. This involves the synchronization of relevant 510 information (orchestration DBs, descriptors, etc.) with C-CTRL 511 (if the failure is predicted). This is done through new IETF 512 SFC NSH extensions (NS lifecycle management), as described in 513 TBD. 515 * The P-CTRL becoming the SFC controller/orchestrator. From this 516 point of time on, the P-CTRL can send orchestration signaling. 517 Extensions to IETF NSH or MIPv6 can be used, as described in 518 TBD and TBD. 520 4.1.3. C-CTRL gaining back control 522 We describe next, using an example, how a C-CTRL may get back the 523 orchestration control, temporarily delegated to a P-CTRL. 525 +---------+ +----+ +---------+ +---------+ +----------+ +------+ 526 | node A | | C | | node B | | node D | | 3GPP | | SFC | 527 |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| 528 +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ 529 | | | | | | | | | 530 | | | | | Connectivity OK notification | 531 | | | | | | | |-.-.-.-.-.->| 532 | | | |-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| 533 | | | | | | | | | 534 | | | | Request to take over SFC control | 535 | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-| 536 | | | | Orchestration state sync. | 537 | | | |-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| 538 | | | | | | | | | 539 | | | | | | | | C-CTRL 540 | | | | | | | | regains 541 | | | | | | | | control 542 | | | | Notification C-CTRL back in control | 543 |<-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-| 544 | | | | | | | | | 546 Figure 4: C-CTRL gaining back control 548 A detailed message sequence chart is shown in Figure 4. The 549 different steps are described next: 551 o When a C-CTRL loses connectivity with the nodes involved in a 552 service, it enters into recovery mode, waiting for the 553 connectivity to be recovered. C-CTRL can learn that connectivity 554 has been regained using NSH OAM signaling or 3GPP signaling from 555 the NEF or the P-CTRL itself. 557 o When connectivity is gained back to a P-CTRL, the C-CTRL signals 558 its availability so the P-CTRL can give back the control of the 559 service. To do so, IETF SFC NSH extensions (NS lifecycle 560 management) can be used, as described in TBD. 562 o The C-CTRL becomes now the active SFC controller/orchestrator for 563 the service. 565 o The C-CTRL notifies to other P-CTRLs that it is back in control of 566 the service, using IETF SFC NSH extensions (NS lifecycle 567 management), as described in TBD. 569 4.2. Inter P-CTRL seamless handover 571 In scenarios with no C-CTRL reachability, it might be needed to 572 transition from one P-CTRL to another one (e.g., because of mobility 573 of the nodes while the C-CTRL is not reachable). 575 Reactive transition is supported as for the case of C-CTRL failure. 576 Proactive/seamless transition is addressed as follows. 578 +---------+ +----+ +----+ +---------+ +----------+ +------+ 579 | node A | | C | | B | | node D | | 3GPP | | SFC | 580 |P-CTRL F1| | F3 | | F2 | |P-CTRL F3| |ctrl plane| |C-CTRL| 581 +--+----+-+ +----+ +----+ +--+----+-+ +----------+ +------+ 582 | | | | | | | | 583 | F1@A<->F2@B<->F3@D SFC network service | | 584 | |<-.-.-.-.-.-.->|<-.-.-.-.->| | | 585 | | | | | | | | 586 | | | | P-CTRL@D can no | | 587 | | | | longer act as CTRL | | 588 | | | | | | | | 589 Notification to other P-CTRLs| | | | 590 |<-.-.-.-.-.-.-.-.-.-.-.-.-.| | | | 591 Request to take over control | | | | 592 |-.-.-.-.-.-.-.-.-.-.-.-.-.>| | | | 593 Orchestration state sync | | | | 594 |<-.-.-.-.-.-.-.-.-.-.-.-.-.| | | | 595 | | | | | | | | 596 P-CTRL@A becomes| | | | | | 597 the CTRL for | | | | | | 598 the service | | | | | | 599 | | | | | | | | 601 Figure 5: Inter P-CTRL seamless handover 603 A detailed message sequence chart is shown in Figure 5. The 604 different steps are described next: 606 o (We assume that the network service has been instantiated and 607 there is traffic: F1@A--F2@B--F3@D). 609 o When the active (designated) P-CTRL detects that it might not be 610 able to operate in the near future (lack of resources, battery, 611 moving away, etc.), a notification is sent to other P-CTRLs using 612 new IETF SFC NSH extensions (NS lifecycle management), as 613 described in TBD. 615 o Each P-CTRL receiving the notification message that is ready to 616 take over the role of active P-CTRL sends a message to the current 617 P-CTRL, which selects one. New IETF SFC NSH extensions are used 618 to convey this signaling. 620 o At this point, the new P-CTRL becomes the SFC controller/ 621 orchestrator of the service. 623 5. IANA Considerations 625 N/A. 627 6. Security Considerations 629 TBD. 631 7. Acknowledgments 633 The work in this draft has been partially supported by the H2020 634 5Growth (Grant 856709) and 5G-DIVE projects (Grant 859881). 636 8. References 638 8.1. Normative References 640 [I-D.bernardos-sfc-distributed-control] 641 Bernardos, C. J. and A. Mourad, "Distributed SFC control 642 for fog environments", draft-bernardos-sfc-distributed- 643 control-04 (work in progress), July 2021. 645 8.2. Informative References 647 [I-D.bernardos-sfc-fog-ran] 648 Bernardos, C. J., Rahman, A., and A. Mourad, "Service 649 Function Chaining Use Cases in Fog RAN", draft-bernardos- 650 sfc-fog-ran-09 (work in progress), March 2021. 652 [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function 653 Chaining (SFC) Architecture", RFC 7665, 654 DOI 10.17487/RFC7665, October 2015, 655 . 657 Authors' Addresses 659 Carlos J. Bernardos 660 Universidad Carlos III de Madrid 661 Av. Universidad, 30 662 Leganes, Madrid 28911 663 Spain 665 Phone: +34 91624 6236 666 Email: cjbc@it.uc3m.es 667 URI: http://www.it.uc3m.es/cjbc/ 669 Alain Mourad 670 InterDigital Europe 672 Email: Alain.Mourad@InterDigital.com 673 URI: http://www.InterDigital.com/