NetConfParser is a graphic tool displaying NETConf exchanges between a Netconf Server and a NetConf Client
It is also able to provide a quick analysis if the logs are coming from O-RAn Fronthaul protocol
The input for NetConfParser is a log file containing all messages exchanged. NetConfParser handles multiple types of Log File:
NetConfParser supports drag and drop. NetConfParser supports unpacking .xz files directly.
If the log file is heavy (multiple MBs), a progress bar appears on the right side.
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)
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
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:
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.
Upon selecting a message, a formatted version of this message is displayed in the box on the right side:
You can then use the button Copy To Clipboard to copy it.
By clicking on the right button See ORAN Analysis, the view switches from message display to
steps for Radio Configuration.
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:
NetConfparser zipfile is available in the Releases tab Unzip it and launch NetConfParser.exe
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 venvActivate it (Next time you can just run this to set the env for your shell)
source venv\Scripts\activateAt this point you should see (venv) before your PS1.
Install requirements
python -m pip install -r requirements.txtIf 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:portReplace your-proxy and port with your proxy details.
For instance export https_proxy='135.245.192.7:8000'
python src/netconfparser.pyNetConfParser 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
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"
Once a new release is done, the pyinstaller action will run automatically and attach the generated binary to the latest release note








