{"id":14563629,"url":"https://github.com/bmx-routing/bmx7","last_synced_at":"2025-09-04T06:32:36.636Z","repository":{"id":83337765,"uuid":"115854927","full_name":"bmx-routing/bmx7","owner":"bmx-routing","description":"BMX7 / SEMTOR Securely Entrusted Mesh Routing Protocol","archived":false,"fork":false,"pushed_at":"2025-05-31T18:52:11.000Z","size":2287,"stargazers_count":67,"open_issues_count":17,"forks_count":15,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-31T19:51:56.080Z","etag":null,"topics":["mesh","openwrt","routing-protocols","tunnel"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmx-routing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-31T09:42:48.000Z","updated_at":"2025-07-30T07:01:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"9fcc2423-05be-4a7a-a5e5-73c66f82d267","html_url":"https://github.com/bmx-routing/bmx7","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bmx-routing/bmx7","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmx-routing%2Fbmx7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmx-routing%2Fbmx7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmx-routing%2Fbmx7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmx-routing%2Fbmx7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmx-routing","download_url":"https://codeload.github.com/bmx-routing/bmx7/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmx-routing%2Fbmx7/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273566472,"owners_count":25128618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mesh","openwrt","routing-protocols","tunnel"],"created_at":"2024-09-07T02:04:18.577Z","updated_at":"2025-09-04T06:32:36.320Z","avatar_url":"https://github.com/bmx-routing.png","language":"C","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"![alt text](https://github.com/bmx-routing/bmx7/blob/a2a361eb994879371d13551a65496ed779ca0c44/doc/images/bmx7.png \"BMX7 Logo\")\n\nBMX7 is a mesh routing protocol for Linux based operating systems.\nThe academic paper with more theoretical details can be found [here](http://dsg.ac.upc.edu/node/843).\n\n## Content\n\n*   [Installation](#installation)\n    *   [Installing in OpenWRT](#installing-in-openwrt)\n    *   [Packages](#Packages)\n*   [FAQ](#faq)\n*   [Usage](doc/Usage.md)\n*   [Concepts](doc/Concepts.md)\n    *   [Autoconfiguration](doc/Usage.md#address-auto-and-manual-configuration)\n    *   [Unicast Host Network Announcements (UHNA)](doc/Usage.md#unicast-host-network-announcements-uhna)\n*   [Tunnel Announcements](doc/Tunneling.md)\n*   [BMX7 Plugins](doc/Plugins.md)\n*   [Debugging](doc/Debugging.md)\n\n\n  [github]: https://github.com/bmx-routing/bmx7\n\n## Installation ##\n\n### Requirements ###\n\nThe following tools and libraries are needed to obtain, compile, and install bmx7:\n* git (debian package: git-core)\n* gcc\n* make\n* build-essential\n* libjson-c-dev zlib1g-dev libiw-dev\n* libmbedtls-dev ( or mbedtls-2.4.0 from https://tls.mbed.org/download/mbedtls-2.4.0-gpl.tgz)\n\nOptional for static configuration:\n* uci-0.7.5 from http://downloads.openwrt.org/sources/uci-0.7.5.tar.gz\n\nThe following Linux-kernel modules are needed (depending on used bmx7 features)\n* ipv6\n* tunnel6\n* ip6_tunnel\n\nThe mbed TLS or PolarSSL crypto library is needed for cryptographic operations:\nMost tested with debian or mbedtls-2.4.0:\n```\nwget https://tls.mbed.org/download/mbedtls-2.4.0-gpl.tgz\ntar xzvf mbedtls-2.4.0-gpl.tgz\ncd mbedtls-2.4.0\nmake\nsudo make install\n# compile bmx7 with: make EXTRA_CFLAGS=\"-DCRYPTLIB=MBEDTLS_2_4_0\"\n```\n\n### Downloading\n\nLatest development sources are available from bmx7 git repository:\n\n```\ngit clone https://github.com/bmx-routing/bmx7.git\ncd bmx7\n```\n\n### Compile and Install\n\nTo only compile the main bmx7 daemon (no bmx7 plugins):\n```\nmake EXTRA_CFLAGS=\"-DCRYPTLIB=MBEDTLS_2_4_0\"\nsudo make install\n```\n\n## Installing in OpenWRT\n\nBMX7 is currently in the official OpenWRT-routing feed, so to install it from a existing system you can use opkg:\n```\nopkg install bmx7 bmx7-uci-config\n```\n\nIf you are compiling your own OpenWRT, you can add the routing feed (already enabled by default) which can be found here: https://github.com/openwrt-routing/packages\n\nThen run \"make menuconfig\" and select the bmx7 package in Networking -\u003e Routing and redirection\n\nIt is recommended to select also, at least, the uci plugin (bmx7-uci-config)\n\nYou can select \"luci-app-bmx7\" to have a nice web interface for manage and monitorize the routing daemon.\n\nFinally type \"make\" to build the image.\n\n## Packages\nAvailable packages exist for the following distributions:\n- Arch Linux package(AUR): https://aur.archlinux.org/packages/bmx7/\n- Debian Linux package(deb): **Coming soon**\n\n## FAQ\n1. How does BMX7 work and on which OSI layer?\n- BMX7 is a routing protocol that operates on layer 3 of the OSI layer; it\n    extends the concept of **receiver-driven routing**  and the principles of\n    DSDV routing. The routing update of BMX7 (in contrast to traditional DSDV)\n    contains a single and verifiable heartbeat value which unambiguously\n    identifies a particular node of the network and a specific version of this\n    nodes' self-defined description and routing-update version.\n\n2. The goal of BMX7/SEMTOR?\n- The goal of BMX7 is to provide secure mechanisms to ensure that\n\tnon-trusted nodes in an open network are effectively prevented from\n\tdisrupting the routing between trusted nodes.\n- It's achieved by enforcing the exclusion of a given set of identified faulty nodes.\n\n3. Differences with bmx6\n- TBD\n\n4. Similar Software\n- AODV,\n- Babel,\n- BMX6,\n- OLSR,\n- batman-adv\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmx-routing%2Fbmx7","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmx-routing%2Fbmx7","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmx-routing%2Fbmx7/lists"}