fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42368?usp=email )
Change subject: doc/manuals: merge doc/osmo-s1gw-cli.md ......................................................................
doc/manuals: merge doc/osmo-s1gw-cli.md
Change-Id: Ic2556f6add9c6a24f6da03f4388d7f86dde0c5dc Related: OS#6671 --- M README.md A doc/manuals/chapters/cli.adoc M doc/manuals/chapters/configuration.adoc M doc/manuals/chapters/rest.adoc M doc/manuals/chapters/running.adoc M doc/manuals/osmo-s1gw-usermanual.adoc D doc/osmo-s1gw-cli.md 7 files changed, 356 insertions(+), 540 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw refs/changes/68/42368/1
diff --git a/README.md b/README.md index d6a5299..a999f38 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,9 @@ Interactive CLI ---------------
-OsmoS1GW comes with [`osmo-s1gw-cli.py`](contrib/osmo-s1gw-cli.py) - an interactive -shell based on Python's **cmd2** library. This script serves as an alternative to the -traditional telnet/VTY interface found in many Osmocom projects. For more details, -see the respective [documentation](doc/osmo-s1gw-cli.md). +OsmoS1GW comes with [`osmo-s1gw-cli.py`](contrib/osmo-s1gw-cli.py) — an interactive +shell based on Python's **cmd2** library. It serves the same purpose as the +telnet/VTY interface found in many other Osmocom projects, providing tab-completion, +output filtering, and redirection as a convenient alternative to raw HTTP requests. +For full usage and command reference, see the CLI chapter in the user manual +([`doc/manuals/chapters/cli.adoc`](doc/manuals/chapters/cli.adoc)). diff --git a/doc/manuals/chapters/cli.adoc b/doc/manuals/chapters/cli.adoc new file mode 100644 index 0000000..b1562c0 --- /dev/null +++ b/doc/manuals/chapters/cli.adoc @@ -0,0 +1,341 @@ +[[cli]] +== Interactive CLI (`osmo-s1gw-cli`) + +`osmo-s1gw-cli` is an interactive command-line shell built on Python's +https://cmd2.readthedocs.io/%5Bcmd2] library. It provides a convenient +alternative to issuing raw HTTP requests, with tab-completion, filtering +(`CMD | grep ...`), and output redirection (`CMD > FILE`). + +[[cli_installation]] +=== Installation + +`osmo-s1gw-cli` requires the following Python packages: + +* https://pypi.org/project/cmd2/%5Bcmd2] +* https://pypi.org/project/tabulate/%5Btabulate] + +Install via pip: + +---- +pip install cmd2 tabulate +---- + +Or via the system package manager (Debian/Ubuntu): + +---- +sudo apt install python3-cmd2 python3-tabulate +---- + +After `make install` (see <<running_building_installation>>), the CLI is available +system-wide as `osmo-s1gw-cli`. + +[[cli_usage]] +=== Usage + +---- +osmo-s1gw-cli [-h] [-v] [-p PORT] [HOST] + + HOST OsmoS1GW REST host/address (default: localhost) + -p REST port (default: 8080) + -v Enable verbose/debug logging +---- + +Once inside the shell, available commands can be listed with `help -v` +and per-command help is accessible with `help <command>`. In addition +to tab-completion, output can be filtered (`CMD | grep ...`) or +redirected to a file (`CMD > FILE`). + +[[cli_commands]] +=== Commands + +==== `fetch_openapi_spec` + +Fetch the OpenAPI specification (JSON) from the server and display it. + +==== `metrics_list` + +Get a list of metrics, optionally filtered by type and/or name path. + +---- +Usage: metrics_list [-h] [-t {all,counter,gauge}] [PATH] + +positional arguments: + PATH Metric path prefix (dot-separated) + +optional arguments: + -t, --type {all,counter,gauge} + Metric type (default: all) +---- + +Example: obtaining PFCP association metrics. + +---- +OsmoS1GW# metrics_list pfcp.assoc +| Name | Type | Value | +|-------------------------------|---------|---------| +| pfcp.assoc_setup_req.timeout | counter | 21 | +| pfcp.assoc_setup_req.tx | counter | 22 | +| pfcp.assoc_setup_resp.rx | counter | 0 | +| pfcp.assoc_setup_resp.rx_ack | counter | 0 | +| pfcp.assoc_setup_resp.rx_nack | counter | 0 | +| pfcp.associated | gauge | 0 | +---- + +Example: listing all gauge metrics. + +---- +OsmoS1GW# metrics_list --type gauge +| Name | Type | Value | +|-------------------------------|--------|---------| +| pfcp.associated | gauge | 0 | +| s1ap.enb.num_sctp_connections | gauge | 0 | +---- + +==== `pfcp_assoc_state` + +Display the current PFCP association state. + +---- +OsmoS1GW# pfcp_assoc_state +| Parameter | Value | +|---------------------------|------------| +| State | connected | +| Local address | 127.0.3.1 | +| Remote address | 127.0.3.10 | +| Local Recovery TimeStamp | 3967211233 | +| Remote Recovery TimeStamp | 3965211123 | +---- + +==== `pfcp_heartbeat` + +Send a PFCP Heartbeat Request to the UPF and display the result. + +---- +OsmoS1GW# pfcp_heartbeat +Heartbeat succeeded + +OsmoS1GW# pfcp_heartbeat +Heartbeat failed: timeout +---- + +==== `mme_list` + +List the MMEs currently registered in the pool. + +---- +Usage: mme_list [-h] [-S {none,name,laddr,raddr}] [--reverse] + +optional arguments: + -S, --sort-by {none,name,laddr,raddr} + Sort by (default: none) + --reverse Reverse sort order +---- + +Example: + +---- +OsmoS1GW# mme_list +| Name | Local address | Remote address/port | +|--------|-----------------|-----------------------| +| mme0 | :: | 127.0.2.10:36412 | +| mme1 | :: | 127.0.2.20:36412 | +| mme2 | :: | 127.0.2.30:36412 | +---- + +==== `mme_add` + +Add an MME to the pool. + +---- +Usage: mme_add -N NAME -ra RADDR [-la LADDR] [-rp RPORT] + +required arguments: + -N, --name NAME MME name (example: mme0) + -ra, --raddr RADDR Remote address (example: 192.168.1.101) + +optional arguments: + -la, --laddr LADDR Local address (default: ::) + -rp, --rport RPORT Remote port (default: 36412) +---- + +Example: + +---- +OsmoS1GW# mme_add --name mme42 --raddr 192.168.1.101 +---- + +==== `mme_info` + +Show configuration details for a specific MME, selected by name. + +---- +Usage: mme_info [-h] -N NAME + +MME ID: + -N, --name NAME MME name (example: mme0) +---- + +Example: + +---- +OsmoS1GW# mme_info --name mme0 +| Parameter | Value | +|---------------------|------------------| +| Name | mme0 | +| Local address | :: | +| Remote address/port | 127.0.2.10:36412 | +---- + +==== `mme_delete` + +Remove an MME from the pool, selected by name. + +---- +Usage: mme_delete [-h] -N NAME + +MME ID: + -N, --name NAME MME name (example: mme0) +---- + +Example: + +---- +OsmoS1GW# mme_delete --name mme0 +---- + +==== `enb_list` + +List all currently connected eNBs. + +---- +Usage: enb_list [-h] [-S {handle,pid,state,genb_id,uptime}] [--reverse] + +optional arguments: + -S, --sort-by {handle,pid,state,genb_id,uptime} + Sort by (default: handle) + --reverse Reverse sort order +---- + +Example: + +---- +OsmoS1GW# enb_list +| handle | PID | Global-eNB-ID | State | eNB addr:port (aid) | MME addr:port (aid) | Uptime | E-RABs | +|----------|-----------|---------------|-----------|-------------------------|-------------------------|----------|----------| +| 0 | <0.699.0> | 001-01-0 | connected | 127.0.1.10:56767 (5706) | 127.0.2.10:36412 (5707) | 418 | 0 | +| 1 | <0.701.0> | 001-01-1 | connected | 127.0.1.10:54140 (5710) | 127.0.2.10:36412 (5711) | 33 | 3 | +| 2 | <0.703.0> | 001-01-2 | connected | 127.0.1.10:34076 (5714) | 127.0.2.10:36412 (5715) | 3600 | 20 | +---- + +==== `enb_info` + +Show details for a specific eNB. The eNB can be identified by any of +the following selectors: + +---- +Usage: enb_info [-h] (-H HANDLE | -P PID | -G GENBID | + --enb-sctp-aid AID | --mme-sctp-aid AID) + +eNB ID: + -H, --handle HANDLE eNB handle (example: 0) + -P, --pid PID eNB process ID (example: 0.33.1) + -G, --genbid GENBID Global-eNB-ID (example: 262-42-1337) + --enb-sctp-aid AID eNB SCTP association identifier + --mme-sctp-aid AID MME SCTP association identifier +---- + +Example: selecting by handle. + +---- +OsmoS1GW# enb_info -H 8 +| Parameter | Value | +|---------------------|-------------------------| +| eNB handle | 8 | +| PID | <0.715.0> | +| Global-eNB-ID | 001-01-8 | +| State | connected | +| eNB addr:port (aid) | 127.0.1.10:57362 (5734) | +| MME addr:port (aid) | 127.0.2.10:36412 (5745) | +| Uptime (s) | 521 | +| # E-RABs | 99 | +---- + +==== `enb_delete` + +Force-disconnect an eNB, terminating its SCTP connection. The same +selectors as `enb_info` are accepted. + +==== `enb_erab_list` + +List the E-RABs associated with a specific eNB. + +---- +Usage: enb_erab_list [-h] [-f] [-S {pid,state,mme_ue_id,erab_id}] + [--reverse] + (-H HANDLE | -P PID | -G GENBID | + --enb-sctp-aid AID | --mme-sctp-aid AID) + +optional arguments: + -f, --full Print full table including PFCP and GTP-U F-TEID columns + -S, --sort-by {pid,state,mme_ue_id,erab_id} + Sort by (default: pid) + --reverse Reverse sort order +---- + +Example: + +---- +OsmoS1GW# enb_erab_list -G 001-01-0 +| PID | MME-UE-S1AP-ID | E-RAB-ID | State | +|-----------|------------------|------------|------------| +| <0.707.0> | 4242 | 0 | erab_setup | +| <0.708.0> | 4242 | 1 | erab_setup | +| <0.709.0> | 4242 | 2 | erab_setup | +---- + +==== `erab_list` + +List all E-RABs across all connected eNBs. Accepts the same `-f`, +`--sort-by`, and `--reverse` options as `enb_erab_list`. + +==== `erab_info` + +Show details for a specific E-RAB, identified by its process ID. + +---- +Usage: erab_info -P PID + +required arguments: + -P, --pid PID E-RAB process ID (example: 0.33.1) +---- + +Example: + +---- +OsmoS1GW# erab_info -P 0.714.0 +| Parameter | Value | +|----------------|----------------------| +| PID | <0.714.0> | +| MME-UE-S1AP-ID | 4242 | +| E-RAB-ID | 1 | +| State | erab_setup | +| SEID (local) | 0x0000000000000002 | +| SEID (remote) | 0x5454434e2d330001 | +| U2C F-TEID | 0x00010001@127.0.0.1 | +| C2U F-TEID | 0x01010001@127.0.1.1 | +| A2U F-TEID | 0x02020001@127.0.2.2 | +| U2A F-TEID | 0x00020001@127.0.0.2 | +---- + +==== `erab_delete` + +Terminate an E-RAB FSM process, triggering PFCP Session Deletion. + +---- +Usage: erab_delete -P PID + +required arguments: + -P, --pid PID E-RAB process ID (example: 0.33.1) +---- + +// vim:set ts=4 sw=4 et: diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index dc738a4..1a4d284 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -207,6 +207,9 @@ Whether to serve the Swagger UI at `http://host:rest_srv_port/swagger%60. Default: `true`.
+For the full REST API reference see <<rest>>. For the interactive CLI +tool that wraps the REST API see <<cli>>. + [[config_kernel]] === `kernel` — Logging
diff --git a/doc/manuals/chapters/rest.adoc b/doc/manuals/chapters/rest.adoc index e1fb324..938421d 100644 --- a/doc/manuals/chapters/rest.adoc +++ b/doc/manuals/chapters/rest.adoc @@ -4,7 +4,9 @@ OsmoS1GW exposes an HTTP REST API for monitoring and management. The API follows the OpenAPI 3.0 specification; the full machine-readable spec is served at `GET /openapi.json`. A Swagger UI is available at -`/swagger` when enabled (see <<config_rest>>). +`/swagger` when enabled (see <<config_rest>>). An interactive CLI tool +(`osmo-s1gw-cli`) is also available as a convenient alternative to +issuing raw HTTP requests — see <<cli>>.
By default the REST server listens on port `8080`. No authentication is implemented; access control should be enforced at the network level if @@ -285,48 +287,4 @@ live connections.
Returns HTTP 200 on success, HTTP 404 if no matching E-RAB is found. - -[[rest_cli]] -=== Interactive CLI (`osmo-s1gw-cli`) - -`osmo-s1gw-cli` is an interactive command-line shell built on Python's -https://cmd2.readthedocs.io/%5Bcmd2] library. It provides a convenient -alternative to issuing raw HTTP requests, with tab-completion, filtering -(`CMD | grep ...`), and output redirection (`CMD > FILE`). - -After installation, the CLI is available as `osmo-s1gw-cli`. It -communicates with OsmoS1GW via the REST interface. - ----- -osmo-s1gw-cli [-h] [-v] [-p PORT] [HOST] - - HOST OsmoS1GW REST host/address (default: localhost) - -p REST port (default: 8080) - -v Enable verbose/debug logging ----- - -Available commands can be listed within the shell using `help -v`, and -per-command help is available with `help <command>`. The following -commands are supported: - -[options="header",cols="30,70"] -|=== -| Command | Description -| `fetch_openapi_spec` | Fetch and display the OpenAPI specification -| `metrics_list` | List metrics, optionally filtered by type and/or name path -| `pfcp_assoc_state` | Display the PFCP association state -| `pfcp_heartbeat` | Send a PFCP Heartbeat Request -| `mme_list` | List registered MMEs -| `mme_add` | Add an MME to the pool -| `mme_info` | Show details for a specific MME -| `mme_delete` | Remove an MME from the pool -| `enb_list` | List connected eNBs -| `enb_info` | Show details for a specific eNB -| `enb_delete` | Force-disconnect an eNB -| `enb_erab_list` | List E-RABs for a specific eNB -| `erab_list` | List all E-RABs across all eNBs -| `erab_info` | Show details for a specific E-RAB -| `erab_delete` | Terminate an E-RAB FSM process -|=== - // vim:set ts=4 sw=4 et: diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc index 743456f..7f06ab3 100644 --- a/doc/manuals/chapters/running.adoc +++ b/doc/manuals/chapters/running.adoc @@ -114,7 +114,7 @@ * Installs the `osmo-s1gw.sh` bootstrap script (see <<running_bootstrap_script>>) as `$(BINDIR)/osmo-s1gw` (default: `/usr/bin/osmo-s1gw`). -* Installs the `osmo-s1gw-cli.py` management CLI as +* Installs the `osmo-s1gw-cli.py` management CLI (see <<cli>>) as `$(BINDIR)/osmo-s1gw-cli` (default: `/usr/bin/osmo-s1gw-cli`). * Installs the example `config/sys.config` as `$(CONFDIR)/osmo-s1gw.config` (default: `/etc/osmocom/osmo-s1gw.config`). diff --git a/doc/manuals/osmo-s1gw-usermanual.adoc b/doc/manuals/osmo-s1gw-usermanual.adoc index c565911..03003d1 100644 --- a/doc/manuals/osmo-s1gw-usermanual.adoc +++ b/doc/manuals/osmo-s1gw-usermanual.adoc @@ -19,6 +19,8 @@
include::{srcdir}/chapters/gtpu_kpi.adoc[]
+include::{srcdir}/chapters/cli.adoc[] + include::{srcdir}/chapters/rest.adoc[]
include::{commondir}/chapters/glossary.adoc[] diff --git a/doc/osmo-s1gw-cli.md b/doc/osmo-s1gw-cli.md deleted file mode 100644 index d50659e..0000000 --- a/doc/osmo-s1gw-cli.md +++ /dev/null @@ -1,490 +0,0 @@ -Interactive CLI -=============== - -[`osmo-s1gw-cli.py`](../contrib/osmo-s1gw-cli.py) is an interactive shell based on -Python's **cmd2** library. This script serves as an alternative to the traditional -telnet/VTY interface found in many Osmocom projects. It communicates with the main -process via the **REST interface**, allowing users to inspect and interact with -OsmoS1GW in a familiar CLI style. - -Installation ------------- - -`osmo-s1gw-cli.py` has the following dependencies: - -* [`cmd2`](https://pypi.org/project/cmd2/) -* [`tabulate`](https://pypi.org/project/tabulate/) - -You can install them using **pip**: - -```bash -pip install cmd2 tabulate -``` - -Or using your system's package manager (Debian/Ubuntu example): - -```bash -sudo apt install python3-cmd2 python3-tabulate -``` - -Usage ------ - -By default, `osmo-s1gw-cli.py` is sending HTTP requests to `http://localhost:8080%60. -The hostname/address and port can be specified using command-line arguments: - -```bash -./contrib/osmo-s1gw-cli.py --help -usage: osmo-s1gw-cli [-h] [-v] [-p PORT] [HOST] - -Interactive CLI for OsmoS1GW - -positional arguments: - HOST OsmoS1GW REST host/address (default: localhost) - -options: - -h, --help show this help message and exit - -v, --verbose print debug logging - -p, --port PORT OsmoS1GW REST port (default: 8080) -``` - -Available commands can be listed by entering `help -v`: - -``` -Welcome to Interactive CLI for OsmoS1GW! -OsmoS1GW# help -v -... -``` - -Each command has its own detailed help, accessible with `help CMD`: - -``` -OsmoS1GW# help quit -Usage: quit [-h] - -Exit this application - -optional arguments: - -h, --help show this help message and exit -``` - -In addition to tab-completion, you can filter (`CMD | grep ...`) and/or -redirect (`CMD > FILE`) output of a command to a file. For more details -on the available features and usage patterns, please refer to the -[cmd2 documentation](https://cmd2.readthedocs.io/en/stable/features/). - -Commands --------- - -Below is a list of currently supported commands and some examples. - -### `fetch_openapi_spec` - -Fetch the OpenAPI specification (JSON), dump as text. - -### `metrics_list` - -Get a list of metrics. - -``` -Usage: metrics_list [-h] [-t {all, counter, gauge}] [PATH] - -Get a list of metrics - -positional arguments: - PATH Metric path - -optional arguments: - -h, --help show this help message and exit - -t, --type {all, counter, gauge} - Metric type (default: all) -``` - -Example: Obtaining PFCP association related metrics. - -``` -OsmoS1GW# metrics_list pfcp.assoc -| Name | Type | Value | -|-------------------------------|---------|---------| -| pfcp.assoc_setup_req.timeout | counter | 21 | -| pfcp.assoc_setup_req.tx | counter | 22 | -| pfcp.assoc_setup_resp.rx | counter | 0 | -| pfcp.assoc_setup_resp.rx_ack | counter | 0 | -| pfcp.assoc_setup_resp.rx_nack | counter | 0 | -| pfcp.associated | gauge | 0 | -``` - -Example: Obtaining all gauges. - -``` -OsmoS1GW# metrics_list --type gauge -| Name | Type | Value | -|----------------------------------|--------|---------| -| pfcp.associated | gauge | 0 | -| s1ap.enb.num_sctp_connections | gauge | 0 | -| s1ap.proxy.uplink_packets_queued | gauge | 0 | -``` - -### `pfcp_assoc_state` - -Get the PFCP association state. - -``` -| Parameter | Value | -|---------------------------|------------| -| State | connected | -| Local address | 127.0.3.1 | -| Remote address | 127.0.3.10 | -| Local Recovery TimeStamp | 3967211233 | -| Remote Recovery TimeStamp | 3965211123 | -``` - -### `pfcp_heartbeat` - -Send a PFCP Heartbeat Request. - -``` -OsmoS1GW# pfcp_heartbeat -Heartbeat succeeded - -OsmoS1GW# pfcp_heartbeat -Heartbeat failed: timeout -``` - -### `mme_list` - -Get a list of registered MMEs. - -``` -Usage: mme_list [-h] [-S {none, name, laddr, raddr}] [--reverse] - -Get a list of registered MMEs - -optional arguments: - -h, --help show this help message and exit - -Sorting options: - -S, --sort-by {none, name, laddr, raddr} - Sort by (default: none) - --reverse Reverse order (default: False) -``` - -Example: getting a list of MMEs (not sorted by default). - -``` -OsmoS1GW# mme_list -| Name | Local address | Remote address/port | -|--------|-----------------|-----------------------| -| mme0 | :: | 127.0.2.10:36412 | -| mme1 | :: | 127.0.2.20:36412 | -| mme2 | :: | 127.0.2.30:36412 | -``` - -### `mme_add` - -Add an MME to the pool. - -``` -Usage: mme_add -N NAME -ra RADDR [-h] [-la LADDR] [-rp RPORT] - -Add an MME to the pool - -required arguments: - -N, --name NAME MME name (example: mme0) - -ra, --raddr RADDR Remote address (example: 192.168.1.101) - -optional arguments: - -h, --help show this help message and exit - -la, --laddr LADDR Local address (default: ::) - -rp, --rport RPORT Remote port (default: 36412) -``` - -Example: adding an MME with remote address "192.168.1.101". - -``` -OsmoS1GW# mme_add --name mme42 --raddr 192.168.1.101 -``` - -### `mme_info` - -Get information about a specific MME. - -``` -Usage: mme_info [-h] -N NAME - -Get information about a specific MME - -optional arguments: - -h, --help show this help message and exit - -MME ID: - -N, --name NAME MME name (example: mme0) -``` - -Example: getting information about an MME with name "mme0". - -``` -OsmoS1GW# mme_info --name mme0 -| Parameter | Value | -|---------------------|------------------| -| Name | mme0 | -| Local address | :: | -| Remote address/port | 127.0.2.10:36412 | -``` - -### `mme_delete` - -Delete an MME from the pool. - -``` -Usage: mme_delete [-h] -N NAME - -Delete an MME from the pool - -optional arguments: - -h, --help show this help message and exit - -MME ID: - -N, --name NAME MME name (example: mme0) -``` - -Example: deleting an MME with name "mme0". - -``` -OsmoS1GW# mme_delete --name mme0 -``` - -### `enb_list` - -Get a list of eNB connections. - -``` -Usage: enb_list [-h] - [-S {handle, pid, state, genb_id, uptime}] [--reverse] - -Get a list of eNB connections - -optional arguments: - -h, --help show this help message and exit - -Sorting options: - -S, --sort-by {handle, pid, state, genb_id, uptime} - Sort by (default: handle) - --reverse Reverse order (default: False) -``` - -Example: getting a list of eNBs (by default, sorted by handle). - -``` -OsmoS1GW# enb_list -| eNB handle | PID | Global-eNB-ID | State | eNB addr:port (aid) | MME addr:port (aid) | Uptime (s) | # E-RABs | -|--------------|-----------|-----------------|-----------|-------------------------|-------------------------|--------------|------------| -| 0 | <0.699.0> | 001-01-0 | connected | 127.0.1.10:56767 (5706) | 127.0.2.10:36412 (5707) | 418 | 0 | -| 1 | <0.701.0> | 001-01-1 | connected | 127.0.1.10:54140 (5710) | 127.0.2.10:36412 (5711) | 33 | 3 | -| 2 | <0.703.0> | 001-01-2 | connected | 127.0.1.10:34076 (5714) | 127.0.2.10:36412 (5715) | 3600 | 20 | -| 3 | <0.705.0> | 001-01-3 | connected | 127.0.1.10:46501 (5718) | 127.0.2.10:36412 (5719) | 869 | 13 | -| 4 | <0.707.0> | 001-01-4 | connected | 127.0.1.10:35610 (5722) | 127.0.2.10:36412 (5723) | 18 | 0 | -| 5 | <0.709.0> | 001-01-5 | connected | 127.0.1.10:37610 (5726) | 127.0.2.10:36412 (5727) | 933 | 129 | -| 6 | <0.711.0> | 001-01-6 | connected | 127.0.1.10:58447 (5730) | 127.0.2.10:36412 (5741) | 535 | 6 | -| 7 | <0.713.0> | 001-01-7 | connected | 127.0.1.10:35842 (5732) | 127.0.2.10:36412 (5743) | 736 | 8 | -| 8 | <0.715.0> | 001-01-8 | connected | 127.0.1.10:57362 (5734) | 127.0.2.10:36412 (5745) | 521 | 99 | -| 9 | <0.717.0> | 001-01-9 | connected | 127.0.1.10:50955 (5736) | 127.0.2.10:36412 (5747) | 33 | 1 | -``` - -### `enb_info` - -Get information about a specific eNB. - -``` -Usage: enb_info [-h] (-H HANDLE | -P PID | -G GENBID | - --enb-sctp-aid AID | - --mme-sctp-aid AID) - -Get information about a specific eNB - -optional arguments: - -h, --help show this help message and exit - -eNB ID: - -H, --handle HANDLE eNB handle (example: 0) - -P, --pid PID eNB process ID (example: 0.33.1) - -G, --genbid GENBID Global-eNB-ID (example: 262-42-1337) - --enb-sctp-aid AID eNB association identifier (example: 42) - --mme-sctp-aid AID MME association identifier (example: 42) -``` - -Example: Getting eNB information using a handle. - -``` -OsmoS1GW# enb_info -H8 -| Parameter | Value | -|---------------------|-------------------------| -| eNB handle | 8 | -| PID | <0.715.0> | -| Global-eNB-ID | 001-01-8 | -| State | connected | -| eNB addr:port (aid) | 127.0.1.10:57362 (5734) | -| MME addr:port (aid) | 127.0.2.10:36412 (5745) | -| Uptime (s) | 521 | -| # E-RABs | 99 | -``` - -Example: Getting eNB information using a pricess ID. - -``` -OsmoS1GW# enb_info --pid 0.715.0 -| Parameter | Value | -|---------------------|-------------------------| -| eNB handle | 8 | -| PID | <0.715.0> | -| Global-eNB-ID | 001-01-8 | -| State | connected | -| eNB addr:port (aid) | 127.0.1.10:57362 (5734) | -| MME addr:port (aid) | 127.0.2.10:36412 (5745) | -| Uptime (s) | 521 | -| # E-RABs | 99 | -``` - -Example: Unsuccessful outcome for an unknown/invalid Global-eNB-ID. - -``` -OsmoS1GW# enb_info -G 001-01-42 -EXCEPTION of type 'HTTPError' occurred with message: HTTP Error 404: Not Found -To enable full traceback, run the following command: 'set debug true' - -OsmoS1GW# enb_info -G 123456 -EXCEPTION of type 'HTTPError' occurred with message: HTTP Error 400: Bad Request -To enable full traceback, run the following command: 'set debug true' -``` - -### `enb_delete` - -Force disconnect an eNB. - -``` -Usage: enb_delete [-h] (-H HANDLE | -P PID | -G GENBID | --enb-sctp-aid AID | --mme-sctp-aid AID) - -Force disconnect an eNB - -optional arguments: - -h, --help show this help message and exit - -eNB ID: - -H, --handle HANDLE eNB handle (example: 0) - -P, --pid PID eNB process ID (example: 0.33.1) - -G, --genbid GENBID Global-eNB-ID (example: 262-42-1337) - --enb-sctp-aid AID eNB association identifier (example: 42) - --mme-sctp-aid AID MME association identifier (example: 42) -``` - -### `enb_erab_list` - -Get E-RAB list for a specific eNB. - -``` -Usage: enb_erab_list [-h] [-f] - [-S {pid, state, mme_ue_id, erab_id}] [--reverse] - (-H HANDLE | -P PID | -G GENBID | --enb-sctp-aid AID | --mme-sctp-aid AID) - -Get E-RAB list for a specific eNB - -optional arguments: - -h, --help show this help message and exit - -f, --full Print full table (more columns) - -Sorting options: - -S, --sort-by {pid, state, mme_ue_id, erab_id} - Sort by (default: pid) - --reverse Reverse order (default: False) - -eNB ID: - -H, --handle HANDLE eNB handle (example: 0) - -P, --pid PID eNB process ID (example: 0.33.1) - -G, --genbid GENBID Global-eNB-ID (example: 262-42-1337) - --enb-sctp-aid AID eNB association identifier (example: 42) - --mme-sctp-aid AID MME association identifier (example: 42) -``` - -Example: Obtaining E-RAB list for an eNB with the given Global-eNB-ID. - -``` -OsmoS1GW# enb_erab_list -G 001-01-0 -| PID | MME-UE-S1AP-ID | E-RAB-ID | State | -|-----------|------------------|------------|------------| -| <0.707.0> | 4242 | 0 | erab_setup | -| <0.708.0> | 4242 | 1 | erab_setup | -| <0.709.0> | 4242 | 2 | erab_setup | -``` - -### `erab_list` - -Get E-RAB list for all eNBs. - -``` -Usage: erab_list [-h] [-f] - [-S {pid, state, mme_ue_id, erab_id}] [--reverse] - -Get E-RAB list for all eNBs - -optional arguments: - -h, --help show this help message and exit - -f, --full Print full table (more columns) - -Sorting options: - -S, --sort-by {pid, state, mme_ue_id, erab_id} - Sort by (default: pid) - --reverse Reverse order (default: False) -``` - -The output format is the same as produced by the `enb_erab_list` command. - -### `erab_info` - -Get information about a specific E-RAB. - -``` -Usage: erab_info -P PID [-h] - -Get information about a specific E-RAB - -required arguments: - -P, --pid PID E-RAB process ID (example: 0.33.1) - -optional arguments: - -h, --help show this help message and exit - -``` - -Example: Obtaining E-RAB info using process ID. - -``` -OsmoS1GW# erab_info -P 0.714.0 -| Parameter | Value | -|----------------|----------------------| -| PID | <0.714.0> | -| MME-UE-S1AP-ID | 4242 | -| E-RAB-ID | 1 | -| State | erab_setup | -| SEID (local) | 0x0000000000000002 | -| SEID (remote) | 0x5454434e2d330001 | -| U2C F-TEID | 0x00010001@127.0.0.1 | -| C2U F-TEID | 0x01010001@127.0.1.1 | -| A2U F-TEID | 0x02020001@127.0.2.2 | -| U2A F-TEID | 0x00020001@127.0.0.2 | -``` - -### `erab_delete` - -Terminate an E-RAB FSM process. - -``` -Usage: erab_delete -P PID [-h] - -Terminate an E-RAB FSM process - -required arguments: - -P, --pid PID E-RAB process ID (example: 0.33.1) - -optional arguments: - -h, --help show this help message and exit -```