Linux Multicast Routing.
Project description
pygmp - Multicast Routing in Linux
Python interface and services for Linux multicast routing.
Limitations / Roadmap
This is a work in progress. Currently, only IPv4 multicast routing is supported. The software has only been tested on Ubuntu 20.04, and is not garenteed to work on other distros. The only implementation thus far is a simple, IPv4, static multicast router with a REST API.
Quick Start
Install the library with all dependencies needed to run router services.
pip install py-gmp[daemons]
IPv4 Static Multicast Routing
Setup the simple daemon's config file. The default location for the file is at /etc/simple.ini
.
For example, say I have two network interfaces: eth0 and br0. I'd like route all incoming multicast for groups 239.1.0.1/24
on the eth device to the bridge. The config file would look like this.
[phyints]
names=eth0,br0
[mroute_1]
from = eth0
group = 239.1.0.1/24
to = br0
Next, start the daemon.
sudo python3 -m pygmp simple
Source
Install the task utility. This utility is used to standardize build and test processes.
task install
IPv4 Static Multicast Routing
Run an example static multicast router implementation
task run
In your browser, you should be able to hit http://172.20.0.2:8000/docs
to see the OpenAPI documentation.
Roadmap
- finalize IPv4 simple multicast daemon implementation
- CI/CD / semantic versioning / create a pip registry
- MLD/IPv6 support
- pimd daemon implementation
- Dockerized example
- expand testing to other distros
Host Configuration Gotchas
Most new distibutions set the IGMP version to 3. To test with IGMPv2, you'll need to set it to 2 and reboot. Also, make sure mc_forwarding is enabled. Change the values in /etc/sysctl.conf
. Then, reboot.
net.ipv4.ip_forward = 1
net.ipv4.conf.all.force_igmp_version = 2
net.ipv4.conf.default.force_igmp_version = 2
net.ipv4.conf.all.mc_forwarding = 1
net.ipv4.conf.default.mc_forwarding = 1
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file py_gmp-0.0.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 45.7 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74b53e323d6dbcabc8fd0089b8175a94f5de74665461898b40ce346370f2aa59 |
|
MD5 | 03157b955aa0dd64b7f09795c104efea |
|
BLAKE2b-256 | 17080a883f5c9c376ab9f7c94aaa3a8261966b0646dc7cad572f7b6ead23a4dc |
File details
Details for the file py_gmp-0.0.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 46.8 kB
- Tags: PyPy, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48b6cb5b58551143293e629a26e500c6cb54f1de79f100a803f290cbd1103c79 |
|
MD5 | 565367761295c04d1894580d7d39ebdd |
|
BLAKE2b-256 | 93c0d42f0fb3d53ab4e02fbde800299c79d69e2e0c7be640b85b466a59a93c0e |
File details
Details for the file py_gmp-0.0.2-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 45.7 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aaa489543434082c4673319b289b905b0132d41f8b75ab528297a385e5e4d53d |
|
MD5 | bf6402dbd4cfeb0dd238c67ba7c3a0d2 |
|
BLAKE2b-256 | c24b5e0d9a62aaafa58558c83812ae4613b6c5217949ae292b0fc472bde469f9 |
File details
Details for the file py_gmp-0.0.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 46.8 kB
- Tags: PyPy, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21212c0f0cf2cabb748ac6e9e8df80be1265b33579f393efaee744446451f59e |
|
MD5 | e92d0ea567906ff70a3b987c77e7a76a |
|
BLAKE2b-256 | f3957f3386aaebcabe89d24ef5afd4c4cd377ece18084dfd55bc5b163d4845a9 |
File details
Details for the file py_gmp-0.0.2-cp311-cp311-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp311-cp311-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 79.5 kB
- Tags: CPython 3.11, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c3cc222301b3d6fe61a689488eca8b17aa0a02387e3e7e96df393826db94c20 |
|
MD5 | e5bfa3277143d9ae485a976a665c66ca |
|
BLAKE2b-256 | 2665a67b57d937ece938c662bfb40f64f155747880a29a908c7b26a6c9906607 |
File details
Details for the file py_gmp-0.0.2-cp311-cp311-musllinux_1_1_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp311-cp311-musllinux_1_1_i686.whl
- Upload date:
- Size: 79.1 kB
- Tags: CPython 3.11, musllinux: musl 1.1+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1beb2ec4874c890ea29215ea30e522aaa997403e5576fa4ff90ae3d7ce28e52a |
|
MD5 | 4e8e8dd6795fed73e4345cdd4ec00d09 |
|
BLAKE2b-256 | 08e84cfc8de9c7bddc09362354a0f4859cb395437d761a7fadeb7576f7996097 |
File details
Details for the file py_gmp-0.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 73.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51216230fa19804a9977595a71d3de0a0934611663de8fe4226242e203aa6128 |
|
MD5 | 56107ecccc2fb8fcfc5556f59418ef40 |
|
BLAKE2b-256 | 47b740a6e73ea2d3519b6bae9edf1a940f8f184747a8c554be933c34e40b46bc |
File details
Details for the file py_gmp-0.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 73.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af1ba1ef2f4c488ad1d9de87605241a0cbf94f4dfc1abd0c87f2360c83d806e9 |
|
MD5 | a9ee287d7b5b51ae11225de7de520020 |
|
BLAKE2b-256 | c1fce5761100007354bde8b84197e27594571862db12f2d5058ccbdfc0514a97 |
File details
Details for the file py_gmp-0.0.2-cp310-cp310-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp310-cp310-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 77.6 kB
- Tags: CPython 3.10, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cfecfcbb34b2714adab10b855aa61fafc591636782ebcb82f9c8547bffacd81 |
|
MD5 | ad221f3abd66353d4f53c046b4cf3ed5 |
|
BLAKE2b-256 | 402569683ad931ea1567204fbe45860ab658a7c40f931894005fcff551e8cc32 |
File details
Details for the file py_gmp-0.0.2-cp310-cp310-musllinux_1_1_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp310-cp310-musllinux_1_1_i686.whl
- Upload date:
- Size: 77.1 kB
- Tags: CPython 3.10, musllinux: musl 1.1+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f46066f14a8c1bcef098ecd8d9c0d3681281d1274b2d4bada7f5e8879368d987 |
|
MD5 | 872e4184febf5681dbd64e38fb27ece6 |
|
BLAKE2b-256 | 903dc371aa95937053e0e39f84196ce5688e6d9d4117f3c6ca6bdc66874041fc |
File details
Details for the file py_gmp-0.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 73.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de8cc7947067faef165a8251731eb4d4ae4f406d5d6e0a2c0d824df8d510b51f |
|
MD5 | 4a31ca1042740242c2f8973a887d23d4 |
|
BLAKE2b-256 | 8ed4614aabc50f9e841330efa0672a227d55cd9388008665ff4a6b5e807ad46a |
File details
Details for the file py_gmp-0.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 73.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 437430efad675f324fc4c5ece057d82c5fff8753b41cb30dd8efbbdca5f3af43 |
|
MD5 | f40d5e00f802b5576dc838eafd0e1039 |
|
BLAKE2b-256 | 06796ca789a6a3b3010e3883f44330b2bf6b733094610825f682c71d870d35e6 |
File details
Details for the file py_gmp-0.0.2-cp39-cp39-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp39-cp39-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 77.2 kB
- Tags: CPython 3.9, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eef0a0d63ab79e176c93ac642eb79fb0982a2e452e103023f24b6d59bb69da3 |
|
MD5 | 9bc620ea14c3879f20e47011a23b0e3d |
|
BLAKE2b-256 | 686e51ebf87ba0a18b42f3a28cb53584a182cc04f84f3d274e5af115c7b18f89 |
File details
Details for the file py_gmp-0.0.2-cp39-cp39-musllinux_1_1_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp39-cp39-musllinux_1_1_i686.whl
- Upload date:
- Size: 76.8 kB
- Tags: CPython 3.9, musllinux: musl 1.1+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57542ab1166c27960bcb677a1666fa785676bbc8ad384a1a7253341555d13ccf |
|
MD5 | 3798a717a35ab58217b35454e871c0b6 |
|
BLAKE2b-256 | cb6a00d3cd8e551887968d2a3e313ec342334e48ba099352d6970147d07e1f34 |
File details
Details for the file py_gmp-0.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 73.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca647315f2f052251103139e3854bc76a86a246b07202c9fe245f3151c4f82cc |
|
MD5 | da67ae8baf55a1e3ec1d507629486c87 |
|
BLAKE2b-256 | d179a3c774d9f4ab01b2d3e651c4f3f899a6f6d80ef00b8d720bbc53c0e70cc9 |
File details
Details for the file py_gmp-0.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 72.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d474d931db5c6315e21fc5859ef7ceead1e110c913f392d377412e0f31b9acf3 |
|
MD5 | 2763de84fdb2394c6b1be842c1de4d1c |
|
BLAKE2b-256 | e1cd5b39e8a956ca98a1e132db11673ea827933ee4038c2d8cb059f4a4bc3572 |
File details
Details for the file py_gmp-0.0.2-cp38-cp38-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp38-cp38-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 79.8 kB
- Tags: CPython 3.8, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a1d67c5ee707515744898ddfe36b884d2971d2555223e4fb5718366f2bceff5 |
|
MD5 | 054b129c93a6fe3ccc42fbcdf1eb71a2 |
|
BLAKE2b-256 | 40e724aed3d1fcef2e05196bab983d9aae3724be170e5754323b9835543d7b3e |
File details
Details for the file py_gmp-0.0.2-cp38-cp38-musllinux_1_1_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp38-cp38-musllinux_1_1_i686.whl
- Upload date:
- Size: 79.5 kB
- Tags: CPython 3.8, musllinux: musl 1.1+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0fcb07295cb5d88c9ec688ac43a5cf06c030ec8da18de9f6400eb2b26f1df7f |
|
MD5 | 64ee653090564896ae882bfdca6a1a10 |
|
BLAKE2b-256 | 1fc75e41ec3f53210f2af9cfd819999a142ee9e05acafa2ef17f6261f87630a5 |
File details
Details for the file py_gmp-0.0.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 76.3 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6db6b9f349652b52fe7cb191e63fd72a7a2de6d9fc8db2df78fb3578becab808 |
|
MD5 | 17cd450bd5f06e4e0e14423fbbdf8b76 |
|
BLAKE2b-256 | 268bfaae40df5398a30c8bcb8b8c42d9c831bca4c83b124ffd95c19b2d515a4c |
File details
Details for the file py_gmp-0.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: py_gmp-0.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 76.0 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58f6d080e197d60b970d63c4bbf408b784080b861f61b4349a918b9a9ffdf4b3 |
|
MD5 | dc04b516377b5c8e18fb4c5bf97cd40b |
|
BLAKE2b-256 | 4e552f9b467c704586f08382ebda3ab19f4bf2a0dc0bc9744ed714a01656ed77 |