Skip to main content

An Ethernet software-based open source demarcation NID

Project description

vMark-node by Pathgate

An effort towards the first Ethernet software-based open source demarcation NID.

Latest version: 0.3.5 / Release notes: Link

🚀 Features:

  • Modular tree-style CLI with tab autocompletions and '?' helper.
  • Shell/Dispatcher/Modules/Plugins architecture.
  • Complete Interface management.
  • GPLv3 License.
  • Add & delete sub.interfaces (QinQ / dual-tags supported) (v0.2)
  • TWAMP Light implementation for End-to-End L3 tests. (ipv4 & ipv6, sender/responder modes). (v0.3)
  • Pypi (pip) packaging. (v0.3.1)
  • Remote Management via vMark. (v0.3.4)

🔧 Feature roadmap:

  • Ethernet OAM. (IEEE 802.1ag / Y.1731)
  • Timing protocols support (ITU-T G.8262 Sync-E and IEEE 1588v2)
  • MEF3 Services deployment with 100% L2 transparency (l2tp).
  • Automated MEF3 Service WAN failover.
  • Remote loop testing with automatic timeout.
  • RFC2544 Service Activation testing and reflector.
  • open-BFDD implementation for service session assurance.
  • fiber-interface management and optic levels monitoring.
  • SNMP Support.
  • Multi-vendor IPSec Tunnel support.
  • VXLAN Tunneling.
xxx

# Overview

vMark-node is a software-based open-source Ethernet demarcation NID designed for flexibility and democratization in the Carrier industry.

The "-node"** refers to this being the client-side of vMark server. (vMark-node doenst need vMark to work).

xxx

# Architecture

Shell: Provides command-line auto-completion, some help-related features and dynamically builds the command tree based on the modules and installed plugins. This enables a modular, scalable and re-usable interactive CLI experience.

Dispatcher: Interprets user commands, determines the appropriate module to handle each command, and routes execution accordingly. The dispatcher acts as the central coordinator between the shell and the available modules/plugins, Web-UI and API interactions talk directly with the Dispatcher.

Modules: Shell modules encapsulate core command logic and define the command tree structure. Examples: 'show', 'config', and 'system', each representing a set of related commands and subcommands with item descriptions.

Plugins: Integrate external libraries or tools to extend functionality. For example, plugins can provide access to third-party systems such as OpenBFDD, allowing seamless integration with external services.


📎 Installation methods

Quick Install

gh repo clone https://github.com/xmas-ar/vMark-node.git
cd vMark-node/vMark-node
pip3 install -r requirements.txt
python3 main.py

PIP Install

pip install vmark-node
vmark-node

🔄 Running as a Background Service (Production)

To ensure vmark-node stays running in the background (e.g., to keep the API server accessible by vMark), you can use systemd (recommended for Linux servers) or supervisord.


✅ Option 1: systemd Service (Recommended for Linux)

  1. Create a service file:
bash
sudo nano /etc/systemd/system/vmark-node.service

Paste this configuration:

[Unit]
Description=vMark-node Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/vmark-node
WorkingDirectory=/opt/vmark-node
Restart=always
RestartSec=3
User=nobody

[Install]
WantedBy=multi-user.target

⚠️ Replace /usr/local/bin/vmark-node and /opt/vmark-node with your actual install path (check with which vmark-node if installed via pip).

  1. Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable vmark-node
sudo systemctl start vmark-node
  1. Useful commands:
sudo systemctl status vmark-node
sudo journalctl -u vmark-node -f

✅ Option 2: supervisord (Cross-platform alternative)

  1. Install supervisord:
pip install supervisor
echo_supervisord_conf > supervisord.conf
  1. Edit supervisord.conf: Add at the bottom:
[program:vmark-node]
command=vmark-node
autostart=true
autorestart=true
stderr_logfile=/var/log/vmark-node.err.log
stdout_logfile=/var/log/vmark-node.out.log
  1. Start supervisord:
supervisord -c supervisord.conf

To manage the process, you can use supervisorctl or add it to your system startup routines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vmark-node-0.3.5.tar.gz (63.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vmark_node-0.3.5-py3-none-any.whl (66.0 kB view details)

Uploaded Python 3

File details

Details for the file vmark-node-0.3.5.tar.gz.

File metadata

  • Download URL: vmark-node-0.3.5.tar.gz
  • Upload date:
  • Size: 63.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for vmark-node-0.3.5.tar.gz
Algorithm Hash digest
SHA256 adc0ca679ebfce1d4d9e335728425472b4d35ca7a046dcda2b1778d0dbb07ae4
MD5 29e91b1c6f23f9c36029956344f04b63
BLAKE2b-256 a59c6a4736d7c24d9d8a5121440c81b2771b7d05ce3049b45d4b8d44f1c37aff

See more details on using hashes here.

File details

Details for the file vmark_node-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: vmark_node-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 66.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for vmark_node-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 165369417ad75e857442df253ac41506a29726a56faf48914b917cde01b442a5
MD5 b01c6bd909157ab05de3f7527a35cda0
BLAKE2b-256 fc2813b22632c763582a1fb32800ea8ca0051e06ff51852de027d14fb774d477

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page