From b2144c76545b2bb806b5a636fd29594adf2a81eb Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 13 Feb 2024 15:41:11 +0700 Subject: [PATCH 01/13] Add first draft version of connection monitoring API description Signed-off-by: NikitaSkrynnik --- content/docs/concepts/features/healing.md | 6 +-- content/docs/concepts/features/monitoring.md | 39 ++++++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 content/docs/concepts/features/monitoring.md diff --git a/content/docs/concepts/features/healing.md b/content/docs/concepts/features/healing.md index ca1ff61..41ad760 100644 --- a/content/docs/concepts/features/healing.md +++ b/content/docs/concepts/features/healing.md @@ -19,14 +19,14 @@ date = "2021-06-19" **Enhanced Reliability:** healing enhances the reliability of applications by automatically recovering from failures, reducing manual intervention, and minimizing downtime. \ **Improved User Experience:** The feature ensures a consistent user experience by maintaining service availability, even when underlying infrastructure or application components experience issues. \ **Efficient Resource Utilization:** Through proactive scaling and resource management, healing optimizes resource utilization, ensuring efficient NSM domain operation. \ -**Simplified Operations:** Healing simplifies operational tasks, reducing the burden on administrators and DevOps teams. \ +**Simplified Operations:** Healing simplifies operational tasks, reducing the burden on administrators and DevOps teams. ## Concept NSM healing is pretty simple: 1. Healing is always starting on the Network Service Mesh Client. -2. Network Service Client uses [monitor connectios](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) api to monitor it's NSMgr to keep the connection up to date. +2. Network Service Client uses [monitor connections](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) api to monitor it's NSMgr to keep the connection up to date. 3. If the Network Service Client gets an event from the NSMgr with a changing state, deleting a connection, or closing a stream, then the client forces a new request. Wherein the existing connection closes only if connectivity is gone. And that's it! @@ -43,7 +43,7 @@ Healing is an indispensable tool for organizations leveraging NSM, enabling them ## References -- [NSM Monitoring API](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) +- [NSM Monitoring API](./monitoring.md) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/heal) - [Runnable k8s examples](https://github.com/networkservicemesh/deployments-k8s/tree/release/v1.10.0/examples/heal) - [See other features](../) diff --git a/content/docs/concepts/features/monitoring.md b/content/docs/concepts/features/monitoring.md new file mode 100644 index 0000000..d51d180 --- /dev/null +++ b/content/docs/concepts/features/monitoring.md @@ -0,0 +1,39 @@ ++++ +title = "Connection Monitoring API" +description = "Concept of Connection Monitoring API in NSM" +short= "monitoring" +date = "2024-02-13" ++++ + +# Connection Monitoring API + +## Description + +Connection Monitoring API is one of the key features of NSM. It allows to get information about connections owned by NSM. This feature is used by other important features like healing, vl3, ... + +## Benefits + + +## Concept + +NSM Connection Monitoring API is simple: + +1. An endpoint (NSMgr, Forwarder, NSE etc.) automatically launches MonitorConnection Server on start. +2. Network Service Client can use MonitorConnection Client to monitor connections owned by the endpoint. +3. The endpoint sends ConnectionEvents to MonitorConnection Clients if any connection is changed or closed. + + +## Types of events + +**INITIAL_STATE_TRANSFER:** MonitorConnection Server sends an event with this type to MonitorConnection Client when the client makes the first request. The event with this type contains all connections owned by the MonitorConnection Server. + +**UPDATE:** Monitor Connection Server sends an event with this type when a connection changes. For example, the state of the connection has been changed. + +**DELETE:** Monitor Connection Server sends event with this type when the connection has been closed. + + +## References + +- [NSM Monitoring API](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) +- [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/monitor) +- [See other features](../) From 06b78f0219335f897eb96a6cd1ca7f4047694dbf Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 13 Feb 2024 15:49:54 +0700 Subject: [PATCH 02/13] fix some errors Signed-off-by: NikitaSkrynnik --- content/docs/concepts/features.md | 3 ++- content/docs/concepts/features/healing.md | 2 +- content/docs/concepts/features/monitoring.md | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/content/docs/concepts/features.md b/content/docs/concepts/features.md index 433d025..6d9a0a3 100644 --- a/content/docs/concepts/features.md +++ b/content/docs/concepts/features.md @@ -10,4 +10,5 @@ date = "2023-06-24" Since NSM can run in any environment, here is described only concepts of the available functionality. - [Healing](../features/healing) -- [Datapath Healing](../features/datapath_healing) \ No newline at end of file +- [Datapath Healing](../features/datapath_healing) +- [Connection Monitoring API](../features/monitoring) \ No newline at end of file diff --git a/content/docs/concepts/features/healing.md b/content/docs/concepts/features/healing.md index 41ad760..9f8a17a 100644 --- a/content/docs/concepts/features/healing.md +++ b/content/docs/concepts/features/healing.md @@ -43,7 +43,7 @@ Healing is an indispensable tool for organizations leveraging NSM, enabling them ## References -- [NSM Monitoring API](./monitoring.md) +- [NSM Monitoring API](../../features/monitoring) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/heal) - [Runnable k8s examples](https://github.com/networkservicemesh/deployments-k8s/tree/release/v1.10.0/examples/heal) - [See other features](../) diff --git a/content/docs/concepts/features/monitoring.md b/content/docs/concepts/features/monitoring.md index d51d180..5a4e279 100644 --- a/content/docs/concepts/features/monitoring.md +++ b/content/docs/concepts/features/monitoring.md @@ -34,6 +34,6 @@ NSM Connection Monitoring API is simple: ## References -- [NSM Monitoring API](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) +- [NSM Connection Monitoring API Definition](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/monitor) - [See other features](../) From be43bdfa0ad4556d44bc48558d3fa4bb30207fc6 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 13 Feb 2024 22:01:22 +0700 Subject: [PATCH 03/13] add example image for monitoring Signed-off-by: NikitaSkrynnik --- .../concepts/features/monitoring-example.svg | 4 + content/docs/concepts/features/monitoring.md | 14 +- .../diagrams-guideline.drawio | 467 ++++++++++++------ 3 files changed, 330 insertions(+), 155 deletions(-) create mode 100644 content/docs/concepts/features/monitoring-example.svg diff --git a/content/docs/concepts/features/monitoring-example.svg b/content/docs/concepts/features/monitoring-example.svg new file mode 100644 index 0000000..80b2fc3 --- /dev/null +++ b/content/docs/concepts/features/monitoring-example.svg @@ -0,0 +1,4 @@ + + + +
monitors
monitors
event: { Type: Update, Conn: { State: Down } }
FWD
NSMgr
NSC
NSE
monitors
monitors
FWD
NSMgr
NSC
NSE
monitors
\ No newline at end of file diff --git a/content/docs/concepts/features/monitoring.md b/content/docs/concepts/features/monitoring.md index 5a4e279..da2a394 100644 --- a/content/docs/concepts/features/monitoring.md +++ b/content/docs/concepts/features/monitoring.md @@ -9,19 +9,17 @@ date = "2024-02-13" ## Description -Connection Monitoring API is one of the key features of NSM. It allows to get information about connections owned by NSM. This feature is used by other important features like healing, vl3, ... - -## Benefits - +Connection Monitoring API allows users to monitor NSM connections. This functionality can be used to build some third-party applications. An example of such application is [NSM Dashboard](https://github.com/networkservicemesh/cmd-dashboard-ui) ## Concept -NSM Connection Monitoring API is simple: +1. All NSM components except Network Service Client provide a Monitor Connection Server. +2. Users can connect to these servers using a Monitor Connection Client and monitor connections owned by different NSM components. +3. The components can send Connection Events to all subscribed Monitor Connection Clients if any connection is created, changed or deleted. -1. An endpoint (NSMgr, Forwarder, NSE etc.) automatically launches MonitorConnection Server on start. -2. Network Service Client can use MonitorConnection Client to monitor connections owned by the endpoint. -3. The endpoint sends ConnectionEvents to MonitorConnection Clients if any connection is changed or closed. +Each NSM component montors connections of the next component in the chain. If the next component generates a Connection Event, the current component receives this event and sends it back to the previous component in the chain. +{{< object data="monitoring-example.svg" type="image/svg+xml" >}} ## Types of events diff --git a/content/docs/resources/diagramsguideline/diagrams-guideline.drawio b/content/docs/resources/diagramsguideline/diagrams-guideline.drawio index 0844ce2..fcb4224 100644 --- a/content/docs/resources/diagramsguideline/diagrams-guideline.drawio +++ b/content/docs/resources/diagramsguideline/diagrams-guideline.drawio @@ -1,510 +1,683 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From eb1a022a301a811be98f00f8ca35bdf5e7446fe9 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 13 Feb 2024 22:04:37 +0700 Subject: [PATCH 04/13] fix some paths Signed-off-by: NikitaSkrynnik --- content/docs/concepts/features/monitoring-example.svg | 4 ---- content/docs/concepts/features/monitoring.md | 4 ++-- monitoring.svg | 4 ++++ static/img/concepts/features/monitoring/monitoring.svg | 4 ++++ 4 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 content/docs/concepts/features/monitoring-example.svg create mode 100644 monitoring.svg create mode 100644 static/img/concepts/features/monitoring/monitoring.svg diff --git a/content/docs/concepts/features/monitoring-example.svg b/content/docs/concepts/features/monitoring-example.svg deleted file mode 100644 index 80b2fc3..0000000 --- a/content/docs/concepts/features/monitoring-example.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
monitors
monitors
event: { Type: Update, Conn: { State: Down } }
FWD
NSMgr
NSC
NSE
monitors
monitors
FWD
NSMgr
NSC
NSE
monitors
\ No newline at end of file diff --git a/content/docs/concepts/features/monitoring.md b/content/docs/concepts/features/monitoring.md index da2a394..0fb218e 100644 --- a/content/docs/concepts/features/monitoring.md +++ b/content/docs/concepts/features/monitoring.md @@ -9,7 +9,7 @@ date = "2024-02-13" ## Description -Connection Monitoring API allows users to monitor NSM connections. This functionality can be used to build some third-party applications. An example of such application is [NSM Dashboard](https://github.com/networkservicemesh/cmd-dashboard-ui) +Connection Monitoring API allows users to monitor NSM connections. This functionality can be used to build some third-party applications. An example of such application is [NSM Dashboard](https://github.com/networkservicemesh/cmd-dashboard-ui). ## Concept @@ -19,7 +19,7 @@ Connection Monitoring API allows users to monitor NSM connections. This function Each NSM component montors connections of the next component in the chain. If the next component generates a Connection Event, the current component receives this event and sends it back to the previous component in the chain. -{{< object data="monitoring-example.svg" type="image/svg+xml" >}} +![monitoring](/img/concepts/features/monitoring/monitoring.svg) ## Types of events diff --git a/monitoring.svg b/monitoring.svg new file mode 100644 index 0000000..57e4df7 --- /dev/null +++ b/monitoring.svg @@ -0,0 +1,4 @@ + + + +
monitors
monitors
event: { Type: Update, Conn: { State: Down } }
FWD
NSMgr
NSC
NSE
monitors
monitors
FWD
NSMgr
NSC
NSE
monitors
event: { Type: Update, Conn: { State: Down } }
\ No newline at end of file diff --git a/static/img/concepts/features/monitoring/monitoring.svg b/static/img/concepts/features/monitoring/monitoring.svg new file mode 100644 index 0000000..57e4df7 --- /dev/null +++ b/static/img/concepts/features/monitoring/monitoring.svg @@ -0,0 +1,4 @@ + + + +
monitors
monitors
event: { Type: Update, Conn: { State: Down } }
FWD
NSMgr
NSC
NSE
monitors
monitors
FWD
NSMgr
NSC
NSE
monitors
event: { Type: Update, Conn: { State: Down } }
\ No newline at end of file From e40e412e2ba60f3009b382f04a4175e8f32edb1a Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 12:47:37 +0700 Subject: [PATCH 05/13] add eventType animations + rename features to specification Signed-off-by: NikitaSkrynnik --- content/docs/concepts/components_description.md | 2 +- content/docs/concepts/features.md | 10 +++++----- .../{features => specification}/datapath_healing.md | 2 +- .../concepts/{features => specification}/healing.md | 4 ++-- .../{features => specification}/monitoring.md | 11 ++++++++--- .../monitoring/inital-transfer-and-delete-event.svg | 3 +++ .../monitoring/monitoring.svg | 0 .../specification/monitoring/update-event.svg | 3 +++ 8 files changed, 23 insertions(+), 12 deletions(-) rename content/docs/concepts/{features => specification}/datapath_healing.md (99%) rename content/docs/concepts/{features => specification}/healing.md (99%) rename content/docs/concepts/{features => specification}/monitoring.md (85%) create mode 100644 static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg rename static/img/concepts/{features => specification}/monitoring/monitoring.svg (100%) create mode 100644 static/img/concepts/specification/monitoring/update-event.svg diff --git a/content/docs/concepts/components_description.md b/content/docs/concepts/components_description.md index f7588de..381a35d 100644 --- a/content/docs/concepts/components_description.md +++ b/content/docs/concepts/components_description.md @@ -174,7 +174,7 @@ Admission Webhook K8s simplifies working with NSM if NSM is deployed in a Kubern 2. Fills in remaining connection properties like IP, hardware addresses, and DNS configurations for the user's goals. ## Network Service Client (NSC) -**Network Service Client** allows external workloads to request access to NSM's **Network Services** and maintains connections ([Controlplane](https://networkservicemesh.io/docs/concepts/features/healing) and [Dataplane](https://networkservicemesh.io/docs/concepts/features/datapath_healing) healing). This component can also provide a local DNS Server for accessing NSM resources by their names. +**Network Service Client** allows external workloads to request access to NSM's **Network Services** and maintains connections ([Controlplane](https://networkservicemesh.io/docs/concepts/specification/healing) and [Dataplane](https://networkservicemesh.io/docs/concepts/specification/datapath_healing) healing). This component can also provide a local DNS Server for accessing NSM resources by their names. **Package**: https://github.com/networkservicemesh/cmd-nsc/pkgs/container/cmd-nsc diff --git a/content/docs/concepts/features.md b/content/docs/concepts/features.md index 6d9a0a3..5538f14 100644 --- a/content/docs/concepts/features.md +++ b/content/docs/concepts/features.md @@ -1,14 +1,14 @@ +++ -title = "Features" +title = "Specification" description = "Concepts of NSM Capabilities" weight = 5 date = "2023-06-24" +++ -## Features +## Specification Since NSM can run in any environment, here is described only concepts of the available functionality. -- [Healing](../features/healing) -- [Datapath Healing](../features/datapath_healing) -- [Connection Monitoring API](../features/monitoring) \ No newline at end of file +- [Healing](../specification/healing) +- [Datapath Healing](../specification/datapath_healing) +- [Connection Monitoring API](../specification/monitoring) \ No newline at end of file diff --git a/content/docs/concepts/features/datapath_healing.md b/content/docs/concepts/specification/datapath_healing.md similarity index 99% rename from content/docs/concepts/features/datapath_healing.md rename to content/docs/concepts/specification/datapath_healing.md index 628892d..cc1d703 100644 --- a/content/docs/concepts/features/datapath_healing.md +++ b/content/docs/concepts/specification/datapath_healing.md @@ -98,4 +98,4 @@ See at [example of kernel liveness check](https://github.com/networkservicemesh/ - [Source code](https://github.com/networkservicemesh/sdk/blob/release/v1.10.0/pkg/networkservice/common/heal/options.go#L43-L48) - [Root issue](https://github.com/networkservicemesh/sdk/issues/1187) -- [See other features](../) +- [See other concepts](../) diff --git a/content/docs/concepts/features/healing.md b/content/docs/concepts/specification/healing.md similarity index 99% rename from content/docs/concepts/features/healing.md rename to content/docs/concepts/specification/healing.md index 9f8a17a..2924069 100644 --- a/content/docs/concepts/features/healing.md +++ b/content/docs/concepts/specification/healing.md @@ -43,7 +43,7 @@ Healing is an indispensable tool for organizations leveraging NSM, enabling them ## References -- [NSM Monitoring API](../../features/monitoring) +- [NSM Monitoring API](../../specification/monitoring) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/heal) - [Runnable k8s examples](https://github.com/networkservicemesh/deployments-k8s/tree/release/v1.10.0/examples/heal) -- [See other features](../) +- [See other concepts](../) diff --git a/content/docs/concepts/features/monitoring.md b/content/docs/concepts/specification/monitoring.md similarity index 85% rename from content/docs/concepts/features/monitoring.md rename to content/docs/concepts/specification/monitoring.md index 0fb218e..c563c14 100644 --- a/content/docs/concepts/features/monitoring.md +++ b/content/docs/concepts/specification/monitoring.md @@ -19,8 +19,6 @@ Connection Monitoring API allows users to monitor NSM connections. This function Each NSM component montors connections of the next component in the chain. If the next component generates a Connection Event, the current component receives this event and sends it back to the previous component in the chain. -![monitoring](/img/concepts/features/monitoring/monitoring.svg) - ## Types of events **INITIAL_STATE_TRANSFER:** MonitorConnection Server sends an event with this type to MonitorConnection Client when the client makes the first request. The event with this type contains all connections owned by the MonitorConnection Server. @@ -29,9 +27,16 @@ Each NSM component montors connections of the next component in the chain. If th **DELETE:** Monitor Connection Server sends event with this type when the connection has been closed. +### An example of UPDATE event + +![update-event](/img/concepts/specification/monitoring/update-event.svg) + +### An example of INITIAL_STATE_TRANSFER and DELETE event + +![initial-transfer-and-delete-event](/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg) ## References - [NSM Connection Monitoring API Definition](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/monitor) -- [See other features](../) +- [See other concepts](../) diff --git a/static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg b/static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg new file mode 100644 index 0000000..3081f8f --- /dev/null +++ b/static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg @@ -0,0 +1,3 @@ + + +
FWD
NSMgr
NSC
NSE

event: {
    Type: INITIAL_STATE_TRANSFER,
    Conns: { All NSMgr's connections }
}

3rd-party app

event: {
    Type: UPDATE,
    Conns: { New Connection }
}

event: {
    Type: DELETE,
    Conns: { Closed Connection }
}

An app makes a Connection Monitoring Request to NSMgr
NSMgr sends INITIAL_STATE_TRANSFER event with all its connections to the app
NSC connects to NSE
NSMgr sends UPDATE event with the new connection to the App
NSC closes the connection
NSMgr sends DELETE event with the closed connection to the App
Request
Close
Request
Request
Close
Close
MonitorConnections
\ No newline at end of file diff --git a/static/img/concepts/features/monitoring/monitoring.svg b/static/img/concepts/specification/monitoring/monitoring.svg similarity index 100% rename from static/img/concepts/features/monitoring/monitoring.svg rename to static/img/concepts/specification/monitoring/monitoring.svg diff --git a/static/img/concepts/specification/monitoring/update-event.svg b/static/img/concepts/specification/monitoring/update-event.svg new file mode 100644 index 0000000..b63d4c6 --- /dev/null +++ b/static/img/concepts/specification/monitoring/update-event.svg @@ -0,0 +1,3 @@ + + +
FWD
NSMgr
NSC
NSE
conn_id: {
   connection_context: {
      extra_context: {
      + key: value
      }
   }
}

event: {

   type: UPDATE,

   connections: {

      conn_id: {

         connection_context: {

            extra_context: { key: value }

         }

      }

   }

}

event: {

   type: UPDATE,

   connections: {

      conn_id: {

         connection_context: {

            extra_context: { key: value }

         }

      }

   }

}

NSM Components monitor each other
Forwarder changes the connection context
Forwarder sends UPDATE event with the updated connection to NSMgr
NSMgr receives the event and sends it to NSC
MonitorConnetions
MonitorConnetions
MonitorConnetions
\ No newline at end of file From 38cffaf6a5a881ac592ea7f0b865bc791fb368bf Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 12:57:38 +0700 Subject: [PATCH 06/13] fix some errors + update diagrams-guideline Signed-off-by: NikitaSkrynnik --- .../{features.md => specification.md} | 0 .../diagrams-guideline.drawio | 325 ++++-------------- .../diagramsguideline/diagrams-guideline.svg | 3 +- ... => initial-transfer-and-delete-event.svg} | 0 4 files changed, 74 insertions(+), 254 deletions(-) rename content/docs/concepts/{features.md => specification.md} (100%) rename static/img/concepts/specification/monitoring/{inital-transfer-and-delete-event.svg => initial-transfer-and-delete-event.svg} (100%) diff --git a/content/docs/concepts/features.md b/content/docs/concepts/specification.md similarity index 100% rename from content/docs/concepts/features.md rename to content/docs/concepts/specification.md diff --git a/content/docs/resources/diagramsguideline/diagrams-guideline.drawio b/content/docs/resources/diagramsguideline/diagrams-guideline.drawio index fcb4224..7dc652e 100644 --- a/content/docs/resources/diagramsguideline/diagrams-guideline.drawio +++ b/content/docs/resources/diagramsguideline/diagrams-guideline.drawio @@ -1,11 +1,11 @@ - + - + - + @@ -14,7 +14,7 @@ - + @@ -39,21 +39,21 @@ - - + + - + - - + + - + @@ -160,7 +160,7 @@ - + @@ -232,73 +232,73 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -307,96 +307,96 @@ - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + @@ -432,23 +432,14 @@ - + - - + + - - - - - - - - - - - + + @@ -500,183 +491,13 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/content/docs/resources/diagramsguideline/diagrams-guideline.svg b/content/docs/resources/diagramsguideline/diagrams-guideline.svg index 8e15bb2..5ab4805 100644 --- a/content/docs/resources/diagramsguideline/diagrams-guideline.svg +++ b/content/docs/resources/diagramsguideline/diagrams-guideline.svg @@ -1,4 +1,3 @@ - -
TAP interface
TAP interface
WIREGUARD interface
WIREGUARD interface
connection
connection
interface cross-connection
interface cross-connection
MEMIF interface
MEMIF interface
fwd-vpp-1
fwd-vpp-1
tap1
tap1
tap1
tap1
tap2
tap2
tap2
tap2
nsc-1
nsc-1
nse-1
nse-1

Domains

Use a black-dashed rectangle without filling and with round corners to represent an NSM domain on a diagram. Use the NSM logo or “Network Service Mesh” as a label

Domains...
Network Service Mesh
Network Service Mesh

Workloads

Represent workloads by suggested icons or mark it by these icons in case an item should be presented in a more detailed form with interfaces

Workloads...
NSM Endpoint
NSM Endpoint
NSM Client
NSM Client
NSM Forwarder
NSM Forwarder
NSM vl3 Endpoint
NSM vl3 Endpoint

Interfaces

Use square with rounded corners for presenting TAP interfaces, triangle with rounded corners for WIREGUARD or IPSEC interfaces, and circles for MEMIF interfaces. Use white background and grey border

Interfaces...

Connections

Use green solid line for connections, green solid arrow for controlplane NetworkService connections, green dashed line for interface cross-connection, black dotted arrow for controlplane Registry connections

Connections...

Labels

Use rounded rectangles for labels. For network interface labels use grey background and black font color. For workload names use a label with white background and black text. If network item is presented as set of its network interfaces use respective icon in left corner of label. Put label on bottom side of item

Labels...
tap1
tap1
wg2
wg2
network interface labels
network interface labe...
nsc-1
nsc-1
workload labels
workload labels
vl3-nse-1
vl3-nse-1
nsc-1
nsc-1
vl3-nse-1
vl3-nse-1
memif1
memif1
nse
nse
labels with icons
labels with icons

Colors

Use next colors for diagram items:

Colors...
00 00 00 - black (0, 0, 0)
00 00 00 - black (0, 0, 0)
FF FF FF - white (255, 255, 255)
FF FF FF - white (255, 255, 25...
66 CC 00 - green (102, 204, 0)
66 CC 00 - green (102, 204, 0)
CC CC CC - grey (204, 204, 204)
CC CC CC - grey (204, 204, 204)
FF 00 00 - red (255, 0, 0)
FF 00 00 - red (255, 0, 0)
F5 90 27 - orange (245, 144, 39)
F5 90 27 - orange (245, 144, 39)
nsc
nsc
fwd
fwd
nse
nse

Workloads with interfaces

For presenting workloads as item with interfaces, use rectangles with rounded corners, white background and grey border

Workloads with interfaces...
tap1
tap1
tap2
tap2
wg1
wg1
wg2
wg2
FWD-VPP-1
FWD-VPP-1
IPSEC interface
IPSEC interface
vl3-NSE-1
vl3-NSE-1
memif3
memif3
memif4
memif4
memif1
memif1
memif2
memif2
Network Service Mesh
Network Service Mesh
NSM domain
NSM domain
NSM domain
NSM domain
NSM domain examples:
NSM domain examples:
NSM Registry
NSM Registry
NSM Registry Proxy DNS
NSM Registry Proxy DNS
NSM manager
NSM manager
NSM manager proxy
NSM manager proxy
controplane Registry connection
controplane Registry connection
controplane NetworkService connection
controplane NetworkService connection
NSM service
NSM service
Text is not SVG - cannot display
\ No newline at end of file +
TAP interface
WIREGUARD interface
connection
interface cross-connection
MEMIF interface
fwd-vpp-1
tap1
tap1
tap2
tap2
nsc-1
nse-1

Domains

Use a black-dashed rectangle without filling and with round corners to represent an NSM domain on a diagram. Use the NSM logo or “Network Service Mesh” as a label

Network Service Mesh

Workloads

Represent workloads by suggested icons or mark it by these icons in case an item should be presented in a more detailed form with interfaces

NSM Endpoint
NSM Client
NSM Forwarder
NSM vl3 Endpoint

Interfaces

Use square with rounded corners for presenting TAP interfaces, triangle with rounded corners for WIREGUARD or IPSEC interfaces, and circles for MEMIF interfaces. Use white background and grey border

Connections

Use green solid line for connections, green solid arrow for controlplane NetworkService connections, green dashed line for interface cross-connection, black dotted arrow for controlplane Registry connections

Labels

Use rounded rectangles for labels. For network interface labels use grey background and black font color. For workload names use a label with white background and black text. If network item is presented as set of its network interfaces use respective icon in left corner of label. Put label on bottom side of item

tap1
wg2
network interface labels
nsc-1
workload labels
vl3-nse-1
nsc-1
vl3-nse-1
memif1
nse
labels with icons

Colors

Use next colors for diagram items:

00 00 00 - black (0, 0, 0)
FF FF FF - white (255, 255, 255)
66 CC 00 - green (102, 204, 0)
CC CC CC - grey (204, 204, 204)
FF 00 00 - red (255, 0, 0)
F5 90 27 - orange (245, 144, 39)
nsc
fwd
nse

Workloads with interfaces

For presenting workloads as item with interfaces, use rectangles with rounded corners, white background and grey border

tap1
tap2
wg1
wg2
FWD-VPP-1
IPSEC interface
vl3-NSE-1
memif3
memif4
memif1
memif2
Network Service Mesh
NSM domain
NSM domain
NSM domain examples:
NSM Registry
NSM Registry Proxy DNS
NSM manager
NSM manager proxy
RPC call
NSM service
label
\ No newline at end of file diff --git a/static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg b/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg similarity index 100% rename from static/img/concepts/specification/monitoring/inital-transfer-and-delete-event.svg rename to static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg From 49564600ee152a427652fb65e3a55c8fd42d0dee Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 13:02:16 +0700 Subject: [PATCH 07/13] fix one minor error Signed-off-by: NikitaSkrynnik --- .../monitoring/initial-transfer-and-delete-event.svg | 2 +- static/img/concepts/specification/monitoring/monitoring.svg | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 static/img/concepts/specification/monitoring/monitoring.svg diff --git a/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg b/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg index 3081f8f..9f92657 100644 --- a/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg +++ b/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg @@ -1,3 +1,3 @@ -
FWD
NSMgr
NSC
NSE

event: {
    Type: INITIAL_STATE_TRANSFER,
    Conns: { All NSMgr's connections }
}

3rd-party app

event: {
    Type: UPDATE,
    Conns: { New Connection }
}

event: {
    Type: DELETE,
    Conns: { Closed Connection }
}

An app makes a Connection Monitoring Request to NSMgr
NSMgr sends INITIAL_STATE_TRANSFER event with all its connections to the app
NSC connects to NSE
NSMgr sends UPDATE event with the new connection to the App
NSC closes the connection
NSMgr sends DELETE event with the closed connection to the App
Request
Close
Request
Request
Close
Close
MonitorConnections
\ No newline at end of file +
FWD
NSMgr
NSC
NSE

event: {
    Type: INITIAL_STATE_TRANSFER,
    Conns: { All NSMgr's connections }
}

3rd-party app

event: {
    Type: UPDATE,
    Conns: { New Connection }
}

event: {
    Type: DELETE,
    Conns: { Closed Connection }
}

An app makes a Connection Monitoring Request to NSMgr
NSMgr sends INITIAL_STATE_TRANSFER event with all its connections to the app
NSC connects to NSE
NSMgr sends UPDATE event with the new connection to the app
NSC closes the connection
NSMgr sends DELETE event with the closed connection to the app
Request
Close
Request
Request
Close
Close
MonitorConnections
\ No newline at end of file diff --git a/static/img/concepts/specification/monitoring/monitoring.svg b/static/img/concepts/specification/monitoring/monitoring.svg deleted file mode 100644 index 57e4df7..0000000 --- a/static/img/concepts/specification/monitoring/monitoring.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
monitors
monitors
event: { Type: Update, Conn: { State: Down } }
FWD
NSMgr
NSC
NSE
monitors
monitors
FWD
NSMgr
NSC
NSE
monitors
event: { Type: Update, Conn: { State: Down } }
\ No newline at end of file From d503e45641c7d6f2c777751b0f7f7827db31417a Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:09:43 +0700 Subject: [PATCH 08/13] change specification to specs + remove some articles + add caption for the animation Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specification.md | 14 -------------- content/docs/concepts/specs.md | 14 ++++++++++++++ .../{specification => specs}/datapath_healing.md | 0 .../concepts/{specification => specs}/healing.md | 2 +- .../{specification => specs}/monitoring.md | 5 +++-- 5 files changed, 18 insertions(+), 17 deletions(-) delete mode 100644 content/docs/concepts/specification.md create mode 100644 content/docs/concepts/specs.md rename content/docs/concepts/{specification => specs}/datapath_healing.md (100%) rename content/docs/concepts/{specification => specs}/healing.md (99%) rename content/docs/concepts/{specification => specs}/monitoring.md (94%) diff --git a/content/docs/concepts/specification.md b/content/docs/concepts/specification.md deleted file mode 100644 index 5538f14..0000000 --- a/content/docs/concepts/specification.md +++ /dev/null @@ -1,14 +0,0 @@ -+++ -title = "Specification" -description = "Concepts of NSM Capabilities" -weight = 5 -date = "2023-06-24" -+++ - -## Specification - -Since NSM can run in any environment, here is described only concepts of the available functionality. - -- [Healing](../specification/healing) -- [Datapath Healing](../specification/datapath_healing) -- [Connection Monitoring API](../specification/monitoring) \ No newline at end of file diff --git a/content/docs/concepts/specs.md b/content/docs/concepts/specs.md new file mode 100644 index 0000000..7327742 --- /dev/null +++ b/content/docs/concepts/specs.md @@ -0,0 +1,14 @@ ++++ +title = "Specs" +description = "Concepts of NSM Capabilities" +weight = 5 +date = "2023-06-24" ++++ + +## Specs + +Since NSM can run in any environment, here is described only concepts of the available functionality. + +- [Healing](../specs/healing) +- [Datapath Healing](../specs/datapath_healing) +- [Connection Monitoring API](../specs/monitoring) \ No newline at end of file diff --git a/content/docs/concepts/specification/datapath_healing.md b/content/docs/concepts/specs/datapath_healing.md similarity index 100% rename from content/docs/concepts/specification/datapath_healing.md rename to content/docs/concepts/specs/datapath_healing.md diff --git a/content/docs/concepts/specification/healing.md b/content/docs/concepts/specs/healing.md similarity index 99% rename from content/docs/concepts/specification/healing.md rename to content/docs/concepts/specs/healing.md index 2924069..41e9152 100644 --- a/content/docs/concepts/specification/healing.md +++ b/content/docs/concepts/specs/healing.md @@ -43,7 +43,7 @@ Healing is an indispensable tool for organizations leveraging NSM, enabling them ## References -- [NSM Monitoring API](../../specification/monitoring) +- [NSM Monitoring API](../../specs/monitoring) - [Code implementation](https://github.com/networkservicemesh/sdk/tree/release/v1.10.0/pkg/networkservice/common/heal) - [Runnable k8s examples](https://github.com/networkservicemesh/deployments-k8s/tree/release/v1.10.0/examples/heal) - [See other concepts](../) diff --git a/content/docs/concepts/specification/monitoring.md b/content/docs/concepts/specs/monitoring.md similarity index 94% rename from content/docs/concepts/specification/monitoring.md rename to content/docs/concepts/specs/monitoring.md index c563c14..ec2b594 100644 --- a/content/docs/concepts/specification/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -27,11 +27,12 @@ Each NSM component montors connections of the next component in the chain. If th **DELETE:** Monitor Connection Server sends event with this type when the connection has been closed. -### An example of UPDATE event +### Example of UPDATE event ![update-event](/img/concepts/specification/monitoring/update-event.svg) +*Diagram 1: an example of UPDATE event in NSM* -### An example of INITIAL_STATE_TRANSFER and DELETE event +### Example of INITIAL_STATE_TRANSFER and DELETE event ![initial-transfer-and-delete-event](/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg) From dda0ed9e4e26e13b7ffb2a31b24355a5f9bacff5 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:26:48 +0700 Subject: [PATCH 09/13] add descriptions for diagrams Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specs/monitoring.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/content/docs/concepts/specs/monitoring.md b/content/docs/concepts/specs/monitoring.md index ec2b594..d473a71 100644 --- a/content/docs/concepts/specs/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -29,13 +29,30 @@ Each NSM component montors connections of the next component in the chain. If th ### Example of UPDATE event -![update-event](/img/concepts/specification/monitoring/update-event.svg) -*Diagram 1: an example of UPDATE event in NSM* +On the **Diagram 1** you can see when NSM sends UPDATE event. It has the following steps: +1. NSM components monitor each other +2. Forwader changes the connection context of one of a connection +3. Forwarder sends UPDATE event with the changed connection to NSMgr +4. NSMgr sends UPDATE event with the changed connection to NSC -### Example of INITIAL_STATE_TRANSFER and DELETE event +![update-event](/img/concepts/specification/monitoring/update-event.svg) + + *Diagram 1: an example of UPDATE event in NSM* + +### Example of INITIAL_STATE_TRANSFER, UPDATE and DELETE event + +**Diagram 2** shows when NSM sends INITIAL_STATE_TRANSFER, UPDATE and DELETE events. Steps: +1. 3rd-party app start to monitor connections of NSMgr +2. NSMgr sends INITIAL_STATE_TRANSFER event with all its connections +3. NSC connects to NSE +4. NSMgr sends UPDATE event with the new connection established between NSC and NSE +5. NSC closes the connection +6. NSMgr sends DELETE event with the closed connection ![initial-transfer-and-delete-event](/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg) + *Diagram 2: an example of INITIAL_STATE_TRANSFER and DELETE event in NSM* + ## References - [NSM Connection Monitoring API Definition](https://github.com/networkservicemesh/api/blob/release/v1.10.0/pkg/api/networkservice/connection.proto#L79-L81) From 1816bd479d9ceb063bf94b55a016c262f4608f6f Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:29:55 +0700 Subject: [PATCH 10/13] add borders for diagrams Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specs/monitoring.md | 18 +++++++++--------- .../initial-transfer-and-delete-event.svg | 0 .../monitoring/update-event.svg | 0 3 files changed, 9 insertions(+), 9 deletions(-) rename static/img/concepts/{specification => specs}/monitoring/initial-transfer-and-delete-event.svg (100%) rename static/img/concepts/{specification => specs}/monitoring/update-event.svg (100%) diff --git a/content/docs/concepts/specs/monitoring.md b/content/docs/concepts/specs/monitoring.md index d473a71..10f1569 100644 --- a/content/docs/concepts/specs/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -29,27 +29,27 @@ Each NSM component montors connections of the next component in the chain. If th ### Example of UPDATE event -On the **Diagram 1** you can see when NSM sends UPDATE event. It has the following steps: +On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the following steps: 1. NSM components monitor each other 2. Forwader changes the connection context of one of a connection -3. Forwarder sends UPDATE event with the changed connection to NSMgr -4. NSMgr sends UPDATE event with the changed connection to NSC +3. Forwarder sends **UPDATE** event with the changed connection to NSMgr +4. NSMgr sends **UPDATE** event with the changed connection to NSC -![update-event](/img/concepts/specification/monitoring/update-event.svg) + *Diagram 1: an example of UPDATE event in NSM* ### Example of INITIAL_STATE_TRANSFER, UPDATE and DELETE event -**Diagram 2** shows when NSM sends INITIAL_STATE_TRANSFER, UPDATE and DELETE events. Steps: +**Diagram 2** shows when NSM sends **INITIAL_STATE_TRANSFER**, **UPDATE** and **DELETE** events. Steps: 1. 3rd-party app start to monitor connections of NSMgr -2. NSMgr sends INITIAL_STATE_TRANSFER event with all its connections +2. NSMgr sends **INITIAL_STATE_TRANSFER** event with all its connections 3. NSC connects to NSE -4. NSMgr sends UPDATE event with the new connection established between NSC and NSE +4. NSMgr sends **UPDATE** event with the new connection established between NSC and NSE 5. NSC closes the connection -6. NSMgr sends DELETE event with the closed connection +6. NSMgr sends **DELETE** event with the closed connection -![initial-transfer-and-delete-event](/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg) +![initial-transfer-and-delete-event](/img/concepts/specs/monitoring/initial-transfer-and-delete-event.svg) *Diagram 2: an example of INITIAL_STATE_TRANSFER and DELETE event in NSM* diff --git a/static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg b/static/img/concepts/specs/monitoring/initial-transfer-and-delete-event.svg similarity index 100% rename from static/img/concepts/specification/monitoring/initial-transfer-and-delete-event.svg rename to static/img/concepts/specs/monitoring/initial-transfer-and-delete-event.svg diff --git a/static/img/concepts/specification/monitoring/update-event.svg b/static/img/concepts/specs/monitoring/update-event.svg similarity index 100% rename from static/img/concepts/specification/monitoring/update-event.svg rename to static/img/concepts/specs/monitoring/update-event.svg From 1fee25ee49593081433725b0a70d4da80558f6b5 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:38:35 +0700 Subject: [PATCH 11/13] add more borders Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specs/monitoring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/concepts/specs/monitoring.md b/content/docs/concepts/specs/monitoring.md index 10f1569..efeeaa1 100644 --- a/content/docs/concepts/specs/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -35,7 +35,7 @@ On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the fol 3. Forwarder sends **UPDATE** event with the changed connection to NSMgr 4. NSMgr sends **UPDATE** event with the changed connection to NSC - + *Diagram 1: an example of UPDATE event in NSM* @@ -49,7 +49,7 @@ On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the fol 5. NSC closes the connection 6. NSMgr sends **DELETE** event with the closed connection -![initial-transfer-and-delete-event](/img/concepts/specs/monitoring/initial-transfer-and-delete-event.svg) + *Diagram 2: an example of INITIAL_STATE_TRANSFER and DELETE event in NSM* From 112e7d724fa8fd6278cc7868f8e611512116caf9 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:41:00 +0700 Subject: [PATCH 12/13] some fixes Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specs/monitoring.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/concepts/specs/monitoring.md b/content/docs/concepts/specs/monitoring.md index efeeaa1..21a2515 100644 --- a/content/docs/concepts/specs/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -31,11 +31,11 @@ Each NSM component montors connections of the next component in the chain. If th On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the following steps: 1. NSM components monitor each other -2. Forwader changes the connection context of one of a connection +2. Forwader changes a connection context of one of connections 3. Forwarder sends **UPDATE** event with the changed connection to NSMgr 4. NSMgr sends **UPDATE** event with the changed connection to NSC - + *Diagram 1: an example of UPDATE event in NSM* @@ -49,7 +49,7 @@ On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the fol 5. NSC closes the connection 6. NSMgr sends **DELETE** event with the closed connection - + *Diagram 2: an example of INITIAL_STATE_TRANSFER and DELETE event in NSM* From 67ef6a341a5d06094c5a4c4983a6669bb123a281 Mon Sep 17 00:00:00 2001 From: NikitaSkrynnik Date: Tue, 20 Feb 2024 17:42:48 +0700 Subject: [PATCH 13/13] change header levels Signed-off-by: NikitaSkrynnik --- content/docs/concepts/specs/monitoring.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/docs/concepts/specs/monitoring.md b/content/docs/concepts/specs/monitoring.md index 21a2515..f36f581 100644 --- a/content/docs/concepts/specs/monitoring.md +++ b/content/docs/concepts/specs/monitoring.md @@ -27,7 +27,7 @@ Each NSM component montors connections of the next component in the chain. If th **DELETE:** Monitor Connection Server sends event with this type when the connection has been closed. -### Example of UPDATE event +## Example of UPDATE event On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the following steps: 1. NSM components monitor each other @@ -35,11 +35,11 @@ On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the fol 3. Forwarder sends **UPDATE** event with the changed connection to NSMgr 4. NSMgr sends **UPDATE** event with the changed connection to NSC - + *Diagram 1: an example of UPDATE event in NSM* -### Example of INITIAL_STATE_TRANSFER, UPDATE and DELETE event +## Example of INITIAL_STATE_TRANSFER, UPDATE and DELETE event **Diagram 2** shows when NSM sends **INITIAL_STATE_TRANSFER**, **UPDATE** and **DELETE** events. Steps: 1. 3rd-party app start to monitor connections of NSMgr @@ -49,9 +49,9 @@ On the **Diagram 1** you can see when NSM sends **UPDATE** event. It has the fol 5. NSC closes the connection 6. NSMgr sends **DELETE** event with the closed connection - + - *Diagram 2: an example of INITIAL_STATE_TRANSFER and DELETE event in NSM* + *Diagram 2: an example of INITIAL_STATE_TRANSFER, UPDATE and DELETE event in NSM* ## References