Skip to main content

vMark-node by Pathgate

World's first open source Ethernet software-based demarcation NID.

Latest version: 0.3.9 / Release notes: Link / News at: LinkedIn

🚀 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 (RFC5357) 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)
  • XDP-Switch (eBPF) based MEF-compliant transparent Ethernet switching (v0.3.9)

🔧 Feature roadmap:

  • Ethernet OAM. (IEEE 802.1ag / Y.1731)
  • Timing protocols support (ITU-T G.8262 Sync-E and IEEE 1588v2)
  • 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

System Requirements

  • Python 3.9+

  • bpftool

  • pkg-config

  • libnl-3-dev and libnl-route-3-dev (Debian/Ubuntu)

  • libnl3-devel (Fedora/RHEL/CentOS)

  • Ubuntu/Debian:

sudo apt update
sudo apt install -y python3.9 python3.9-venv python3-pip build-essential pkg-config libnl-3-dev libnl-route-3-dev python3-dev ethtool
  • Fedora/RHEL/CentOS:
sudo dnf install -y python3.9 python3-pip gcc pkgconfig libnl3-devel python3-devel ethtool

Quick Install

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

(Might need one of these two lines previous to install pip:)

sudo dnf install -y pkgconfig libnl3-devel gcc python3-devel
sudo apt install -y pkg-config libnl-3-dev python3-dev build-essential

Then do:

pip install vmark-node
~/.local/bin/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 or tmux.


  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: TMUX (Simpler option)

  1. Install tmux and launch vmark (after installed with pip):
sudo apt install tmux
tmux
vmark-node
  1. Then press:
Ctrl + B, then D

👉 That detaches the session, leaving vmark-node running.

  1. To resume later:
tmux attach

Metadata

Release files for vmark-node 0.3.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vmark-node 0.3.9
File Size Uploaded
vmark_node-0.3.9.tar.gz 163.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vmark-node 0.3.9
File Interpreter ABI Platform
vmark_node-0.3.9-py3-none-any.whl Python 3 none any Details

Total release size: 338.4 kB

Release files / vmark_node-0.3.9.tar.gz

Download URL vmark_node-0.3.9.tar.gz
Size 163.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d49167a8d95e2dcd33678cabcb945db17f0b4ba440338d8b3b56b86c295d8fa8
BLAKE2b-256 checksum
How to use checksums
c64983b49ee70175c3522c03cedc241214596fc251b20f4139f32e89a8ab6952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / vmark_node-0.3.9-py3-none-any.whl

Download URL vmark_node-0.3.9-py3-none-any.whl
Size 174.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ca03f8268c60c4ebb25597de625371880054e20acfd28f161cfc7ad78f9f203
BLAKE2b-256 checksum
How to use checksums
bd6b6f57f213df98e868bca1a171e622efdba7ef5e91cb42b7274160559c0576
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release history Release notifications | RSS feed

This release

0.3.9 This release

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page