{"id":20588834,"url":"https://github.com/ciscodevnet/xr-netconf-lab","last_synced_at":"2025-04-14T22:03:27.231Z","repository":{"id":142021194,"uuid":"234538859","full_name":"CiscoDevNet/xr-netconf-lab","owner":"CiscoDevNet","description":"Understand NETCONF/YANG and build your first NETCONF client with Python to interwork with IOS-XR","archived":false,"fork":false,"pushed_at":"2023-07-11T14:18:50.000Z","size":1537,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-14T22:03:08.968Z","etag":null,"topics":["cisco","cisco-ios-xr","ios-xr","jupyter-lab","netconf","yang"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CiscoDevNet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-17T11:55:47.000Z","updated_at":"2023-07-11T13:56:01.000Z","dependencies_parsed_at":"2024-11-16T08:15:58.249Z","dependency_job_id":null,"html_url":"https://github.com/CiscoDevNet/xr-netconf-lab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CiscoDevNet%2Fxr-netconf-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CiscoDevNet%2Fxr-netconf-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CiscoDevNet%2Fxr-netconf-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CiscoDevNet%2Fxr-netconf-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CiscoDevNet","download_url":"https://codeload.github.com/CiscoDevNet/xr-netconf-lab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248968737,"owners_count":21191159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cisco","cisco-ios-xr","ios-xr","jupyter-lab","netconf","yang"],"created_at":"2024-11-16T07:26:42.209Z","updated_at":"2025-04-14T22:03:27.225Z","avatar_url":"https://github.com/CiscoDevNet.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xr-netconf-lab\n\n[![published](https://static.production.devnetcloud.com/codeexchange/assets/images/devnet-published.svg)](https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/xr-netconf-lab) [![Run in Cisco Cloud IDE](https://static.production.devnetcloud.com/codeexchange/assets/images/devnet-runable-icon.svg)](https://developer.cisco.com/devenv/?id=devenv-vscode-base\u0026GITHUB_SOURCE_REPO=https://github.com/CiscoDevNet/xr-netconf-lab)\n\n_Understand NETCONF/YANG and build your first NETCONF client with Python to interwork with IOS-XR_\n\n\u003cimg src=\"images/model-driven programmability.png\"\u003e\n \n## Use Case Description\n\nThis laboratory comes with a Jupyter lab for practising the NETCONF functionalities of Cisco IOS XR. A set of Docker containers is used for collecting and monitoring model-driven telemetry data, as traffic is being generated.\n\n## Installation\n\n### Dependencies\n\n- Python 3\n- [Ncclient](https://github.com/ncclient/ncclient) library\n- Jupyter lab\n- Docker\n- Docker-compose\n- Iperf\n- IOS XR\n\n### Configure\n\n1. Deploy the stack of containers for monitoring of telemetry data by following these [instructions](monitoring/README.md).\n\n2. Load the _Traffic Monitoring_ dashboard in Chronograf.\n\n## Configuration\n\nThe details for the connection and authentication to the IOS XR can be found in the [`workshop-configuration.ini`](./workshop-configuration.ini) file.\n\nThis laboratory assumes the following:\n\n- the host of the Jupyter lab and the docker containers is `198.18.134.50` and is a Linux host\n- the Jupyter notebook is exposed on port `8443`\n- the Chronograf web application is exposed on port `8888`\n- the IOS XR is reachable at `198.18.134.72` with username `cisco` and password `cisco`\n- the Linux host has Iperf installed on it\n- the IOS XR has Iperf installed on it\n- the IOS XR has the following configuration:\n  ```\n  telemetry model-driven\n   destination-group DGroup1\n    address-family ipv4 198.18.134.50 port 57777\n     encoding self-describing-gpb\n     protocol grpc no-tls\n    !\n   !\n   sensor-group SGroupGeneric1\n    sensor-path Cisco-IOS-XR-ifmgr-oper:interface-properties/data-nodes/data-node/system-view\n   !\n   subscription Subscription1\n    sensor-group-id SGroupGeneric1 strict-timer\n    sensor-group-id SGroupGeneric1 sample-interval 10000\n    destination-id DGroup1\n   !\n  !\n  tpa\n   vrf default\n    address-family ipv4\n     update-source dataports Loopback0\n    !\n   !\n  !\n  netconf-yang agent\n   ssh\n  !\n  interface Loopback0\n   ipv4 address 1.1.1.1 255.255.255.255\n   shutdown\n  !\n  ```\n\n## Usage\n\nAccess the lab at https://198.18.134.50:8443.\n\nStart with the [`workshop`](./workshop.ipynb) lab.\nTo run a section of the laboratory, select the cell and press `Shift+Enter`.\n\n\n## How to test the software\n\nThis laboratory was tested in an environment that had the following software installed:\n\n| Software  | version |\n| ------------- | ------------- |\n|  python  | `3.6.8`  |\n|  ncclient  | `0.6.6` |\n| jupyter lab | `1.2.3` |\n| docker | `19.03.5` |\n| docker-compose | `1.23.2` |\n| iperf (server) | `2.0.5` |\n| iperf (client) | `2.0.13` |\n| IOS XR | `7.0.x` |\n\n## Getting help\n\nIf you have questions, concerns, bug reports, etc., please create an issue against this repository.\n\n## Getting involved\n\nFeedback, bug fixes and feature enhancements or additions are encouraged. Please see the [CONTRIBUTING](./CONTRIBUTING.md) file for more information.\n\n## Author(s)\n\nThis project was written and is maintained by the following individuals:\n\n* cprecup \u003ccprecup@cisco.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciscodevnet%2Fxr-netconf-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fciscodevnet%2Fxr-netconf-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciscodevnet%2Fxr-netconf-lab/lists"}