Skip to content

MeherRushi/https-notif-draft-impl

Repository files navigation

Project Overview

This repository implements the IETF HTTPS-based Transport for YANG Notifications using Python, with both Flask and FastAPI frameworks.

Draft Overview

The HTTPS Notification draft defines a protocol for sending asynchronous event notifications over HTTPS, similar to those in RFC 5277, over HTTPS.

This enables a secure and flexible mechanism for delivering event notifications over standard web infrastructure.

CBOR Encoding Support

Added support for CBOR (Concise Binary Object Representation) encoding, in addition to the JSON and XML formats already described in the draft. This enhances performance in bandwidth-constrained environments.

Goal

This project serves as a reference implementation and experimentation ground for the HTTPS-notif protocol and its extensions. It’s designed for researchers, implementers, and contributors in the IETF NETCONF working group and broader network automation community.

Feel free to open issues or contribute if you'd like to extend or integrate this work!

Features

  • Multi-Framework Support: Implementations in Python (Flask and Fast API).
  • Performance Analysis: Performance Analysis of Encoding Formats Under Varying Bandwidth on local system using venv setup and go-wrk. See perf_analysis for more information

Getting Started

Folder structure:

Here's your cleaned-up project structure, with temporary and generated files/folders like __pycache__ and unnecessary data.xml instances removed.


.
├── certs
│   ├── server.crt
│   └── server.key
├── docker-compose.yml
├── INSTALLATION.md
├── LICENSE.txt
├── perf_analysis
│   ├── data
│   │   ├── data.cbor             
│   │   ├── data.json             
│   │   ├── data.xml              
│   │   ├── gowrk_script
│   │   ├── plot.py
│   │   ├── stats.png
│   │   └── test1
│   │       ├── results_cbor_100mbit.txt
│   │       ├── results_cbor_10mbit.txt
│   │       ├── results_cbor_1gbit.txt
│   │       ├── results_cbor_1mbit.txt
│   │       ├── results_cbor_500mbit.txt
│   │       ├── results_cbor_50mbit.txt
│   │       ├── results_cbor_5mbit.txt
│   │       ├── results_json_100mbit.txt
│   │       ├── results_json_10mbit.txt
│   │       ├── results_json_1gbit.txt
│   │       ├── results_json_1mbit.txt
│   │       ├── results_json_500mbit.txt
│   │       ├── results_json_50mbit.txt
│   │       ├── results_json_5mbit.txt
│   │       ├── results_xml_100mbit.txt
│   │       ├── results_xml_10mbit.txt
│   │       ├── results_xml_1gbit.txt
│   │       ├── results_xml_1mbit.txt
│   │       ├── results_xml_500mbit.txt
│   │       ├── results_xml_50mbit.txt
│   │       └── results_xml_5mbit.txt
│   ├── README.md
│   ├── setup.png
│   └── test_bed_setup.md
├── prometheus
│   └── prometheus.yml
├── python
│   ├── fast_api_impl
│   │   ├── main.py
│   │   └── README.md
│   ├── flask_impl
│   │   ├── app.py
│   │   ├── Dockerfile
│   │   ├── kafka_consumer.Dockerfile
│   │   ├── kafka_consumer.py
│   │   ├── read_db.py
│   │   ├── README.md
│   │   └── requirements.txt
│   └── publisher
│       ├── Dockerfile
│       ├── publisher.py
│       └── requirements.txt
├── README.md
├── USAGE.md
└── yang_modules
    ├── ietf-https-notif.yang
    ├── ietf-yang-types.yang
    └── yang-library.json


For detailed instructions, see INSTALLATION and USAGE.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Contact us

Bharadwaja Meherrushi Chittapragada (meher.211cs216@nitk.edu.in)
Vartika T Rao (vartikatrao.211it077@nitk.edu.in)
Siddharth Bhat (sidbhat.211ee151@nitk.edu.in)
Hayyan Arshad (hayyanarshad.211cs222@nitk.edu.in)

About

This repository implements the HTTPS-based Transport for YANG Notifications draft using Python, with both Flask and FastAPI frameworks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •