Skip to content

Graphical representation of RPCs exchanged between a NETCONF Server and a Netconf Client

Notifications You must be signed in to change notification settings

Krisscut/netconf-parser

 
 

Repository files navigation

NetConfParser

NetConfParser is a graphic tool displaying NETConf exchanges between a Netconf Server and a NetConf Client

NetConfParser

It is also able to provide a quick analysis if the logs are coming from O-RAn Fronthaul protocol

ORAN Analysis

Log Format Support

The input for NetConfParser is a log file containing all messages exchanged. NetConfParser handles multiple types of Log File:

plain xml

Plain XML Log

netopeer2-server format

Netopeer2-server log

Parsing log file

NetConfParser supports drag and drop. NetConfParser supports unpacking .xz files directly.

Drag And Drop

If the log file is heavy (multiple MBs), a progress bar appears on the right side.

Progress Bar

Some RPC Replies may be very heavy and result in NetConfParser taking several seconds to display the whole data. If you want to speed up the performance, you can uncheck the box Parse Enormous RPCs (default behaviour)

Messages Display

Main Window

After parsing your log file, the different exchanges will appear in the main frame. Messages are displayed in the following categories:

  • hello
  • rpc get-schema
  • rpc get
  • rpc
  • rpc-reply
  • notification netconf-config-change
  • notification

Categories

A small summary of the contents of the message is available in the data cell.

When a rpc is not answered, it is displayed in orange. If the rpc-reply contains an rpc-error, it is displayed in red.

Full contents of each message can be displayed by clicking on the + sign:

Expand

Searching for elements

You can use the search Text Box to display only elements of the tree that contain certain keywords. Then click on Filter button to display Regex syntax is supported (case is ignored) To clear your search and go back to the full tree, click on Clear Search button Clear Tree will clear the whole window. If you selected an item before clicking on Clear Search, then tree will focus back on this element.

Copy Messages

Upon selecting a message, a formatted version of this message is displayed in the box on the right side:

CopyToClipBoard

You can then use the button Copy To Clipboard to copy it.

ORAN Analysis

By clicking on the right button See ORAN Analysis, the view switches from message display to steps for Radio Configuration.

ORAN Analysis

Steps supported:

  • Netconf Client Connection
  • Supported O-RAN MPlane version display
  • Hardware Detection
  • Module Capabilities
  • User Plane Configuration
  • Creation/Deletion of Low Level Endpoints
  • Creation of Low Level Links
  • Creation/Activation/Deactivation/Deletion of Array Carriers
  • Reporting of State BUSY/READY of Array Carriers

Also Failures are displayed

  • Rpc Errors

In each of the steps a small summary of objects can be displayed by clicking on the + sign:

ORAN Analysis expand

Availability for Windows

NetConfparser zipfile is available in the Releases tab Unzip it and launch NetConfParser.exe

Building NetConfParser locally

Build the project

Note

Tested using python 3.12 / python 3.13

In a git bash terminal (can use mingw on windows for instance), Generate venv folder using:

python -m venv venv

Activate it (Next time you can just run this to set the env for your shell)

source venv\Scripts\activate

At this point you should see (venv) before your PS1.

Install requirements

python -m pip install -r requirements.txt

Note about Proxy when installing requirements

If you are behind a proxy, ensure that your proxy settings are correctly configured. You can set the HTTP_PROXY and HTTPS_PROXY environment variables before installing the requirements:

export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port

Replace your-proxy and port with your proxy details.

For instance export https_proxy='135.245.192.7:8000'

Run the app

python src/netconfparser.py

Generate the release package

NetConfParser can be built for Windows with pyinstaller

  • pyinstaller --windowed --icon=src/fs.ico -F --onefile src/netconfparser.py --additional-hooks-dir=. --add-data "src/*;."

  • If spec file is already generated, you can also use pyinstaller netconfparser.spec

  • It will give an exe as output in dist folder Please zip it if you want to distribute it For Linux, you can use python netconfparser.py directly

Github actions

release-please

Release-please action is setup so that it generates a pull request automatically, based on the content of the commit messages since last release.

It also automatically generates a changelog and increment the version number, and whenever the pull request is merged, it will generate a new release containing the changelog.

Note

It is important to follow the conventional commit convention to have the fix/features/breaking changes automatically increment the version

Note

You can force a version number by creating an empty commit like that:

git commit --allow-empty -m "chore: release 1.6.0" -m "Release-As: 1.6.0"

pyinstaller

Once a new release is done, the pyinstaller action will run automatically and attach the generated binary to the latest release note

About

Graphical representation of RPCs exchanged between a NETCONF Server and a Netconf Client

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%