| < draft-bernardos-sfc-distributed-control-operation-03.txt | draft-bernardos-sfc-distributed-control-operation-04.txt > | |||
|---|---|---|---|---|
| SFC WG CJ. Bernardos | SFC WG CJ. Bernardos | |||
| Internet-Draft UC3M | Internet-Draft UC3M | |||
| Intended status: Experimental A. Mourad | Intended status: Experimental A. Mourad | |||
| Expires: March 14, 2022 InterDigital | Expires: 22 September 2022 InterDigital | |||
| September 10, 2021 | 21 March 2022 | |||
| Distributed SFC control operation | Distributed SFC control operation | |||
| draft-bernardos-sfc-distributed-control-operation-03 | draft-bernardos-sfc-distributed-control-operation-04 | |||
| Abstract | Abstract | |||
| Service function chaining (SFC) allows the instantiation of an | Service function chaining (SFC) allows the instantiation of an | |||
| ordered set of service functions and subsequent "steering" of traffic | ordered set of service functions and subsequent "steering" of traffic | |||
| through them. In order to set up and maintain SFC instances, a | through them. In order to set up and maintain SFC instances, a | |||
| control plane is required, which typically is centralized. In | control plane is required, which typically is centralized. In | |||
| certain environments, such as fog computing ones, such centralized | certain environments, such as fog computing ones, such centralized | |||
| control might not be feasible, calling for distributed SFC control | control might not be feasible, calling for distributed SFC control | |||
| solutions. This document describes a general framework for | solutions. This document describes a general framework for | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on March 14, 2022. | This Internet-Draft will expire on 22 September 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Revised BSD License text as | |||
| include Simplified BSD License text as described in Section 4.e of | described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Revised BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Problem statement . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Problem statement . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Distributed SFC control operation . . . . . . . . . . . . . . 7 | 4. Distributed SFC control operation . . . . . . . . . . . . . . 7 | |||
| 4.1. P-CTRL taking over C-CTRL . . . . . . . . . . . . . . . . 8 | 4.1. P-CTRL taking over C-CTRL . . . . . . . . . . . . . . . . 8 | |||
| 4.1.1. P-CTRL taking over C-CTRL due to a local monitoring | 4.1.1. P-CTRL taking over C-CTRL due to a local monitoring | |||
| event . . . . . . . . . . . . . . . . . . . . . . . . 8 | event . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 7 ¶ | |||
| disconnected. Since gNB node D is also providing the UEs with | disconnected. Since gNB node D is also providing the UEs with | |||
| connectivity to the network infrastructure where the SFC central | connectivity to the network infrastructure where the SFC central | |||
| controller is hosted, this type of event cannot be resolved by the | controller is hosted, this type of event cannot be resolved by the | |||
| SFC controller, as the nodes hosting the functions would be | SFC controller, as the nodes hosting the functions would be | |||
| disconnected from the central controller. Similar problems arise in | disconnected from the central controller. Similar problems arise in | |||
| highly mobile/volatile and/or latency-demanding scenarios, where | highly mobile/volatile and/or latency-demanding scenarios, where | |||
| centralized lifecycle management becomes unsuitable. | centralized lifecycle management becomes unsuitable. | |||
| o | o | |||
| node B | | node B | | |||
| +--------|-+ F1+-.-.-+F2+-.-.-+F3 SFC | +--------|-+ F1+-·-·-+F2+-·-·-+F3 SFC | |||
| | ........ | | | ········ | | |||
| <==== | |P-CTRL| | | <==== | |P-CTRL| | | |||
| | ........ | | | ········ | | |||
| +-.-.-+F2 | | +-·-·-+F2 | | |||
| o / +---+------+ ________ | o / +---+------+ ________ | |||
| | . . _( )_ | | · · _( )_ | |||
| +--------|-+ / / _( +--------+ )_ | +--------|-+ / / _( +--------+ )_ | |||
| | | . . (_ | C-CTRL | _) | | | · · (_ | C-CTRL | _) | |||
| | | / / (_+--------+_) | | | / / (_+--------+_) | |||
| | |. | (________) | | |· | (________) | |||
| | +-.-./ . | | +-·-·/ · | |||
| | F1 | | ( (oo) ) | | F1 | | ( (oo) ) | |||
| +----------+ . o /\ ........ | +----------+ · o /\ ········ | |||
| node A | | /\/\ |P-CTRL| | node A | | /\/\ |P-CTRL| | |||
| +-----.--|-+ /\/\/\........ | +-----·--|-+ /\/\/\········ | |||
| | | | /\/ \/\ (F3) | | | | /\/ \/\ (F3) | |||
| | . | node D | | · | node D | |||
| <==== | | | | <==== | | | | |||
| | + | | | + | | |||
| | F3 | | | F3 | | |||
| +----------+ | +----------+ | |||
| node C | node C | |||
| Figure 1: Example scenario: disrupted SFC due to mobility | Figure 1: Example scenario: disrupted SFC due to mobility | |||
| In these scenarios, an SFC pseudo controller can substitute (at least | In these scenarios, an SFC pseudo controller can substitute (at least | |||
| temporarily and partially) the centralized SFC controller when the | temporarily and partially) the centralized SFC controller when the | |||
| latter is not available or able to perform a given task. This | latter is not available or able to perform a given task. This | |||
| document proposes solutions addressing the following problem: How to | document proposes solutions addressing the following problem: How to | |||
| enable SFC pseudo controllers to perform NS lifecycle management | enable SFC pseudo controllers to perform NS lifecycle management | |||
| operations, such as migration of functions, service chains or parts | operations, such as migration of functions, service chains or parts | |||
| of a chain? This requires solving the sub-problems listed below. | of a chain? This requires solving the sub-problems listed below. | |||
| o When a SFC centralized controller (C-CTRL) is in charge, what | * When a SFC centralized controller (C-CTRL) is in charge, what | |||
| mechanisms and exchanges are needed between the C-CTRL and a SFC | mechanisms and exchanges are needed between the C-CTRL and a SFC | |||
| pseudo-controller (P-CTRL), and the nodes, so as to facilitate a | pseudo-controller (P-CTRL), and the nodes, so as to facilitate a | |||
| seamless transition from C-CTRL to P-CTRL (due to an event, e.g. | seamless transition from C-CTRL to P-CTRL (due to an event, e.g. | |||
| failure, of the C-CTRL)? | failure, of the C-CTRL)? | |||
| o When P-CTRL takes over from the C-CTRL, what actions shall it take | * When P-CTRL takes over from the C-CTRL, what actions shall it take | |||
| towards other P-CTRLs, so as to sustain seamless transition if a | towards other P-CTRLs, so as to sustain seamless transition if a | |||
| first P-CTRL fails (e.g., moving from P-CTRL A to P-CTRL B)? | first P-CTRL fails (e.g., moving from P-CTRL A to P-CTRL B)? | |||
| o When C-CTRL is back into the picture, how shall the control | * When C-CTRL is back into the picture, how shall the control | |||
| transfer seamlessly back from P-CTRL to C-CTRL? | transfer seamlessly back from P-CTRL to C-CTRL? | |||
| 4. Distributed SFC control operation | 4. Distributed SFC control operation | |||
| A key concept is to allow a P-CTRL to take over temporarily and | A key concept is to allow a P-CTRL to take over temporarily and | |||
| partially from the C-CTRL to perform NS lifecycle management | partially from the C-CTRL to perform NS lifecycle management | |||
| decisions. The definition, selection and initialization of a P-CTRL | decisions. The definition, selection and initialization of a P-CTRL | |||
| is covered in [I-D.bernardos-sfc-distributed-control]. | is covered in [I-D.bernardos-sfc-distributed-control]. | |||
| Using Figure 1, we can think of an example where a function (F3) is | Using Figure 1, we can think of an example where a function (F3) is | |||
| skipping to change at page 7, line 47 ¶ | skipping to change at page 7, line 47 ¶ | |||
| reacting fast enough to the local changing conditions). For example, | reacting fast enough to the local changing conditions). For example, | |||
| P-CTRL can send a scaling command to a given node, in order to adapt | P-CTRL can send a scaling command to a given node, in order to adapt | |||
| the resources to the current NS demands. P-CTRL would also notify | the resources to the current NS demands. P-CTRL would also notify | |||
| this to C-CTRL, as soon as the connection to C-CTRL is recovered so | this to C-CTRL, as soon as the connection to C-CTRL is recovered so | |||
| that both are synchronized. | that both are synchronized. | |||
| In order to support the operation of P-CTRLs complementing or | In order to support the operation of P-CTRLs complementing or | |||
| replacing the operation of the C-CTRL, the following operations are | replacing the operation of the C-CTRL, the following operations are | |||
| needed: | needed: | |||
| o When an NS is onboarded, the C-CTRL receives an NS descriptor | * When an NS is onboarded, the C-CTRL receives an NS descriptor | |||
| (NSD), together with the VNF descriptors (VNFDs) of the functions | (NSD), together with the VNF descriptors (VNFDs) of the functions | |||
| composing the service, and the Operations, Administration and | composing the service, and the Operations, Administration and | |||
| Maintenance Descriptor (OAMD), which includes the information of | Maintenance Descriptor (OAMD), which includes the information of | |||
| what needs to be monitored to ensure a given SLA. | what needs to be monitored to ensure a given SLA. | |||
| o When the NS is instantiated, in addition to the regular | * When the NS is instantiated, in addition to the regular | |||
| orchestration decisions (e.g., placement of functions on available | orchestration decisions (e.g., placement of functions on available | |||
| resources, etc.), the C-CTRL, based on its knowledge of existing | resources, etc.), the C-CTRL, based on its knowledge of existing | |||
| P-CTRLs, decides how monitoring is going to be performed. This | P-CTRLs, decides how monitoring is going to be performed. This | |||
| includes: (i) What is monitored by each P-CTRL node (e.g., vCPU | includes: (i) What is monitored by each P-CTRL node (e.g., vCPU | |||
| load, bandwidth of a certain link, etc.) and how (e.g., active, | load, bandwidth of a certain link, etc.) and how (e.g., active, | |||
| passive or hybrid monitoring); (ii) Which orchestrators are in | passive or hybrid monitoring); (ii) Which orchestrators are in | |||
| charge of collecting and processing the measurements. | charge of collecting and processing the measurements. | |||
| Currently defined mechanisms assume a semi-static environment and the | Currently defined mechanisms assume a semi-static environment and the | |||
| standardized message flows do not support dynamic migration of the | standardized message flows do not support dynamic migration of the | |||
| skipping to change at page 9, line 11 ¶ | skipping to change at page 9, line 11 ¶ | |||
| In this case, the C-CTRL has delegated some monitoring actions to the | In this case, the C-CTRL has delegated some monitoring actions to the | |||
| P-CTRL, as indicated in the OAMD sent by the C-CTRL to the P-CTRL. | P-CTRL, as indicated in the OAMD sent by the C-CTRL to the P-CTRL. | |||
| +---------+ +----+ +---------+ +---------+ +----------+ +------+ | +---------+ +----+ +---------+ +---------+ +----------+ +------+ | |||
| | node A | | C | | node B | | node D | | 3GPP | | SFC | | | node A | | C | | node B | | node D | | 3GPP | | SFC | | |||
| |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |||
| +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | F1@A<->F2@B<->F3@D SFC network service | | | | F1@A<->F2@B<->F3@D SFC network service | | | |||
| | |<-.-.-.-.-.-.-.-.-.>|<-.-.-.-.->| |A.Serv. OAM | | | |<-·-·-·-·-·-·-·-·-·>|<-·-·-·-·->| |A.Serv. OAM | | |||
| | | | | | | | |<-.-.-.-.-.>| | | | | | | | | |<-·-·-·-·-·>| | |||
| | | | | |B.Serv. OAM monitor. | | | | | | | |B.Serv. OAM monitor. | | | |||
| | | | | |-.-.-.-.-.-.-.-.-.-.>| | | | | | | |-·-·-·-·-·-·-·-·-·-·>| | | |||
| | | | | |<-.-.-.-.-.-.-.-.-.-.| | | | | | | |<-·-·-·-·-·-·-·-·-·-·| | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | |C.Serv. OAM monitor. | | | | | | | |C.Serv. OAM monitor. | | | |||
| | | | | |<-.-.-| | | | | | | | | |<-·-·-| | | | | |||
| | | | | |-.-.-.-.-.-.-.-.-.-.>| | | | | | | |-·-·-·-·-·-·-·-·-·-·>| | | |||
| | | | | |<-.-.-.-.-.-.-.-.-.-.| | | | | | | |<-·-·-·-·-·-·-·-·-·-·| | | |||
| | | | | |-.-.->| | | | | | | | | |-·-·->| | | | | |||
| | | D.Serv. OAM monitor. | | | | | | | D.Serv. OAM monitor. | | | | | |||
| | | |<-.-.->| | | | | | | | | |<-·-·->| | | | | | | |||
| | | | |<-.-.-.-.->| | | | | | | | |<-·-·-·-·->| | | | | |||
| |<-.>|<-.-.-.-.-.-.->| | | | | | | |<-·>|<-·-·-·-·-·-·->| | | | | | | |||
| |<-.-.-.-.-.-.-.-.-.>| | | | | | | |<-·-·-·-·-·-·-·-·-·>| | | | | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | P-CTRL@B detects that it's | | | | | | P-CTRL@B detects that it's | | | | |||
| | | loosing connectivity with D | | | | | | loosing connectivity with D | | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | Orch. signal. | | | | | | | | | Orch. signal. | | | | | | | |||
| | | |<-.-.->| | | | | | | | | |<-·-·->| | | | | | | |||
| | |<-.-.-.-.-.-.->| | | | | | | | |<-·-·-·-·-·-·->| | | | | | | |||
| | | | | | Sync. with C-CTRL | | | | | | | | Sync. with C-CTRL | | | |||
| | | | | |<.-.-.-.-.-.-.-.-.-.>| | | | | | | |<·-·-·-·-·-·-·-·-·-·>| | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| Figure 2: P-CTRL taking over C-CTRL due to a local monitoring event | Figure 2: P-CTRL taking over C-CTRL due to a local monitoring event | |||
| A detailed message sequence chart is shown in Figure 2. The | A detailed message sequence chart is shown in Figure 2. The | |||
| different steps are described next: | different steps are described next: | |||
| o (We assume that the network service has been instantiated and | * (We assume that the network service has been instantiated and | |||
| there is traffic: F1@A--F2@B--F3@D). | there is traffic: F1@A--F2@B--F3@D). | |||
| o C-CTRL runs overall OAM monitoring of the network services. This | * C-CTRL runs overall OAM monitoring of the network services. This | |||
| can be done for example by contacting the 3GPP network to obtain | can be done for example by contacting the 3GPP network to obtain | |||
| different network analytics via NEF. This is shown in the figure | different network analytics via NEF. This is shown in the figure | |||
| as A. | as A. | |||
| o P-CTRLs are running service specific OAM monitoring actions, as | * P-CTRLs are running service specific OAM monitoring actions, as | |||
| indicated in the OAMD sent by the C-CTRL in the network service | indicated in the OAMD sent by the C-CTRL in the network service | |||
| instantiation procedure. This requires signaling procedures. | instantiation procedure. This requires signaling procedures. | |||
| Various non-limiting example options are possible: | Various non-limiting example options are possible: | |||
| * The P-CTRL may directly obtain information metrics from | - The P-CTRL may directly obtain information metrics from | |||
| different network functions through the network exposure | different network functions through the network exposure | |||
| function (NEF). This is shown in the figure as B. | function (NEF). This is shown in the figure as B. | |||
| * The P-CTRL may indirectly obtain the information metrics | - The P-CTRL may indirectly obtain the information metrics | |||
| through the local AF or NF hosted on the UE, which interacts | through the local AF or NF hosted on the UE, which interacts | |||
| with any other entity inside or outside 3GPP (e.g., AF to AF, | with any other entity inside or outside 3GPP (e.g., AF to AF, | |||
| NF to AF, or NF to NF) and then parse these on the interface to | NF to AF, or NF to NF) and then parse these on the interface to | |||
| the P-CTRL. If the function hosted on the UE is an NF, and the | the P-CTRL. If the function hosted on the UE is an NF, and the | |||
| info is about 3GPP network data analytics, then the NF will go | info is about 3GPP network data analytics, then the NF will go | |||
| get some data from NWDAF and locally at the UE, expose these to | get some data from NWDAF and locally at the UE, expose these to | |||
| the P-CTRL. This is shown in the figure as C. | the P-CTRL. This is shown in the figure as C. | |||
| * In addition to the former (mutually exclusive approaches), it | - In addition to the former (mutually exclusive approaches), it | |||
| is also possible to perform local OAM monitoring via standalone | is also possible to perform local OAM monitoring via standalone | |||
| procedures, such as local OAM monitoring and the use of SFC | procedures, such as local OAM monitoring and the use of SFC | |||
| OAM. This is shown in the figure as D. | OAM. This is shown in the figure as D. | |||
| The interface between the P-CTRL and the SFC functions running on | The interface between the P-CTRL and the SFC functions running on | |||
| the UE to obtain OAM metrics may be a local API, or standard | the UE to obtain OAM metrics may be a local API, or standard | |||
| interface like IETF SFC OAM, or like the interface between 3GPP | interface like IETF SFC OAM, or like the interface between 3GPP | |||
| NWDAF and an NWDAF service consumer. | NWDAF and an NWDAF service consumer. | |||
| o At a certain point in time, a local monitoring event, which cannot | * At a certain point in time, a local monitoring event, which cannot | |||
| be detected by the C-CTRL, triggers the whole process. In the | be detected by the C-CTRL, triggers the whole process. In the | |||
| example of the figure P-CTRL@node B detects that B is losing | example of the figure P-CTRL@node B detects that B is losing | |||
| connectivity with node D. | connectivity with node D. | |||
| o The P-CTRL takes an orchestration decision based on its local | * The P-CTRL takes an orchestration decision based on its local | |||
| knowledge and signals it to the involved nodes. The decision | knowledge and signals it to the involved nodes. The decision | |||
| consists in migrating/moving F3 from node D to C. New extensions | consists in migrating/moving F3 from node D to C. New extensions | |||
| to MIPv6 are used, as described in TBD. Alternatively, extensions | to MIPv6 are used, as described in TBD. Alternatively, extensions | |||
| to IETF SFC NSH can also be used, as described in TBD. | to IETF SFC NSH can also be used, as described in TBD. | |||
| o The P-CTRL also informs the C-CTRL to keep it synchronized. | * The P-CTRL also informs the C-CTRL to keep it synchronized. | |||
| Similarly, the C-CTRL can then update other P-CTRLs if needed. | Similarly, the C-CTRL can then update other P-CTRLs if needed. | |||
| New extensions to NSH are used (NS lifecycle management), as | New extensions to NSH are used (NS lifecycle management), as | |||
| described in TBD. | described in TBD. | |||
| 4.1.2. P-CTRL taking over C-CTRL due to a C-CTRL failure | 4.1.2. P-CTRL taking over C-CTRL due to a C-CTRL failure | |||
| In this case, the P-CTRL detects/predicts a C-CTRL failure (e.g., it | In this case, the P-CTRL detects/predicts a C-CTRL failure (e.g., it | |||
| becomes unreachable). | becomes unreachable). | |||
| +---------+ +----+ +---------+ +---------+ +----------+ +------+ | +---------+ +----+ +---------+ +---------+ +----------+ +------+ | |||
| | node A | | C | | node B | | node D | | 3GPP | | SFC | | | node A | | C | | node B | | node D | | 3GPP | | SFC | | |||
| |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |||
| +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | F1@A<->F2@B<->F3@D SFC network service | | | | F1@A<->F2@B<->F3@D SFC network service | | | |||
| | |<-.-.-.-.-.-.-.-.-.>|<-.-.-.-.->| | | | | |<-·-·-·-·-·-·-·-·-·>|<-·-·-·-·->| | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | | C-CTRL connectivity failure | | | | | | | C-CTRL connectivity failure | | |||
| | | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->| | | | | | |<·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·->| | |||
| | P-CTRL@B detects that connectivity | | | | P-CTRL@B detects that connectivity | | | |||
| | with C-CTRL is lost (or about to be) | | | | with C-CTRL is lost (or about to be) | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | | Sync with C-CTRL (if | | | | | | | Sync with C-CTRL (if | | |||
| | | | | | failure is predicted) | | | | | | | failure is predicted) | | |||
| | | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->| | | | | | |<·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·->| | |||
| | | P-CTRL@B becomes the | | | | | | | P-CTRL@B becomes the | | | | | |||
| | | CTRL for the service | | | | | | | CTRL for the service | | | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | P-CTRL activation | | | | | | | | P-CTRL activation | | | | | | | |||
| |<-.-.-.-.-.-.-.-.-.>| | | | | | | |<-·-·-·-·-·-·-·-·-·>| | | | | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | Orch. signal. | | | | | | | | | Orch. signal. | | | | | | | |||
| | | |<-.-.->| | | | | | | | | |<-·-·->| | | | | | | |||
| | |<-.-.-.-.-.-.->| | | | | | | | |<-·-·-·-·-·-·->| | | | | | | |||
| | | | | | | | | | | | | | | | | | | | | |||
| Figure 3: P-CTRL taking over C-CTRL due to a C-CTRL failure | Figure 3: P-CTRL taking over C-CTRL due to a C-CTRL failure | |||
| A detailed message sequence chart is shown in Figure 3. The | A detailed message sequence chart is shown in Figure 3. The | |||
| different steps are described next: | different steps are described next: | |||
| o (We assume that the network service has been instantiated and | * (We assume that the network service has been instantiated and | |||
| there is traffic: F1@A--F2@B--F3@D). | there is traffic: F1@A--F2@B--F3@D). | |||
| o A failure can be detected by a P-CTRL via multiple mechanisms, | * A failure can be detected by a P-CTRL via multiple mechanisms, | |||
| such as: (i) Sending periodic keep-alive messages to the C-CTRL; | such as: (i) Sending periodic keep-alive messages to the C-CTRL; | |||
| (ii) Transport-layer mechanisms that allow detecting connectivity | (ii) Transport-layer mechanisms that allow detecting connectivity | |||
| failures; (iii) Observing a lack of action from the C-CTRL upon an | failures; (iii) Observing a lack of action from the C-CTRL upon an | |||
| event that requires an orchestration action. | event that requires an orchestration action. | |||
| o A failure can also be predicted by a P-CTRL, by using local | * A failure can also be predicted by a P-CTRL, by using local | |||
| monitoring information. | monitoring information. | |||
| o When a C-CTRL failure is detected, the designated backup P-CTRL | * When a C-CTRL failure is detected, the designated backup P-CTRL | |||
| takes over the orchestration of the network service, by: | takes over the orchestration of the network service, by: | |||
| * Notifying other P-CTRLs, as well as selecting a new designated | - Notifying other P-CTRLs, as well as selecting a new designated | |||
| backup P-CTRL. This involves the synchronization of relevant | backup P-CTRL. This involves the synchronization of relevant | |||
| information (orchestration DBs, descriptors, etc.) with C-CTRL | information (orchestration DBs, descriptors, etc.) with C-CTRL | |||
| (if the failure is predicted). This is done through new IETF | (if the failure is predicted). This is done through new IETF | |||
| SFC NSH extensions (NS lifecycle management), as described in | SFC NSH extensions (NS lifecycle management), as described in | |||
| TBD. | TBD. | |||
| * The P-CTRL becoming the SFC controller/orchestrator. From this | - The P-CTRL becoming the SFC controller/orchestrator. From this | |||
| point of time on, the P-CTRL can send orchestration signaling. | point of time on, the P-CTRL can send orchestration signaling. | |||
| Extensions to IETF NSH or MIPv6 can be used, as described in | Extensions to IETF NSH or MIPv6 can be used, as described in | |||
| TBD and TBD. | TBD and TBD. | |||
| 4.1.3. C-CTRL gaining back control | 4.1.3. C-CTRL gaining back control | |||
| We describe next, using an example, how a C-CTRL may get back the | We describe next, using an example, how a C-CTRL may get back the | |||
| orchestration control, temporarily delegated to a P-CTRL. | orchestration control, temporarily delegated to a P-CTRL. | |||
| +---------+ +----+ +---------+ +---------+ +----------+ +------+ | +---------+ +----+ +---------+ +---------+ +----------+ +------+ | |||
| | node A | | C | | node B | | node D | | 3GPP | | SFC | | | node A | | C | | node B | | node D | | 3GPP | | SFC | | |||
| |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |P-CTRL F1| | F3 | |P-CTRL F2| |P-CTRL F3| |ctrl plane| |C-CTRL| | |||
| +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | +--+----+-+ +----+ +--+----+-+ +--+----+-+ +----------+ +------+ | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | | Connectivity OK notification | | | | | | | Connectivity OK notification | | |||
| | | | | | | | |-.-.-.-.-.->| | | | | | | | | |-·-·-·-·-·->| | |||
| | | | |-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| | | | | |-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·>| | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | Request to take over SFC control | | | | | | Request to take over SFC control | | |||
| | | | |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-| | | | | |<·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-| | |||
| | | | | Orchestration state sync. | | | | | | Orchestration state sync. | | |||
| | | | |-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| | | | | |-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·>| | |||
| | | | | | | | | | | | | | | | | | | | | |||
| | | | | | | | | C-CTRL | | | | | | | | | C-CTRL | |||
| | | | | | | | | regains | | | | | | | | | regains | |||
| | | | | | | | | control | | | | | | | | | control | |||
| | | | | Notification C-CTRL back in control | | | | | | Notification C-CTRL back in control | | |||
| |<-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-| | |<-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-| | |||
| | | | | | | | | | | | | | | | | | | | | |||
| Figure 4: C-CTRL gaining back control | Figure 4: C-CTRL gaining back control | |||
| A detailed message sequence chart is shown in Figure 4. The | A detailed message sequence chart is shown in Figure 4. The | |||
| different steps are described next: | different steps are described next: | |||
| o When a C-CTRL loses connectivity with the nodes involved in a | * When a C-CTRL loses connectivity with the nodes involved in a | |||
| service, it enters into recovery mode, waiting for the | service, it enters into recovery mode, waiting for the | |||
| connectivity to be recovered. C-CTRL can learn that connectivity | connectivity to be recovered. C-CTRL can learn that connectivity | |||
| has been regained using NSH OAM signaling or 3GPP signaling from | has been regained using NSH OAM signaling or 3GPP signaling from | |||
| the NEF or the P-CTRL itself. | the NEF or the P-CTRL itself. | |||
| o When connectivity is gained back to a P-CTRL, the C-CTRL signals | * When connectivity is gained back to a P-CTRL, the C-CTRL signals | |||
| its availability so the P-CTRL can give back the control of the | its availability so the P-CTRL can give back the control of the | |||
| service. To do so, IETF SFC NSH extensions (NS lifecycle | service. To do so, IETF SFC NSH extensions (NS lifecycle | |||
| management) can be used, as described in TBD. | management) can be used, as described in TBD. | |||
| o The C-CTRL becomes now the active SFC controller/orchestrator for | * The C-CTRL becomes now the active SFC controller/orchestrator for | |||
| the service. | the service. | |||
| o The C-CTRL notifies to other P-CTRLs that it is back in control of | * The C-CTRL notifies to other P-CTRLs that it is back in control of | |||
| the service, using IETF SFC NSH extensions (NS lifecycle | the service, using IETF SFC NSH extensions (NS lifecycle | |||
| management), as described in TBD. | management), as described in TBD. | |||
| 4.2. Inter P-CTRL seamless handover | 4.2. Inter P-CTRL seamless handover | |||
| In scenarios with no C-CTRL reachability, it might be needed to | In scenarios with no C-CTRL reachability, it might be needed to | |||
| transition from one P-CTRL to another one (e.g., because of mobility | transition from one P-CTRL to another one (e.g., because of mobility | |||
| of the nodes while the C-CTRL is not reachable). | of the nodes while the C-CTRL is not reachable). | |||
| Reactive transition is supported as for the case of C-CTRL failure. | Reactive transition is supported as for the case of C-CTRL failure. | |||
| Proactive/seamless transition is addressed as follows. | Proactive/seamless transition is addressed as follows. | |||
| +---------+ +----+ +----+ +---------+ +----------+ +------+ | +---------+ +----+ +----+ +---------+ +----------+ +------+ | |||
| | node A | | C | | B | | node D | | 3GPP | | SFC | | | node A | | C | | B | | node D | | 3GPP | | SFC | | |||
| |P-CTRL F1| | F3 | | F2 | |P-CTRL F3| |ctrl plane| |C-CTRL| | |P-CTRL F1| | F3 | | F2 | |P-CTRL F3| |ctrl plane| |C-CTRL| | |||
| +--+----+-+ +----+ +----+ +--+----+-+ +----------+ +------+ | +--+----+-+ +----+ +----+ +--+----+-+ +----------+ +------+ | |||
| | | | | | | | | | | | | | | | | | | |||
| | F1@A<->F2@B<->F3@D SFC network service | | | | F1@A<->F2@B<->F3@D SFC network service | | | |||
| | |<-.-.-.-.-.-.->|<-.-.-.-.->| | | | | |<-·-·-·-·-·-·->|<-·-·-·-·->| | | | |||
| | | | | | | | | | | | | | | | | | | |||
| | | | | P-CTRL@D can no | | | | | | | P-CTRL@D can no | | | |||
| | | | | longer act as CTRL | | | | | | | longer act as CTRL | | | |||
| | | | | | | | | | | | | | | | | | | |||
| Notification to other P-CTRLs| | | | | Notification to other P-CTRLs| | | | | |||
| |<-.-.-.-.-.-.-.-.-.-.-.-.-.| | | | | |<-·-·-·-·-·-·-·-·-·-·-·-·-·| | | | | |||
| Request to take over control | | | | | Request to take over control | | | | | |||
| |-.-.-.-.-.-.-.-.-.-.-.-.-.>| | | | | |-·-·-·-·-·-·-·-·-·-·-·-·-·>| | | | | |||
| Orchestration state sync | | | | | Orchestration state sync | | | | | |||
| |<-.-.-.-.-.-.-.-.-.-.-.-.-.| | | | | |<-·-·-·-·-·-·-·-·-·-·-·-·-·| | | | | |||
| | | | | | | | | | | | | | | | | | | |||
| P-CTRL@A becomes| | | | | | | P-CTRL@A becomes| | | | | | | |||
| the CTRL for | | | | | | | the CTRL for | | | | | | | |||
| the service | | | | | | | the service | | | | | | | |||
| | | | | | | | | | | | | | | | | | | |||
| Figure 5: Inter P-CTRL seamless handover | Figure 5: Inter P-CTRL seamless handover | |||
| A detailed message sequence chart is shown in Figure 5. The | A detailed message sequence chart is shown in Figure 5. The | |||
| different steps are described next: | different steps are described next: | |||
| o (We assume that the network service has been instantiated and | * (We assume that the network service has been instantiated and | |||
| there is traffic: F1@A--F2@B--F3@D). | there is traffic: F1@A--F2@B--F3@D). | |||
| o When the active (designated) P-CTRL detects that it might not be | * When the active (designated) P-CTRL detects that it might not be | |||
| able to operate in the near future (lack of resources, battery, | able to operate in the near future (lack of resources, battery, | |||
| moving away, etc.), a notification is sent to other P-CTRLs using | moving away, etc.), a notification is sent to other P-CTRLs using | |||
| new IETF SFC NSH extensions (NS lifecycle management), as | new IETF SFC NSH extensions (NS lifecycle management), as | |||
| described in TBD. | described in TBD. | |||
| o Each P-CTRL receiving the notification message that is ready to | * Each P-CTRL receiving the notification message that is ready to | |||
| take over the role of active P-CTRL sends a message to the current | take over the role of active P-CTRL sends a message to the current | |||
| P-CTRL, which selects one. New IETF SFC NSH extensions are used | P-CTRL, which selects one. New IETF SFC NSH extensions are used | |||
| to convey this signaling. | to convey this signaling. | |||
| o At this point, the new P-CTRL becomes the SFC controller/ | * At this point, the new P-CTRL becomes the SFC controller/ | |||
| orchestrator of the service. | orchestrator of the service. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| N/A. | N/A. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| TBD. | TBD. | |||
| skipping to change at page 14, line 41 ¶ | skipping to change at page 14, line 41 ¶ | |||
| The work in this draft has been partially supported by the H2020 | The work in this draft has been partially supported by the H2020 | |||
| 5Growth (Grant 856709) and 5G-DIVE projects (Grant 859881). | 5Growth (Grant 856709) and 5G-DIVE projects (Grant 859881). | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.bernardos-sfc-distributed-control] | [I-D.bernardos-sfc-distributed-control] | |||
| Bernardos, C. J. and A. Mourad, "Distributed SFC control | Bernardos, C. J. and A. Mourad, "Distributed SFC control | |||
| for fog environments", draft-bernardos-sfc-distributed- | for fog environments", Work in Progress, Internet-Draft, | |||
| control-04 (work in progress), July 2021. | draft-bernardos-sfc-distributed-control-05, 27 January | |||
| 2022, <https://www.ietf.org/archive/id/draft-bernardos- | ||||
| sfc-distributed-control-05.txt>. | ||||
| 8.2. Informative References | 8.2. Informative References | |||
| [I-D.bernardos-sfc-fog-ran] | [I-D.bernardos-sfc-fog-ran] | |||
| Bernardos, C. J., Rahman, A., and A. Mourad, "Service | Bernardos, C. J. and A. Mourad, "Service Function Chaining | |||
| Function Chaining Use Cases in Fog RAN", draft-bernardos- | Use Cases in Fog RAN", Work in Progress, Internet-Draft, | |||
| sfc-fog-ran-09 (work in progress), March 2021. | draft-bernardos-sfc-fog-ran-10, 22 October 2021, | |||
| <https://www.ietf.org/archive/id/draft-bernardos-sfc-fog- | ||||
| ran-10.txt>. | ||||
| [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | |||
| Chaining (SFC) Architecture", RFC 7665, | Chaining (SFC) Architecture", RFC 7665, | |||
| DOI 10.17487/RFC7665, October 2015, | DOI 10.17487/RFC7665, October 2015, | |||
| <https://www.rfc-editor.org/info/rfc7665>. | <https://www.rfc-editor.org/info/rfc7665>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Carlos J. Bernardos | Carlos J. Bernardos | |||
| Universidad Carlos III de Madrid | Universidad Carlos III de Madrid | |||
| Av. Universidad, 30 | Av. Universidad, 30 | |||
| Leganes, Madrid 28911 | 28911 Leganes, Madrid | |||
| Spain | Spain | |||
| Phone: +34 91624 6236 | Phone: +34 91624 6236 | |||
| Email: cjbc@it.uc3m.es | Email: cjbc@it.uc3m.es | |||
| URI: http://www.it.uc3m.es/cjbc/ | URI: http://www.it.uc3m.es/cjbc/ | |||
| Alain Mourad | Alain Mourad | |||
| InterDigital Europe | InterDigital Europe | |||
| Email: Alain.Mourad@InterDigital.com | Email: Alain.Mourad@InterDigital.com | |||
| URI: http://www.InterDigital.com/ | URI: http://www.InterDigital.com/ | |||
| End of changes. 66 change blocks. | ||||
| 91 lines changed or deleted | 92 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||