diff --git a/doc/supported_service_handlers.md b/doc/supported_service_handlers.md index 2812087279871498bd9df04e5bb60e5e2d1e2905..e62f0c87cb42eaeb15026f7f5f2bf41313b19c21 100644 --- a/doc/supported_service_handlers.md +++ b/doc/supported_service_handlers.md @@ -1,18 +1,18 @@ This section summarizes the service handlers supported by the TeraFlowSDN controller. -- [7.1. L2NM Emulated](/7.-Supported-Service-Handlers/7.1.-L2NM-Emulated) -- [7.2. L2NM IETF L2VPN](/7.-Supported-Service-Handlers/7.2.-L2NM-IETF-L2VPN) -- [7.3. L2NM NetConf OpenConfig](/7.-Supported-Service-Handlers/7.3.-L2NM-NetConf-OpenConfig) -- [7.4. L2NM P4](/7.-Supported-Service-Handlers/7.4.-L2NM-P4) -- [7.5. L3NM Emulated](/7.-Supported-Service-Handlers/7.5.-L3NM-Emulated) -- [7.6. L3NM gNMI OpenConfig](/7.-Supported-Service-Handlers/7.6.-L3NM-gNMI-OpenConfig) -- [7.7. L3NM NetConf OpenConfig](/7.-Supported-Service-Handlers/7.7.-L3NM-NetConf-OpenConfig) -- [7.8. L3NM IETF ACTN](/7.-Supported-Service-Handlers/7.8.-L3NM-IETF-ACTN) -- [7.9. End-to-end Orchestrator](/7.-Supported-Service-Handlers/7.9.-End-to-end-Orchestrator) -- [7.10. Microwave](/7.-Supported-Service-Handlers/7.10.-Microwave) -- [7.11. Optical OpenConfig](/7.-Supported-Service-Handlers/7.11.-Optical-OpenConfig) -- [7.12. Transport API](/7.-Supported-Service-Handlers/7.12.-Transport-API) -- [7.13. XR Pluggable](/7.-Supported-Service-Handlers/7.13.-XR-Pluggable) +- [7.1. L2NM Emulated](#71-l2nm-emulated) +- [7.2. L2NM IETF L2VPN](#72-l2nm-ietf-l2vpn) +- [7.3. L2NM NetConf OpenConfig](#73-l2nm-netconf-openconfig) +- [7.4. L2NM P4](#74-l2nm-p4) +- [7.5. L3NM Emulated](#75-l3nm-emulated) +- [7.6. L3NM gNMI OpenConfig](#76-l3nm-gnmi-openconfig) +- [7.7. L3NM NetConf OpenConfig](#77-l3nm-netconf-openconfig) +- [7.8. L3NM IETF ACTN](#78-l3nm-ietf-actn) +- [7.9. End-to-end Orchestrator](#79-end-to-end-orchestrator) +- [7.10. Microwave](#710-microwave) +- [7.11. Optical OpenConfig](#711-optical-openconfig) +- [7.12. Transport API](#712-transport-api) +- [7.13. XR Pluggable](#713-xr-pluggable) ## **7.1. L2NM Emulated** diff --git a/doc/troubleshooting.md b/doc/troubleshooting.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4e879cca82199d10bd44d8a172193c43889ca6f5 100644 --- a/doc/troubleshooting.md +++ b/doc/troubleshooting.md @@ -0,0 +1,87 @@ +- [8.1. Release Disk Space](./8.-Troubleshooting/8.1.-Release-Disk-Space) +- [8.2. Activate DEBUG mode for microservices and collect logs](./8.-Troubleshooting/8.2.-Activate-DEBUG-mode-for-microservices-and-collect-logs) +- [8.3. Download a snapshot of the Context database](./8.-Troubleshooting/8.3.-Download-a-snapshot-of-the-Context-database) + +## **8.1. Release Disk Space** + +**Page under construction.** + +Clean images when your `/var/lib/docker` starts taking up too much space: + +```bash +docker system prune -a +``` + +## **8.2. Activate DEBUG mode for microservices and collect logs** + +In some cases might happen that some component is not working or reporting errors. +In those cases it makes sense to activate DEBUG mode on those components and collect the logs. + + +<h3><u>Activate DEBUG mode in components</h3></u> + +Before deploying the TeraFlowSDN, in the [manifests](https://labs.etsi.org/rep/tfs/controller/-/tree/master/manifests) folder, modify the appropriate files for the microservices to be inspected, e.g. `contextservice.yaml`, `deviceservice.yaml`, `serviceservice.yaml`, `pathcompservice.yaml`, and `nbiservice.yaml`, by changing environment variable `LOG_LEVEL` to `DEBUG`. + +```yaml +apiVersion: apps/v1 +kind: Deployment +#... +spec: + # ... + template: + # ... + spec: + # ... + containers: + # ... + - name: server + # ... + env: + # ... + - name: LOG_LEVEL + value: "INFO" # change to "DEBUG" + # ... +``` + +<h3><u>Redeploy TeraFlowSDN</h3></u> + +Redeploy TeraFlowSDN as usual using the example `my_deploy.sh` specifications or whatever file you created with your deploy specs. +```bash +source my_deploy.sh +./deploy/all.sh +``` +Wait for the deployment to finish. + +<h3><u>Use TeraFlowSDN</h3></u> + +Do whatever actions you were testing and were missbehaving, such as onboarding a topology, creating a connectivity service, etc. + +<h3><u>Collect log files</h3></u> + +A number of helper scripts, named as `show_logs_<component>.sh`, are provided to facilitate log collection in the [scripts](https://labs.etsi.org/rep/tfs/controller/-/tree/master/scripts) folder. +These scripts dump, by default, the logs on the screen, but can be redirected to files when needed. + +In the following example, the logs of `context`, `device`, `service`, `pathcomp-frontend`, and `nbi` are stored in respective log files instead of the screen. + +```bash +cd ~/tfs-ctrl +./scripts/show_logs_context.sh > context.log +./scripts/show_logs_device.sh > device.log +./scripts/show_logs_service.sh > service.log +./scripts/show_logs_pathcomp_frontend.sh > pathcomp_frontend.log +./scripts/show_logs_nbi.sh > nbi.log +``` + +The resulting logs will be stored in the root TeraFlowSDN folder. +> + +## **8.3. Download a snapshot of the Context database** + +In the WebUI, there is a tab named as `Debug` that you can use to interrogate the Context database. +In particular, there is a link named as `Dummy Contexts`. This link produces a JSON descriptor file containing all the contexts, topologies, devices, links, slices, services, connections, constraints, and configuration rules present in Context. The resulting file can be onboarded in a blank TeraFlowSDN instance for testing purposes. + +**IMPORTANT**: The Dummy Contexts feature might take few seconds to respond while it composes the reply. + +**IMPORTANT**: The produced file is labelled as `"dummy": true`; that means it is a snapshot of the database that can be loaded directly into Context. This means it does not pass through the Device/Service/Slice components to onboard the records, but it drops the records directly in Context. This is useful to investigate the content on the database when an issue arises. + +**WARNING**: The dump retrieves all the information in clear text! Remember to **manually anonymize your sensitive data** such as credentials, IP addresses, etc.