From 1f8a888261b47e3f34deb48a1ec7b60d81c5db24 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Tue, 15 Jun 2021 23:53:03 +0200 Subject: [PATCH] common: gb-ns2: add chapter Gb/NS maintenance Add chapter to describe common maintenance Change-Id: I5571001a127c933397a4bc26e85410288d50fc2f --- common/chapters/gb-ns2-maintenance.adoc | 115 ++++++++++++++++++ common/chapters/gb-ns2-nsvc-states-alive.dot | 6 + .../gb-ns2-nsvc-states-reset-block.dot | 9 ++ 3 files changed, 130 insertions(+) create mode 100644 common/chapters/gb-ns2-maintenance.adoc create mode 100644 common/chapters/gb-ns2-nsvc-states-alive.dot create mode 100644 common/chapters/gb-ns2-nsvc-states-reset-block.dot diff --git a/common/chapters/gb-ns2-maintenance.adoc b/common/chapters/gb-ns2-maintenance.adoc new file mode 100644 index 0000000..ea99532 --- /dev/null +++ b/common/chapters/gb-ns2-maintenance.adoc @@ -0,0 +1,115 @@ +=== Gb/NS maintenance + +This section describes common maintenance procedures. + +[[ns2-nse-states]] +==== NSE states + +A NSE can have the following states: + +.NSE states +* ALIVE +* DEAD + +For FR, IPA: The NSE is ALIVE if there is at least one NSVC in state UNBLOCKED. +For IP-SNS/UDP: The NSE is ALIVE if there is at least one NSVC ALIVE and the sum of all ALIVE NSVCs signalling weights > 0 and data weights > 0. + +The state of the NSE is shown by vty. + +.show ns +---- +GbProxy# show ns nsei 1234 +NSEI 01234: UDP, DEAD <1> + FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' + Log-Level: 'DEBUG', State: 'BSS_SIZE' + Timer: 1 + Maximum number of remote NS-VCs: 8192, IPv4 Endpoints: 8192, IPv6 Endpoints: 8192 + 1 NS-VC: + NSVCI none: DISABLED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.1]:22000 +---- +<1> NSE state + +==== NSVC states + +A NSVC can have the following states: + +.nsvc states +[options="header"] +|========================================================= +| State | transport UNITDATA | Description + +| DISABLED | No | Either the transport layer is unavailable (FR) or this NSVC is currently used by IP-SNS dynamic configuration. +| RESET | No | Sending out RESET PDU and awaiting data. +| BLOCKED | No* | The NSVC has been BLOCKED. * see 3GPP TS 48.016 ยง 7.2 exception +| UNBLOCKED/ALIVE | Yes | The NSVC transport UNITDATA. +| RECOVERING | No | The NSVC test procedure timed out. NSVC type is a IP-SNS which don't use RESET/BLOCK/UNBLOCK. + +|========================================================= + +[[fig-nsvc-states-reset-block]] +.Simplified state diagram for RESET BLOCK UNBLOCK NSVCs +[graphviz] +---- +include::gb-ns2-nsvc-states-reset-block.dot[] +---- + +[[fig-nsvc-states-alive]] +.Simplified state diagram for IP-SNS/UDP +[graphviz] +---- +include::gb-ns2-nsvc-states-alive.dot[] +---- + +==== Show information of a specific NSE + +The NSE 1234 has been configured for as BSS with IP-SNS configuration. + +.show ns on a dynamic configured IP-SNS NSE +---- +GbProxy# show ns nsei 1234 +NSEI 01234: UDP, DEAD <1> + FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' + Log-Level: 'DEBUG', State: 'BSS_SIZE' <2> + Timer: 1 + Maximum number of remote NS-VCs: 8192, IPv4 Endpoints: 8192, IPv6 Endpoints: 8192 + 1 NS-VC: + NSVCI none: DISABLED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.1]:22000 +---- +<1> A UDP NSE. A NSE can be ALIVE or DEAD +<2> The SNS state. CONFIGURED and LOCAL_PROCEDURE are ALIVE states + +For description of NSE states see <>. + +.show ns on a frame relay NSE +---- +OsmoNSdummy# show ns nsei 02001 +NSEI 02001: FR, ALIVE <1> + 4 NS-VC: + NSVCI 00001: DISABLED PERSIST data_weight=1 sig_weight=1 fr)netif: hdlcnet1 dlci: 16 <2> + NSVCI 00002: DISABLED PERSIST data_weight=1 sig_weight=1 fr)netif: hdlcnet2 dlci: 17 <3> + NSVCI 00003: DISABLED PERSIST <4> data_weight=1 sig_weight=1 fr)netif: hdlcnet3 dlci: 18 + NSVCI 00004: DISABLED PERSIST data_weight=1 sig_weight=1 fr)netif: hdlcnet4 dlci: 19 +---- +<1> A FR NSE. A NSE can be ALIVE or DEAD +<2> An unblocked NS-VC will be used for data and signalling. data and signalling weight are only relevant for UDP NSVC. +<3> NSVC is still blocked. +<4> A PERSIST NSVC is a configured via VTY. + +==== Blocking a NSVC + +.how to block a single NSVC +---- +OsmoNSdummy# show ns nsei 01234 +NSEI 01234: UDP, ALIVE since 0d 0h 41m 6s + 2 NS-VC: + NSVCI 01234: UNBLOCKED PERSIST udp)[127.0.0.1]:23000\<1234>[127.0.0.1]:22000 ALIVE since 0d 0h 2m 36s + NSVCI 01235: UNBLOCKED PERSIST udp)[127.0.0.1]:23001\<1235>[127.0.0.1]:22001 ALIVE since 0d 0h 41m 6s + +OsmoNSdummy# nsvc 1234 block +The NS-VC 01234 will be blocked. +OsmoNSdummy# show ns nsei 01234 +NSEI 01234: UDP, ALIVE since 0d 0h 42m 7s + 2 NS-VC: + NSVCI 01234: BLOCKED PERSIST udp)[127.0.0.1]:23000\<1234>[127.0.0.1]:22000 DEAD since 0d 0h 3m 37s + NSVCI 01235: UNBLOCKED PERSIST udp)[127.0.0.1]:23001\<1235>[127.0.0.1]:22001 ALIVE since 0d 0h 42m 7s +---- diff --git a/common/chapters/gb-ns2-nsvc-states-alive.dot b/common/chapters/gb-ns2-nsvc-states-alive.dot new file mode 100644 index 0000000..7e919c1 --- /dev/null +++ b/common/chapters/gb-ns2-nsvc-states-alive.dot @@ -0,0 +1,6 @@ + +digraph G { + DISABLED -> ALIVE; + ALIVE -> RECOVERING [label="test procedure timeout"]; + RECOVERING -> ALIVE [label="test procedure success"]; +} diff --git a/common/chapters/gb-ns2-nsvc-states-reset-block.dot b/common/chapters/gb-ns2-nsvc-states-reset-block.dot new file mode 100644 index 0000000..b1825d5 --- /dev/null +++ b/common/chapters/gb-ns2-nsvc-states-reset-block.dot @@ -0,0 +1,9 @@ +digraph G { + DISABLED -> RESET [label="transport layer available"]; + RESET -> BLOCKED [label="reset ack"]; + BLOCKED -> UNBLOCKED [label="unblock"]; + UNBLOCKED -> BLOCKED [label="block"]; + BLOCKED -> RESET [label="test procedure timeout"]; + UNBLOCKED -> RESET [label="test procedure timeout"]; +} +