Compare commits

...

833 commits

Author SHA1 Message Date
Simon Wunderlich
61f15a76a6
Merge pull request #1045 from ecsv/batadv-2024.0
batman-adv: Provide teardown hook for batadv_vlan proto
2024-02-05 10:54:07 +01:00
Sven Eckelmann
9090aefa69 batman-adv: Provide teardown hook for batadv_vlan proto
The batadv_vlan proto doesn't need to do anything when it gets teared down.
But the scripts are still trying to call the teardown function of this
proto. This results in warnings like:

    daemon.notice netifd: batmesh1 (18940): ./batadv_vlan.sh: eval: line 37: proto_batadv_vlan_teardown: not found

Just providing a stub function avoids this log spam.

Fixes: #1044
Reported-by: Rani Hod <rani.hod@gmail.com>
Fixes: f5205d7d24 ("batman-adv: upgrade package to latest release 2014.2.0")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2024-02-05 09:04:42 +01:00
Sven Eckelmann
6a7a1a5dab batman-adv: update to version 2024.0
* support latest kernels (4.19 - 6.8)
* coding style cleanups and refactoring
* add stateless multicast packet format support

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2024-02-03 14:13:47 +01:00
Sven Eckelmann
5b1caf1968 batctl: update to version 2024.0
* add stateless multicast packet format support
* bugs squashed:
  - Fix various length checks in tcpdump-like subcommand

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2024-02-03 14:13:47 +01:00
Sven Eckelmann
b40ad195c2 alfred: update to version 2024.0
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2024-02-03 14:13:47 +01:00
Simon Wunderlich
6f74738b72
Merge pull request #1038 from ecsv/batadv-2023.3
batman-adv: compat: Fix skb_vlan_eth_hdr conflict in stable kernels
2023-12-23 18:05:57 +01:00
Sven Eckelmann
96b5fa139c batman-adv: compat: Fix skb_vlan_eth_hdr conflict in stable kernels
The newest Linux stable kernel releases:

* v5.10.205
* v5.15.144
* v6.1.69

received a backported version of commit 1f5020acb33f ("net: vlan: introduce
skb_vlan_eth_hdr()"). batman-adv must therefore not provide this function
any longer for these kernel versions.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-12-23 15:33:57 +01:00
Rob White
a5ec54aee3 opennds: update to version 10.2.0
Maintainer: Rob White rob@blue-wave.net

Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64

Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 23.05, 22.03

Description:
opennds (10.2.0) - This version is a minor upgrade that introduces some significant additional functionality.
In addition it includes numerous enhancements bug fixes and cosmetic fixes.

Additional functionality includes:

 * Pre-emptive Client Lists
 * Autonomous Block Lists
 * Internet hosted https FAS support for resource limited routers
 * Fair Usage Policy

Details can be found here:
https://github.com/openNDS/openNDS/releases/tag/v10.2.0

Signed-off-by: Rob White <rob@blue-wave.net>
2023-11-28 17:25:33 +01:00
Simon Wunderlich
f0f1b0a33e
Merge pull request #1033 from ecsv/batadv-2023.3
batman-adv: update packages to version 2023.3
2023-11-17 22:05:13 +01:00
Sven Eckelmann
28b8a5eafe batman-adv: update to version 2023.3
* support latest kernels (4.14 - 6.7)
* coding style cleanups and refactoring
* only warn about too small MTU when soft interfaces wasn't already reduced
* bugs squashed:
  - Hold rtnl lock during MTU update via netlink

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-11-17 21:31:47 +01:00
Sven Eckelmann
b69c62925f batctl: update to version 2023.3
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-11-17 21:31:28 +01:00
Sven Eckelmann
1bdab4b1b5 alfred: update to version 2023.3
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-11-17 21:30:59 +01:00
William Fleurant
601bd6c045
cjdns: always build without ccache prefix
Signed-off-by: William Fleurant <meshnet@protonmail.com>
2023-10-29 10:05:17 +01:00
Moritz Warning
2a725e7cbe nodogsplash: explicit file copy
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-10-23 09:28:01 +02:00
Bradford Zhang
49da9e9f46 bird2: bump to version 2.14
Signed-off-by: Bradford Zhang <zyc@zyc.name>
2023-10-16 12:47:09 +02:00
Moritz Warning
fe1c67fb3d nodogsplash: update to version 5.0.2
Fix a buffer overflow in case the
query string is too long.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-10-10 12:26:28 +02:00
Josef Schlehofer
c2124dd2ad luci-app-bmx6: drop this because of security vulnerabilities
DependencyBot, which are using is sending us emails about these CVEs:
CVE-2012-6708
CVE-2020-23064
CVE-2019-11358

This was reported to maintainer in April 2023, but no one stepped it to fix that,
so let's drop this.

Replacement could be luci-app-bmx7.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2023-09-29 10:19:54 +02:00
Josef Schlehofer
9fb9d9343e bmx6: drop package
This package is no longer maintained by us or by upstream developers.
The last version in the GitHub repository is from 2020 with no activity so far.
We are using version 0.1-alpha.

Because LuCI app is vulnerable to several CVEs and DependencyBot still
sends emails about it, let's drop it.

If anyone wants, they can use bmx7.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2023-09-29 10:19:54 +02:00
Rob White
88c98c910a opennds: update to version 10.1.3
Maintainer: Rob White rob@blue-wave.net

Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64

Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 23.05, 22.03

Description:
opennds (10.1.3)

Security Advisory. This version contains fixes for multiple potential security vulnerabilities
Credit - Stanislav Dashevskyi - standash.github.io [standash]
It also contains some minor bug fixes

  * Fix - Buffer overflow causing segfault - CVE-2023-41101 [bluewavenet]
  * Fix - Memory leaks due to passing allocated buffer into safe_asprintf() - CVE-2023-41102 [bluewavenet]
  * Fix - Remove deprecated preauth option [bluewavenet]
  * Fix - missing free in show_preauth_page if MHD does not respond [bluewavenet]
  * Fix - more safe_asprintf memory leaks [bluewavenet]
  * Fix - missing free for mark_auth [bluewavenet]
  * Fix - memory leak after starting authmon daemon [bluewavenet]
  * Fix - memory leak in encode_and_redirect_to_splashpage [bluewavenet]
  * Fix - Community themespec, voucher css and logo image [bluewavenet]
  * Fix - ThemeSpec, path to logo in page footer [bluewavenet]
  * Fix - ensure gatewayurl is urldecoded to fix broken css and images in themespec [bluewavenet]
  * Add - set default fas remote fqdn to disabled [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2023-08-28 21:09:01 +02:00
Simon Wunderlich
d86c0c24c8
Merge pull request #1015 from ecsv/batman-adv-2023.2
batman-adv: Fix lock assert after fragmentation change
2023-08-23 09:14:28 +02:00
Sven Eckelmann
364379c056 batman-adv: Fix lock assert after fragmentation change
The automatic recalculation of the maximum allowed MTU is usually triggered
by code sections which are already rtnl lock protected by callers outside
of batman-adv. But when the fragmentation setting is changed via
batman-adv's own batadv genl family, then the rtnl lock is not yet taken.

But dev_set_mtu requires that the caller holds the rtnl lock because it
uses netdevice notifiers. And this code will then fail the check for this
lock:

  RTNL: assertion failed at net/core/dev.c (1953)

Fixes: e7ee4c55de ("batman-adv: update to version 2023.2")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-08-22 18:54:26 +02:00
Simon Wunderlich
6f6bcba663
Merge pull request #1012 from ecsv/batman-adv-2023.2
batman-adv: update packages to version 2023.2
2023-08-18 17:06:22 +02:00
Sven Eckelmann
167d93cc32 alfred: update to version 2023.2
* receive data with valid source on unix sock without active interface

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-08-18 16:02:40 +02:00
Sven Eckelmann
8fd009ed71 batctl: update to version 2023.2
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-08-18 16:02:16 +02:00
Sven Eckelmann
e7ee4c55de batman-adv: update to version 2023.2
* support latest kernels (4.14 - 6.5)
* bugs squashed:
  - avoid potential invalid memory access when processing ELP/OGM2 packets
  - drop pending DAT worker when interface shuts down
  - inform network stack about automatically adjusted MTUs
  - keep user defined MTU limit when MTU is recalculated
  - fix packet memory leak when sending OGM2 via inactive interfaces
  - fix TT memory leak for roamed back clients

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-08-18 16:02:02 +02:00
Rob White
5beb3be9b8 mesh11sd: Release v2.0.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: All
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64, on 21.02, 22.03 and snapshot.

Description:
mesh11sd (2.0.0)

This release contains new functionality.

Autonomous portal mode is introduced. This simplifies the rollout of meshnodes allowing a common configuration to be used on all nodes.
Remote administration is introduced, allowing files to be copied and terminal sessions to be opened on established meshnodes, identifying remote nodes by mac address.

 * Add - Update config file [bluewavenet]
 * Add - implementation of remote copy [bluewavenet]
 * Add - implementation of remote connect [bluewavenet]
 * Add - Autonomous portal mode [bluewavenet]

-- Rob White dot@blue-wave.net Mon, 31 Jul 2023 16:59:52 +0000


Signed-off-by: Rob White <rob@blue-wave.net>
2023-08-05 22:27:23 +02:00
Rob White
e4a53c1354 opennds: Release v10.1.2
Reinstate CONFLICTS:=nodogsplash

Signed-off-by: Rob White <rob@blue-wave.net>
2023-07-31 07:46:50 +02:00
Rob White
3eb9aa3056 opennds: Release v10.1.2
Maintainer: Rob White rob@blue-wave.net

Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64

Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 23.05, 22.03

Description:
opennds (10.1.2)

Security Advisory. This version contains fixes for multiple potential security vulnerabilities
Credit - Stanislav Dashevskyi - standash.github.io [standash]
It also contains some minor bug fixes
  * Fix - Generate unique sha256 faskey if not set in config - CVE-2023-38324 [bluewavenet]
  * Fix - NULL pointer dereference if user_agent is NULL - CVE-2023-38320, CVE-2023-38322 [bluewavenet]
  * Fix - NULL pointer dereference if authdir is called with an incomplete or missing query string - CVE-2023-38313, CVE-2023-38314, CVE-2023-38315 [bluewavenet]
  * Fix - remove deprecated and non-functioning unescape callback - CVE-2023-38316 [bluewavenet]
  * Fix - prevent potential recursive dependency and detect if conflicting package is installed [bluewavenet]


Signed-off-by: Rob White <rob@blue-wave.net>
2023-07-31 07:46:50 +02:00
Moritz Warning
967dde509b nodogsplash: remove opennds from conflicts
OpenNDS lists nodogsplash a conflict as well.
This causes a circular reference that is not allowed.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-07-29 19:00:42 +02:00
Nick Hainke
eb8978ebf7 babeld: update to 1.13.1
Announcement:
https://alioth-lists.debian.net/pipermail/babel-users/2023-July/004125.html

Remove upstreamed patch:
- 100-local-make-local_kind-function-accessible.patch

Refresh patch:
- 600-add-ubus.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-07-29 10:43:35 +02:00
Moritz Warning
91e07907fa nodogsplash: update to 5.0.1
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-07-23 21:53:27 +02:00
Marek Küthe
0221a2a001 quagga: Remove, as is no longer being developed
Closes https://github.com/openwrt/routing/issues/994

Signed-off-by: Marek Küthe <m.k@mk16.de>
2023-07-22 19:09:10 +02:00
Josef Schlehofer
c7bc308c78
Merge pull request #995 from marek22k/master
bird1: Remove, as EOL has been reached
2023-07-21 20:01:49 +02:00
Marek Küthe
fa136b70df
bird1: Remove, as EOL has been reached
Closes https://github.com/openwrt/routing/issues/993

Deprecation:
https://marc.info/?l=bird-users&m=168682998827356&w=2
https://trubka.network.cz/pipermail/bird-users/attachments/20230615/8517953d/attachment.pdf

Signed-off-by: Marek Küthe <m.k@mk16.de>
2023-07-21 15:13:13 +02:00
Nick Hainke
9e13652bbf babeld: update to 1.13
Announcement:
https://alioth-lists.debian.net/pipermail/babel-users/2023-July/004100.html

Babeld removed diversity routing [0], so we need to adjust ubus
bindings. Further. we need to add a patch that makes local_kind
accessible again: "100-local-make-local_kind-function-accessible.patch"

Refresh patches:
- 600-add-ubus.patch

[0] - a081608335

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-07-19 00:48:52 +02:00
Rob White
26f5f0f812 opennds: Release v10.1.1
Maintainer: Rob White rob@blue-wave.net

Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64

Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 23.05, 22.03

opennds (10.1.1)
  * This version contains some minor bug fixes and documentation updates
  * Fix - send only contents of buffer, not entire buffer when serving page511 [bluewavenet]
  * Fix - Set fas_remotefqdn to gw_fqdn when overriding FAS settings [bluewavenet]
  * Fix - use absolute path for css and images in ThemeSpec [bluewavenet]
  * Fix - revert to old option names without underscores [bluewavenet]
  * Fix - FAS URL when fas_remotefqdn is not set [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2023-07-15 07:21:14 +02:00
Bradford Zhang
bdf923742a bird2: bump to version 2.13.1
Signed-off-by: Bradford Zhang <zyc@zyc.name>
2023-06-30 01:17:16 +02:00
Tianling Shen
04a287eea0 CI: update build architectures
- armvirt target has been renamed to armsr (Arm SystemReady) [1].
- armsr-armv8 has been switched to aarch64_generic architecture [2].

1. 40b02a2301
2. e0f06ddc23

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-26 11:29:59 +02:00
Jeffery To
f165789ced CI: Add build test for riscv64_riscv64
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Jeffery To
06b7d9b665 CI: Sort build architectures in alphabetical order
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Christian Marangi
5aa683be13 CI: add concurrency rules to skip redundant build
Add concurrency rules to skip redundant build to skip extra build test
on force push on pull request.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-26 11:29:59 +02:00
Jeffery To
299ee2b1cf CI: Do package run-tests only if target packages were built
Currently, the package run-test phase will fail for PRs that only
add/update host-only packages, as no target packages (*.ipk) are built.

This checks if any target packages are built before attempting the
run-tests.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Jeffery To
89cf0d5619 CI: Run "apt-get update" before installing signify-openbsd
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Van Waholtz
28d204148a CI: Enable runtime_test for mips_24kc
Signed-off-by: Van Waholtz <brvphoenix@gmail.com>
2023-06-26 11:29:59 +02:00
Gerard Ryan
61997c86b0 cache-domains: added pre-test.sh CI step
Some packages variants have conflicting dependencies with the
base packages and the CI test will fail to install before anything
can be done by the packages to setup the system for install.

This change adds a pre-test.sh that runs before the install so things
like the default libustream variant can be swapped out as shown in the
updated cache-domains.

Signed-off-by: Gerard Ryan <G.M0N3Y.2503@gmail.com>
2023-06-26 11:29:59 +02:00
Jeffery To
f818fe716e CI: Add local feed for CI-built packages
To test each package, the CI-built target package (ipk) file is
installed, but currently the target package's dependencies are installed
from the standard opkg feeds.

There are cases when the CI-built target packages should be
installed/tested together:

* If a pull request contains several new packages that depend on each
  other, the test step will fail as the new dependencies cannot be found
  in the current packages feed.

* If a pull request upgrades a source package that builds several target
  packages that depend on each other, the test step may fail due to the
  version/ABI mismatch between a newer target package and the older
  dependencies installed from the packages feed.

This sets up a local feed for the CI-built packages so that dependencies
are also installed from the same set of packages.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Jeffery To
53a53b8ee3 CI: Add --autoremove, ignore removal errors
836b4e1c734f9705bfd8db0da0c04214c2647932 added
--force-removal-of-dependent-packages but it does not do what the commit
message says it does.

When package A depends on package B (package B is a dependency of
package A; package A is a dependent of package B), trying to remove
package B while package A is installed will result in an error. Adding
--force-removal-of-dependent-packages in this case will cause the
removal of package B and package A (package B's dependent).

But in the case of the CI testing step, it is package A that is being
installed and removed. Removing package A with
--force-removal-of-dependent-packages will not cause package B (package
A's dependency) to be removed.

This adds --autoremove to actually remove the package's dependencies.

This also ignores any errors returned by opkg remove as --autoremove can
sometimes falsely return an error[1].

[1]: https://github.com/openwrt/openwrt/issues/12241

Fixes: 836b4e1c734f ("github-ci: add --force-removal-of-dependent-packages")
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2023-06-26 11:29:59 +02:00
Tianling Shen
7928f7d399 CI: update build architectures
Removed arc_archs - archs38 was marked as source-only [1].
Renamed powerpc_8540 to powerpc_8548 [2].

1. https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c01641bcc7236d2e2de3ea65444b0cf2898df351
2. https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=2cad88b99fdae9766de84e6c1cb56f111eb53748

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-26 11:29:59 +02:00
Paul Spooren
b3b01af314 ci: only comment AUTORELEASE deprecation if exists
If it doesn't exists, don't confuse the contributors.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2023-06-26 11:29:59 +02:00
Paul Spooren
c993ee8a89 CI: deprecate $(AUTORELEASE) via comments
Autorelease causes some issues like heavy bandwidth usage as well as
non-deterministic package releases whenever someone doesn't use the full
git log.

With this comment all modified packages are checked and if they use
the autorelease feature, kindly comment to the user to change that.

Signed-off-by: Paul Spooren <paul.spooren@rhebo.com>
[ move check to separate workflow to handle ci limitation ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-26 11:29:59 +02:00
Rob White
7b1911020b opennds: Release v10.1.0
Maintainer: Rob White rob@blue-wave.net

Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64

Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 23.05, 22.03

opennds (10.1.0)

  This version is a major upgrade including full migration to nftables
  and native uci configuration support even for generic Linux distributions.
  It also includes a significant refactoring of inbuilt memory management,
  improving long term reliability, fixing several memory leaks, buffer overflows and several edge case crashes.

  * Add - support for included custom binauth script [bluewavenet]
  * Add - emit a useful stderr message if auth_restore fails [bluewavenet]
  * Add - procd respawn threshold, respawn timeout and respawn retry parameters [bluewavenet]
  * Add - user friendly commandline message if already running [bluewavenet]
  * Fix - Enabling of Data volume quotas [bluewavenet]
  * Fix - use get_list_from_config instead of get_option_from_config [bluewavenet]
  * Fix - compiler warning - unused variable [bluewavenet]
  * Fix - remove redundant function call ipsetconf [bluewavenet]
  * Fix - walledgarden for both nftset and ipset on OpenWrt [bluewavenet]
  * Add - more meaningful output if attempt is made to restart when already running [bluewavenet]
  * Fix - resolve gatewayfqdn after startup [bluewavenet]
  * Fix - Choose forground or background running according to commandline arguments [bluewavenet]
  * Fix - remove superfluous debug message [bluewavenet]
  * Fix - replace sleep with procd_set_param term_timeout [bluewavenet]
  * Fix - make option enabled default to enabled [bluewavenet]
  * Fix - report authmon pid instead of opennds pid from authmon [bluewavenet]
  * Fix - ensure correct pid obtained for opennds [bluewavenet]
  * Add - StartLimitIntervalSec and StartLimitBurst to systemd service script [bluewavenet]
  * Fix - refactor remote downloads [bluewavenet]
  * Fix - suppress error message on ipset test failure [bluewavenet]
  * Fix - send non-syslog debug information to stdout by default [bluewavenet]
  * Add - C function to check heartbeat watchdog [bluewavenet]
  * Fix - Update generic Linux makefile [bluewavenet]
  * Fix - remove redundant ruleset struct definition [bluewavenet]
  * Fix - potential buffer overflow issue during config stage [bluewavenet]
  * Fix - remove unnecessary calls to free() in page 404 processing [bluewavenet]
  * Fix - remove redundant code from fw_iptables [bluewavenet]
  * Add - updates to binauth_log script [bluewavenet]
  * Add - updates for service startup, systemd and procd [bluewavenet]
  * Add - refactoring of commandline processing [bluewavenet]
  * Fix - remove debugging message [bluewavenet]
  * Fix - typo in client ruleset [bluewavenet]
  * Add - Refactor to use uci config directly even for Generic Linux [bluewavenet]
  * Add - Parsing for multi item lists with spaces in items [bluewavenet]
  * Add - use common library call get_option_fom_config [bluewavenet]
  * Add - support for direct use of uci format config file - string and integer parameters [bluewavenet]
  * Fix - Remove deprecated syslog_facility config setting [bluewavenet]
  * Add - thread busy message to ndsctl [bluewavenet]
  * Add - refactor configure_log_location [bluewavenet]
  * Fix - suppress LOG_NOTICE message when getting mac of interface [bluewavenet]
  * Fix - ndsctl error message [bluewavenet]
  * Fix - get_client_interface for levels 2 and 3 [bluewavenet]
  * Add - use common library write_log function [bluewavenet]
  * Add - Refactor memory management [bluewavenet]
  * Fix - fix and refactor upload rate limiting rules [bluewavenet]
  * Fix - Change a debug message from err to info [bluewavenet]
  * Add - refine common buffer sizes [bluewavenet]
  * Add - use initialised heap memory for redirect_to_splashpage [bluewavenet]
  * Add - user message to themespec [bluewavenet]
  * Add - auth_restore support ie reauth clients after a restart by default. [bluewavenet]
  * Add - Library call to preemptively re-auth clients after a restart or crash [bluewavenet]
  * Add - BinAuth, write an authenticated clients list [bluewavenet]
  * Add - library call "check_heartbeat" [bluewavenet]
  * Fix - Tidy up redundant code [bluewavenet]
  * Fix - change warning message to debug message when iw not installed [bluewavenet]
  * Add - library call to log to syslog [bluewavenet]
  * Fix - use initialised heap memory for client list entries [bluewavenet]
  * Fix - ignore legacy ipset firewall rule [bluewavenet]
  * Fix - refactor memory management for MHD calls - use heap memory for buffers etc [bluewavenet]
  * Fix - missing free causing memory leak [bluewavenet]
  * Fix  - predefine and initialise buffer for send_redirect_temp [bluewavenet]
  * Add - support protocol "all" in firewall ruleset [bluewavenet]
  * Add - pre-allocation of initialised buffers [bluewavenet]
  * Fix  - prevent buffer overrun on removing client [bluewavenet]
  * Add - update MHD connection timeout and connection limit [bluewavenet]
  * Add - chain ndsDLR for dynamic client download rate limiting rules [bluewavenet]
  * Add - Use Internal Polling Thread / Thread Per Connection in MHD [bluewavenet]
  * Add - some new default values [bluewavenet]
  * Fix - remove some redundant code and fix some compiler warnings [bluewavenet]
  * Fix - remove redundant library command string [bluewavenet]
  * Fix - Tidy up redundant iptables code [bluewavenet]
  * Add - convert trusted client support to nftables [bluewavenet]
  * Add - refer to nftables [bluewavenet]
  * Add - move code for generating authentication mark string to initial setup [bluewavenet]
  * Add - full nftset support with ipset import where required [bluewavenet]
  * Add - nftset support library calls [bluewavenet]
  * Add - ipset_to_nftset library call [bluewavenet]
  * Add - support for nftables version of append_ruleset and nftables_compile [bluewavenet]
  * Fix - buffer overflow in page_511 generation [bluewavenet]
  * Add - more nftables migration including rate quotas [bluewavenet]
  * Fix - change GatewayInterface to lower case [bluewavenet]
  * Add - upload and download limiting client flags for future use [bluewavenet]
  * add - lib calls "pad_string" and "replace_client_rule" [bluewavenet]
  * Add - further nftables migration [bluewavenet]
  * Fix - correctly parse options from legacy conf file [bluewavenet]
  * Fix - some compiler warnings and set min iptables version [bluewavenet]
  * Add - Generic Linux configure walledgarden [bluewavenet]
  * Add - Implementation of nftsets for walledgarden [bluewavenet]
  * Add - migration to nftables, next phase. [bluewavenet]
  * Add - library function delete_client_rule [bluewavenet]
  * Fix - remove duplicate definition [bluewavenet]
  * Add - First stage migration to nftables [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2023-06-23 11:28:18 +02:00
Nick Hainke
aab3b64e09 olsrd: update to 2023-06-12
Update to latest version.

Remove upstreamed patch:
- 100-rename-avl-to-olsrd_avl.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-06-13 15:20:23 +02:00
Patrick Grimm
dc5e428ee4 luci-app-olsrd2: add html table for all LAN prefixes
Maintainer: patrick@lunatiki.de @stargieg
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc
Run tested: Firefox, Safari

Description: add html table for all LAN prefixes instead of a list with the one/first prefix

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-06-11 09:40:12 +02:00
Maciej Krüger
618e80a06a oonf-olsrd2: add support to check if service is running
Signed-off-by: Maciej Krüger <mkg20001@gmail.com>
2023-06-11 09:37:15 +02:00
Simon Wunderlich
593a514ab5
Merge pull request #975 from ecsv/batadv-2023.1
batman-adv: update packages to version 2023.1
2023-05-27 21:59:55 +02:00
Sven Eckelmann
04bbb0a87e batman-adv: Drop support for kernel < 5.15
OpenWrt master is no longer providing any kernels older than 5.15. Just
drop the compat-hacks/patches for older kernels to make it easier to
maintain the package.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-05-27 12:15:47 +02:00
Sven Eckelmann
3d6c7c64a9 alfred: update to version 2023.1
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-05-27 12:10:09 +02:00
Sven Eckelmann
b23dadccf2 batctl: update to version 2023.1
* Synchronize with kernel headers

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-05-27 12:09:50 +02:00
Sven Eckelmann
6afc0452c2 batman-adv: update to version 2023.1
* support latest kernels (4.14 - 6.4)
* drop single unicast transfer optimization for unsnoopable IP addresses
* prepare infrastructure for multicast packets with multiple unicast destination
  addresses

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-05-27 12:09:02 +02:00
William Fleurant
e8856b93da
cjdns: patch of gyp imports support python3.10 (#974) 2023-05-21 03:33:54 +02:00
Josef Schlehofer
c9a8f2d032 ci: change default packages
Since this file was taken from packages repository, it tries to compile
packages from that repository as fallback if changes are not detected.

Let's change these packages to some, which are present in this
repository, so they will be compiled as test.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2023-05-16 09:31:44 +02:00
Alois Klink
03ca0722f7 github-ci: error on any shell errors
Enable `errexit` and `nounset` [POSIX shell options][1]
in `.github/workflows/entrypoint.sh` so that the script fails
if any command within the script fails.

[1]: https://pubs.opengroup.org/onlinepubs/9699919799//utilities/V3_chap02.html#set

Reported-by: Marius Dinu <m95d+git@psihoexpert.ro>
Fixes: https://github.com/openwrt/packages/issues/19953
Signed-off-by: Alois Klink <alois@aloisklink.com>
2023-05-16 09:31:44 +02:00
Bradford Zhang
51c05a1030 bird2: bump to version 2.13
Signed-off-by: Bradford Zhang <zyc@zyc.name>
2023-05-15 11:45:03 +02:00
Nick Hainke
3e96c851a7 treewide: remove AUTORELEASE
OpenWrt/packages removed AUTORELEASE treewide. Remove it also in the
routing feed.

This is just copied from [0] with modification to the sed cmd because it
was not working for the routing feed:

The following temporary change was made to the core:

diff --git a/rules.mk b/rules.mk
index 57d7995d4fa8..f16367de87a8 100644
--- a/rules.mk
+++ b/rules.mk
@@ -429,7 +429,7 @@ endef
 abi_version_str = $(subst -,,$(subst _,,$(subst .,,$(1))))

 COMMITCOUNT = $(if $(DUMP),0,$(call commitcount))
-AUTORELEASE = $(if $(DUMP),0,$(call commitcount,1))
+AUTORELEASE = $(if $(DUMP),0,$(shell sed -i "s/\$$(AUTORELEASE)/$(call commitcount,1)/" $(CURDIR)/Makefile))

 all:
 FORCE: ;

And this command used to fix affected packages:

for i in $(cd feeds/routing; git grep -l PKG_RELEASE:=.*AUTORELEASE | \
                              sed 's/\/Makefile$//';);
do
  make package/$i/download
done

[0] - 0c10c224be

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-04-27 17:14:16 +02:00
Caleb James DeLisle
a26e3441d8
cjdns: Fix dangling pointer bug (#964)
Maintainer: @wfleurant
Compile tested: builds for x86_64
Run tested: Build only testing

Description: same build error seen on my machine as seen in #958
Whereas #961 removes the compiler warning, this fixes the underlying problem in the code.

Signed-off-by: Caleb James DeLisle <cjd@cjdns.fr>
2023-04-18 15:14:08 +02:00
Andre Heider
e2eb84791c treewide: refactor to use PKG_BUILD_FLAGS:=lto
See commit 07730ff3 "treewide: add support for "lto" in PKG_BUILD_FLAGS"
on the main repository.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-04-13 07:46:21 +02:00
Andre Heider
67ad3b9b96 treewide: refactor to use PKG_BUILD_FLAGS:=gc-sections
See commit da370098 "treewide: add support for "gc-sections" in
PKG_BUILD_FLAGS" on the main repository.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-04-13 07:46:21 +02:00
Andre Heider
9febc56a44 prince: refactor to use PKG_BUILD_FLAGS:=no-mips16
See commit 5c545bdb "treewide: replace PKG_USE_MIPS16:=0 with
PKG_BUILD_FLAGS:=no-mips16" on the main repository.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-04-13 07:46:21 +02:00
Simon Wunderlich
8fe743c2a1
Merge pull request #962 from mrnuke/batfix
batman-adv: fix compilation bug in batadv_is_cfg80211_netdev()
2023-04-11 11:21:38 +02:00
Alexandru Gagniuc
2eb71d7d7a batman-adv: fix compilation bug in batadv_is_cfg80211_netdev()
Because batman-adv is built under backports, not a clean linux tree,
the CONFIG_CFG80211 does not exist. The evaluation of IS_ENABLED() in
batadv_is_cfg80211_netdev() will be false, causing the funtion to
always return false.

This means that the wifi_flags of an interface don't get set, causing
batadv_is_wifi_hardif() to always return false. As a result,
batadv_v_elp_get_throughput() never tries to get the station info from
cfg80211, resulting in the following warning:

    batman_adv: bat0: WiFi driver or ethtool info does not provide
    information about link speeds on interface phy1-mesh0,
    therefore defaulting to hardcoded throughput values of 1.0 Mbps.

So replace CONFIG_CFG80211 with CPTCFG_CFG80211, which is the correct
macro to use under backports.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2023-04-07 09:03:04 -05:00
Jakob Riepler
1b063f315e oonf-olsrd2: update to current develop branch - fixes routing#899
Development of OONF is very slow. The master branch is completely out of
date and new releases haven't been tagged since 2018.
According to this PR https://github.com/OLSR/OONF/pull/49#issuecomment-1229195523 the authors will probably just abandon the current master branch and replace it by the develop branch.
During my testing, the current development branch is more stable than
the latest tagged version on current OpenWrt versions.

Signed-off-by: Jakob Riepler <jakob+openwrt@chaosfield.at>
2023-03-11 11:57:07 +01:00
Roger Pueyo Centelles
c37fbab8f5 bird1: fix "Form token mismatch" errors in luci-app-bird1-ipv{4,6}
The "Filters", "Functions" and "Status" sections of the web interfaces
for both Bird4 and Bird6 threw the following error upon performing any
action:

   Form token mismatch
   The submitted security token is invalid or already expired!

Changing their entry types from "cbi" to "form" fixes them.

Fixes #922.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2023-03-06 21:13:32 +01:00
Roger Pueyo Centelles
d32f93e049 bird1: rename get_bool() to get_a_bool() in bird{4,6}-lib.sh
This patch renames the get_bool() function, implemented in the
bird4-lib.sh and bird6-lib.sh files (respectively, for the IPv4 and
the IPv6 versions of the package), as well as all the calls to it.
This way, we avoid a function name collision with the one provided by
file /lib/functions.sh, which is slightly different and caused an
out-of-memory error when parsing the bird4/bird6 UCI config files.

Fixes #920.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2023-03-06 13:00:14 +01:00
Roger Pueyo Centelles
6697ca291f bird1-openwrt: fix Makefile issues
This commit replaces the deprecated licensing text with an SPDX license
identifier, and removes tab indentations in the conffiles sections.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2023-03-06 07:18:59 +01:00
Roger Pueyo Centelles
914c27aeb6 bird1-openwrt: use a single Makefile for IPv4 and IPv6 packages
Having two Makefile files, respectively in the bird1-openwrt-ipv4 and
bird1-ipv6-openwrt folders, made the CI tests fail at the time of
building the packages, due to a compilation error. This patch merges
both Makefile files into a single one. As a result, package compilation
succeeds during the CI tests.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2023-02-25 23:48:33 +01:00
Christian Marangi
5d87b95697 ci: update github actions to v3
Update checkout and upload-artifact action to v3 to mute nodejs
deprecation warning.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 52570d4242822e3db678f5484c2ca3e72f485d52)
2023-02-23 00:55:48 +01:00
Patrick Grimm
3f74d8a16a oonf-olsrd2: a usable default configuration
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc

Description:
- OONF_OLSRV2_LAN_IMPORT for integration off other routing protocol (OLSR1, BGP, ...)
- OONF_OLSRV2_ROUTE_MODIFIER for overwriting the link qualitty of a neighbor, called LinkQuality Multiplicator in OLSR1
- OONF_GENERIC_REMOTECONTROL one of the goal of olsrv2
- OONF_OLSRV2_MPR reduce the routing graph when the network gets bigger

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-02-22 08:05:34 +01:00
Maciej Krüger
521a4068de oonf-olsrd2: fix building with multiple plugins - fixes #826
Code to replace colons wasn't working (debian stable)
Took it from stackoverflow, works now

Signed-off-by: Maciej Krüger <mkg20001@gmail.com>
2023-02-22 08:05:34 +01:00
Patrick Grimm
8a82f32d3f oonf-olsrd2: change to git version from 2022-08-25
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc
Description:
c7d404f8 build lan_import
bbbd4f3d the package dh-systemd is not longer present in recent Ubuntu versions
1a5fa2a7 add missing extern to global symbol
5ea168ce fix build for gcc-10 (-fno-common default)
ced3ace0 Fix schema name for logging in README
c6dd02a1 test_config_delta: fix the build on GCC 9
f40be238 include unistd.h in oonf.h to keep modern GCC (e.g. in LEDE) from complaining about ssize_t
95fbcb35 Do avl_for_each_elements_with_key_safe() by hand until we had a closer look at the macro
e9b08759 use scaling factor when dealing with fixed integer conversion calls
2f615dab Prevent division by zero through (malformed) RLQ value
8d424b24 Fix NHDP link status for interfaces without MAC addresses
eecc3333 Add missing telnet dependency to layer2-config
965c2f73 Allow "non-unicast" routes to be imported
243e17e3 Allow setting l2config via telnet
40f24ab9 Partly working telnet code for l2config
c33d680e Add LID capability to oonf_layer2 and l2config subsystem
bad48ebc Do not accept configuration with unknown sections/values if 'global.failfast' is true. Set 'global.failfast' to true by default
05682c0c Make VIF sockets non-blocking
63345654 Reorder libraries for testcase creation to prevent Ubuntu 16.04 Bug (MOTOR-50)
3c1984f8 Fix compilation issue with "no-debug" logging
3765eb01 Cleanup ffdat metric to be able to import rx_throughput.
bdee26ba Improve combination of DAT speed and L2 throughput values
a1c3ea66 Allow ffdat metric to consider rx_throughput field
c8ec8301 Fix token validation
ad72038e Improve DAT-Metric by shifting hysteresis to the loss side and consider other layer2 parameters
9addfba4 Fix fixed integer arithmetics handling
f9ccd26b Track scaling factors of layer2 data elements. Handle different scaling for DLEP conversion.
603e48e8 Fix router_id for Netjson domain output
234e9109 Improve hello interval overwriting
7fc0f50b Add SNR to layer2 neighbor data
f9ebcf8e Fix bad 'is in list' test in stream socket processing
29a2a385 Set path prefix length in CMakeListsGlobal
a2ea9186 Replace VIF name pointer with array
e8f04530 Simplify test case creation
271ff097 Move 'enable test' to CMakeListsGlobal.cmake
0482db42 Fix no-debug/no-info compilation
38edcced Add more doxygen comments for layer2 import
1a709b5c Add missing comment for subsystem shutdown initiation, remove empty files
c7a68650 Fix the handling of neighbor IPs in dlep radio.
c255ead5 Add avl_for_each_elements_with_key_safe() macro and do some basic tests
5f835533 Don't filter for protocol for routes being removed (linux does not report protocol in this case)
83b19c54 Allow imported routed to be combined by l2import into the same l2 network. Allow multiple IP addresses being reported by DLEP
5274ce6a Fix tarball generator
6dd188ed Use relative path for calling archive builder
988aac6e Move included cmake files into CMakeListsGlobal to allow inclusion in wrapper projects
2a072733 Cleanup build installation directories
fc1fbbed Move test include to include directory
4043202f Rename "subsystems" directory to "base"
2e3578ba Add "config query" command to remotecontrol plugin to query a configuration value including default
48c2cdcb Prevent theoretical buffer overlow to make Coverity more happy (Coverity #181104)
19583704 Fix possible Null reference in colored logging (Coverity #188445)
6fa04505 Fix GCC 8 warning about small buffer
356d3b9b Allow wrapped build directory around OONF directory
11be4696 Cleanup and simplify OONF directory strucure
f1a30ade Restructure import of FIB entries to go through the layer2 db allow export of layer2 IP entries to FIB allow transmission of layer2 IP entries over DLEP
32bf829c Remove debugging code accidently left in for LID preparation
f6b884b1 Hotfix for closing UDP socket behavior mentioned in Github Issue 14
e7e5b685 Add missing build target for test creation
88efd166 Cleanup build system for tests and add generic 'build_tests' target.
2e5803bd Add more linklayer data options and a better query function
2dac53d9 Restructure ffdat plugin as preparation for external metric calculation Fix compiler warning in routing code
8cb39863 Remove static modifier from olsrv2/nhdp logging sources. Otherwise they cannot be used by the other source files of the plugins.
3a2dd24e Fix return values of DLEP signal processing callbacks
b2e18c91 Fix handling of lid-length TLV in DLEP session ACK
2b7b3ef8 Add doxygen comments for link-id code
bc24cba0 Implement lid_length mechanism into DLEP
b12ef6ea Add basic link-id capability to DLEP
8cc2d03e Add a few example configurations to the repository
1e3fb288 Add support for Link-ID to layer2 database
28adaf5a Remove (done) TODO mark for outgoing TCP connection error handling
2bfbcff3 Improve error handling for failed outgoing TCP connections
1d1e8876 Add better debugging output to packet socket code
3b89103e Fix issues with DLEP udp_mode none and reconnect
d4d64875 Add function to calculate IPv6 address from MAC
bdc2c2e6 Fixes for doxygen comments
5e2a7b48 Fix variable used in layer2 generator loop
a38b6847 Fix DLEP handling of mandatory TLVs
d242e098 Add yet more Markdown formatting to BUILDING.md
074dd7c3 Add more Markdown formatting to BUILDING.md
51d78c27 Rename BUILDING to BUILDING.md

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-02-21 13:08:26 +01:00
Bradford Zhang
7d6f3c0492 bird2: bump to version 2.0.12
Signed-off-by: Bradford Zhang <zyc@zyc.name>
2023-02-21 12:57:06 +01:00
Patrick Grimm
14afd9b172 oonf-olsrd2: add missing static plugin olsrv2_lan
Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-02-20 22:56:35 +01:00
Nick Hainke
20e1b16a97 babeld: remove AUTORELEASE
AUTOREMOVE is now deprecated.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-02-10 08:39:41 +01:00
Nick Hainke
bb65c3a18d babeld: update to 1.12.2
Release announcement:
https://alioth-lists.debian.net/pipermail/babel-users/2023-February/004038.html

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-02-09 22:26:46 +01:00
Simon Wunderlich
3d5c0b5532
Merge pull request #941 from ecsv/batadv-2023.0
batman-adv: update packages to version 2023.0
2023-01-27 10:05:43 +01:00
Sven Eckelmann
64fbf9a16c alfred: update to version 2023.0
* add support for gpsd 3.25

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-01-26 22:31:20 +01:00
Sven Eckelmann
b70ac8f9da batctl: update to version 2023.0
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-01-26 22:31:00 +01:00
Sven Eckelmann
b4034e4ae1 batman-adv: update to version 2023.0
* support latest kernels (4.14 - 6.2)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2023-01-26 22:29:55 +01:00
Rob White
18168b3468 opennds: Release v9.10.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 22.03

opennds (9.10.0)

  * This version adds new functionality, and fixes some issues
  * Fix - unable to read client upload traffic volume on some versions of iptables-nft (generic Linux) [bluewavenet]
  * Fix - compatibility with bash shell on generic Linux [bluewavenet]
  * Fix - compiler warning, unused variable [bluewavenet]
  * Fix - silently continue if fw4 table is not found [bluewavenet]
  * Add - Start daemon earlier on boot [bluewavenet]
  * Fix - compatibility with legacy iptables packages [bluewavenet]
  * Add - call to delete nft chains [bluewavenet]
  * Fix - stop using legacy INPUT and FORWARD chains [bluewavenet]
  * Add - watchdog restart if openNDS nftables ruleset is missing [bluewavenet]
  * Add - automated rule setting/deleting for users_to_router [bluewavenet]
  * Add - Change fwhook to add users to router rule to fw4 on OpenWrt [bluewavenet]
  * Add - Set allow or passthrough mode for users_to_router rules [bluewavenet]
  * Fix - set fwhook default to disabled to prevent restart on hotplug event [bluewavenet]
  * Fix - fas-aes-https description comments [bluewavenet]
  * Fix - icon overspill on splash pages [bluewavenet]
  * Fix - missing config option in community script [bluewavenet]
  * Fix - urlencode handling of "$" character and add htmlentity encode/decode library call [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2023-01-24 21:11:33 +01:00
Patrick Grimm
d27be8dad9 luci-app-olsrd2: New Package for OLSR2 configuration and status visualisation'
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-01-23 14:25:30 +01:00
Patrick Grimm
c8ba43a99b oonf-dlep-proxy: change to git version from 2022-08-25
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc
Description:
fb15d54d (HEAD -> master, origin/master, origin/HEAD) Merge pull request #23 from fhuberts/master
a8e81e99 Merge pull request #43 from jpo-github-work/no-dh-systemd
8cc65a10 Merge pull request #48 from jpo-github-work/fix_lan_import
c7d404f8 build lan_import
bbbd4f3d the package dh-systemd is not longer present in recent Ubuntu versions
1bd73550 Merge pull request #42 from jpo-github-work/master
1a5fa2a7 add missing extern to global symbol
a0750337 Merge pull request #40 from trofi/fix-gcc-10-build
5ea168ce fix build for gcc-10 (-fno-common default)
02f69178 Merge pull request #7 from aaaaalbert/rename-to-BUILDING.md-#4
9dc46726 Merge pull request #26 from sumpfralle/patch-1
ced3ace0 Fix schema name for logging in README
c6dd02a1 test_config_delta: fix the build on GCC 9
8397c64e Merge pull request #19 in FKIEA/oonf-os from develop to master
1d227500 Merge pull request #18 in FKIEA/oonf-os from bugfix/MOTOR-65-oonf-does-not-compile-cleanly-on-current-lede to develop
f40be238 include unistd.h in oonf.h to keep modern GCC (e.g. in LEDE) from complaining about ssize_t
8f2408f7 Merge pull request #17 in FKIEA/oonf-os from bugfix/MOTOR-62-fix-segfault-in-layer2_import to develop
95fbcb35 Do avl_for_each_elements_with_key_safe() by hand until we had a closer look at the macro
3fcd8fc5 Merge pull request #16 in FKIEA/oonf-os from bugfix/MOTOR-61-fix-clock-conversion-to-from-string to develop
e9b08759 use scaling factor when dealing with fixed integer conversion calls
65dc25e8 Merge pull request #15 in FKIEA/oonf-os from bugfix/MOTOR-60-prevent-division-by-zero-in-dat-metric to develop
2f615dab Prevent division by zero through (malformed) RLQ value
eb59d287 Merge pull request #14 in FKIEA/oonf-os from bugfix/MOTOR-59-fix-nhdp-status-for-ip-level-interfaces to develop
8d424b24 Fix NHDP link status for interfaces without MAC addresses
26557e54 Merge pull request #13 in FKIEA/oonf-os from bugfix/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
eecc3333 Add missing telnet dependency to layer2-config
0e24b09f Merge pull request #12 in FKIEA/oonf-os from feature/MOTOR-57-allow-import-of-non-unicast-routes to develop
965c2f73 Allow "non-unicast" routes to be imported
710b353b Merge pull request #11 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
243e17e3 Allow setting l2config via telnet
40f24ab9 Partly working telnet code for l2config
1db358dc Merge pull request #10 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
c33d680e Add LID capability to oonf_layer2 and l2config subsystem
312d09d4 Merge pull request #9 in FKIEA/oonf-os from develop to master
1551b86d Automatic merge from master -> develop
c154c31b Merge pull request #8 in FKIEA/oonf-os from feature/MOTOR-52-ablehnen-von-konfigurationen-mit-unbekannten-werten to develop
bad48ebc Do not accept configuration with unknown sections/values if 'global.failfast' is true. Set 'global.failfast' to true by default
9996fe65 Merge pull request #7 in FKIEA/oonf-os from bugfix/MOTOR-51-vif-socket-is-blocking to develop
05682c0c Make VIF sockets non-blocking
9455e50f Automatic merge from master -> develop
d05cc410 Merge pull request #6 in FKIEA/oonf-os from develop to master
7416ba8d Merge pull request #5 in FKIEA/oonf-os from bugfix/MOTOR-50-olsr-compilation-fails-on-ubuntu-16.04 to develop
63345654 Reorder libraries for testcase creation to prevent Ubuntu 16.04 Bug (MOTOR-50)
3a7e5e8e Automatic merge from master -> develop
d592fbf7 Merge pull request #4 in FKIEA/oonf-os from develop to master
e489f97a Merge pull request #3 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop
3c1984f8 Fix compilation issue with "no-debug" logging
52c6b569 Merge pull request #2 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop
3765eb01 Cleanup ffdat metric to be able to import rx_throughput.
bdee26ba Improve combination of DAT speed and L2 throughput values
a1c3ea66 Allow ffdat metric to consider rx_throughput field
c8ec8301 Fix token validation
ad72038e Improve DAT-Metric by shifting hysteresis to the loss side and consider other layer2 parameters
9addfba4 Fix fixed integer arithmetics handling
f9ccd26b Track scaling factors of layer2 data elements. Handle different scaling for DLEP conversion.
603e48e8 Fix router_id for Netjson domain output
6aebcf99 Merge pull request #1 in FKIEA/oonf-os from develop to master
234e9109 Improve hello interval overwriting
7fc0f50b Add SNR to layer2 neighbor data
f9ebcf8e Fix bad 'is in list' test in stream socket processing
29a2a385 Set path prefix length in CMakeListsGlobal
a2ea9186 Replace VIF name pointer with array
e8f04530 Simplify test case creation
271ff097 Move 'enable test' to CMakeListsGlobal.cmake
0482db42 Fix no-debug/no-info compilation
38edcced Add more doxygen comments for layer2 import
becd33bd Merge branch 'feature/MOTOR-47-route-redistribution-for-dlep' of ssh://team.fkie.fraunhofer.de:7999/fkiea/oonf-os into feature/MOTOR-47-route-redistribution-for-dlep
1a709b5c Add missing comment for subsystem shutdown initiation, remove empty files
c7a68650 Fix the handling of neighbor IPs in dlep radio.
c255ead5 Add avl_for_each_elements_with_key_safe() macro and do some basic tests
5f835533 Don't filter for protocol for routes being removed (linux does not report protocol in this case)
83b19c54 Allow imported routed to be combined by l2import into the same l2 network. Allow multiple IP addresses being reported by DLEP
d7d69064 (origin/staging) Merge branch 'develop' into staging
5274ce6a Fix tarball generator
6dd188ed Use relative path for calling archive builder
988aac6e Move included cmake files into CMakeListsGlobal to allow inclusion in wrapper projects
2a072733 Cleanup build installation directories
fc1fbbed Move test include to include directory
4043202f Rename "subsystems" directory to "base"
2e3578ba Add "config query" command to remotecontrol plugin to query a configuration value including default
48c2cdcb Prevent theoretical buffer overlow to make Coverity more happy (Coverity #181104)
19583704 Fix possible Null reference in colored logging (Coverity #188445)
6fa04505 Fix GCC 8 warning about small buffer
356d3b9b Allow wrapped build directory around OONF directory
11be4696 Cleanup and simplify OONF directory strucure
f1a30ade Restructure import of FIB entries to go through the layer2 db allow export of layer2 IP entries to FIB allow transmission of layer2 IP entries over DLEP
32bf829c Remove debugging code accidently left in for LID preparation
f6b884b1 (origin/packet_socket_bug) Hotfix for closing UDP socket behavior mentioned in Github Issue 14
e7e5b685 Add missing build target for test creation
88efd166 Cleanup build system for tests and add generic 'build_tests' target.
2e5803bd Add more linklayer data options and a better query function
2dac53d9 Restructure ffdat plugin as preparation for external metric calculation Fix compiler warning in routing code
8cb39863 Remove static modifier from olsrv2/nhdp logging sources. Otherwise they cannot be used by the other source files of the plugins.
3a2dd24e Fix return values of DLEP signal processing callbacks
b2e18c91 Fix handling of lid-length TLV in DLEP session ACK
2b7b3ef8 Add doxygen comments for link-id code
bc24cba0 Implement lid_length mechanism into DLEP
b12ef6ea Add basic link-id capability to DLEP
8cc2d03e Add a few example configurations to the repository
1e3fb288 Add support for Link-ID to layer2 database
28adaf5a Remove (done) TODO mark for outgoing TCP connection error handling
2bfbcff3 Improve error handling for failed outgoing TCP connections
1d1e8876 Add better debugging output to packet socket code
3b89103e Fix issues with DLEP udp_mode none and reconnect
d4d64875 Add function to calculate IPv6 address from MAC
bdc2c2e6 Fixes for doxygen comments
5e2a7b48 Fix variable used in layer2 generator loop
a38b6847 Fix DLEP handling of mandatory TLVs
50e4e1b8 Add netaddr constants for MAC48 prefixes for IPv4/6 multicast

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-01-23 14:25:02 +01:00
Patrick Grimm
7d5e0de8a6 oonf-dlep-radio: change to git version from 2022-08-25
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc
Description:
fb15d54d (HEAD -> master, origin/master, origin/HEAD) Merge pull request #23 from fhuberts/master
a8e81e99 Merge pull request #43 from jpo-github-work/no-dh-systemd
8cc65a10 Merge pull request #48 from jpo-github-work/fix_lan_import
c7d404f8 build lan_import
bbbd4f3d the package dh-systemd is not longer present in recent Ubuntu versions
1bd73550 Merge pull request #42 from jpo-github-work/master
1a5fa2a7 add missing extern to global symbol
a0750337 Merge pull request #40 from trofi/fix-gcc-10-build
5ea168ce fix build for gcc-10 (-fno-common default)
02f69178 Merge pull request #7 from aaaaalbert/rename-to-BUILDING.md-#4
9dc46726 Merge pull request #26 from sumpfralle/patch-1
ced3ace0 Fix schema name for logging in README
c6dd02a1 test_config_delta: fix the build on GCC 9
8397c64e Merge pull request #19 in FKIEA/oonf-os from develop to master
1d227500 Merge pull request #18 in FKIEA/oonf-os from bugfix/MOTOR-65-oonf-does-not-compile-cleanly-on-current-lede to develop
f40be238 include unistd.h in oonf.h to keep modern GCC (e.g. in LEDE) from complaining about ssize_t
8f2408f7 Merge pull request #17 in FKIEA/oonf-os from bugfix/MOTOR-62-fix-segfault-in-layer2_import to develop
95fbcb35 Do avl_for_each_elements_with_key_safe() by hand until we had a closer look at the macro
3fcd8fc5 Merge pull request #16 in FKIEA/oonf-os from bugfix/MOTOR-61-fix-clock-conversion-to-from-string to develop
e9b08759 use scaling factor when dealing with fixed integer conversion calls
65dc25e8 Merge pull request #15 in FKIEA/oonf-os from bugfix/MOTOR-60-prevent-division-by-zero-in-dat-metric to develop
2f615dab Prevent division by zero through (malformed) RLQ value
eb59d287 Merge pull request #14 in FKIEA/oonf-os from bugfix/MOTOR-59-fix-nhdp-status-for-ip-level-interfaces to develop
8d424b24 Fix NHDP link status for interfaces without MAC addresses
26557e54 Merge pull request #13 in FKIEA/oonf-os from bugfix/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
eecc3333 Add missing telnet dependency to layer2-config
0e24b09f Merge pull request #12 in FKIEA/oonf-os from feature/MOTOR-57-allow-import-of-non-unicast-routes to develop
965c2f73 Allow "non-unicast" routes to be imported
710b353b Merge pull request #11 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
243e17e3 Allow setting l2config via telnet
40f24ab9 Partly working telnet code for l2config
1db358dc Merge pull request #10 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop
c33d680e Add LID capability to oonf_layer2 and l2config subsystem
312d09d4 Merge pull request #9 in FKIEA/oonf-os from develop to master
1551b86d Automatic merge from master -> develop
c154c31b Merge pull request #8 in FKIEA/oonf-os from feature/MOTOR-52-ablehnen-von-konfigurationen-mit-unbekannten-werten to develop
bad48ebc Do not accept configuration with unknown sections/values if 'global.failfast' is true. Set 'global.failfast' to true by default
9996fe65 Merge pull request #7 in FKIEA/oonf-os from bugfix/MOTOR-51-vif-socket-is-blocking to develop
05682c0c Make VIF sockets non-blocking
9455e50f Automatic merge from master -> develop
d05cc410 Merge pull request #6 in FKIEA/oonf-os from develop to master
7416ba8d Merge pull request #5 in FKIEA/oonf-os from bugfix/MOTOR-50-olsr-compilation-fails-on-ubuntu-16.04 to develop
63345654 Reorder libraries for testcase creation to prevent Ubuntu 16.04 Bug (MOTOR-50)
3a7e5e8e Automatic merge from master -> develop
d592fbf7 Merge pull request #4 in FKIEA/oonf-os from develop to master
e489f97a Merge pull request #3 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop
3c1984f8 Fix compilation issue with "no-debug" logging
52c6b569 Merge pull request #2 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop
3765eb01 Cleanup ffdat metric to be able to import rx_throughput.
bdee26ba Improve combination of DAT speed and L2 throughput values
a1c3ea66 Allow ffdat metric to consider rx_throughput field
c8ec8301 Fix token validation
ad72038e Improve DAT-Metric by shifting hysteresis to the loss side and consider other layer2 parameters
9addfba4 Fix fixed integer arithmetics handling
f9ccd26b Track scaling factors of layer2 data elements. Handle different scaling for DLEP conversion.
603e48e8 Fix router_id for Netjson domain output
6aebcf99 Merge pull request #1 in FKIEA/oonf-os from develop to master
234e9109 Improve hello interval overwriting
7fc0f50b Add SNR to layer2 neighbor data
f9ebcf8e Fix bad 'is in list' test in stream socket processing
29a2a385 Set path prefix length in CMakeListsGlobal
a2ea9186 Replace VIF name pointer with array
e8f04530 Simplify test case creation
271ff097 Move 'enable test' to CMakeListsGlobal.cmake
0482db42 Fix no-debug/no-info compilation
38edcced Add more doxygen comments for layer2 import
becd33bd Merge branch 'feature/MOTOR-47-route-redistribution-for-dlep' of ssh://team.fkie.fraunhofer.de:7999/fkiea/oonf-os into feature/MOTOR-47-route-redistribution-for-dlep
1a709b5c Add missing comment for subsystem shutdown initiation, remove empty files
c7a68650 Fix the handling of neighbor IPs in dlep radio.
c255ead5 Add avl_for_each_elements_with_key_safe() macro and do some basic tests
5f835533 Don't filter for protocol for routes being removed (linux does not report protocol in this case)
83b19c54 Allow imported routed to be combined by l2import into the same l2 network. Allow multiple IP addresses being reported by DLEP
d7d69064 (origin/staging) Merge branch 'develop' into staging
5274ce6a Fix tarball generator
6dd188ed Use relative path for calling archive builder
988aac6e Move included cmake files into CMakeListsGlobal to allow inclusion in wrapper projects
2a072733 Cleanup build installation directories
fc1fbbed Move test include to include directory
4043202f Rename "subsystems" directory to "base"
2e3578ba Add "config query" command to remotecontrol plugin to query a configuration value including default
48c2cdcb Prevent theoretical buffer overlow to make Coverity more happy (Coverity #181104)
19583704 Fix possible Null reference in colored logging (Coverity #188445)
6fa04505 Fix GCC 8 warning about small buffer
356d3b9b Allow wrapped build directory around OONF directory
11be4696 Cleanup and simplify OONF directory strucure
f1a30ade Restructure import of FIB entries to go through the layer2 db allow export of layer2 IP entries to FIB allow transmission of layer2 IP entries over DLEP
32bf829c Remove debugging code accidently left in for LID preparation
f6b884b1 (origin/packet_socket_bug) Hotfix for closing UDP socket behavior mentioned in Github Issue 14
e7e5b685 Add missing build target for test creation
88efd166 Cleanup build system for tests and add generic 'build_tests' target.
2e5803bd Add more linklayer data options and a better query function
2dac53d9 Restructure ffdat plugin as preparation for external metric calculation Fix compiler warning in routing code
8cb39863 Remove static modifier from olsrv2/nhdp logging sources. Otherwise they cannot be used by the other source files of the plugins.
3a2dd24e Fix return values of DLEP signal processing callbacks
b2e18c91 Fix handling of lid-length TLV in DLEP session ACK
2b7b3ef8 Add doxygen comments for link-id code
bc24cba0 Implement lid_length mechanism into DLEP
b12ef6ea Add basic link-id capability to DLEP
8cc2d03e Add a few example configurations to the repository
1e3fb288 Add support for Link-ID to layer2 database
28adaf5a Remove (done) TODO mark for outgoing TCP connection error handling
2bfbcff3 Improve error handling for failed outgoing TCP connections
1d1e8876 Add better debugging output to packet socket code
3b89103e Fix issues with DLEP udp_mode none and reconnect
d4d64875 Add function to calculate IPv6 address from MAC
bdc2c2e6 Fixes for doxygen comments
5e2a7b48 Fix variable used in layer2 generator loop
a38b6847 Fix DLEP handling of mandatory TLVs
50e4e1b8 Add netaddr constants for MAC48 prefixes for IPv4/6 multicast

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-01-23 14:24:40 +01:00
Patrick Grimm
53ab677c9e oonf: fix IB warnings 'include file not found'
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-01-23 14:24:10 +01:00
Christian Marangi
b65ef40e46
bmx7: bump PKG_RELEASE for libiwinfo ABI change
Bump PKG_RELEASE for libiwinfo ABI change for bmx7 package.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-01-22 20:12:42 +01:00
Moritz Warning
c470bff2d8 bird1-openwrt: change maintainer for bird1-ipv6-openwrt
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-01-04 08:10:36 +01:00
Moritz Warning
a1d97192f8 bird1-openwrt: change maintainer for bird1-ipv4-openwrt
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2023-01-04 08:10:36 +01:00
Bradford Zhang
7086d85595 bird2: bump to version 2.0.11
Signed-off-by: Bradford Zhang <zyc@zyc.name>
2022-12-12 14:46:02 +01:00
krzys-h
d5c4ef98c9 bird1: Add missing dependency on luci-compat 2022-11-23 19:43:37 +01:00
Rob White
6c31b5bd1c opennds: Release v9.9.1
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 22.03

opennds (9.9.1)

  * This version fixes some issues
  * Fix - minimalise deprecated legacy .conf file
  * Fix - Prevent rate limit refresh if rate limit is set to 0 [bluewavenet]
  * Fix - Mute some unneccessary debug messages [bluewavenet]
  * Fix - do not write unconfigured (null) parameters to client id file (cidfile) [bluewavenet]
  * Fix - Prevent error "Command process exited due to signal 13" when executing an external script [bluewavenet]
  * Fix - use WTERMSIG() return code for _execute_ret when execute fails [bluewavenet]
  * Fix - use correct response type for error 503 [bluewavenet]
  * Update Makefile description [bluewavenet]
  * Add - Community Local FAS install script [bluewavenet]
  * Update - Mention TCP port 80 requires AutonomousWG [afriza]


Signed-off-by: Rob White <rob@blue-wave.net>
2022-11-21 22:08:18 +01:00
Simon Wunderlich
a3843dd321
Merge pull request #917 from ecsv/batadv-2022.3
batman-adv: update packages to version 2022.3
2022-11-11 16:48:42 +01:00
Sven Eckelmann
5ca59df102 alfred: update to version 2022.3
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-10 21:44:20 +01:00
Sven Eckelmann
fb4beaee20 batctl: update to version 2022.3
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-10 21:44:20 +01:00
Sven Eckelmann
081291592e batman-adv: update to version 2022.3
* support latest kernels (4.9 - 6.1)
* coding style cleanups and refactoring
* bugs squashed:

  - limit the minimum MTU of hard-interface to avoid
    "Forced to purge local tt entries" errors

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-10 21:44:20 +01:00
Stijn Tintel
c2f9428ac5 olsrd: trim trailing space
Found with modified Kconfiglib.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-11-03 14:50:47 +01:00
Simon Wunderlich
079c922b54
Merge pull request #912 from ecsv/batadv-2022.2
alfred/batman-adv: Rebuild on CONFIG*_ALFRED_*/CONFIG_BATMAN_ADV_ changes
2022-10-24 10:44:28 +02:00
Sven Eckelmann
88ee3e69d6 alfred: Rebuild on CONFIG*_ALFRED_* changes
The buildsystem doesn't know that the Package/*/config kconfig symbols are
related to the alfred package build. It is necessary to explicitly define it
via PKG_CONFIG_DEPENDS.

Fixes: f76074d424 ("alfred: add alfred 2013.3.0 to feed")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-10-23 10:20:39 +02:00
Sven Eckelmann
fb41ed5cc8 batman-adv: Rebuild on CONFIG_BATMAN_ADV_* changes
The buildsystem doesn't know that the KernelPackage/*/config kconfig
symbols are related to the batman-adv package build. It is necessary to
explicitly define it via PKG_CONFIG_DEPENDS.

Fixes: 522ce8dfdb ("batman-adv: rename folder name to match project & package name")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-10-23 10:16:07 +02:00
Rob White
6cccf1fd65 opennds: Release v9.9.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 22.03

opennds (9.9.0)

  * This version adds new functionality, and fixes some issues
  * Add - Community ThemeSpec to support legacy splash.html [bluewavenet]
  * Fix - ensure nat_traversal_poll_interval defaults to 10 seconds [bluewavenet]
  * Add - process send_to_fas_deauthed and send_to_fas_custom in fas-aes-https [bluewavenet]
  * Add - support for send_to_fas_deauthed library call in binauth_log.sh [bluewavenet]
  * Add - heartbeat file containing timestamp [bluewavenet]
  * Add - send_to_fas_deauthed and send_to_fas_custom library calls [bluewavenet]
  * Add - Save authmon daemon startup arguments for libopennds [bluewavenet]
  * Fix - potential divide by zero errors [bluewavenet]
  * Add - option nat_traversal_poll_interval [bluewavenet]
  * Add - Library calls for urlencode and urldecode[bluewavenet]
  * Fix - Don't download remotes if ThemeSpec not configured [bluewavenet]
  * Add - Error report in syslog if dhcp database is not found [bluewavenet]
  * Add - library calls, deauth and daemon_deauth [bluewavenet]
  * Fix - change WTERMSIG log from WARNING to NOTICE [bluewavenet]
  * Add - Set minimum bucket size to 5 regardless of configured bucket ratio [bluewavenet]
  * Fix - safe_vasprint return value [bluewavenet]
  * Add - test if safe_calloc failed and serve error 503 [bluewavenet]
  * Add - use calloc instead of malloc[bluewavenet]
  * fix - safe functions to return error rather than exit [bluewavenet]
  * Add - b64decode custom string received by binauth script [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2022-10-09 15:19:14 +02:00
Rob White
290ed82bd8 mesh11sd: Release v1.2.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: All
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64, on 21.02, 22.03 and snapshot.

Description:
  * This version adds new functionality.
  * Update README.md
  * Add - Traffic volume, Peers and stations to status output [bluewavenet]
  * Add - limit up-checks to mesh interfaces only [bluewavenet]

 -- Rob White <dot@blue-wave.net>  Mon, 08 Aug 2022 13:40:31 +0000

Signed-off-by: Rob White <rob@blue-wave.net>
2022-08-10 07:47:55 +02:00
Rob White
b6f063dcca opennds: Release v9.8.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64; on snapshot, 22.03

  * This version adds new functionality, and fixes some issues
  * Fix - suppress stderr in client_params in generic linux [bluewavenet]
  * Fix - client_params on generic linux, remote logo not supported yet [bluewavenet]
  * Fix - compiler warning [bluewavenet]
  * Fix - set voucher script as executable [bluewavenet]
  * Update OpenWrt Makefile [bluewavenet]
  * Add - format footer in Themespec scripts [bluewavenet]
  * Update footer on all scripts [bluewavenet]
  * Update - Community Voucher Themespec [bluewavenet]
  * Add - Check on startup for Y2.038K bug (32 bit time) [bluewavenet]
  * Fix - Remove deprecated Debian specific files [bluewavenet]
  * Add - More css updates [bluewavenet]
  * Add - user friendly RFC8910 page511 text and remove refresh button [bluewavenet]
  * Fix - MHD becomes unresponsive serving page 511 for rfc8910 clients [bluewavenet]
  * Add - extra startup settings - ignore_sigpipe and write nds info [bluewavenet]
  * Add - set MHD connection limit to 100, set MHD listen backlog size to 128, set MHD_HTTP_HEADER_CONNECTION "close" [bluewavenet]
  * Fix - Add missing LOG_CRIT in debug [bluewavenet]
  * Add - some useful diagnostic output in authmon [bluewavenet]
  * Fix - Move testing to community [bluewavenet]
  * Fix - Community - Use tmpfs by default for vouchers.txt file [bluewavenet]
  * Add - README with use instructions and notice about flash wearout [fservida]
  * Fix - Refactor folder structure for community themespec [fservida]
  * Add - Create vouchers.txt [fservida]
  * Add - Create theme_voucher.sh [fservida]
  * Update - README.md [bluewavenet]
  * Add - image download info message [bluewavenet]
  * Add - css updates [dianariyanto]
  * Add - allow downloaded remotes refresh for all modes [bluewavenet]
  * Add - download_resources.sh to installed files [bluewavenet]
  * Add - support for download of custom images and files in the status.client page [bluewavenet]
  * Remove - Debian man page support [bluewavenet]
  * Fix - Add missing mkdir command in Makefile [dzatoah]
  * Fix - typos in src/{conf, main}.c [dzatoah]

Signed-off-by: Rob White <rob@blue-wave.net>
2022-08-07 22:50:45 +02:00
Simon Wunderlich
6af0f221b2
Merge pull request #901 from ecsv/batadv-2022.2
batman-adv: update packages to version 2022.2
2022-07-27 16:05:56 +02:00
Sven Eckelmann
5db5b129f8 alfred: update to version 2022.2
* support event notification via unix socket
* improve timing stability of transmitted announcement packets
* reduce socket handling overhead when many clients and interfaces

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-07-26 21:56:31 +02:00
Sven Eckelmann
0e88798681 batctl: update to version 2022.2
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-07-26 21:56:00 +02:00
Sven Eckelmann
4a2b53b10d batman-adv: update to version 2022.2
* support latest kernels (4.9 - 5.19)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-07-26 21:55:40 +02:00
Toke Høiland-Jørgensen
9abed61018
Merge pull request #895 from mbargo23/mbargo23/bird2
bird2: bump to version 2.0.10
2022-06-28 17:30:14 +02:00
Jan Betik
1fa9fa339c
bird2: bump to version 2.0.10
Signed-off-by: Jan Betik <jan.betik@nic.cz>
2022-06-28 16:42:52 +02:00
Nick Hainke
cfd82729a9 olsrd: replace patch for storms with real patch
Fixes: bb5bbc6afd ("olsrd: import patch to prevent olsr storms")

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-06-23 12:22:51 +02:00
Nick Hainke
bb5bbc6afd olsrd: import patch to prevent olsr storms
Fixes:
https://github.com/OLSR/olsrd/issues/106

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-06-22 12:54:43 +02:00
William Fleurant
d705f79890
cjdns: support the supernodes feature (#884)
Signed-off-by: William Fleurant <meshnet@protonmail.com>
2022-06-20 21:31:44 +02:00
William Fleurant
217330bb5e
cjdns: bump v21.1 and patch find-python (#883)
* cjdns: bump source from v21 to v21.1
* cjdns: bump release with patch to prefer python2
* cjdns: refresh patches and remove patch musl

Signed-off-by: William Fleurant <meshnet@protonmail.com>
2022-06-18 19:01:00 +02:00
Nick Hainke
09d5ceb923 naywatch: add log when naywatch activates
Naywatch now prints
  naywatch: Naywatch Activated!
when becoming active.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-06-10 10:25:43 +02:00
Jeffery To
e2d72c5775 ci: Use openwrt/gh-action-sdk@v5
The previous build errors with v5 have been fixed. This version builds
packages as a normal user instead of as root.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2022-06-01 08:24:57 +02:00
Rob White
80817c8d59 mesh11sd: Release v1.1.1
Maintainer: Rob White rob@blue-wave.net
Compile tested: All
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64, on 21.02.2 and snapshot.

Description:
  * This version adds new functionality, and fixed some issues
  * Fix - repeated syslog messages - output only on mode change [bluewavenet]
  * Add - service status to json output [bluewavenet]
  * Add - support for multiple mesh interfaces [bluewavenet]
  * Fix - duplicate ifname if more than one mesh interface [bluewavenet]
  * Add - compatibility with iw < v5.16-1 [bluewavenet]
  * Add - search and delete phantom meshnodes [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2022-05-21 16:46:51 +02:00
Nick Hainke
983096d308 babeld: rewrite description
Babel is now a IETF standard. Update the package description.
Fixes: #867

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-05-19 15:22:09 +02:00
Nick Hainke
9028f67afd babled: update to 1.12.1
Changelog:
916d3d9 Update CHANGES for babeld-1.12.1
3d8aec4 Schedule an interface check after adding an interface.
f13602b Split last PC into unicast and multicast values

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-05-18 17:02:41 +02:00
Simon Wunderlich
50e02d4cff
Merge pull request #863 from ecsv/batadv-2022.1
batman-adv: Fix build with kernel 5.15.38
2022-05-13 11:51:19 +02:00
Sven Eckelmann
4216c909aa batman-adv: Fix build with kernel 5.15.38
The build failed in this kernel due to some missing implicit includes:

  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:64:42: warning: 'struct sk_buff' declared inside parameter list will not be visible outside of this definition or declaration
     64 | static inline int batadv_netif_rx(struct sk_buff *skb)
        |                                          ^~~~~~~
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h: In function 'batadv_netif_rx':
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:66:13: error: implicit declaration of function 'in_interrupt' [-Werror=implicit-function-declaration]
    66 |         if (in_interrupt())
        |             ^~~~~~~~~~~~
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:67:24: error: implicit declaration of function 'netif_rx' [-Werror=implicit-function-declaration]
     67 |                 return netif_rx(skb);
        |                        ^~~~~~~~
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:69:24: error: implicit declaration of function 'netif_rx_ni' [-Werror=implicit-function-declaration]
     69 |                 return netif_rx_ni(skb);
        |                        ^~~~~~~~~~~
  In file included from <command-line>:
  ./include/linux/netdevice.h: At top level:
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:71:18: error: conflicting types for 'batadv_netif_rx'; have 'int(struct sk_buff *)'
     71 | #define netif_rx batadv_netif_rx
        |                  ^~~~~~~~~~~~~~~
  ./include/linux/netdevice.h:4029:5: note: in expansion of macro 'netif_rx'
   4029 | int netif_rx(struct sk_buff *skb);
        |     ^~~~~~~~
  build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/batman-adv-2022.1/compat-hacks.h:64:19: note: previous definition of 'batadv_netif_rx' with type 'int(struct sk_buff *)'
     64 | static inline int batadv_netif_rx(struct sk_buff *skb)
        |                   ^~~~~~~~~~~~~~~
  cc1: some warnings being treated as errors

Reported-by: Chen Minqiang <ptpt52@gmail.com>
Fixes: b65a8ca03a ("batman-adv: update to version 2022.1")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-05-12 14:29:10 +02:00
Simon Wunderlich
8770d8ffb6
Merge pull request #857 from ecsv/batadv-2022.1
batman-adv: update packages to version 2022.1
2022-05-08 15:00:03 +02:00
Nick Hainke
b35766330b babeld: update to 1.12
Changelog:

5 May 2022: babeld-1.12

  * Implement v4-via-v6 routing (RFC 9229), which allows a router with
    IPv4 addresses only to route IPv4.  Thanks to Théophile Bastian.
  * Enable extended Netlink acks when available.
    Thanks to Toke Høyland-Jørgensen.
  * Fix restoring of interface configuration to avoid unbounded memory
    consumption.  Thanks to andrew-hoff.
  * Fix handling of deny filters in the install chain.

Refreshed patches:
- 600-add-ubus.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-05-08 12:24:24 +02:00
Sven Eckelmann
6a5c3db321 alfred: update to version 2022.1
* coding style cleanups and refactoring
* introduce 'server status' IPC call
* bugs fixed:

  - prevent potential read outside of buffer when parsing
    alfred_change_interface_v0/alfred_change_bat_iface_v0 IPC message

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-05-06 22:09:55 +02:00
Sven Eckelmann
4868b8941c batctl: update to version 2022.1
* bugs squashed:

  - drop additional delay after the last ping packet

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-05-06 22:09:55 +02:00
Sven Eckelmann
b65a8ca03a batman-adv: update to version 2022.1
* support latest kernels (4.9 - 5.18)
* bugs squashed:

  - resolve "time-of-check-time-of-use" race condition when checking the
    network namespace of a lower device
  - fix sanity check of network devices in different namespaces with
    colliding IDs
  - prevent transmission errors after splitting large GRO packets into
    smaller fragments

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-05-06 22:09:55 +02:00
Toke Høiland-Jørgensen
20621cf8a1
Merge pull request #856 from stintel/bird
bird2: stop service early
2022-04-27 11:07:07 +02:00
Stijn Tintel
0fd4ed1d3e bird2: stop service early
The bird service needs to stop before network is stopped, otherwise it
might not be able to cleanly terminate its sessions. Introduce STOP=10
as is used in the bird1 init scripts.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-04-27 11:31:48 +03:00
Simon Wunderlich
d929509b12
Merge pull request #852 from ecsv/batadv-2022.0
batman-adv: Drop compat patches + hacks for Linux < 5.10
2022-04-18 13:59:25 +02:00
Sven Eckelmann
b1d9a55b49 batman-adv: Drop compat hacks for kernels < 5.10
OpenWrt master is no longer providing any kernels older than 5.10. Just
drop the compat-hacks for older kernels to make it easier to maintain the
package.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-04-17 14:00:29 +02:00
Sven Eckelmann
500352d44f batman-adv: Drop unused compat patches
The minimal kernel version in OpenWrt is now Linux 5.10.111. It already
provides various thing which needed special patches on older versions.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-04-17 14:00:29 +02:00
Sven Eckelmann
73195d63da batman-adv: compat: Add atomic mc_forwarding support for stable kernels
Eric Dumazet changed the mc_forwarding in commit 145c7a793838 ("ipv6: make
mc_forwarding atomic") the type of mc_forwarding from __s32 to an atomic_t.
This patch was then ported to various stable kernels.

This code change caused a FTBFS when in batman-adv when
CONFIG_BATMAN_ADV_MCAST was activated. To work around this problem, provide
a version for kernels with __s32 mc_forwarding and a version for kernel
with atomic_t mc_forwarding.

Fixes: #850
Reported-by: Huangbin Zhan <zhanhb88@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-04-17 13:25:16 +02:00
Jo-Philipp Wich
8574cb411a opennds: remove iptables-legacy CONFLICTS
The opennds software interfaces with netfilter using `iptables` commands,
it does not rely on a specific implementation of the iptables frontend.

Furthermore, the semantically wrong conflict with iptables-legacy
introcduces recursive dependencies in the build system, even for people
not using opendns.

Remove the explicit conflict marker for iptables-legacy.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-04-13 00:04:06 +02:00
Nick Hainke
65f747a8bc naywatch: fix reboot_now
Naywatch should first try to reboot normally, and if that does not work
do a hard reboot. However, the hard reboot was never called.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-04-01 10:23:56 +02:00
Petr Štetiar
5702d2e40b ci: use openwrt/gh-action-sdk@v4
In order to use feeds from GH mirror for GH actions, thus saving a lot
of resources being wasted. While at it fix whitespace issue.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
[applied to routing feed]
[whitespace issue not existing in routing feed]
Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-30 21:52:40 +01:00
Paul Spooren
2134c56d12 CI: update SDK action to v3
No also check mirror hashes and badly formated init files

Signed-off-by: Paul Spooren <mail@aparcar.org>
[applied to routing feed]
Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-30 21:52:40 +01:00
Rob White
93efc5b8e1 mesh11sd: [New Package] Release v1.0.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: All
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64, on 21.02.2

Description:
  Mesh11sd is a dynamic parameter configuration daemon for 802.11s mesh networks.
  It was originally designed to leverage 802.11s mesh networking at Captive Portal venues.
  This is the open source version and it enables easy and automated mesh network operation with multiple mesh nodes.
  It allows all mesh parameters supported by the wireless driver to be set in the uci config file.
  Settings take effect immediately without having to restart the wireless network.
  Default settings give rapid and reliable layer 2 mesh convergence.
  Without mesh11sd, many mesh parameters cannot be set in the uci wireless config file as the mesh interface must be up before the parameters can be set.
  Some of those that are supported, would fail to be implemented when the network is (re)started resulting in errors or dropped nodes.
  The mesh11sd daemon dynamically checks configured parameters and sets them as required.
  This version does not require a Captive Portal to be running.

Signed-off-by: Rob White <rob@blue-wave.net>
2022-03-30 21:14:57 +02:00
Nick Hainke
dbff012a2f babeld: bump to version 1.11
30 March 2022: babeld-1.11

  * Implemented MAC authentication (RFC 8967).  Thanks to Clara Dô,
    Weronika Kołodziejak and Antonin Décimo.
  * Changed the interface of the add_filter function in order to simplify
    integration in OpenWRT.  Thanks to Nick Hainke.

Detailed List:
7c053fe Export add_filters and simplify interface.
91c44f8 Rename blake2s to blake2s128.
dda8d63 Update CHANGES.
43a0066 Allow Blake2s keys up to 32 bytes.
375ea5f Rename interface option hmac to key.
1b9abc4 Replace hmac-verify with accept-bad-signatures.
3777eb4 Ignore .gitmodules when releasing an archive.
3551b45 Simplify and fix preparse phase.
ba8f116 Add rate limitations for challenges.
6d44238 Show PC number.
ceda3a0 Expire Index and challenge timer.
d66a4d2 Ignore a Challenge Request received on multicast.
024c17a Fix confusion between INDEX_LEN and NONCE_LEN when sending PC TLV.
ceb021f Fix double-free in error path.
1e08aed Change no_hmac_verify to hmac-verify.
c7ad387 Use 'hmac-sha256' and not 'sha256'.
5a15957 Fix nodes incorrectly rejecting packets.
af02039 Append a PC message if Babel-MAC is enabled.
46fc7da Follow the spec closely for the preparse phase.
87f39d0 Rename MAC functions and constants to match the spec.
02b14e3 Helpful error messages in key configuration.
d763f3e Error if configured key can't be found.
3cb0ab7 Use RFC3542 for IPv6 on macOS.
69df1cb Use _GNU_SOURCE instead of __USE_GNU.
ef3a113 Don't copy nonce, suppress VLA.
c243769 Move key validation in parse_key.
b06b2fc Constify source argument of fromhex.
9529941 Use AUTH_TYPE_NONE consistently.
d922b64 Document the HMAC options in manual page.
0c4afc2 Only allow keys configured on a given interface.
7de6715 Create neighbour after checking HMAC.
ecd1f42 Fix typo in compare_hmac.
9a5de34 Fix HMAC-SHA-256 computation.
f1051fd Fix constants to be consistent with SHA-256.
9688b68 Fix memory leaks in error-handling paths in configuration parser.
4d8a831 Fix some more (read-only) buffer overflows.
ebda926 Fix potential memory leaks.
d53fec0 Use AUTH_TYPE_* consistently.
a1afd51 Add no_hmac_verify flag.
b4e28f2 Fix ordering of fields in pseudo-header.
c8ace8b Use IANA-assigned TLV numbers.
739f76a Implement HMAC authentication.
e3adf47 Compile with SHA-256 and Blake2s.
ca0a512 Add SHA-2 and Blake2 submodules.
756783e Untabify

Remove upstreamed patches:
- 000-export-add-filters-and-simplify-interface.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-30 19:51:15 +02:00
Nick Hainke
a618159d33 babeld: add add_filter function
You can define filter functions in babeld by:

   in if eth0 metric 128

This commit adds the ubus equivalent to dynamically add filter on
runtime:

  ubus call babeld add_filter '{"ifname":"eth0", "type":"input",
                                "metric":128}'

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-30 12:32:55 +02:00
Nick Hainke
e3c6842923 olsrd: set lqm via ipc
You can now give a lqm when adding an interface:
  ubus call olsrd add_interface '{"ifname":"wg_51821", "lqm":"0.5"}'

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-25 19:47:32 +01:00
Rob White
d078190b84 opennds: Release v9.7.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, x86-64, on snapshot

  * This version adds new functionality, and fixes some issues
  * Fix - syntax error (missing comma) in awk command in bash on generic Linux [bluewavenet]
  * Add - option to append serial number suffix to gatewayname [bluewavenet]
  * Add - block use of ip aliases on gateway interface [doctor-ox] [bluewavenet]
  * Fix - ndsctl json syntax error [bluewavenet]
  * Add - check for null variables in key value pairs in MHD callbacks [bluewavenet]
  * Fix - changed some notice messages into debug messages [bluewavenet]
  * Fix - possible return of incorrect pid [doctor-ox] [bluewavenet]
  * Fix - possible abiguities resulting in failure to parse parameters correctly [bluewavenet]
  * Fix - Remove deprecated get_client_token.sh [bluewavenet]
  * Fix - Prevent possible malformed mac address returned from dhcpcheck() [doctor-ox] [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2022-03-20 18:31:59 +01:00
Nick Hainke
319fac32b1 olsrd: update to 2022-03-18
fcb30aa4da73 unix: fix meshing with wireguard/point-to-point interfaces

Remove upstreamed patch:
- 101-unix-fix-meshing-with-wireguard-point-to-point-interfaces.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-18 14:34:03 +01:00
Etienne Champetier
1cd72bff83 olsrd: fix recursive dependency
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2022-03-14 07:04:39 +01:00
Josef Schlehofer
fe7f1936d1 vis: update it, refactor Makefile and refresh patch due to fuzz
- Switch to AUTORELEASE in PKG_RELEASE
This avoids cases when someone forgets to bump PKG_RELEASE

- Fixed SPDX License Identifier

- Changed package versioning
Before: vis_1440-2_arm_cortex-a9_vfpv3-d16.ipk
After: vis_2013-04-07-7710cce4-1_arm_cortex-a9_vfpv3-d16.ipk

- Drop not necessary rows
(Some of them were overwritting defaults and it is not necessary)
Downloaded tarball is ~2kB smaller

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-07 14:56:01 +01:00
Nick Hainke
d5a7e526c7 olsrd: add iptables as dependency
The upcoming OpenWrt version (currently in the master branch) ships
firewall4 by default [1], which uses nftables instead of iptables.

Users might choose to use a compatible layer [2] with iptables-nft,
decide which iptables they want to use, and make appropriate changes
related to fw3/f4[3].

This package requires to use iptables (no matter which variant) for
smart-gw-rules.

[1] 08d9f6e302
[2] https://www.redhat.com/en/blog/using-iptables-nft-hybrid-linux-firewall
[3] 795e7155cb

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-06 14:50:28 +01:00
Josef Schlehofer
8ec1cd2f67 minimalist-pcproxy: fix post install script
Fixes:
Configuring minimalist-pcproxy.
sh: 1: unknown operand

Reported-by: Daniel Golle <daniel@makrotopia.org>
Suggested-by: Daniel Golle <daniel@makrotopia.org>

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-04 12:46:18 +01:00
Josef Schlehofer
528bb41cc9 mrd6: remove it
According to the author [1]:
1. It is no longer supported and maintained.
2. It is no longer necessary as since 2005 the native multicast
   forwarding support was added to the Linux Kernel

As alternative pimbd could be used.

[1] c805eb3325

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-04 09:49:29 +01:00
Josef Schlehofer
c9a7659f2f minimalist-pcproxy: Makefile cleanup
- Fixed LICENSE
Software is licensed under MIT
- Added PKG_LICENSE_FILES

- The was wrong date in PKG_VERSION
The latest commit is 2014-12-12.

- Changed package versioning
Before: minimalist-pcproxy_2015-01-12-2d6d1b0b0a3b79a9b4a9b0a7606a84600a967bcb-2_arm_cortex-a9_vfpv3-d16.ipk
After: minimalist-pcproxy_2014-12-12-2d6d1b0b-1_arm_cortex-a9_vfpv3-d16.ipk

Also the downloaded tarball is smaller by 0,4 kB

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-04 09:49:08 +01:00
Josef Schlehofer
c64e02c5b5 nodogsplash: fix SPDX License Identifier and reordering
- Add PKG_LICENSE_FILES
- Use two spaces instead of tabs

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-03 08:55:53 +01:00
Josef Schlehofer
eefb80705e prince: Makefile refactoring
- Use AUTORELEASE in PKG_RELEASE
- Use tarball instead of checkouting git
- Use two spaces instead of indentation
- In install section reorder it (first folder, then files and so on)
- Added LICENSE file

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-03-03 08:48:17 +01:00
Josef Schlehofer
699106ac8e quagga: reorder things in Makefile
- Fix SPDX License Identifier
- Use HTTPS in URL

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 15:37:24 +01:00
Josef Schlehofer
9652952036 mcproxy: Makefile cleanup
- Switched to AUTORELEASE
- Fixed SPDX License Identifier and added PKG_LICENSE_FILES
- Use HTTPS for project website
- Changed versioning
Before: mcproxy_2017-08-24-93b5ace42268160ebbfff4c61818fb15fa2d9b99-3_arm_cortex-a9_vfpv3-d16.ipk
After: mcproxy_2017-08-24-93b5ace4-1_arm_cortex-a9_vfpv3-d16.ipk

Downloaded tarball is smaller by 0,2 MB

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 15:36:43 +01:00
Josef Schlehofer
e06a6c962b mrd6: Makefle reordering
- Switch to AUTORELEASE

- Changed package versioning:
Before: mrd6_2013-11-30-c805eb33255dbc0b6647d463c6c67d1c9d3105a0-3_arm_cortex-a9_vfpv3-d16.ipk
After: mrd6_2013-11-30-c805eb33-1_arm_cortex-a9_vfpv3-d16.ipk

- Remove defaults, which are already defaults

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 15:36:20 +01:00
Josef Schlehofer
88dd5412d6 pimbd: Makefile refactor
- Switch to AUTORELEASE
- There was no need to overwrite defaults, downloaded tarball is ~4 kB
  smaller
Also change the package versioning
Before: pimbd_2018-06-19-dbf4e5913b06e3160f506df15e6a047a403a5f21-2_arm_cortex-a9_vfpv3-d16.ipk
After: pimbd_2018-06-19-dbf4e591-1_arm_cortex-a9_vfpv3-d16.ipk

- Add PKG_LICENSE_FILES

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 15:35:33 +01:00
Josef Schlehofer
19e0ca1951 opennds: Makefile refactoring
- Reorder things
- Fixed SPDX License Identifier
- Added PKG_LICENSE_FILES
- Use two spaces instead of tab

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 13:47:55 +01:00
Josef Schlehofer
282af3f8bc oonf-dlep-radio: refactor define Package/oonf-dlep-radio
- Why there was oonf-git? WTF?
- Use two spaces instead of tabs

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 10:08:40 +01:00
Josef Schlehofer
56fc0d7226 oonf-dlep-radio: refactor Makefile (package versioning, downloading)
- By this change, we are using downloading .tar.xz (which is default in OpenWrt)
Reference: OpenWrt base repository include/download.mk

Downloaded tarball size is ~60 kB smaller.

- Removed "v" in package naming.
Before: oonf-dlep-radio_v0.15.1_arm_cortex-a9_vfpv3-d16.ipk
After: oonf-dlep-radio_0.15.1_arm_cortex-a9_vfpv3-d16.ipk

Removed stuff, which is no longer needed like PKG_REV.

- Switch to AUTORELEASE in PKG_RELEASE

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-26 10:08:40 +01:00
Josef Schlehofer
4a65336e08 bmx6: update to 65cb0d542f16a4b4689f5ad2542c9f24215a6616
Makefile polishing:
- Fixed SPDX License Identifier
- Use AUTORELEASE in PKG_RELEASE
This helps in cases when the PKG_RELEASE is forgotten

- Remove no longer used things like PKG_REV, etc.
Downloaded tarball is now ~80 kB smaller as we use .tar.xz
instead of .tar.gz

- Use https for their website

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-02-25 21:32:55 +01:00
Rob White
3bc3fc3c63 opennds: Release v9.6.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.1, 19.07.8

Description:
This version adds new functionality, and fixes some issues
  * Fix - correctly display return buffer in syslog [bluewavenet]
  * Add - use heap allocation for library call return buffer [bluewavenet]
  * Fix - OpenWrt, fhook request for fw3 [bluewavenet]
  * Add - spider remote urls before downloading [bluewavenet]
  * Add - OpenWrt, revert uncommitted uci updates at startup and shutdown [bluewavenet]
  * Fix - remove unneccesary flash writes and fix hosts updates [doctor-ox] [bluewavenet]
  * Add - Updated splash images [bluewavenet]
  * Add - OpenWrt makefile for nft or ipt dependencies [bluewavenet]
  * Fix - grep by word to prevent any ambiguity [doctor-ox] [bluewavenet]
  * Fix - ensure rate limiting is disabled if rate thresholds are set to zero [bluewavenet]
  * Add - querystring support for client status page [bluewavenet]
  * Add - Advanced/standard status page checkbox [bluewavenet]
  * Add - set default session timeout to 24 hours [bluewavenet]
  * Fix - potential buffer overflow [bluewavenet]
  * Fix - Restrict max packet limit to iptables maximum [bluewavenet]
  * Fix - descriptive labels on ndsctl status output [bluewavenet]
  * Add - update of README.md [bluewavenet]
  * Fix - Added required variable to FAS return string example documentation [dorkone]
  * Add - Default checkinterval set to 15 seconds [bluewavenet]
  * Fix - incoming and outgoing counters when unlimited bursting is enabled [bluewavenet]
  * Add - maximum bucket size configuration [bluewavenet]
  * Add - calculate moving average packet size for rate limiting [bluewavenet]
  * Add - some operational default values [bluewavenet]
  * Add - initial rate limits when unrestricted bursting is disabled [bluewavenet]
  * Add - Require clients to be in the dhcp database [bluewavenet]
  * Add - dhcpcheck library call [bluewavenet]
  * Fix - Remove trailing whitespace when getting clientaddress if client not active [bluewavenet]
  * Fix - Segfault when FAS fails to Return customstring [dorkone] [bluewavenet]
  * Add - Enable/Disable unrestricted bursting [bluewavenet]
  * Add - gatewayurl to querystring and use in place of originurl in FAS [bluewavenet]
  * Fix - more accurate debug message [bluewavenet]
  * Fix - Show packet rate correctly as packets per minute [bluewavenet]
  * Add - Report Packet Rate and Bucket Size in ndsctl status and json and status client page [bluewavenet]
  * Add - rate limit refresh to client limit rules [bluewavenet]
  * Fix - code readability [bluewavenet]
  * Fix - Documentation for data sent to Authmon Daemon [bluewavenet]
  * Add - Show unrestricted burst intervals in ndsctl status [bluewavenet]
  * Add - Set default bucket ratios to 10 [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2022-02-20 12:54:19 +01:00
Elektra Wagenrad
6bfc5220fd
Merge pull request #786 from ecsv/batman-parallel
batman packages: Allow parallel builds
2022-02-19 12:27:34 +01:00
Sven Eckelmann
0beeb0794c batmand: Refresh patches with quilt
The test builds are now requiring quilt refreshed patches instead of git
patches. Otherwise the build check will not even try to build something.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:29:33 +01:00
Sven Eckelmann
1b00a068e5 vis: Allow parallel builds
The build system of this package is written in a way that it is safe to run
the make steps in parallel. The build time can be reduced slightly on
modern systems.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:13:13 +01:00
Sven Eckelmann
91230a4c14 batmand: Allow parallel builds
The build system of this package is written in a way that it is safe to run
the make steps in parallel. The build time can be reduced slightly on
modern systems.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:13:05 +01:00
Sven Eckelmann
823acb605b batman-adv: Allow parallel builds
The build system of this package is written in a way that it is safe to run
the make steps in parallel. The build time can be reduced slightly on
modern systems.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:12:56 +01:00
Sven Eckelmann
abc95d7807 batctl: Allow parallel builds
The build system of this package is written in a way that it is safe to run
the make steps in parallel. The build time can be reduced slightly on
modern systems.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:12:48 +01:00
Sven Eckelmann
13e7e88610 alfred: Allow parallel builds
The build system of this package is written in a way that it is safe to run
the make steps in parallel. The build time can be reduced slightly on
modern systems.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-19 09:11:11 +01:00
Nick Hainke
4afbe17480 olsrd: fix setting default interface config
The IPC should apply the "InterfaceDefaults".

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-02-13 18:15:12 +01:00
Simon Wunderlich
d7adf188eb
Merge pull request #781 from ecsv/batadv-2022.0
batman-adv: update packages to version 2022.0
2022-02-03 21:21:41 +01:00
Sven Eckelmann
3aa4cfbe7b alfred: update to version 2022.0
* coding style cleanups and refactoring
* allow changing of batman-adv interface at runtime
* allow to start alfred without interfaces specified

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-03 19:54:23 +01:00
Sven Eckelmann
911a4bab8e batctl: update to version 2022.0
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-03 19:52:41 +01:00
Sven Eckelmann
55a8827ad8 batman-adv: update to version 2022.0
* support latest kernels (4.9 - 5.17)
* dropped support for kernels < 4.9
* coding style cleanups and refactoring
* allow netlink usage in unprivileged containers
* bugs squashed:

  - don't send link-local multicast to mcast routers

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-03 19:47:44 +01:00
Nick Hainke
879725ce3e babeld: remove unused return variable
There is an unused variable in the function. Remove it.

Fixes: 3852004435 ("babeld: add add_interface function").

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-02-01 20:37:25 +01:00
Nick Hainke
3852004435 babeld: add add_interface function
An interface can be added dynmiacally to babeld by starting babeld with
the local management interface (-G) and saying:
  interface eth0

Add the ubus equivalent of this function:
  ubus call babeld add_interface '{"ifname":"eth0"}'

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-02-01 20:05:53 +01:00
Nick Hainke
0bffe620b4 olsrd: add ubus ipc integration to olsrd
IPC integration of olsrd with OpenWrt. Allow dynamic adding and removing
of interfaces at run-time. We need to rename the avl-tree files, since
libubox also defines avl tree. Also add patch to allow meshing via
wireguard point-to-point links.

The ubus interface offers following functions:
  - add_inteface '{"ifname":"wg_51820"}'
  - del_inteface '{"ifname":"wg_51820"}'

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-01-16 10:24:19 +01:00
Paul Spooren
817240b07c CI: fix runtime testing for non master branch
The runtime testing always ran on master branch aka snapshots since the
branch wasn't passed over to the container execution!

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-01-14 19:05:20 +01:00
Nick Hainke
24285ce4fc naywatch: introduce kick-count
Check multiple rounds if neighbors are available before kicking. This
should reduce unneeded reboots.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-01-13 10:01:09 +01:00
Nick Hainke
cf34c5a4a1 naywatch: fix mode without watchdog
The if-condition was always evaluated to be true.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-01-13 08:56:32 +01:00
Nick Hainke
576967a2a3 olsrd: fix meshing via wireguard tunnels
The procd script was not adding the wireguard interfaces. Add corner case
in the init script to allow meshing via wireguard.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-01-08 22:37:32 +01:00
Rob White
abc3468e28 opennds: Release v9.5.1
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.1, 19.07.8

Description:
This version adds new functionality, and fixes some issues
  * Fix - ThemeSpec file downloads when mwan3 is running [bluewavenet]
  * Fix - Preemptive auth failure after previous deauth [minhng99] [bluewavenet]
From v9.5.0
  * Add - use average packet size instead of MTU when implementing rate limiting [bluewavenet]
  * Fix - typo in iptables command and remove a redundant command [bluewavenet]
  * Add - startdaemon() and stopdaemon() utility functions [bluewavenet]
  * Add - combined interface/ipaddress external gateway status monitoring [bluewavenet]
  * Fix - potential online/offline detection problem when mwan3 is running [bluewavenet]
  * Add - get_debug_level and syslog library calls [bluewavenet]
  * Fix - correctly reset upload and download rate rules [bluewavenet]
  * Add - extend upstream gateway checking for use with mwan3 loadbalance/failover [bluewavenet]
  * Fix - Potential NULL pointer segfault in http_microhttpd on calling authenticated() [bluewavenet]
  * Fix - Potential NULL pointer segfault in http_microhttpd on calling preauthenticated() [dddaniel]
  * Add - Calculate Bucket size based on achieved burst rate [bluewavenet]
  * Fix - prevent parameter parsing if clientip not known [bluewavenet]
  * Add - disable rate quotas by setting bucket ratio to zero [bluewavenet]
  * Fix - suppress some debug messages [bluewavenet]
  * Add - more libraries documentation [bluewavenet]
  * Add - library calls startdaemon and stopdaemon [bluewavenet]
  * Fix - Increase buffer length for longer interface names [koivunen]
  * Add - Update README.md [bluewavenet]
  * Add - bucket ratio option to config file [bluewavenet]
  * Add - upload and download bucket ratio config values [bluewavenet]
  * Fix - flag initial debuglevel to externals [bluewavenet]
  * Add - limit-burst tuning to rate quotas [bluewavenet]
  * Fix - add trailing space to defaultip [bluewavenet]
  * Add - record pre-emptive authentication in local log [bluewavenet]
  * Add - Write to local log function to libopennds [bluewavenet]
  * Add - set client_type and custom string for Pre-emptive authentication [bluewavenet]
  * Fix - Remove trailing newline from library call response [bluewavenet]
  * Fix - attempt to remove cid file only if client->cid is set [bluewavenet]
  * Add - a skip option for custom downloads to speed up serving page from themespec [bluewavenet]
  * Add - put client_type into query string when type is cpd canary [bluewavenet]
  * Add - set refresh=0 before loading images [bluewavenet]
  * Fix - Truncated return status [bluewavenet]
  * Add - Acknowlegement from call to dnsconfig [bluewavenet]
  * Fix - potential buffer overflow in debug output [bluewavenet]
  * Add - processing of custom data and client type [bluewavenet]
  * Add - Client Type for RFC8908 and RFC8910 clients [bluewavenet]
  * Add - rfc8908 replies for external FAS and refactor memory management for MHD calls [bluewavenet]
  * Add - send error 403 if client is not on openNDS subnet [bluewavenet]
  * Fix - remove uneccessary safe_asprint in auth.c [bluewavenet]
  * Fix - Initialise buffer to prevent receiving spurious characters [bluewavenet]
  * Add - encoded custom data support to ndsctl json, themespec and binauth [bluewavenet]
  * Add - advert_1.htm to thankyou page of theme_click-to-continue-custom-placeholders.sh [bluewavenet]
  * Add - library call get_interface_by_ip [bluewavenet]
  * Add - function encode_custom() for encoding custom data to be sent to openNDS [bluewavenet]
  * Fix - error 511, make all html refrences absolute to enforce link to MHD [bluewavenet]
  * Add - check status_path exists and is executeable [bluewavenet]
  * Fix - regression causing error 511 to be served from default script [bluewavenet]
  * Add - venue-info-url and can-extend-session json keys [bluewavenet]
  * Add - RFC 8908 initial experimental support [bluewavenet]
  * Add - debug message when resetting client [bluewavenet]
  * Fix - Ensure the ndscids directory exists before trying to write to it. [bluewavenet]
  * Fix - use eval in do_ndsctl to allow quoting of arguments [bluewavenet]
  * Fix - ensure client hid and client cid file is reset correctly [bluewavenet]
  * Fix - Titles of example ThemeSpec Files [bluewavenet]
  * Fix - Ensure ThemeSpec Files are executable [bluewavenet]
  * Remove - deprecated Allowed and Blocked entries in ndsctl status output [bluewavenet]
  * Add - Deprecate option macmechanism, allowedmaclist and blockedmaclist [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-12-20 10:24:48 +01:00
Christian Strebe
e3035a6c9e pimbd: add config load on start
Generate config file from uci and set as start config on start of pimbd.

Signed-off-by: Christian Strebe <uipo@freenet.de>
2021-12-14 23:57:34 +01:00
Rosen Penev
d0884e3e31 mrd6: fix compilation under macOS
uname variable needs to be overriden.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-12-13 11:10:44 +01:00
Simon Wunderlich
65585a746d
Merge pull request #759 from ecsv/batadv-2021.4
batman-adv: Drop duplicated dev_{hold,put} compat helpers
2021-11-28 17:53:36 +01:00
Simon Wunderlich
3d6b699668
Merge pull request #757 from djselbeck/musl
batman-adv: Prevent use from libc headers to not build with BIG_ENDIAN
2021-11-28 17:53:05 +01:00
Sven Eckelmann
a2fe1d4131 batman-adv: Drop duplicated dev_{hold,put} compat helpers
The mac80211 package in OpenWrt master is now already providing helpers for
the changed dev_{hold,put} behavior in Linux 5.15. It is no longer
necessary to ship them as part of the batman-adv package.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-27 17:10:06 +01:00
Hendrik Borghorst
523821c195 batman-adv: Prevent use from libc headers to not build with BIG_ENDIAN
Commit 97d35a552ec5b6ddf7923dd2f9a8eb973526acea of musl introduced the
macros __LITTLE_ENDIAN and __BIG_ENDIAN in alltypes.h. These are pulled
into the compilation of batman-adv. This has the side effect that the
function is_multicast_ether_addr of etherdevice.h in Linux kernel is
compiled as the big endian version and so fails to work properly on
little endian devices.

This commits prevents pulling in header files of musl libc similar to
OpenWRT commit 9ac47ee46918c45b91f4e4d1fa76b1e26b9d57fe

Signed-off-by: Hendrik Borghorst <hendrikborghorst@gmail.com>
2021-11-27 13:53:53 +01:00
Simon Wunderlich
ec33ebf0f6
Merge pull request #754 from ecsv/batadv-2021.4
batman-adv: update packages to version 2021.4
2021-11-19 17:50:36 +01:00
Sven Eckelmann
5f10800d46 alfred: update to version 2021.4
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 17:40:29 +01:00
Sven Eckelmann
3b4a117349 batctl: update to version 2021.4
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 17:40:29 +01:00
Sven Eckelmann
ca6c9edc3e batman-adv: update to version 2021.4
* support latest kernels (4.4 - 5.16)
* coding style cleanups and refactoring
* bugs squashed:

  - fix error handling during interface initialization

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 17:40:29 +01:00
Simon Wunderlich
212cf4be36
Merge pull request #753 from openwrt/revert-750-batadv-2021.4
Revert "batman-adv: update packages to version 2021.4"
2021-11-19 17:36:05 +01:00
Simon Wunderlich
c28f02f679
Revert "batman-adv: update packages to version 2021.4" 2021-11-19 17:35:37 +01:00
Simon Wunderlich
7e555f1cdd
Merge pull request #750 from ecsv/batadv-2021.4
batman-adv: update packages to version 2021.4
2021-11-19 17:34:37 +01:00
Sven Eckelmann
4a4268524a alfred: update to version 2021.4
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 16:57:15 +01:00
Sven Eckelmann
edc1736704 batctl: update to version 2021.4
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 16:57:05 +01:00
Sven Eckelmann
260e16b32a batman-adv: update to version 2021.4
* support latest kernels (4.4 - 5.16)
* coding style cleanups and refactoring
* bugs squashed:

  - fix error handling during interface initialization

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-11-19 16:55:58 +01:00
Maarten Aertsen
4f235865e7 ohybridproxy: revert to default log level
Change log level from debug to info to avoid filling up syslog with query-level logging.

Signed-off-by: Maarten Aertsen <spam-github@rtsn.nl>
2021-11-19 07:06:50 +01:00
Eneas U de Queiroz
9cb03f0a2f mrd6: include PKG_MIRROR_HASH
This avoids unnecessary downloads and rebuilds.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-19 07:04:33 +01:00
Eneas U de Queiroz
564ca99e2c mcproxy: include PKG_MIRROR_HASH, refresh patches
This avoids unnecessary downloads and rebuilds.
Patches were refreshed to please github PR checks.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-19 07:04:33 +01:00
Eneas U de Queiroz
ade1fa6ebc pimbd: include PKG_MIRROR_HASH
This avoids unnecessary downloads and rebuilds.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-19 07:04:33 +01:00
Eneas U de Queiroz
e9d5f990a3 minimalist-pcproxy: include PKG_MIRROR_HASH
This avoids unnecessary downloads and rebuilds.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-19 07:04:33 +01:00
Nick Hainke
ce0b8b1e55 naywatch: warn user
Naywatch in combination with the watchdog can be tricky and dangerous
when doing a sysupgrade. Add a warning to always stop naywatch first and
check if procd took control over the watchdog again.

Also change use_watchdog to '0'.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-11-15 19:37:03 +01:00
Nick Hainke
b51394fdd7 olsrd: update to 21-10-06
- Revert "pud: fix build with gpsd >= 3.23.1"
- lib/pud/src/gpsdclient.c: drop handling of gpsdata->fix.status

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-11-06 16:29:25 +01:00
Nick Hainke
e7e6800c67 Revert "olsrd: remove pud"
This reverts commit 2ac3accf36.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-11-06 16:29:25 +01:00
Nick Hainke
2ac3accf36 olsrd: remove pud
The gpsd integration in the pud library is wrong. With the new update
the library is no longer compiling. Remove this library.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-28 10:10:31 +02:00
William Fleurant
71c11ab1b7
cjdns: pass for some build warnings (#738)
Compile time changes reviewed by cjd.
Due to stricter compiler(s) we do not
want to error for these warnings.

Caused by: ...reading "past the end"
of a struct, because the struct is
actually a header and the body is of
unknown size. Compilers got stricter
and this became a warning.

Signed-off-by: William Fleurant <meshnet@protonmail.com>
2021-10-19 22:09:02 +02:00
Nick Hainke
2cf253b3df babeld: remove unnecessray blob_buf_init calls
For some reason the buffer is initialized twice before filling it.
This does not break anything but is useless. Reduce the initialization
to only one.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-16 10:48:38 +02:00
Nick Hainke
6d463ca97c babeld: free blob-buffers that are on stack
As Felix mentioned:
If a buffer was already allocated, blob_buf_init reuses it. You can
keep reusing it as many times as you want. You only need to call
blob_buf_free if you explicitly want to free the buffer memory
(e.g. on exit, or if the blob_buf is on stack).

http://lists.openwrt.org/pipermail/openwrt-devel/2021-October/036722.html

This PR frees the blob-buffers that are on the stack.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-16 09:29:07 +02:00
Perry Melange
0bb6aa04f6 olsrd: wait for wireless to initialize before starting
Wait for wireless to initialize (pending="false") to ensure
that any olsrd(6) configured interfaces and their associated
devices are up.  This provides the init script the ability
to properly add all interface sections to the generated
config file /tmp/etc/olsrd(6).conf

Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
2021-10-13 09:11:14 +02:00
Nick Hainke
e35255710b naywatch: fix procd handling
Sometimes, naywatch can not handover the watchdog to procd again using
ubus. We need to call the same ubus command multiple times until procd
takes over control again.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-01 11:53:10 +02:00
Rob White
7fb22c4ad2 opennds: Release v9.4.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.0, 19.07.8

Description:
This version adds new functionality, and fixes some issues
  * Add - Error message in fas-aes-https if shared key is mismatched [bluewave.net]
  * Fix - and refactor error 511 page generation[bluewave.net]
  * Fix - and refactor dnsmasq configuration [bluewave.net]
  * Fix - Typographic error preventing RFC8910 disable [bluewave.net]
  * Add - gateway address and gatewayfqdn to ndsctl json output [bluewave.net]
  * Add - RFC8910 housekeeping on startup and shutdown [bluewave.net]
  * Add - correctly apply dhcp option 114 for generic Linux [bluewave.net]
  * Add - reading of configured ndsctlsocket in ndsctl utility[bluewave.net]
  * Add - use send_error 200 for MHD watchdog [bluewave.net]
  * Add - generation of page_511 html by library script [bluewave.net]
  * Add - extend debuglevel support to library scripts [bluewave.net]
  * Refactor - fas-aes-https to simplify and make customisation of http easier [bluewave.net]
  * Add - library script for error 511 page, allowing customisation [bluewave.net]
  * Add - make authmon report connection error details [bluewave.net]
  * Fix- remove unwanted debug message in ndsctl [bluewave.net]
  * Add - RFC8910 support by default [bluewave.net]
  * Add - display status page when accessing /login when authenticated [bluewave.net]
  * Add - MHD response to RFC8910 requests [bluewave.net]
  * Add - Dnsmasq RFC8910 configuration [bluewave.net]
  * Add - send error 511 in response to unsupported http method [bluewave.net]
  * Add - Check for ca-bundle on OpenWrt, if not installed, add syslog messages and terminate [bluewave.net]
  * Add - Make ndsctl use the configured value for socket path if set and deprecate -s option [bluewave.net]
  * Add - Warning message when Walled Garden port 80 is allowed [bluewave.net]
  * Fix - remove un-needed pthread_kill in termination_handler() [bluewave.net] [T-X]
  * Fix - debug messages from authmon.sh [bluewave.net]
  * Fix - Allow disabling gateway fqdn, facilitating access to router port 80 [bluewave.net]
  * Fix - Segfault in ndsctl when -s option is used incorrectly [bluewave.net] [T-X]
  * Fix - Typo making calculation of ul/dl rates incorrect [bluewave.net]
  * Fix - Allow port 80 to be configured in the Walled Garden [bluewave.net]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-09-24 09:36:03 +02:00
Simon Wunderlich
e43c272acb
Merge pull request #724 from ecsv/batadv-2021.3
batman-adv: update packages to version 2021.3
2021-09-15 09:42:43 +02:00
Sven Eckelmann
645064d727 alfred: update to version 2021.3
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-09-14 21:15:42 +02:00
Sven Eckelmann
4c5c285373 batctl: update to version 2021.3
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-09-14 21:15:25 +02:00
Sven Eckelmann
a7b79a1d4f batman-adv: update to version 2021.3
* support latest kernels (4.4 - 5.15)
* coding style cleanups and refactoring
* reduced memory copy overhead when sending broadcasts

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-09-14 21:14:11 +02:00
Simon Wunderlich
fffa9cb161
Merge pull request #721 from ecsv/batadv-2021.2
batman-adv: Fix build against kernel 5.10
2021-08-22 15:39:32 +02:00
Sven Eckelmann
7684cdd73d batman-adv: Fix build against kernel 5.10
The linux kernel 5.10 needs an explicit include of linux/if_bridge.h to
define br_multicast_list_adjacent and the struct br_ip_list.

Reported-by: Rosen Penev <rosenp@gmail.com>
Fixes: 47cd2a4b62 ("batman-adv: update to version 2021.2")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-08-22 08:56:28 +02:00
Simon Wunderlich
85a8ceeb75
Merge pull request #716 from ecsv/batadv-2021.2
batman-adv: update packages to version 2021.2
2021-08-20 22:46:37 +02:00
Sven Eckelmann
f399156f45 alfred: update to version 2021.2
* manpage cleanups

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-08-20 13:14:35 +02:00
Sven Eckelmann
d37f84e402 batctl: update to version 2021.2
* manpage cleanups
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-08-20 13:14:35 +02:00
Sven Eckelmann
5eda02f74c batman-adv: Refresh patches with quilt
The test builds are now requiring quilt refreshed patches instead of git
patches. Otherwise the build check will not even try to build something.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-08-20 13:14:35 +02:00
Sven Eckelmann
47cd2a4b62 batman-adv: update to version 2021.2
* support latest kernels (4.4 - 5.14)
* coding style cleanups and refactoring
* add MRD + routable IPv4 multicast with bridges support
* rewrite of broadcast queuing
* bugs squashed:

  - avoid kernel warnings on timing related checks

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-08-20 13:14:22 +02:00
Etienne Champetier
383c52ff8d
cjdns: fix uci-defaults (#714)
Since https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=4b9a67362d70c544b85078b8d5c661f43f7472d9,
uci network config interface sections use 'device' instead of 'ifname'

Even if 'device' seems to always be set by
package/base-files/files/bin/config_generate, we keep the fallbacks
in case someone install the package via opkg and has a non migrated
network config

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2021-08-19 13:05:07 +02:00
Toke Høiland-Jørgensen
d4ff15eb4c
Merge pull request #713 from mattreeve/master
[master] bird2: Fix bus error on OSPF on IPQ806X
2021-08-12 14:42:53 +02:00
Matt Reeve
f4251ccf69 bird2: Fix bus error on OSPF on IPQ806X
On a Netgear R7800, if ospf v2 or v3 is configured in bird.conf, it fails to start with this error:

Fri Jun 11 14:41:11 2021 daemon.info bird: Started
Fri Jun 11 14:41:11 2021 kern.err kernel: [ 3500.853248] Alignment trap: not handling instruction f44c0a1f at [<00035848>] Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.853283] 8<--- cut here ---
Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.859363] Unhandled fault: alignment exception (0x801) at 0x007e0624
Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.862443] pgd = 0bbef4fd
Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.868821] [007e0624] *pgd=5d6ca835, *pte=5c40b75f, *ppte=5c40bc7f

The problem is due to a struct not being properly aligned on the ARMv7 architecture.

This patch fixes the problem by adding the "PACKED" macro to the affected struct. Note
that upstream may later fix this in another way, in which case this patch will not be required.

Signed-off-by: Matt Reeve <matt@mreeve.com>
(cherry picked from commit 166b6ea77b)
2021-08-12 11:42:37 +01:00
Rob White
0a23eb0fd9 opennds: Release v9.3.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.0-rc3, 19.07.7

Description:
This version adds new functionality, and fixes some issues
  * Add - firewall passthrough mode for authenticated users [bluewave.net]
  * Add - use configured debuglevel in authmon [bluewave.net]
  * Add - automated log rotation and client_zone to binauth_log [bluewave.net]
  * Add - increased timeout interval for file downloads [bluewave.net]
  * Add - local interface to MeshZone and remove unneeded call to ip utility [bluewave.net]
  * Add - log_mountpoint and max_log_entries options [bluewave.net]
  * Add - config variables ext_interface and ext_gateway [bluewave.net]
  * Add - Start initial download of remotes only if online [bluewave.net]
  * Add - Router online/offline watchdog [bluewave.net]
  * Fix - Segfault when gatewayfqdn is disabled [bluewave.net]
  * Fix - missing clientmac when not using themespec [bluewave.net]
  * Fix - some compiler warnings [bluewave.net]
  * Fix - use configured value for webroot for remote image symlink to images folder [bluewave.net]
  * Fix - remove refrences to login.sh in documentation and comments [bluewave.net]
  * Fix - Prevent potential read overrun within the MHD page buffer [bluewave.net]
  * Remove - legacy get_ext_iface() function [bluewave.net]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-08-09 15:07:21 +02:00
Nick Hainke
1088e65440 naywatch: add naywatch
The network may crash on the SoCs, but the SoC itself does not. This
leads to a node no longer being accessible in a mesh network.  If the
node is placed in a location that is not easily accessible, e.g. in a
high tower, it can cause a lot of problems. Therefore we check the
link-local connectivity on the configured interfaces.

Signed-off-by: Nick Hainke <vincent@systemli.org>
Tested-by: Simon Polack <spolack+git@mailbox.org>
Signed-off-by: Simon Polack <spolack+git@mailbox.org>
2021-08-01 20:57:12 +02:00
Nick Hainke
87be9afac6 olsrd: rename general to procd
It was requested to name the section "procd".

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-08-01 11:06:14 +02:00
Nick Hainke
775d030a58 olsrd: make respawn_threshold configurable
Also make respawn_threshold configurable. Further, add default
values for:
- respawn_threshold 3600
- respawn_timeout 15
- respawn_retry 0

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-08-01 10:41:32 +02:00
Tobias Schwarz
bc58bd99e8 olsrd: improve respawn settings
This increases the amount of seconds to wait before a service restart
attempt from 5 to 15 seconds and allows unlimited retries. Olsrd
sometimes crashes together with a network interface and 5 seconds can
be too short to bring back up a crashed network interface, which is
required for olsrd to restart. It also adds the ability to configure
the wait time (respawn_timeout) and the number of retries
(respawn_retry).

Signed-off-by: Tobias Schwarz <info@tobias-schwarz.com>
2021-07-31 11:36:39 +02:00
Rob White
8483b6d99f opennds: Release v9.2.0
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.0-rc3, 19.07.7

Description:
This version adds new functionality, improves performance, adds documentation and fixes an issue
  * Add - new config options to ndsctl status [bluewave.net]
  * Add - Readthedocs / man documentation for configuration options [bluewave.net]
  * Add - Faster convergence of average rates to configured rate quotas [bluewave.net]
  * Add - BinAuth parse authenticated client database for client data [bluewave.net]
  * Add - Use heap allocation for http page buffer allowing large page sizes [bluewave.net]
  * Fix - fail to serve downloaded images on custom themespec [bluewave.net]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-07-15 11:22:04 +02:00
Martin Hübner
eff944874c olsrd: add olsrd-neigh.sh
This script originates from Freifunk Berlin. It prints a list of
all meshing neighbors known to olsrd on the command line.

Added: Error-checking for IPv4/IPv6-Hosts.

Signed-off-by: Martin Hübner <martin.hubner@web.de>
2021-07-11 19:32:33 +02:00
Nick Hainke
5311c844b6 olsrd: fix olsrd starting before network
Should fix #691.

Sometimes the wifi interface is not ready before olsrd tries to access
it. This leads to warnings in the form of:

daemon.info olsrd: /etc/rc.d/S65olsrd: olsrd_write_interface()
	Warning: Interface 'wireless0' not found, skipped
daemon.notice procd: /etc/rc.d/S65olsrd: olsrd: /etc/rc.d/S65olsrd:
	olsrd_write_interface() Warning: Interface 'wireless0' not found,			skipped

We make use of the "wait_for" procd command that allows us to wait for
the network before starting olsrd.

Tested-by: Noki
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-07-07 14:49:23 +02:00
Rob White
17b6e99825 opennds: Release v9.1.1
Maintainer: Rob White rob@blue-wave.net
Compile tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc
Run tested: arm_cortex-a7_neon-vfpv4, mipsel_24kc, gl-inet b1300, gl-inet mt300n-v2, Snapshot, 21.02.0-rc3, 19.07.7

Description:
This version fixes a compiler error, some compiler warnings and mutes a debug message
  * Fix - Compiler error, missing mode in call to open() [bluewave.net]
  * Fix - Compiler warning, ignored return value from call to lockf() [bluewave.net]
  * Fix - Compiler warning, ignored return value from call to system() [bluewave.net]
  * Fix - Compiler warning, ignored return value from call to fgets() [bluewave.net]
  * Fix - Remove debug message from call to get_client_interface library [bluewave.net]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-07-05 23:22:39 +02:00
Nick Hainke
64aa8866b7 olsrd: reload if config changed via uci
Fixes:
https://github.com/openwrt/luci/issues/5139

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-23 16:10:55 +02:00
Sven Roederer
b81e9c8bab issuetemplate: reference foreign repos
As we are the routing-feed, we don't care for packages of the base-, luci- and packages-feed.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
2021-06-17 22:13:45 +02:00
Nick Hainke
9a90e3dd65 oonf-dlep-radio: add PKG_MIRROR_HASH
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-13 10:43:39 +02:00
Rosen Penev
034ec30869 oonf-dlep-radio: fix compilation with Ninja
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-13 10:43:39 +02:00
Rosen Penev
27987162f7 oonf-dlep-proxy: fix compilation with Ninja
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-13 10:38:01 +02:00
Nick Hainke
1d10931616 oonf-dlep-proxy: add PKG_MIRROR_HASH
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-13 10:38:01 +02:00
Nick Hainke
d709225ed0 oonf-olsrd2: set PKG_MIRROR_HASH and refresh patch
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-13 10:30:17 +02:00
Rosen Penev
519d7bae29 oonf-olsrd2: fix compilation with Ninja
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-13 10:30:17 +02:00
Nick Hainke
a302ee6265 olsrd: update to 2021-06-21
- filtergw: add plugin allow to allow/block gateways
    (even smartgateway)

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-12 10:06:46 +02:00
Paul Spooren
4bf9a5d5dc README: update content and use Markdown
The repository path changed and the information to manually add the feed
is outdated, since it enabled by default.

Also use Markdown to format the README since it looks much more
appealing.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-06-11 23:00:30 +02:00
Nick Hainke
dc0adf7dce olsrd: switch to procd
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-11 08:36:30 +02:00
Nick Hainke
1326a6c252 olsrd: use SPDX
Use SPDX license headers to be machine readable.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-09 19:19:16 +02:00
Nick Hainke
771427cc27 Revert "olsrd: use SPDX and bump copyright"
This reverts commit a46eb8b842.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-09 18:46:37 +02:00
Nick Hainke
a46eb8b842 olsrd: use SPDX and bump copyright
1) Use SPDX license headers to be machine readable.
2) Update copyright to 2021.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-08 16:10:05 +02:00
Nick Hainke
cfd8ab958f olsrd: update to 2021-06-08
- bsd: allow use of an alternative routing table on OpenBSD

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-08 16:10:05 +02:00
Nick Hainke
27ac56adc6 olsrd: only pud depends on libgps
As a workaround for the glibc-fix the dependency on libgps was moved
to olsrd. However, only pud is using this library.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-07 21:02:34 +02:00
Nick Hainke
4f7791a1fd olsrd: update to 2021-06-07
- pud: fix openwrt glibc compilation

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-07 20:41:32 +02:00
Nick Hainke
bdec65a6d9 olsrd: add filtergw plugin
The plugin adds a possibility to filter out gateway HNAs. This can be
very handy e.g. for faulty nodes. A gateway can be taken out directly on
a central node and all traffic is then redirected. Also the underlying
smart gateways are adapted. Currently the link multiplier is often used
to control a faulty node, but it is not necessarily the best way to do
so.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 18:12:48 +02:00
Nick Hainke
e62b8b54b9 babeld: add me as maintainer
I am maintaining the ubus bindings and also the luci-app-babeld.
I am very glad that ubus is included and that is why I do not want
babeld maintainer to have extra work.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 16:57:26 +02:00
Nick Hainke
7ca6e2827f olsrd: only compile pud for musl
Compiling pud on glibc results in errors. Do not compile it util
it is fixed upstream.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 16:55:51 +02:00
Nick Hainke
6dac4d296c olsrd: update olsrd to 2021-06-01
Update olsrd to new version.
Remove upstreamed patches:
- 010-musl.patch
- 011-bison.patch
- 012-gpsd.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 16:55:51 +02:00
Nick Hainke
b455e1809a olsrd: add me as maintainer
I am now the maintainer of olsrd. Add me also as maintainer in the
openwrt-routing feed.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 16:55:51 +02:00
Nick Hainke
8c7bcb7206 olsrd: use $(AUTORELEASE)
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-06 16:55:51 +02:00
Nick Hainke
b65879895a CI: fix building multi-arch-test-build
The sed is adding the package name as "PKGNAME/" and does not remove
the "/". That is why the buildchain currently fails.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-03 00:07:41 +02:00
Nick Hainke
d1ab87b7db CI: copy .github from openwrt-packages
Just copy .github from openwrt enabling:
- checking of formalities
- checking of build
- issue template
- pr template

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-02 22:32:03 +02:00
Nick Hainke
dc22d38f91 babeld: update to 1.10
25 April 2021: babeld-1.10
  * Removed the disambiguation code: source-specific routing is no longer
    supported for IPv4, and for IPv6 only on Linux 3.11 or later.
  * Fixed an issue handling of retractions with no next hop, which caused
    interoperability problems with BIRD.  Thanks to Fabian Bläse.
  * If skip-kernel-setup is set, we no longer disable the rp_filter, which
    makes babeld work in containers.  Thanks to Martin Weinelt.

Remove upstreamed part of ubus patch:
-  local: make local_kind function accessible

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-02 21:24:13 +02:00
Nick Hainke
83774bf54a babeld: bump copyright and use SPDX
Use SPDX license headers to be machine readable.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-02 21:24:13 +02:00
Simon Wunderlich
6cd369d1aa
Merge pull request #656 from ecsv/batadv-2021.1
batman-adv: update packages to version 2021.1
2021-05-18 19:09:41 +02:00
Sven Eckelmann
71bb32684b alfred: update to version 2021.1
* Allow to force of alfred startup when the interfaces don't work/exist (yet)
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-18 18:54:27 +02:00
Sven Eckelmann
8a58147d3e batctl: update to version 2021.1
* add various commands to print generic netlink replies as JSON
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-18 18:53:18 +02:00
Sven Eckelmann
39da22d04a batman-adv: Always send iface index+name in genlmsg
The batman-adv netlink messages often contain the interface index and
interface name in the same message. This makes it easy for the receiver to
operate on the incoming data when it either needs to print something or
needs to operate on the interface index.

But one of the attributes was missing for:

* neighbor table dumps
* originator table dumps
* gateway list dumps
* query of hardif information
* query of vid information

The userspace therefore had to implement special workarounds using
SIOCGIFNAME or SIOCGIFINDEX depending on what was actually provided.
Providing both information simplifies the userspace code massively without
adding a lot of extra overhead in the kernel portion.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-18 18:51:26 +02:00
Sven Eckelmann
1c3233ca67 batman-adv: update to version 2021.1
* support latest kernels (4.4 - 5.13)
* coding style cleanups and refactoring
* bugs squashed:

  - correctly initialize padding when sending out translation table TVLVs

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-18 18:48:52 +02:00
Sven Eckelmann
473f467f29 alfred: use $(AUTORELEASE) for PKG_RELEASE
Use `$(AUTORELEASE)` variable rather than setting a PKG_RELEASE
on every commit manually.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-14 19:19:00 +02:00
Sven Eckelmann
ec2d554762 batctl: use $(AUTORELEASE) for PKG_RELEASE
Use `$(AUTORELEASE)` variable rather than setting a PKG_RELEASE
on every commit manually.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-14 19:18:50 +02:00
Sven Eckelmann
b6a5577fab batman-adv: use $(AUTORELEASE) for PKG_RELEASE
Use `$(AUTORELEASE)` variable rather than setting a PKG_RELEASE
on every commit manually.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-05-14 19:18:33 +02:00
rob
54fd237d8b opennds: Release v9.0.0
This version introduces major new functionality, some changes and fixes.

New Themed Splash pages are introduced, enabling rapid customisation. Theme placeholders can be populated from information provided in the config file. Remote files and image sources can be defined in the config file and these will be automatically downloaded as required.

Deprecated legacy code from previous versions has been removed.

Tested on OpenWrt, OpenSuse and Debian.

Signed-off-by: rob <rob@blue-wave.net>
2021-05-14 11:44:16 +02:00
Josef Schlehofer
b38a46acd5 bird2: Makefile polishing
- Just small reodering of some rows to be more consistent with packages feed
- Fix deprecated SPDX License Identifier

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-03-26 10:06:24 +01:00
Josef Schlehofer
dcff996cbe bird2: update to version 2.0.8
- Removed all patches as they are now included in upstream release
- Removed --with-linux-headers option
(Fixes: configure: WARNING: unrecognized options: --with-linux-headers)

Changelog:
https://bird.network.cz/pipermail/bird-users/2021-March/015281.html

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-03-26 10:06:24 +01:00
Rosen Penev
1c9bb999e1 ndppd: remove uClibc++ support
uClibc++ has been removed treewide. This is the last package.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-10 08:20:24 +01:00
Rob White
0f1d89c2e9 opennds: Release 8.1.1
This release fixes an issue where some firewall rules containing
the keyword "block" would cause openNDS to fail in startup.

Signed-off-by: Rob White <rob@blue-wave.net>
2021-02-22 22:06:31 +01:00
Simon Wunderlich
d63eda01ff
Merge pull request #643 from ecsv/batadv-2021.0
alfred: Fix state handling for startup and restart/reload of alfred
2021-02-16 08:45:31 +01:00
Sven Eckelmann
ad85bc8142 alfred: Start up alfred without valid interfaces
The alfred server always needs interfaces to operate on. But these
interfaces might not exist at the moment when the daemon process is
started. This situation stopped the startup process after the init scripts
waited for a longer period of polling the system state.

But alfred is able to deal with interfaces which disappeared at runtime but
existed at startup. To force a similar behavior for the alfred startup, the
parameter "--force" or "-f" is used. The extra polling code is therefore no
longer needed in the init scripts.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-02-15 21:17:53 +01:00
Sven Eckelmann
993f03cecb alfred: Fix procd process handling for disable state
Alfred can be stopped during a (re)start or reload when:

* disabled = 1
* batman-adv interface is missing
* MAC based EUI64 IPv6 link-local address not set

It is assumed that procd detects that the procd instance definition
disappeared and the currently running instance must be stopped. But all
these checks were triggering an "exit" which then stopped the alfred init
script and the wrapper from /lib/functions/procd.sh. And thus procd was
never informed about the instances which should be changed.

The correct handling is to return the result of the function instead of
directly killing the init scripts.

Fixes: 45db0e60d2 ("alfred: use procd")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-02-15 21:03:57 +01:00
Polynomdivision
86991248ac
babeld: adopt to upstream header-style (#640)
babeld: adopt to upstream header-style

Instead of including the headerfiles that define the structs, we add
forward definitions to our headerfile.

Fixes warning:

ubus.h:67:32: warning: 'struct xroute' declared inside parameter list will not be visible outside of this definition or declaration
 void ubus_notify_xroute(struct xroute *xroute, int kind);
                                ^~~~~~
Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-02-09 22:51:39 +01:00
Polynomdivision
72408a9cf8
babeld: fix compiler warnings (#639)
babeld: fix compiler warnings

Fixes:
- "route_list_entry" points to "struct babel_route"
- "format_thousands" returns a string pointer
- "UBUS_METHOD_NOARG" wants a function returning an integer

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-02-01 20:40:17 +01:00
Polynomdivision
519c1ff731
babeld: send events via ubus (#633)
* babeld: send events via ubus

Send a notification via the ubus bus if we experience any changes in
neighbours, routes or xroutes.

The format looks like this:
  {route,xroute,neighbour}.add: Object was added
  {route,xroute,neighbour}.change: Object was changed
  {route,xroute,neighbour}.flush: Object was flushed

If ubus_bindings is turned off, it will minimally effect performance,
since only an if-statement has to be evaluated.
If no subscriber is available, it will minimally change the performance,
since only an if-statmenet that checks for subscribers has to be
evaluated.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-02-01 15:26:44 +01:00
Simon Wunderlich
2e602f7b33
Merge pull request #635 from ecsv/batadv-2021.0
batman-adv: upgrade packages to latest release 2021.0
2021-01-28 22:25:57 +01:00
Sven Eckelmann
58e0a4d5c3 alfred: upgrade package to latest release 2021.0
* Drop support for batman-adv's sysfs+debugfs

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-01-28 21:08:27 +01:00
Sven Eckelmann
8de6e21ec5 batctl: upgrade package to latest release 2021.0
* Drop support for batman-adv's sysfs+debugfs
* allow to select routing algorithm during creation of interface
* bugs squashed:

  - fix query of meshif's ap_isolation status
  - ignore "interface already exists" error during "interface add"

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-01-28 21:08:27 +01:00
Sven Eckelmann
6c81fc2916 batman-adv: upgrade package to latest release 2021.0
* support latest kernels (4.4 - 5.11)
* coding style cleanups and refactoring
* drop support for sysfs+debugfs
* allow to select routing algorithm during creation of interface
* bugs squashed:

  - allocate enough reserved room on fragments for lower devices

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-01-28 21:08:27 +01:00
Sven Eckelmann
39cf9f5b47 batman-adv: Drop compat code for Linux < 5.4
The lowest kernel version supported by OpenWrt at the moment is Linux 5.4.
It is therefore not required to have these dead code sections anymore.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-01-28 21:05:35 +01:00
Nick Hainke
ea4a3f28dc babeld: add ubus bindings
A better integration of babeld with OpenWrt is to connect the daemon to
the IPC. So far, we can only communicate via a websocket. With ubus we
can send and receive commands in json format.

The commit adds a ubus interface to babeld with following functions:
- get_info
- get_neighbours
- get_xroutes
- get_routes

All output is divided into IPv4 and IPv6.

Ubus has to be enabled by setting "config general"
  option 'ubus_bindings' 'true'

Example:

root@OpenWrt:~# ubus call babeld get_info
{
	"babeld-version": "babeld-1.9.2",
	"my-id": "32:xx:xx:xx:xx:xx:xx:xx",
	"host": "OpenWrt"
}

root@OpenWrt:~# ubus call babeld get_neighbours
{
	"IPv4": {

	},
	"IPv6": {
		"fe80::xx:xx:xx:xxx": {
			"dev": "br-lan",
			"hello-reach": 65408,
			"uhello-reach": 0,
			"rxcost": 96,
			"txcost": 96,
			"rtt": 4338271,
			"channel": -2,
			"if_up": true
		}
	}
}

root@OpenWrt:~# ubus call babeld get_xroutes
{
	"IPv4": {
		"10.0.0.3/32": {
			"src-prefix": "0.0.0.0/0",
			"metric": 0
		},
		"10.0.0.0/24": {
			"src-prefix": "0.0.0.0/0",
			"metric": 0
		}
	},
	"IPv6": {
		"fdfa:xx:xx::1/128": {
			"src-prefix": "::/0",
			"metric": 0
		}
	}
}

root@OpenWrt:~# ubus call babeld get_routes
{
	"IPv4": {
		"10.2.0.1/32": {
			"src-prefix": "0.0.0.0/0",
			"route_metric": 96,
			"route_smoothed_metric": 96,
			"refmetric": 0,
			"id": "62:xx:xx:xx:xx:xx:xx:xx",
			"seqno": 41381,
			"channels": "",
			"age": 17,
			"via": "fe80::xx:xxxx:xxxx:xxxx",
			"nexthop": " nexthop ",
			"installed": true,
			"feasible": true
		},
	"IPv6": {

	}
}

Additional IPC functionality will follow.

Further, we changed the version to $version-ubus-mod.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-01-15 01:13:26 +01:00
Rob White
bb95bffc16 opennds: Release 8.0.0
This version introduces major new functionality and some major changes
  * Rationalisation of support for multiple Linux distributions [bluewavenet]
  * Refactor login.sh script introducing base64 encoding and hashed token (hid) support [bluewavenet]
  * Refactor fas-hid script introducing base64 encoding and simplifying customisation of the script [bluewavenet]
  * Refactor binauth_log.sh and log BinAuth custom data as url encoded [bluewavenet]
  * Refactor fas-aes, simplifying customisation of the script [bluewavenet]
  * Refactor fas-aes-https, simplifying customisation of the script [bluewavenet]
  * Change - Use hid instead of tok when fas_secure_enabled >= 1 [bluewavenet]
  * Add - base64 encoding to fas_secure_enabled level 1 [bluewavenet]
  * Add - gatewyname, clientif, session_start, session_end and last_active to ndsctl json [bluewavenet]
  * Add - support for RFC6585 Status Code 511 - Network Authentication Required [bluewavenet]
  * Add - Client Status Page UI with Logout [bluewavenet]
  * Add - GatewayFQDN option [bluewavenet]
  * Add - client interface to status page query string [bluewavenet]
  * Add - support using base 64 encoded custom string for BinAuth and replace tok with hid [bluewavenet]
  * Add - base 64 decode option to ndsctl [bluewavenet]
  * Add - b64 encoding of querystring for level 1 [bluewavenet]
  * Add - Improved performance/user-experience on congested/slow systems using php FAS scripts [bluewavenet]
  * Add - support for ndsctl auth by hid in client_list [bluewavenet]
  * Add - Ensure faskey is set to default value (always enabled) [bluewavenet]
  * Add - Display error page on login failure in login.sh [bluewavenet]
  * Add - splash.html, add deprecation notice [bluewavenet]
  * Add - authmon, improved lock checking and introduce smaller loopinterval [bluewavenet]
  * Add - client_params, wait for ndsctl if it is busy [bluewavenet]
  * Add - fas-aes-https, allow progressive output to improve user experience on slow links [bluewavenet]
  * Fix - Block access to /opennds_preauth/ if PreAuth not enabled [bluewavenet]
  * Fix - On startup, call iptables_fw_destroy before doing any other setup [bluewavenet]
  * Fix - missing final redirect to originurl in fas-hid [bluewavenet]
  * Fix - ensure gatewayname is always urlencoded [bluewavenet]
  * Fix - client session end not set by binauth [bluewavenet]
  * Fix - Session timeout, if client setting is 0, default to global value [bluewavenet]
  * Fix - missing trailing separator on query and fix some compiler errors [bluewavenet]
  * Fix - ensure authmon daemon is killed if left running from previous crash [bluewavenet]
  * Fix - add missing query separator for custom FAS parameters [bluewavenet]
  * Fix - ndsctl auth, do not set quotas if client is already authenticated [bluewavenet]
  * Fix - client_params, show "Unlimited" when "null" is received from ndsctl json [bluewavenet]
  * Update configuration files [bluewavenet]
  * update documentation [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2021-01-11 14:10:33 +00:00
Rosen Penev
25d53e8462 cjdns: use codeload
Simplifies Makefile slightly. Hopefully more consistent tarballs.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-26 11:52:20 +00:00
Rosen Penev
0907cf0a94 cjdns: update to 21
Fixed compilation with musl 1.2.x , mostly.

Added a patch fixing compilation on 32-bit platforms.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-26 11:52:20 +00:00
Rosen Penev
4407369e70 ohybridproxy: fix up Makefile
Use a more standard setup for local tarballs to clean up the Makefile.

Fixed license information.

Added PKG_BUILD_PARALLEL for faster compilation.

Removed upstreamed patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-17 06:29:46 +00:00
Rosen Penev
3dd7f27558 hnetd: update to latest commit
Fixed compilation with newer libubox.

libubox added a sys/stat.h include, which happens to break compilation.
The reason being __unused is a variable in musl and an attribute here.
Fixed by undefining right before including the headers.

Clean up Makefile for consistency between packages.

Refreshed patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-17 06:28:05 +00:00
Moritz Warning
330a0cc9d4
Merge pull request #618 from TDT-AG/pr20201009/quagga-libcares
quagga: fix dependency to libcares
2020-11-26 22:26:27 +01:00
Moritz Warning
068a0613a9
Merge pull request #619 from neheb/qg
quagga: update GCC10 patch
2020-11-10 21:45:02 +01:00
Moritz Warning
52be3011ec
Merge pull request #625 from bluewavenet/master
opennds: Release 7.0.1
2020-11-10 21:38:59 +01:00
Rob White
4f2528a796 opennds: Release 7.0.1
This version introduces major new enhancements and the disabling or removal of deprecated functionality.

  * Add - built in autonomous Walled Garden operation [bluewavenet]
  * Add - Support for Custom Parameters [bluewavenet]
  * Add - Quota and rate reporting to ndsctl json. Format output and fix json syntax errors [bluewavenet]
  * Add - global quotas to output of ndsctl status [bluewavenet]
  * Add - Report Rate Check Window in ndsctl status and show client quotas [bluewavenet]
  * Add - gatewaymac to the encrypted query string [bluewavenet]
  * Add - support for login mode in PreAuth  [bluewavenet]
  * Fix - get_iface_ip in case of interface is vif or multihomed [bluewavenet]
  * Fix - Add missing client identifier argument in ndsctl help text [bluewavenet]
  * Fix - fix missing delimiter in fas-hid [bluewavenet]
  * Fix - get_client_interface for case of iw utility not available [bluewavenet]
  * Fix - php notice for pedantic php servers in post-request [bluewavenet]
  * Remove - support for deprecated RedirectURL [bluewavenet]
  * Deprecate - ndsctl clients option [bluewavenet]
  * Deprecate - legacy splash.html and disable it [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2020-11-07 20:25:58 +00:00
Simon Wunderlich
7dba1fdbff
Merge pull request #623 from ecsv/batadv-2020.4
batman-adv: upgrade package to latest release 2020.4
2020-10-27 15:02:46 +01:00
Sven Eckelmann
331bc1cd3b alfred: upgrade package to latest release 2020.4
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-10-27 14:46:11 +01:00
Sven Eckelmann
89d7857d0e batctl: upgrade package to latest release 2020.4
* bugs squashed:

   - Fix endianness in ICMPv6 Echo Request/Reply parsing

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-10-27 14:46:11 +01:00
Sven Eckelmann
aca51f8149 batman-adv: upgrade package to latest release 2020.4
* support latest kernels (4.4 - 5.10)
* coding style cleanups and refactoring
* bugs squashed:

  - fix incorrect reroute handling of multicast packets
  - improve handling of multicast packets by bridge loop avoidance

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-10-27 14:46:11 +01:00
Martin Schiller
3e6059ff4a quagga: fix dependency to libcares
Commit 9a89e57d76 ("quagga: update to 1.2.4") introduced a dependency
to libcares.

Fix this by disabling the not used nhrpd (next hop resolution protocol).

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2020-10-14 12:50:40 +02:00
Rosen Penev
22a5a2286f
quagga: update GCC10 patch
Turns out it was incomplete. No idea how...

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-12 17:02:32 -07:00
Moritz Warning
f690ecb7e0
Merge pull request #616 from neheb/quagga
quagga: update to 1.2.4
2020-10-06 19:25:41 +02:00
Moritz Warning
0193fa585b
Merge pull request #612 from neheb/ool
oonf-olsrd2: fix static problems
2020-10-06 19:09:22 +02:00
Moritz Warning
e15d793a49
Merge pull request #615 from neheb/bmx7
bmx7: fix compilation with uClibc-ng
2020-10-06 18:53:03 +02:00
Moritz Warning
094170ac0d
Merge pull request #614 from neheb/bmx6
bmx6: fix compilation with uClibc-ng
2020-10-06 18:52:17 +02:00
Rosen Penev
9a89e57d76
quagga: update to 1.2.4
Refreshed patches. Removed one since OpenWrt no longer uses union
mounts. Fixed up gcc10 patch as well.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-05 17:26:26 -07:00
Rosen Penev
a30eca4a0a
bmx7: fix compilation with uClibc-ng
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-05 16:01:17 -07:00
Rosen Penev
c3c3be6457
bmx6: fix compilation with uClibc-ng
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-05 16:00:40 -07:00
Rosen Penev
186b2117f4
oonf-olsrd2: fix static problems
The GCC 10 patch marked several variables in headers as extern, which
is correct. However some upstream change marked the definitions as
static even though the definition was not local to the c files.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-05 15:50:26 -07:00
Moritz Warning
b389738677
Merge pull request #610 from PolynomialDivision/fix/olsrdgpsd
olsrd: adapt gpsdclient.c to new gpsd lib
2020-10-04 17:10:02 +02:00
Nick Hainke
6e72bcffa5 olsrd: adapt gpsdclient.c to new gpsd lib
As mentioned in gpsd.h:
"Move gps_data_t->status to gps_fix_t.status for better fix merging"

Commit:
29991d6ffe

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-10-03 22:38:02 +02:00
Moritz Warning
9cfb2ea631
Merge pull request #595 from neheb/hn
hnetd: fix compilation without deprecated OpenSSL APIs
2020-09-30 17:13:56 +02:00
Moritz Warning
7e01ee3b8e
Merge pull request #590 from neheb/q
quagga: fix compilation with GCC 10
2020-09-30 17:11:01 +02:00
Moritz Warning
025f05fd42
Merge pull request #591 from neheb/p
prince: fix compilation with GCC 10
2020-09-30 17:10:51 +02:00
Moritz Warning
ef0fe62653
Merge pull request #592 from neheb/bird1
bird1: fix compilation with GCC 10
2020-09-30 17:10:24 +02:00
Moritz Warning
d30adf2d53
Merge pull request #597 from neheb/oon
oons-olsrd2: fix compilation with GCC 10
2020-09-30 17:10:15 +02:00
Moritz Warning
a42325b471
Merge pull request #598 from neheb/oon2
oons-dlep-radio: fix compilation with GCC 10
2020-09-30 17:09:49 +02:00
Moritz Warning
de3a284abc
Merge pull request #599 from neheb/oon3
oonf-dlep-proxy: fix compilation with GCC 10
2020-09-30 17:09:33 +02:00
Moritz Warning
ee39c58637
Merge pull request #608 from PolynomialDivision/update_oonf
oonf: update olsrv2 packages
2020-09-30 17:08:51 +02:00
Nick Hainke
a7bf414264 oonf-dlep-radio: update version to v0.15.1
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-09-04 01:30:09 +02:00
Nick Hainke
d59c3f1f6f oonf-dlep-proxy: update version to v0.15.1
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-09-04 01:29:10 +02:00
Nick Hainke
1d00adeb94 oonf-olsrd2: update version to v0.15.1
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-09-04 01:27:12 +02:00
Moritz Warning
b309086fa2
Merge pull request #605 from pmelange/olsrd-bison-3-7-1-changes
olsrd: migrate to using bison 3.7.1
2020-08-28 14:40:04 +02:00
pmelange
5cc8e05885 olsrd: migrate to using bison 3.7.1
With the upgrade to bison 3.7.1 (openwrt commit 1cf842d) building
olsrd was failing.  Now, instead of the contents of header files
being directly inserted into the generated source files, they are
instead included with a #include directive.

The local.mk has, until now, done some magic with *-tmp files,
which is not longer necessary and even causes builds to fail.

src/cfgparser/oparse.c:265:10: fatal error: oparse.h-tmp: No such file or directory
 #include "oparse.h-tmp"

Suggested-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
2020-08-27 18:01:39 +02:00
Simon Wunderlich
741a6b9f77
Merge pull request #602 from ecsv/batadv-2020.3
batman-adv: upgrade package to latest release 2020.3
2020-08-27 10:27:16 +02:00
Sven Eckelmann
c201b00922 batman-adv: upgrade package to latest release 2020.3
* support latest kernels (4.4 - 5.9)
* coding style cleanups and refactoring
* introduce a configurable per interface hop penalty
* bugs squashed:

  - avoid uninitialized chaddr when handling DHCP
  - fix own OGMv2 check in aggregation receive handling
  - fix "NOHZ: local_softirq_pending 08" warnings caused by BLA

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-08-25 20:09:34 +02:00
Sven Eckelmann
4e7401602b batctl: upgrade package to latest release 2020.3
* add per interface hop penalty command

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-08-25 20:08:53 +02:00
Sven Eckelmann
7091b78760 alfred: upgrade package to latest release 2020.3
* synchronization of batman-adv netlink header

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-08-25 20:07:05 +02:00
Saverio Proto
b25be11308
Merge pull request #596 from neheb/olsr
olsrd: fix compilation with musl 1.2.x
2020-08-25 11:02:02 +02:00
Moritz Warning
94a8e1ade5
Merge pull request #593 from neheb/bird2
bird2: fix compilation with GCC 10
2020-08-25 08:51:46 +02:00
Moritz Warning
fa7998661e
Merge pull request #594 from neheb/bmx
bmx7: fix compilation with GCC 10
2020-08-25 00:13:40 +02:00
Moritz Warning
4a1a536059
Merge pull request #600 from bluewavenet/master
opennds: Release v6.0.0
2020-08-24 11:56:36 +02:00
Rob White
3970efa5a1 opennds: Release v6.0.0
* This version - for Openwrt after 19.07 - for compatibility with new MHD API
  * Set - minimum version of MHD to 0.9.71 for new MHD API [bluewavenet]
  * Set - use_outdated_mhd to 0 (disabled) as default [bluewavenet]
  * Add - Multifield PreAuth login script with css update [bluewavenet]
  * Add - Documentation and config option descriptions for configuring Walled Garden IP Sets

Signed-off-by: Rob White <rob@blue-wave.net>
2020-08-23 22:36:21 +01:00
Rosen Penev
78d72b68f5
oonf-dlep-proxy: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:39:39 -07:00
Rosen Penev
9c4bb575b2
oons-dlep-radio: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:39:15 -07:00
Rosen Penev
e4b5d31049
oons-olsrd2: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:38:48 -07:00
Rosen Penev
14668df74b
olsrd: fix compilation with musl 1.2.x
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:38:12 -07:00
Rosen Penev
33ddb02b91
hnetd: fix compilation without deprecated OpenSSL APIs
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:37:46 -07:00
Rosen Penev
9916479e7c
bmx7: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:37:08 -07:00
Rosen Penev
ff5f25a6ef
bird2: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:36:34 -07:00
Rosen Penev
f0f0a892d8
bird1: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:36:05 -07:00
Rosen Penev
587e2d8b9c
prince: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:35:25 -07:00
Rosen Penev
fdd74f951c
quagga: fix compilation with GCC 10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-11 12:34:49 -07:00
Sven Eckelmann
ffa7f2c6ea batctl: Enable build of mcast_flags subcommand
The mcast_flags subcommand allows to query the mcast_flags of the current
device and of the seen originators. It should be enabled for the default
and full variants. But the configuration string wasn't correctly included
in the list when the variants were prepared and thus disabled in all
variants.

Reported-by: Linus Lüssing <linus.luessing@c0d3.blue>
Fixes: 1299868252 ("batctl: Provide different variants")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-07-21 22:41:51 +02:00
Moritz Warning
8f9aa112b5
Merge pull request #586 from lynxis/nodogsplash
nodogsplash: update to 5.0.0
2020-07-13 01:29:07 +02:00
Alexander Couzens
4ae3c3f280
nodogsplash: update to 5.0.0 2020-07-08 15:54:08 +02:00
Simon Wunderlich
94d87cd7e8
Merge pull request #583 from ecsv/batadv-2020.2
batman-adv 2020.2
2020-07-07 09:19:48 +02:00
Sven Eckelmann
9852b614a2 batman-adv: upgrade package to latest release 2020.2
* support latest kernels (4.4 - 5.8)
* coding style cleanups and refactoring
* dropped support for kernels < 4.4
* re-enabled link speed detection for interfaces without auto negotiation

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-07-06 19:54:00 +02:00
Sven Eckelmann
f6e792907f batctl: upgrade package to latest release 2020.2
* coding style cleanups and refactoring
* drop support for automatic destruction of empty meshifs
* bugs squashed:

  - Fix parsing of radiotap headers on big endian systems

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-07-06 19:53:24 +02:00
Sven Eckelmann
47d63604bc alfred: upgrade package to latest release 2020.2
* Rephrase names of server roles

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-07-06 19:53:07 +02:00
Moritz Warning
52a15799f8
Merge pull request #582 from bluewavenet/master
opennds: Release v5.1.0
2020-06-26 01:27:57 +02:00
Rob White
ee1125153c opennds: Release v5.1.0
Maintainer: Rob White <rob@blue-wave.net>

Compiled and tested using snapshot SDK for mipsel_24kc, mips_24kc and arm_cortex-a7_neon-vfpv4

OpenNDS v5.1.0 release

This release adds major functionality and provides numerous fixes:
Data Rate and Data Volume Quotas are implemented.
BinAuth / fas_secure_enabled level 3 compatibility is implemented.
Page fault and crash when ndsctl auth is called and client not found has been fixed.

From the ChangeLog:

  * Add - Generic Linux - install opennds.service [bluewavenet]
  * Add - Documentation updates [bluewavenet]
  * Add - config file updates [bluewavenet]
  * Add - Install sitewide username/password splash support files [bluewavenet]
  * Add - quotas to binauth_sitewide [bluewavenet]
  * Add - Splash page updates [bluewavenet]
  * Add - Implement Rate Quotas [bluewavenet]
  * Fix - check if idle preauthenticated [bluewavenet]
  * Add - support for rate quotas [bluewavenet]
  * Fix - Correctly compare client counters and clean up debuglevel messages [bluewavenet]
  * Add - Implement upload/download quotas Update fas-aes-https to support quotas [bluewavenet]
  * Add - Rename demo-preauth scripts and install all scripts [bluewavenet]
  * Add - fas-aes-https layout update [bluewavenet]
  * Add - Set some defaults in fas-aes-https [bluewavenet]
  * Add - custom data string to ndsctl auth [bluewavenet]
  * Add - custom data string to fas-hid.php [bluewavenet]
  * Add - Send custom data field to BinAuth via auth_client method [bluewavenet]
  * Fix - missing token value in auth_client [bluewavenet]
  * Add - upload/download quota and rate configuration values [bluewavenet]
  * Add - Send client token to binauth [bluewavenet]
  * Add - Rename upload_limit and download_limit to upload_rate and download_rate [bluewavenet]
  * Fix - Pass correct session end time to binauth [bluewavenet]
  * Add - some debuglevel 3 messages [bluewavenet]
  * Add - description of the favicon and page footer images [bluewavenet]
  * Add - Authmon collect authentication parameters from fas-aes-https [bluewavenet]
  * Add - sessionlength to ndsctl auth [bluewavenet]
  * Fix - Page fault when ndsctl auth is called and client not found [bluewavenet]
  * Add - Enable BinAuth / fas_secure_enabled level 3 compatibility [bluewavenet]
  * Fix - Correctly set BinAuth session_end [bluewavenet]
  * Add - Updates to Templated Splash pages [bluewavenet]
  * Add - Community Testing files [bluewavenet]
  * Fix - BinAuth error passing client session times [bluewavenet]
  * Fix - PHP notice - undefined constant [bluewavenet]
  * Fix - OpenWrt CONFLICTS variable in Makefile [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2020-06-25 20:31:06 +01:00
zorun
c78adaf400
Merge pull request #580 from PolynomialDivision/fix/olsrd
olsrd: bump to latest version
2020-06-18 15:10:12 +02:00
Nick Hainke
2b6a4e1beb olsrd: bump to latest version
Fixes https://github.com/openwrt-routing/packages/issues/547

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-06-18 14:02:51 +02:00
zorun
272cd4c998
Merge pull request #579 from pedro-nonfree/patch-3
luci-app-bmx6: fixes error line in logread #578
2020-06-15 21:53:19 +02:00
zorun
920a0457a2
Merge pull request #574 from pedro-nonfree/patch-2
bmx6: update version to fix #573 memory leak
2020-06-15 21:42:17 +02:00
Pedro hates github.com
71d7806ba1 luci-app-bmx6: fixes error line in logread #578
each time the luci view `network/bmx6/tunnels is displayed it shows results
each 5 seconds. It queries to a cgi script bmx6-info.sh that causes a strange
error in logread:

    daemon.err uhttpd[pid]: sh: "tunnels":: unknown operand

Prior versions to 19.x release did not show it.

Signed-off-by: Pedro <pedrowrt@cas.cat>
2020-06-15 18:08:53 +02:00
Pedro hates github.com
4cff2b1bd6 bmx6: update version to fix #573 memory leak
Signed-off-by: Pedro <pedrowrt@cas.cat>
2020-06-15 17:53:07 +02:00
William Fleurant
83a3fa91b0
luci-app-cjdns: Add rpcd acl file (#576)
Signed-off-by: William Fleurant <meshnet@protonmail.com>
2020-06-09 23:20:43 -04:00
Markus Stenberg
5e4756d7e7 ohybridproxy: Bump (.home -> .home.arpa works) 2020-05-22 09:27:16 +03:00
Simon Wunderlich
75fab33c4a
Merge pull request #571 from ecsv/batadv_kbuild_cleanup
batman-adv: use KERNEL_MAKE_FLAGS for kernel module compilation
2020-05-20 14:34:33 +02:00
Sven Eckelmann
aa8705683e batman-adv: Provide mac80211's config settings
The mac80211 headers might depend on the actual configuration of mac80211
to generate an ABI compatible structure definition. batman-adv must
therefore include the header with these config definitions.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-05-19 15:11:35 +02:00
Sven Eckelmann
2f54cd50a3 batman-adv: use KERNEL_MAKE_FLAGS for kernel module compilation
It is easier to use the global define than to manually keep track of the
changes in the various kernel module makefiles in the main OpenWrt
repository and feeds.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-05-19 15:11:35 +02:00
Rob White
346e1b59f3 opennds: Release v5.0.1
Maintainer: Rob White <rob@blue-wave.net>

Compiled and tested on snapshot SDK for mipsel_24kc, mips_24kc and arm_cortex-a7_neon-vfpv4

This release provides a fix for a Path Traversal Attack vulnerability present in libmicrohttpd's built in unescape functionality.

Signed-off-by: Rob White <rob@blue-wave.net>
2020-05-07 21:38:45 +02:00
Simon Wunderlich
7dc6600115
Merge pull request #562 from ecsv/batadv-2020.1
batman-adv 2020.1
2020-04-27 10:25:17 +02:00
Sven Eckelmann
d6ba424d34 batman-adv: upgrade package to latest release 2020.1
* support latest kernels (3.16 - 5.7-rc2)
* coding style cleanups and refactoring
* bugs squashed:

  - fix reference leaks in throughput_override sysfs file
  - fix reference leak in B.A.T.M.A.N. V OGM error handling
  - fix network coding random weighting

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-04-24 19:30:11 +02:00
Sven Eckelmann
6d40c78639 batctl: upgrade package to latest release 2020.1
* bugs squashed:

  - Fix error code on throughputmeter errors

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-04-24 19:24:15 +02:00
Sven Eckelmann
43e4da9ac5 alfred: upgrade package to latest release 2020.1
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-04-24 19:23:48 +02:00
Sven Eckelmann
0aa846dec7 batman-adv: Drop compat-sources build
The compat-sources are no longer needed for kernels >= 4.4. Older kernel
versions are not used since a while in OpenWrt.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-04-24 19:01:20 +02:00
zorun
f43bc85647
Merge pull request #561 from fblaese/babeld-master
babeld: Update to version 1.9.2
2020-04-22 14:32:06 +02:00
Fabian Bläse
07bdc8f422 babeld: Update to version 1.9.2
21 April 2020: babeld-1.9.2

  * Fixed two issues that could cause IPv4 routes to be represented
    incorrectly, with a range of confusing symptoms.  Thanks to
    Fabian Bläse.
  * Fixed incorrect parsing of TLVs with an unknown Address Encoding.
    Thanks to Théophile Bastian.
  * Fixed access to mis-aligned data structure.  Thanks to Antonin Décimo.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
2020-04-22 14:11:16 +02:00
Moritz Warning
f71d733392
Merge pull request #559 from bluewavenet/master
opennds: Create new Package, release v5.0.0
2020-04-13 22:09:36 +02:00
Rob White
b9ff16ecd5 opennds: Create new Package, release v5.0.0
Maintainer: Rob White <rob@blue-wave.net>

Compiled and tested on snapshot SDK for mipsel_24kc, mips_24kc and arm_cortex-a7_neon-vfpv4

This is the first release from the OpenNDS project.

The decision has been made by the developers of the NoDogSplash project, to create a new project, beginning at v5.0.0

The two resulting projects are:

 * **OpenNDS**, the new project, optimised for development of custom captive portal solutions using the built in Forwarding authentication Services API and associated libraries.

 * **NoDogSplash**, the original project, optimised for hardware with very restricted resources (eg legacy 8/32 devices) and supporting only simple templated splash pages.

At v5.0.0 of both projects share a common code base.

However, the two packages will inevitably and rapidly diverge, as OpenNDS is actively developing, whereas NoDogSplash is feature complete for its optimised target use.

Signed-off-by: Rob White <rob@blue-wave.net>
2020-04-13 19:55:51 +01:00
Simon Wunderlich
512240f480
Merge pull request #553 from ecsv/batadv-2020.0
batman-adv 2020.0
2020-03-10 17:08:47 +01:00
Sven Eckelmann
e002648835 batctl: Drop duplicated PROVIDES for batctl-tiny
The PROVIDES:=batctl is also set by Package/batctl/Default and doesn't have
to be duplicated for Package/batctl-tiny (which inherits from
Package/batctl/Default).

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:52:16 +01:00
Sven Eckelmann
cc0ce25bb0 batman-adv: Switch to OpenWrt package template
The OpenWrt routing feed was tried to be merged together with the OpenWrt
package feed. But they ended up being rejected due to formalities like the
slightly different package template. Just moving to the OpenWrt package
based one should simplify similar approaches in the future.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:51:17 +01:00
Sven Eckelmann
4561a42ac4 batctl: Switch to OpenWrt package template
The OpenWrt routing feed was tried to be merged together with the OpenWrt
package feed. But they ended up being rejected due to formalities like the
slightly different package template. Just moving to the OpenWrt package
based one should simplify similar approaches in the future.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:51:06 +01:00
Sven Eckelmann
b3f1370d9a alfred: Switch to OpenWrt package template
The OpenWrt routing feed was tried to be merged together with the OpenWrt
package feed. But they ended up being rejected due to formalities like the
slightly different package template. Just moving to the OpenWrt package
based one should simplify similar approaches in the future.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:50:54 +01:00
Sven Eckelmann
00de979415 batman-adv: replace SUBDIRS with M kernel build recipe
The SUBDIRS variable has been removed in kernel 5.4 and M or KBUILD_EXTMOD
has to be used instead.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:50:14 +01:00
Sven Eckelmann
bacc8c1385 batman-adv: Drop compat code for Linux < 4.14
The lowest kernel version supported by OpenWrt at the moment is Linux 4.14.
It is therefore not required to have these dead code sections anymore.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:50:14 +01:00
Sven Eckelmann
05da6ef2ca batman-adv: upgrade package to latest release 2020.0
* support latest kernels (3.16 - 5.6)
* coding style cleanups and refactoring
* use wifi tx rates as fallback for the B.A.T.M.A.N. V throughput estimation
* disable deprecated sysfs support by default
* bugs squashed:

  - fix crash during the scheduling of OGMs for removed interfaces

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:50:13 +01:00
Sven Eckelmann
6c4c46fc34 batctl: upgrade package to latest release 2020.0
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:50:02 +01:00
Sven Eckelmann
d79eeefa1c alfred: upgrade package to latest release 2020.0
* fix build against gpsd API 9.0

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-03-07 18:49:49 +01:00
Jo-Philipp Wich
196e771be0
Merge pull request #552 from pedro-nonfree/patch-1
luci-app-bmx6: bugfix querying bmx6-info (p2)
2020-02-26 14:05:03 +01:00
Pedro hates github.com
520356e3f6
luci-app-bmx6: bugfix querying bmx6-info (p2)
see 51b370e1ce and #550
2020-02-22 00:47:36 +01:00
Jo-Philipp Wich
51b370e1ce
Merge pull request #550 from pedro-nonfree/master
luci-app-bmx6: bugfix format to query bmx6-info
2020-02-21 12:52:46 +01:00
pedrolab
b92f82ad1f luci-app-bmx6: bugfix format to query bmx6-info
- affected three tab luci templates (even with luci-compat installed)
- fixes #548
- as jow said in #548:
  - it might be that modern LuCI escapes it as %24 while old versions passed it
    on as-is
  - bmx6-info removes it anyway
    https://github.com/openwrt-routing/packages/blob/master/luci-app-bmx6/bmx6/www/cgi-bin/bmx6-info#L22
you can probably just remove it in all three tab templates
2020-02-21 11:05:34 +01:00
Yuxiang Zhu
c9ae9c8c50
bird2: fix service restart and reload (#546)
`/etc/init.d/bird restart` or `/etc/init.d/bird reload` has no effects.

This PR fixes this issue by:

- running the service in the foreground to meet the requirements of procd
- sending SIGHUP signal to reload the service
2020-02-08 22:47:13 +01:00
zorun
c225724e8f
Merge pull request #543 from BKPepe/ahcpd
ahcpd: use SHA256 hash and use HTTPS everywhere
2020-01-11 15:53:11 +01:00
Josef Schlehofer
6debd2f564
ahcpd: use SHA256 hash and use HTTPS everywhere
- The old page redirects to a new one and it uses HTTPS.
Let's skip that redirect in PKG_SOURCE_URL and URL.
- Reorder some things to be sync with Makefiles in packages feed
- Add PKG_LICENSE_FILES

Fixes: 47edf2d275 (ahcpd: Replace
PKG_MD5SUM with PKG_HASH)
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2020-01-11 15:08:26 +01:00
Rosen Penev
ba199245ec ahcpd: Replace PKG_MD5SUM with PKG_HASH (#522)
PKG_MD5SUM is deprecated and does not accurately represent the SHA256 hash.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-01-09 21:32:16 +01:00
Rob White
13f4c0d909 nodogsplash: Version 4.4.0 release (#540)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a7_neon-vfpv4

This release adds significant new functionality yet is compatible with the previous version.

From the changelog:
  * Add Client Network Zone detection supporting local interfaces and 802.11s mesh [bluewavenet]
  * Add client zone and user agent to FAS/PreAuth logs [bluewavenet]
  * Add requirements for retrieving https remote image for login page [bluewavenet]
  * Add htmlentity encode and decode to preauth scripts [bluewavenet]
  * Implement unescape callback for MHD allowing url special characters to be used in login forms [bluewavenet]
  * Create get_client_interface library utility [bluewavenet]
  * Create unescape library utility [bluewavenet]
  * Update demo-preauth, login-option and fas scripts [bluewavenet]
  * Update fwhook restart - do not use ndsctl to check if nds is running [bluewavenet]
  * Update config files [bluewavenet]
  * Fix - allow comma space to be used in PreAuth variables [bluewavenet]
  * Fix - final redirect for fas-aes [bluewavenet]
  * Fix - ignore trusted mac if invalid [bluewavenet]
  * Documentation updates [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2020-01-09 21:31:46 +01:00
Toke Høiland-Jørgensen
4f945bba16 bird2: Update to v2.0.7 (#516)
Bump release to upstream v2.0.7

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2019-12-21 23:18:36 +01:00
Simon Wunderlich
5544be5234
Merge pull request #529 from adrianschmutzler/openwrtversion
batman-adv and friends: improve version string
2019-12-15 16:00:16 +01:00
Simon Wunderlich
94ec27ffb5
Merge pull request #535 from ecsv/batadv-2019.5
batman-adv 2019.5
2019-12-14 16:59:08 +01:00
Sven Eckelmann
5bd07eb12b batman-adv: upgrade package to latest release 2019.5
* support latest kernels (3.16 - 5.5)
* coding style cleanups and refactoring
* bugs squashed:

  - fix DAT candidate selection on little endian systems

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-12-13 22:35:12 +01:00
Sven Eckelmann
4a418ce7bb batctl: upgrade package to latest release 2019.5
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-12-13 21:59:08 +01:00
Sven Eckelmann
68fbe6d74a alfred: upgrade package to latest release 2019.5
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-12-13 21:59:08 +01:00
George
31407945f9 luci-app-cjdns: Add luci-compat requirement (#532)
After 284918bfaf2f6d7e46fb11377bb9a537b35dd58a commit in openwrt/luci, every app which uses cbi requires luci-compat package.

Signed-off-by: George Iv <57254463+zhoreeq@users.noreply.github.com>
2019-11-18 17:41:51 -05:00
William Fleurant
102ae19b73
cjdns: patch: allows buildbot(s) 3 extra minutes to finish async routines (#531)
Signed-off-by: William Fleurant <meshnet@protonmail.com>
2019-11-14 14:51:38 -05:00
Adrian Schmutzler
c5004988d3 alfred: improve version string
This changes the package version string so it does not start
with "openwrt", but with the base version we are modifying:

So far: openwrt-2019.4-1
Now:    2019.4-openwrt-1

Since it's us modifying version 2019.4 (in this case), this order
is more convenient (and also closer to what the kernel version
string does).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-11-11 12:40:35 +01:00
Adrian Schmutzler
612bd5e5f6 batctl: improve version string
This changes the package version string so it does not start
with "openwrt", but with the base version we are modifying:

So far: openwrt-2019.4-1
Now:    2019.4-openwrt-1

Since it's us modifying version 2019.4 (in this case), this order
is more convenient (and also closer to what the kernel version
string does).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-11-11 12:39:56 +01:00
Adrian Schmutzler
4b457916ea batman-adv: improve version string
This changes the package version string so it does not start
with "openwrt", but with the base version we are modifying:

So far: openwrt-2019.4-1
Now:    2019.4-openwrt-1

Since it's us modifying version 2019.4 (in this case), this order
is more convenient (and also closer to what the kernel version
string does).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-11-11 12:39:26 +01:00
William Fleurant
d0e785aff3
cjdns: luci-app-cjdns: fix up Makefiles, bump pkg vers (#526)
* cjdns: luci-app-cjdns: fix up Makefiles, bump pkg vers
* cjdns: remove excess PKG_* variables 

Signed-off-by: William Fleurant <meshnet@protonmail.com>
2019-11-09 21:40:04 -05:00
William Fleurant
79a4543cf0
cjdns: luci-app-cjdns: update maintainer (#524)
Signed-off-by: William Fleurant <meshnet@protonmail.com>
2019-11-03 12:57:42 -05:00
Michal Hrušecký
f75b19d42f cjdns: Update to the latest version (#523)
Signed-off-by: Michal Hrusecky <Michal@Hrusecky.net>
2019-11-03 12:34:43 -05:00
Simon Wunderlich
381f09346f
Merge pull request #518 from ecsv/batadv-2019.4
batman-adv 2019.4
2019-10-26 10:29:42 +02:00
Sven Eckelmann
87d0884fa5 batman-adv: upgrade package to latest release 2019.4
* support latest kernels (3.16 - 5.4)
* coding style cleanups and refactoring
* implement aggregation of OGM2 packets
* bugs squashed:

  - fix length validation in netlink messages
  - fix out of buffer read when parsing aggregated packets
  - avoid race condition in OGM(2) packet modification and submission

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Sven Eckelmann
ca06c3fc17 batctl: upgrade package to latest release 2019.4
* fix deprecation warning for option '-m'

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Sven Eckelmann
bb8a0621c6 alfred: upgrade package to latest release 2019.4
* fix build with musl

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Sven Eckelmann
366c9e0078 batman-adv: Extend PKG_LICENSE* information
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Sven Eckelmann
23ecedee92 batctl: Extend PKG_LICENSE* information
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Sven Eckelmann
8219168994 alfred: Extend PKG_LICENSE* information
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-10-25 23:34:34 +02:00
Rob White
face529e09 nodogsplash: Version 4.3.3 release (#517)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a7_neon-vfpv4

This version fixes two issues that can cause NDS to lock or crash, one, a coding error that leads to memory corruption and two, deadlocks in iptables and ndsctl. Both of these issues occur at high loads and/or at high CPD detection rates.

In addition, in some circumstances, a deauthenticated client running a vpn may have suffered from querystring truncation causing vpn failure.

Some minor updates are also included.

Extract from changelog:

 * Fix Memory corruption at high loads [bluewavenet]
 * Prevent iptables and ndsctl deadlocks [lynxis]
 * Prevent query string truncation for deauthenticated client when client is using some types of vpn software [bluewavenet]
 * Add debuglevel logging in the case of a firewall restart in OpenWrt [bluewavenet]
 * Return error 403(forbidden) when client attempts to use a forbidden http method [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-10-20 14:32:24 +02:00
Moritz Warning
56df2cc303
Merge pull request #514 from BKPepe/bird
bird{1,2}: Update to version 1.6.8 and 2.0.6
2019-10-12 23:36:56 +02:00
Rob White
08ba5e50aa nodogsplash: Version 4.3.0 (#515)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a7_neon-vfpv4

This release has major new functionality in the form of token hashing,
(extension to fas_secure level 1) mitigating the problems with remote FAS
where access to the local ndsctl would be otherwise required.
Although not as flexible as level 2, this extension has much smaller
memory and storage requirements so is ideal for implementation on
legacy hardware.

There are also numerous enhancements, updates and fixes.

All changes are compatible with the previous release.

Latest changelog:

 * Create switch option to select preinstalled templated splash or preauth login [bluewavenet]
 * Limit PreAuth and BinAuth log size in example scripts [bluewavenet]
 * Reduce memory requirements and autoselect logfile location [bluewavenet]
 * Create fas-hid example script [bluewavenet]
 * Update FAS, PreAuth and BinAuth example scripts [bluewavenet]
 * Hash client token (hid) for remote FAS enabling secure FAS for legacy/low-flash/low-ram hardware [bluewavenet]
 * Fix NDS Uptime if NTP client is enabled [bluewavenet]
 * Documentation updates for this release [bluewavenet]
 * Fix numerous compiler warnings [mwarning]
 * Fix openwrt fw_mark option type [mwarning]

Signed-off-by: Rob White rob@blue-wave.net
2019-10-08 22:10:04 +02:00
Josef Schlehofer
534121e1fe
bird2: Update to version 2.0.6
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-09-29 20:35:45 +02:00
Josef Schlehofer
97ffe0b5de
bird1: Update to version 1.6.8
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-09-29 20:35:24 +02:00
Rob White
def3cd50d8 nodogsplash: Release 4.2.0 (#513)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a7_neon-vfpv4

This release adds significant functionality in the form of capturing the client User-Agent string and passing to both PreAuth and BinAuth scripts. Compatibility is maintained with previous versions.

Changelog since last OpenWrt release:

 * BinAuth - Send User Agent string and client-ip to the binauth script [bluewavenet]
 * BinAuth - Update the two example BinAuth scripts showing use of passed arguments [bluewavenet]
 * Documentation - Update BinAuth section [bluewavenet]
 * PreAuth - Send User Agent string to the preauth script [bluewavenet]
 * PreAuth - Update the example PreAuth script showing use of passed arguments [bluewavenet]
 * Documentation - Update PreAuth section [bluewavenet]
 * BinAuth - Send redir variable to the binauth script, allow passing of custom variable payload [bluewavenet]
 * BinAuth - Provide two example BinAuth scripts [bluewavenet]
 * Documentation - Rework Binauth section plus numerous minor updates [bluewavenet]
 * Deprecate RedirectURL config option as it is rendered obsolete by many CPD implementations, use FAS instead [bluewavenet]
 * Numerous minor updates to html, css and script files [bluewavenet]
 * Fix bug - faskey, exit gracefully if not set and fas_secure_enabled = 2 [bluewavenet]
 * Fix bug - Systemd, Do not set debug level in nodogsplash.service [bluewavenet]
 * Fix bug - ndsctl, delete lock file if NDS is not started [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-09-14 22:21:11 +02:00
Axel Neumann
f131d73979
Merge pull request #512 from aparcar/bmx7-7.1.1-2
bmx7: fixup Makefile
2019-09-08 09:23:24 +02:00
Paul Spooren
2fd125f516 bmx7: fixup Makefile
The extra MAKE_ARGS were no longer taken into account resulting in
erros. Also more path fixes and some longline splitting.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2019-09-06 11:16:11 -10:00
Axel Neumann
ff5100e759
Merge pull request #507 from aparcar/bmx7-7.1.1
bmx7: update to 7.1.1
2019-08-30 10:40:26 +02:00
Paul Spooren
76a5139334 bmx7: update to 7.1.1
Also clean up the Makefile

Signed-off-by: Paul Spooren <mail@aparcar.org>
2019-08-26 22:03:09 -10:00
zorun
96d96eda8a
Merge pull request #506 from zorun/master
babeld: Update to 1.9.1 and assorted fixes
2019-08-26 21:02:49 +02:00
Baptiste Jonglez
3e3d16338d babeld: Update example configuration file
More example filters are provided, and new options such as "type" or
"pref_src" are given as example.

Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
2019-08-26 20:52:37 +02:00
Baptiste Jonglez
06f821adc1 babeld: Update description in Makefile and fix license path
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
2019-08-26 18:40:35 +02:00
Adrian Schmutzler
4d62e08852 babeld: Update to version 1.9.1
20 August 2019: babeld-1.9.1

  * Fixed a crash that could happen when unicast and RTT estimation are
    both enabled on an interface.  Thanks to Dave Taht.
  * Fixed compilation under BSD.  Thanks to Dave Taht.

4 August 2019: babeld-1.9.0

  * Reworked buffering of unicast packets to use a per-neighbour buffer
    rather than a single buffer per interface.  This makes unicast as
    efficient as multicast, at the cost of slightly higher memory usage.
  * Added option "unicast" that allows sending most TLVs over unicast.
    This is necessary for the DTLS extension.
  * Implemented parsing of unicast Hellos.  This makes it possible to
    interoperate with neighbours that only speak unicast (e.g. over some
    kinds of tunnels that only do unicast).
  * Implemented sending of unscheduled unicast Hellos.  This makes the
    RTT extension work over unicast too.
  * Reworked the xroute data structures to use binary search and
    linear-time comparison.
  * Don't attempt to modify the rp_filter sysctl if it already has the
    desired value; this makes it possible to run babeld in an
    unpriviledged container.  Thanks to Christof Schulze.
  * Reinstated logging of late hellos.  Thanks to Dave Taht.
  * Don't send wildcard requests or Hellos to newish nodes.  This makes
    acquisition of new neighbours slower, but drastically reduces noise at
    startup.  Thanks to Teco Boot.
  * Remove an arbitrary limit on the number of interfaces.  Thanks to
    Christof Schulze.
  * Removed class E from martian filter.  Thanks to Dave Taht.
  * Added the ability to set the preferred source address in install filters.
    Thanks to Killian Lufau.
  * Fixed a number of read-only buffer overflows.  Thanks to Leo Stefanesco.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-08-26 18:40:35 +02:00
Adrian Schmutzler
7eeee8124a babeld: Improve Makefile formatting
This applies some style improvements to make this ready for
migration to openwrt/packages.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-08-26 18:40:35 +02:00
Adrian Schmutzler
5a7cf37dc0 babeld: Update to version 1.8.5
Changes:

  * Fixed a bug that caused confustion between learned routes and
    imported routes (thanks to Fabian Bläse).
  * Fixed a bug that prevented install filters from being evaluated
    (thanks to Killian Lufau).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-08-26 18:40:35 +02:00
Baptiste Jonglez
6a92b45fac babeld: Don't kill -9 on stop
Killing anything with -9 is a bad idea.  When killed this way, babeld
won't be able to properly disassociate from its neighbours, withdraw its
announced routes or remove routes from the kernel.

This got introduced in bab933d4ca ("babeld: Update to version 1.8.3 +
fix init") with an unrelated change.  The purpose of the change is unclear
because stopping and restarting babeld worked fine without this change.

Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
2019-08-26 18:40:35 +02:00
Jo-Philipp Wich
8a47b231b0
Merge pull request #501 from tohojo/bird-205
Bird: Bump package versions to 1.6.7 and 2.0.5
2019-08-19 15:57:50 +02:00
Toke Høiland-Jørgensen
559619d9d9 bird1: Bump to v1.6.7
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2019-08-19 12:34:49 +02:00
Toke Høiland-Jørgensen
c687bd3055 bird2: Bump to v2.0.5
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2019-08-19 12:34:05 +02:00
Rob White
5d7f4af534 nodogsplash: Release 4.0.2 (#500)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc

This release has numerous bug fixes and enhancements:

  * Fix bug - fas_remotefqdn not supported with option fas_secure_enabled 0 [bluewavenet]
  * Fix bug - prevent deadlock causing ndsctl to hang and NDS to become unresponsive [bluewavenet]
  * PreAuth - Override FAS settings making configuration foolproof [bluewavenet]
  * ndsctl - make json parsing consistent for all client variables [bluewavenet]
  * Fix memory leak in template generation [lynxis]
  * When executing the ndsctl stop command, cleanup all structures [lynxis]
  * Check for positive errno in thread_ndsctl [lynxis]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-08-16 01:45:52 +02:00
Saverio Proto
9403a5d816
Merge pull request #490 from RussellSenior/fix-olsrd
olsrd: fix build against gpsd-3.19
2019-08-13 08:46:20 +02:00
Russell Senior
c1a41b1740 olsrd: update to 0.9.8
Allows building against gpsd-3.19.

Signed-off-by: Russell Senior <russell@personaltelco.net>
2019-08-12 12:35:21 -07:00
Simon Wunderlich
ec287ab088
Merge pull request #497 from ecsv/alfred-multiif
alfred: Interface init script fixes
2019-08-02 09:53:22 +02:00
Simon Wunderlich
ecb7132f01
Merge pull request #495 from ecsv/batadv-2019.3
batman-adv 2019.3
2019-08-02 09:53:03 +02:00
Sven Eckelmann
cf802f8607 alfred: Allow startup without batman-adv sysfs support
The batman-adv kernel module can be build without sysfs support. This will
stop the kernel module from creating the "mesh" directory. The alfred init
script must not depend on this folder to start the daemon up.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 21:35:39 +02:00
Sven Eckelmann
157da8c4ee alfred: Support multiple listening interfaces
The alfred daemon allows to be started with multiple interfaces. The first
interface is used for communication and to calculate the source mac
address. The rest of the interfaces are only used for communication.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 21:34:44 +02:00
Sven Eckelmann
ce3569e159 batman-adv: upgrade package to latest release 2019.3
* support latest kernels (3.16 - 5.3)
* coding style cleanups and refactoring
* add routable multicast optimizations
* bugs squashed:

  - fix duplicated OGMs on NETDEV_UP
  - fix dumping of multicast flags

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 17:53:51 +02:00
Sven Eckelmann
34b730e6ab batman-adv: Switch proto scripts to new prefixes
The '-m' option to select the mesh interface or vlan interfaces was
replaced with device type specific subcommand prefixes:

* meshif <netdev>
* vlan <vdev>
* meshif <netdev> vid <vid>
* hardif <netdev>

This change should also be made in the proto script to allow batctl to drop
the support of '-m' completely in the future.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 17:45:46 +02:00
Sven Eckelmann
a03d198516 batctl: upgrade package to latest release 2019.3
* add tcpdump support for MCAST TVLV, unicast fragments and coded packets
* implement support for multicast RTR flags
* avoid some kernel deprecation warning by using more generic netlink over
  sysfs
* use type specific prefixes to select mesh interface or vlan instead of '-m'
* add support for hardif specific settings

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 17:44:55 +02:00
Sven Eckelmann
a74938ea46 alfred: upgrade package to latest release 2019.3
* avoid some kernel deprecation warning by using more generic netlink over
  sysfs

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 17:43:45 +02:00
Sven Eckelmann
89bcb4b22f batman-adv: Drop compat-hacks for unsupported kernel versions
OpenWrt only supports kernel 4.9, 4.14 and 4.19. Older kernel versions than
4.9 therefore don't require support.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-08-01 17:30:10 +02:00
Rob White
c953099d06 nodogsplash: Release 4.0.1 (#492)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc

  * Make debuglevel platform independent [mwarning]
  * Add/move/reword some debug output lines [mwarning]
  * Numerous code cleanups [mwarning]
  * Put fas code into block [mwarning]
  * Fix coding error in fas-aes.php incorrectly passing redir back to NDS [bluewavenet]
  * Numerous documentation updates [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-07-30 17:22:39 +02:00
Jo-Philipp Wich
7fc5c6e56f
Merge pull request #476 from blogic/master
mcproxy: some add some fixes
2019-07-30 12:10:34 +02:00
Rosen Penev
9f5d42692e cjdns-tests: Don't build on ARC (#487)
Not supported.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-07-29 13:38:51 -04:00
elektra42
66121b8879
Merge pull request #489 from ecsv/batmand-procd
batmand/vis: Convert to procd based init scripts
2019-07-29 11:35:35 +02:00
Simon Wunderlich
d4b95cd0be
Merge pull request #488 from ecsv/bat-cleanup
Cleanup of B.A.T.M.A.N. related packages build rules
2019-07-28 12:41:31 +02:00
Sven Eckelmann
aa050789fe vis: Convert to procd based init script
The legacy init script had various problems in comparison with procd based
init scripts. It wasn't able to correctly track the running process
instance and thus could:

* accidentally kill another (non init controlled) daemon instance when stop
  is used
* not restart the daemon depending on config changes when reload is used
* not automatically start/restart daemon when the used netdev was
  created/recreated

The information about a running instance and its parameters can now be
handled by a global controller (procd). The process must not fork anymore
and leave the control to procd. The process with its parameters can then be
used by procd to trigger the stop/start of the process at the right time.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-28 00:17:42 +02:00
Sven Eckelmann
5802c44e3c batmand: Convert to procd based init script
The legacy init script had various problems in comparison with procd based
init scripts. It wasn't able to correctly track the running process
instance and thus could:

* accidentally kill another (non init controlled) daemon instance when stop
  is used
* not restart the daemon depending on config changes when reload is used

The information about a running instance and its parameters can now be
handled by a global controller (procd). The process must not fork anymore
and leave the control to procd. The process with its parameters can then be
used by procd to trigger the stop/start of the process at the right time.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-28 00:17:15 +02:00
Sven Eckelmann
f921555cf7 batctl: Use standard Build/Compile rule
batctl isn't using any special rules in Build/Compile. It is cleaner to
directly use the global Build/Compile/Default instead of having a
functional similar copy in the package Makefile

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:42:24 +02:00
Sven Eckelmann
44e375c0a3 alfred: Drop unused init-y variable
The Makefile defines the init-y variable but neither this Makefile nor
OpenWrt's common files use this variable.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:42:24 +02:00
Sven Eckelmann
4c4b836d89 alfred: Use standard Build/Compile rule
alfred isn't using any special rules in Build/Compile. It is cleaner to
directly use the global Build/Compile/Default instead of having a
functional similar copy in the package Makefile

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:42:24 +02:00
Sven Eckelmann
eb8a4e8e87 vis: Use standard Build/Compile rule
vis isn't using any special rules in Build/Compile. It is cleaner to
directly use the global Build/Compile/Default instead of having a
functional similar copy in the package Makefile

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:42:24 +02:00
Sven Eckelmann
8b9a7bba78 vis: Drop unused make parameters
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:42:24 +02:00
Sven Eckelmann
a3b7910782 batmand: Use standard Build/Compile rule
batmand isn't using any special rules in Build/Compile. It is cleaner to
directly use the global Build/Compile/Default instead of having a
functional similar copy in the package Makefile

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:10:04 +02:00
Sven Eckelmann
ebc6f4d5b3 batmand: Drop unused make parameters
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 22:02:50 +02:00
Sven Eckelmann
ec9d4a6c42 batmand: Drop batgat kernel module
This kernel module is broken since 2013 and doesn't build. It can therefore
be removed.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-27 21:52:58 +02:00
Simon Wunderlich
cb3f9d2436
Merge pull request #485 from ecsv/batadv-2019.2
batman-adv: Use Linux 5.2 API again
2019-07-22 10:39:41 +02:00
Sven Eckelmann
9e7dbf9ba9 batman-adv: Use Linux 5.2 API again
The mac80211 package version was updated to a 5.2 based one in commit
0b2c42ced21a ("mac80211: Update to version 5.2-rc7"). The batman-adv module
must therefore no longer the pre-5.2 API.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-22 10:02:46 +02:00
Axel Neumann
d3d9ee26c0
Merge pull request #483 from aparcar/luci-app-bmx7-transfer
luci-app-bmx7: transfer to luci.git
2019-07-18 19:31:21 +02:00
Rob White
c46019e7ad nodogsplash: Release 4.0.0 (#484)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a5_neon-vfpv4/

  * Introduce aes encryption of the query string passed to remote FAS, allowing authdir and client token to be transferred securely. Uses php-cli and php-openssl. These are required if encryption is enabled but are not dependencies [bluewavenet]
  * Introduce fasremotefqdn, specifying the FQDN of the remote FAS. This facilitates simplified support for FAS operation on shared hosting systems [bluewavenet]
  * Add a FAS php script supporting aes encrypted query string sent from NDS [bluewavenet]
  * Numerous Documentation updates [bluewavenet]
  * Remove unused pagesdir and imagesdir [mwarning]
  * Add Preauth script that displays images from remote servers [bluewavenet]
  * Use elegant check for valid ip addresses [mwarning]
  * openwrt initscript - add missing macmechanism in the config file [lynxis]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-07-15 14:23:31 +02:00
Paul Spooren
542db8a71d luci-app-bmx7: transfer to luci.git
The package was recently[0] moved to luci.git

[0]: 9aa507790e

Signed-off-by: Paul Spooren <mail@aparcar.org>
2019-07-11 11:06:43 +02:00
John Crispin
ff7c509caa mcproxy: fix up sourcefilter patch
this spewed out 2 compile warnings

In file included from build_dir/target-mipsel_24kc_musl/mcproxy-2017-08-24-93b5ace42268160ebbfff4c61818fb15fa2d9b99/mcproxy/src/utils/mc_socket.cpp:43:0:

build_dir/target-mipsel_24kc_musl/mcproxy-2017-08-24-93b5ace42268160ebbfff4c61818fb15fa2d9b99/mcproxy/src/utils/sourcefilter.cpp: In function 'int setsourcefilter(int, uint32_t, const sockaddr*, socklen_t, uint32_t, uint32_t, const sockaddr_storage*)':
build_dir/target-mipsel_24kc_musl/mcproxy-2017-08-24-93b5ace42268160ebbfff4c61818fb15fa2d9b99/mcproxy/src/utils/sourcefilter.cpp:157:3: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
   else
   ^~~~
build_dir/target-mipsel_24kc_musl/mcproxy-2017-08-24-93b5ace42268160ebbfff4c61818fb15fa2d9b99/mcproxy/src/utils/sourcefilter.cpp:160:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else'
     int save_errno = errno;
     ^~~

Signed-off-by: John Crispin <john@phrozen.org>
2019-06-30 13:03:23 +02:00
John Crispin
a56d996b94 mcproxy: add igmpV2 reply support
mcproxy has no way to send an IGMPv2 query today. If you force IGMPv2 (by
setting the protocol in the mcproxy config and setting the force_igmp_version
flag on all interfaces) the bridge will send v2 queries but if mcproxy takes
over as the querier it will send v3 queries. The patch below adds support for
sending v2 queries so everyone stays in sync:

Signed-off-by: Sukru Senli <sukru.senli@iopsys.eu>
Signed-off-by: Chad Monroe <chad.monroe@smartrg.com>
Signed-off-by: John Crispin <john@phrozen.org>
2019-06-30 13:03:18 +02:00
Jo-Philipp Wich
5934ad834f
Merge pull request #440 from tohojo/bird-203
bird2: Bump to v2.0.4
2019-06-26 19:27:47 +02:00
Jo-Philipp Wich
ca83636b2f
Merge pull request #441 from BKPepe/bird1
bird1: update to version 1.6.6
2019-06-26 19:13:53 +02:00
Jo-Philipp Wich
33aab05acd
Merge pull request #479 from neheb/master
Build fixes
2019-06-26 19:02:51 +02:00
Rosen Penev
ac8fc386fc cjdns: Do not build on ARC
Is not supported by node.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-06-17 15:38:13 -07:00
Rosen Penev
b3ebe49dab mcproxy: Fix compilation with uClibc-ng
uClibc-ng also defines __GLIBC__, which messes up the check.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-06-17 15:38:10 -07:00
Simon Wunderlich
e8799fb2ad
Merge pull request #478 from ecsv/batadv-for-19.07
batman-adv: Add support for B.A.T.M.A.N. V hardif settings
2019-06-16 11:27:08 +02:00
Sven Eckelmann
e87a25f408 batman-adv: Don't try to set unconfigured ap_isolation for vlan
The ap_isolation setting only supports boolean values. So setting an empty
string as ap_isolation is not supported by batctl.

Fixes: f5205d7d24 ("batman-adv: upgrade package to latest release 2014.2.0")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-06-16 09:29:42 +02:00
Sven Eckelmann
67875e2069 batman-adv: Add support for hardif settings
B.A.T.M.A.N. V support additional settings which are hardif specific. The
batadv_hardif proto has to expose them to allow automatic configuration.
The default configuration would be:

  config interface 'bat0_hardif_eth0'
  	option proto 'batadv_hardif'
  	option master 'bat0'
  	option ifname 'eth0'
  	option mtu '1536'
  	option 'elp_interval' 500
  	# string like '1mbit' is accepted instead of kbit for override
  	option 'throughput_override' '0'

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-06-15 09:53:55 +02:00
Sven Eckelmann
eeea3e980e batctl: Add support for hardif settings
batctl currently supports settings which are either mesh interface or vlan
specific. But B.A.T.M.A.N. V introduced two additional settings which are
hard (slave) interface specific.

To support these, an additional command prefix called hardif is implemented
for some sysfs commands:

  $ batctl -m bat0 hardif eth0 ..

The usable commands with that are:

* elp_interval
* throughput_override

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-06-15 09:18:51 +02:00
John Crispin
490971e8e5 mcproxy: fix block/filtering code
mcproxy supports a generic filtering/blacklisting mechanism but it’s currently
broken. In the case of routed video (e.g. mcproxy routing video from
WAN -> LAN), it will forward multicast between the LAN and WAN. There are
perfectly valid use cases for this like reporting but other less-appropriate
things like mDNS and SSDP leak through from LAN -> WAN which is bad.

Signed-off-by: Sukru Senli <sukru.senli@iopsys.eu>
Signed-off-by: Chad Monroe <chad.monroe@smartrg.com>
Signed-off-by: John Crispin <john@phrozen.org>
2019-06-05 20:33:21 +02:00
Simon Wunderlich
35b886649b
Merge pull request #475 from ecsv/batadv-2019.2
batman-adv: Fix duplicated OGMs on NETDEV_UP
2019-06-02 22:41:20 +02:00
Sven Eckelmann
e26096ae1d batman-adv: Fix duplicated OGMs on NETDEV_UP
The state of slave interfaces are handled differently depending on whether
the interface is up or not. All active interfaces (IFF_UP) will transmit
OGMs. But for B.A.T.M.A.N. IV, also non-active interfaces are scheduling
(low TTL) OGMs on active interfaces. The code which setups and schedules
the OGMs must therefore already be called when the interfaces gets added as
slave interface and the transmit function must then check whether it has to
send out the OGM or not on the specific slave interface.

But v2016.3 moved the setup code from the enable function to the activate
function. The latter is called either when the added slave was already up
when batadv_hardif_enable_interface processed the new interface or when a
NETDEV_UP event was received for this slave interfac. As result, each
NETDEV_UP would schedule a new OGM worker for the interface and thus OGMs
would be send a lot more than expected.

Fixes: 549909f89d ("batman-adv: upgrade package to latest release 2016.3")
Reported-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-06-02 14:08:16 +02:00
elektra42
bf475d6493
Merge pull request #472 from yogo1212/batmand_whitespace
batmand: whitespace
2019-05-27 09:04:38 +02:00
Leon M. George
fdc37cac29 batmand: match loop format 2019-05-25 08:42:53 +02:00
Leon M. George
c514a2a49c batmand: fix whitespace 2019-05-25 08:42:42 +02:00
Simon Wunderlich
d1acf62a57
Merge pull request #471 from ecsv/batadv-2019.2
batman-adv 2019.2
2019-05-24 09:45:32 +02:00
Sven Eckelmann
1ff00eebae batman-adv: upgrade package to latest release 2019.2
* support latest kernels (3.16 - 5.2)
* coding style cleanups and refactoring
* implement multicast-to-unicast support for multiple targets
* deprecate sysfs support and make it optional
* refresh DAT entry timeouts on incoming ARP Replies
* bugs squashed:

  - fix multicast tt/tvlv worker locking
  - drop roam tvlv handler when unregistering mesh interface

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-05-23 20:21:54 +02:00
Sven Eckelmann
7b7da0cddb batctl: upgrade package to latest release 2019.2
* coding style cleanups and refactoring
* add multicast_fanout setting subcommand
* implement netlink based support for remaining sysfs-only features
* drop support for deprecated log command support
* remove non-netlink support for translating MAC addresses to originators

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-05-23 20:21:54 +02:00
Sven Eckelmann
7accd688e3 alfred: upgrade package to latest release 2019.2
* synchronization of batman-adv netlink header

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-05-23 20:11:42 +02:00
Toke Høiland-Jørgensen
37f8c509e0 bird2: Bump to v2.0.4
Bird 2.0.4 was released on March 1st. Remove upstreamed patches.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
2019-05-15 23:12:27 +02:00
Rob White
040b8e8750 nodogsplash: Release v3.3.2-1 (#468)
Maintainer: Moritz Warning <moritzwarning@web.de>

Compiled and tested on snapshot SDK mips_24kc and arm_cortex-a5_neon-vfpv4/

  * Fix Issue introduced in v3.3.0 with the addition of Improvements towards usable IPv6 support, that caused CPD on client devices to fail with "Too Many Redirects" error. NDS now terminates gracefully with a console error if fasremoteip is set AND fasport=80  [bluewavenet]
  * Validate fasremoteip to ensure that if it is set, then it is a valid dotted format IPv4 address  [bluewavenet]
  * Numerous Documentation updates  [bluewavenet]
  * Fix to Known Issue on OpenWrt >18.x.x with v3.3.1. This was caused by misconfigured Makefile for libmicrohttpd; this has been fixed there [bluewavenet]

Signed-off-by: Rob White <rob@blue-wave.net>
2019-05-07 22:38:40 +02:00
Jo-Philipp Wich
0be5aa99e0
Merge pull request #467 from lynxis/remove-smcroute
smcroute: remove package as it's orphaned
2019-04-30 23:52:53 +02:00
Alexander Couzens
f36879fe22
smcroute: remove package as it's orphaned
If someone like to become the maintainer, please re-submit this package
to the general openwrt package repository
https://github.com/openwrt/packages

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2019-04-23 11:59:39 +02:00
Bastian Bittorf
e40f6891e5
Merge pull request #459 from pmelange/olsrd_0.9.7
[OLSRd] Bump OLSRd version to 0.9.7
2019-04-01 07:30:42 +02:00
Simon Wunderlich
0c867de323
Merge pull request #461 from ecsv/batadv-2019.1
batman-adv 2019.1
2019-03-29 13:32:50 +01:00
Sven Eckelmann
312fd8afc1 batman-adv: upgrade package to latest release 2019.1
* support latest kernels (3.16 - 5.1)
* coding style cleanups and refactoring
* implement meshif, hardif and vlan config interface via netlink
* snoop DHCP ACKs to improve DAT cache efficiency
* bugs squashed:

  - avoid potential reference counter underflows and use-after free errors for
    several objects
  - fix GCC warning when B.A.T.M.A.N. V is build in but cfg80211 is not
    available
  - reject too small VLAN packets before they are processed further

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-03-28 19:50:25 +01:00
Sven Eckelmann
0a2547a111 batctl: upgrade package to latest release 2019.1
* coding style cleanups and refactoring
* introduce support for batadv meshif, hardif and vlan configuration via netlink
* replace multicast_mode with multicast_forceflood settings subcommand
* add hop_penalty setting subcommand

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-03-28 19:43:14 +01:00
Sven Eckelmann
9e8aaf9911 alfred: upgrade package to latest release 2019.1
* synchronization of batman-adv netlink header

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-03-28 19:40:20 +01:00
Sven Eckelmann
55a7a224e1 batctl: Add package description per variant
Fixes: 1299868252 ("batctl: Provide different variants")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-03-28 19:38:16 +01:00
Rob White
f049dfde5b nodogsplash: Add missing install directories (#460)
Add missing install directories in revised Makefile

Signed-off-by: Rob White rob@blue-wave.net
2019-03-25 18:03:29 +01:00
Rob White
b01e4b0e7c nodogsplash: Bump to v3.3.0-1 (#457)
Signed-off-by: Rob White <rob@blue-wave.net>
2019-03-25 14:28:02 +01:00
pmelange
20b9ab3cea [OLSRd] Bump OLSRd version to 0.9.7
This patch bumps OLSRd from 0.9.6.2 to 0.9.7 (released 06-March-2019)

Signed-off-by: pmelange <isprotejesvalkata@gmail.com>
2019-03-23 14:16:40 +01:00
Simon Wunderlich
4265df9dcc
Merge pull request #458 from adrianschmutzler/fixcommit
batman-adv: Fix uci commit target
2019-03-20 17:50:20 +01:00
Adrian Schmutzler
1a22e00eeb batman-adv: Fix uci commit target
Although batman-adv config is cycled in config_foreach, changes
are made in the network config. Thus, this one has to be committed.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-03-19 19:49:27 +01:00
Moritz Warning
1cca73b59f
nodogsplash: fix invalid pointer bug when clock is turned back (#456)
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2019-03-14 18:23:32 +01:00
Axel Neumann
a952ac8c88
Merge pull request #454 from dangowrt/master
bmx7: update source to 2019030802
2019-03-13 22:44:14 +01:00
Josef Schlehofer
6141d5d182
bird1: update to version 1.6.6
Signed-off-by: Josef Schlehofer <josef.schlehofer@nic.cz>
2019-03-13 10:28:17 +01:00
Daniel Golle
409d35885d bmx7: update source to 2019030802
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-09 00:52:37 +01:00
Simon Wunderlich
b57b8dc6d3
Merge pull request #453 from ecsv/batadv-2019.0
batman-adv: Split batadv proto in meshif and hardif part
2019-03-07 17:04:54 +01:00
Sven Eckelmann
54af5a209e batman-adv: Split batadv proto in meshif and hardif part
batman-adv allows to configure three different objects:

* batadv hardif

  - network interface used by batadv meshif to transport the batman-adv
    packets
  - its master interface is set to the batadv meshif

* batadv (meshif/softif)

  - virtual interface that emulates a normal 802.3 interface on top
  - encapsulates traffic and forwards it via the batadv hardifs

* batadv vlan

  - potential VLAN ID on top of batadv meshif
  - allows filtering of traffic from specific VIDs

While batadv vlan objects were already represented as an own proto
"batadv_vlan", the batadv meshif could never be fully configured using
/etc/config/network. Instead, parts of its configuration were stored in
/etc/config/batman_adv and some in the interfaces with the "batadv" proto.

To increase the confusion, the "batadv" proto wasn't used to define the
batadv meshif but to identify batadv (slave) hardifs. The batman-adv
meshifs were also never created directly but only when a hardif was
configured. The actual modification of the configuration settings was then
applied using a hotplug script hack. The batadv meshif network interface
could therefore only be created when an hardif was available and not
manipulated with ifup/ifdown. Also `/etc/init.d/network reload` didn't
modify the batadv meshif interface configuration correctly.

The "batadv" is now renamed to "batadv_hardif" and a new "batadv" proto is
used to configure the main (meshif) network interface with all its
configuration.

A simple network configuration with WiFi & ethernet interfaces and static
IP on top of bat0 would look like:

  # batadv meshif bat0
  config interface 'bat0'
  	option proto 'batadv'
  	option routing_algo 'BATMAN_IV'
  	option aggregated_ogms 1
  	option ap_isolation 0
  	option bonding 0
  	option fragmentation 1
  	#option gw_bandwidth '10000/2000'
  	option gw_mode 'off'
  	#option gw_sel_class 20
  	option log_level 0
  	option orig_interval 1000
  	option bridge_loop_avoidance 1
  	option distributed_arp_table 1
  	option multicast_mode 1
  	option network_coding 0
  	option hop_penalty 30
  	option isolation_mark '0x00000000/0x00000000'

  # add *single* wifi-iface with network bat0_hardif_wlan as hardif to bat0
  config interface 'bat0_hardif_wlan'
  	option mtu '1536'
  	option proto 'batadv_hardif'
  	option master 'bat0'
  	# option ifname is filled out by the wifi-iface

  # add eth0 as hardif to bat0
  config interface 'bat0_hardif_eth0'
  	option proto 'batadv_hardif'
  	option master 'bat0'
  	option ifname 'eth0'
  	option mtu '1536'

  # configure IP on bat0
  config interface 'bat0_lan'
  	option ifname 'bat0'
  	option proto 'static'
  	option ipaddr '192.168.1.1'
  	option netmask '255.255.255.0'
  	option ip6assign '60'

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-03-07 17:01:09 +01:00
Simon Wunderlich
571b0b5672
Merge pull request #451 from ecsv/batadv-2019.0
batman-adv: finish config batctl usage & drop unused compat code
2019-03-07 16:56:37 +01:00
Sven Eckelmann
5882b6049d batman-adv: use batctl for configuration of hop_penalty
hop_penalty is the last remaining setting which is directly writing to
sysfs instead of using a implementation (sysfs vs. netlink) abstraction
layer. batctl now provides a wrapper function that allows the script to
directly use it to take care of communicating with the driver.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 22:49:56 +01:00
Sven Eckelmann
278e98cb86 batctl: Add support for hop_penalty settings command
The batman-adv scripts are still using sysfs for setting the hop_penalty.
Since the sysfs is deprecated, the batctl interface should be used to make
it independent of implementation details (sysfs vs. netlink).

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 22:49:56 +01:00
Sven Eckelmann
7d973599ef batman-adv: use batctl for configuration of gw_mode
The batctl tool should be used for modifying settings in the batman-adv
driver to keep the scripts consistent and allow to use the correct way of
communicating with the kernel (sysfs vs. netlink).

The gw_mode, gw_bandwidth and gw_sel_class options are all handled by
the same gw_mode command in batctl and thus have to be combined depending
on the "gw_mode" value.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 22:46:21 +01:00
Sven Eckelmann
ad27ee7f9a batman-adv: Drop cfg80211_get_station memset workaround
The actual memset fix for cfg80211_get_station's sinfo is already part of
the mac80211 package and doesn't have to be shipped anymore with
batman-adv.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:40:11 +01:00
Sven Eckelmann
fc37a1aa4d batman-adv: Drop compat-hack for __poll_t
__poll_t is already defined by the mac80211's backports and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:38:35 +01:00
Sven Eckelmann
df9d2719fa batman-adv: Drop compat-hack for from_timer
from_timer is already defined by the mac80211's backports and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:37:54 +01:00
Sven Eckelmann
ae9c14e8b0 batman-adv: Drop compat-hack for skb_put*
skb_put* is already defined by the mac80211's backports and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:35:39 +01:00
Sven Eckelmann
3f0a7c4880 batman-adv: Drop compat-hack for nla_put_u64_64bit
nla_put_u64_64bit is already defined by the mac80211's backports and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:24:40 +01:00
Sven Eckelmann
89bc1bc1a1 batman-adv: Drop compat-hack for netif_trans_update
netif_trans_update is already defined by the mac80211's backports and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:22:22 +01:00
Sven Eckelmann
502d1232f7 batman-adv: Drop redefinition of NL80211_STA_INFO_EXPECTED_THROUGHPUT
NL80211_STA_INFO_EXPECTED_THROUGHPUT is defined by the mac80211 package and
doesn't have to be redefined in the compat-hacks.h.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:19:42 +01:00
Sven Eckelmann
203ee34d9c batman-adv: Drop unused compat-hacks.patch
The linux/build_bug.h is already provided by mac80211's backports. It is
not needed anymore to adjust the includes to use the older linux/bug.h

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-22 20:04:35 +01:00
Simon Wunderlich
34e4913b57
Merge pull request #448 from SvenRoederer/patch-1
batctl: fix wrong binary-name for batctl-default
2019-02-22 19:30:34 +01:00
Axel Neumann
2d31531737
Merge pull request #450 from dangowrt/bmx7-2018122901
bmx7: update to git snapshot as of 2018-12-29: Use MbedTLS 2.8.0
2019-02-21 09:10:03 +01:00
Daniel Golle
25916fb99f bmx7: update to git snapshot as of 2018-12-29
* fixes mbedTLS string constant deprecation build breakage
* obsoletes local patch

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-02-20 14:06:56 +01:00
Sven Roederer
e29142379e
batctl: fix wrong binary-name for batctl-default
* correct binary for batctl-default to /usr/libexec/batctl-default
* while at it fix description of batctl-full

Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>
2019-02-18 22:40:24 +01:00
Simon Wunderlich
6e8cf7689e
Merge pull request #446 from ecsv/batadv-2019.0
batman-adv 2019.0
2019-02-04 10:12:51 +01:00
Sven Eckelmann
e6fc697d41 batman-adv: upgrade package to latest release 2019.0
* support latest kernels (3.16 - 5.0)
* coding style cleanups and refactoring
* allow to enable debug tracing without full batman-adv debugfs support
* enable inconsistency reporting for most netlink dump commands
* bugs squashed:

  - avoid unnecessary kernel warning (panic) during detection of interface loops
  - work around incorrect ethernet header offset in transmit code path

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-02 14:04:09 +01:00
Sven Eckelmann
5d3a71f342 batctl: upgrade package to latest release 2019.0
* coding style cleanups and refactoring
* add gateway selection manpage section for B.A.T.M.A.N. V
* bugs squashed:

  - re-integrate support for translation table unicast/multicast filter
  - avoid incorrect warning about disabled mesh interface when debugfs
    support is not enabled in batman-adv

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-02 14:04:09 +01:00
Sven Eckelmann
0ba9fa2ba7 alfred: upgrade package to latest release 2019.0
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-02-02 14:04:09 +01:00
Moritz Warning
13a4dad69a
Merge pull request #445 from diizzyy/patch-1
nodogsplash: libmicrohttpd-no-ssl -> libmicrohttpd
2019-01-31 19:08:51 +01:00
Daniel Engberg
be91e9d6dc
nodogsplash: libmicrohttpd-no-ssl -> libmicrohttpd
Due to rearrangements of the libmicrohttpd the non
ssl variant is now called libmicrohttpd.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-01-31 15:50:56 +01:00
Jo-Philipp Wich
f796748997
Merge pull request #444 from dedeckeh/pr_nat46
nat46: drop from repo
2019-01-27 18:26:25 +01:00
Hans Dedecker
bc431ae65f nat46: drop from repo
Move nat46 and 464xlat to OpenWrt base repo

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-01-27 16:04:09 +01:00
Sven Eckelmann
498463cd59 batman-adv: use batctl for configuration
The batctl binary is currently optional for batman-adv installations. But
new configuration settings will only be exposed via generic netlink. The
batctl tool will therefore be required to modify them.

batctl must therefore no longer depend on batman-adv but batman-adv must
depend on batctl. Some already implemented settings are already moved to
batctl.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-01-27 15:31:37 +01:00
Sven Eckelmann
1299868252 batctl: Provide different variants
The batctl binary is currently optional for batman-adv installations. But
new configuration settings will only be exposed via generic netlink. The
batctl tool will therefore be required to modify them.

To also fit batctl in some of the smaller devices, a new variant
batctl-tiny is build which only provides the settings subcommands. The
batctl-default variant is equal to the old batctl package and batctl-full
also provides the commands which were disabled until now.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-01-27 15:07:57 +01:00
Pau
29d4160f4b
Merge pull request #437 from rogerpueyo/luci-app-bmx6-graph-sys-exec
luci-app-bmx6: Avoid race condition in bmx6json.lua get()
2019-01-11 09:52:46 +01:00
Moritz Warning
f438333a6a
Merge pull request #438 from cotequeiroz/hnetd_openssl-1.1
hnetd: add compatiblity with openssl 1.1.x
2019-01-11 01:17:10 +01:00
p4u
fce1287bd7 luci-app-bmx7: show mDNS menu if available
Signed-off-by: p4u <p4u@dabax.net>
2019-01-10 20:30:01 +01:00
Eneas U de Queiroz
2c9f89cc76 hnetd: add compatiblity with openssl 1.1.x
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2018-12-13 11:21:08 -02:00
Roger Pueyo Centelles
6c63383f0d luci-app-bmx6: Avoid race condition in bmx6json.lua get()
The network topology of a BMX6 mesh can be obtained by asking all the nodes
about their links via the bmx6-info script. The wget() function in the
bmx6json.lua file is part of the process, but it often returns nil, even if
the remote data can actually be fetched, in what seems to be a race condition.
By calling the sys.exec("") function empty, the race condition disappears.

Dirty fix to https://github.com/openwrt-routing/packages/issues/436.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2018-12-09 21:06:18 +01:00
Pau
a7c447903c
Merge pull request #435 from rogerpueyo/bmx6-graph-tunnels
luci-app-bmx6: Fix corner case in bmx6-info?tunnels
2018-12-08 22:26:04 +01:00
Roger Pueyo Centelles
2cc3c50bed luci-app-bmx6: Fix corner case in bmx6-info?tunnels
The bmx6-info script will return null when no tunnels are known to BMX6.
However, the "Graph" and the "Tunnels" pages expect a JSON structure with an
array of tunnels. In case no tunnels are known to BMX6, bmx6-info now returns
'{ "tunnels" : [] }'.

Fixes #434

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2018-12-08 22:20:42 +01:00
Pau
9bc518e8c8
Merge pull request #433 from rogerpueyo/bmx6-graph
luci-app-bmx6: Fix URL of network topology JSON file
2018-12-08 22:12:52 +01:00
Roger Pueyo Centelles
b6815d5942 luci-app-bmx6: Fix URL of network topology JSON file
The JavaScript code of the network graph tried to fetch the topology from
%HOST/cgi-bin/luci/status/bmx6/topology, but the topology entry is now located
at admin->network->BMX6 (i.e., %HOST/cgi-bin/luci/admin/network/BMX6/topology).

Fixes #432

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2018-12-08 22:02:48 +01:00
p4u
940d621757 Merge branch 'p4u/luci-app-bmx7/refactory' 2018-12-07 19:15:16 +01:00
Pau
3264d15492
Merge pull request #431 from rogerpueyo/p4u/luci-app-bmx7/refactory
Fix bmx7-info indentation and "$info" call
2018-12-07 18:44:19 +01:00
Roger Pueyo Centelles
3e259f8ec5 luci-app-bmx7: fix bmx7-info script's "$info" call
This commit fixes a bug in bmx7-info script's "$info" call when no
interfaces are being used by BMX7, or when no links have been
established. In those cases, the generated JSON output struct contained
extra commas, which made it invalid.

Closes #430

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2018-12-07 18:04:10 +01:00
Roger Pueyo Centelles
a7d7f4baa8 luci-app-bmx7: fix bmx7-info script's indentation
Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2018-12-07 17:47:22 +01:00
p4u
9345df949e luci-app-bmx7: update version, dependencies and maintainer
Signed-off-by: p4u <p4u@dabax.net>
2018-12-07 16:55:11 +01:00
Simon Wunderlich
a31ebca77e
Merge pull request #429 from ecsv/batadv-2018.4
batctl: Fix parsing of optional debug table command parameters
2018-12-07 09:52:46 +01:00
p4u
a1e102093f luci-app-bmx7: refactory, multiple fixes and add topology graph
Signed-off-by: p4u <p4u@dabax.net>
2018-12-06 12:17:49 +01:00
Sven Eckelmann
db1869971d batctl: Fix parsing of optional debug table command parameters
The commands which should have no support for -t/-u/-m/-i were allowed to
accept these parameters but commands which should have accepted them were
denying them.

Fixes: 8936141bf0 ("batctl: upgrade package to latest release 2018.4")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-12-06 09:21:15 +01:00
Simon Wunderlich
3d97690ba3
Merge pull request #427 from ecsv/batadv-2018.4
batman-adv 2018.4
2018-11-15 10:12:33 +01:00
Sven Eckelmann
4167ad2c62 batman-adv: upgrade package to latest release 2018.4
* support latest kernels (3.16 - 4.20)
* coding style cleanups and refactoring
* improve tx performance by avoiding unnecessary locking
* add help messages regarding deprecation of debugfs files
* support for debug message tracepoints
* explicit ELP padding to allow TVLVs in the future
* bugs squashed:

  - fix skb_over_panic for merged fragments with small tailroom

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-11-14 21:50:38 +01:00
Sven Eckelmann
8936141bf0 batctl: upgrade package to latest release 2018.4
* coding style cleanups and refactoring
* correction of manpage spelling errors
* new subcommand "event" to receive netlink notifications
* infrastructure to disable commands during build time
* drop of the legacy vis subcommands

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-11-14 21:50:38 +01:00
Sven Eckelmann
3528a5df09 alfred: upgrade package to latest release 2018.4
* bugs squashed:

  - fixed detection of own IPv4 packets
  - use manual IPv4 ARP requests to retrieve MAC of neighbors

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-11-14 21:50:38 +01:00
zorun
2681019264
Merge pull request #426 from robimarko/babeld-1.8.4
babeld: Update to version 1.8.4
2018-11-11 10:11:29 +01:00
Robert Marko
6151c44f22
babeld: Update to version 1.8.4
9 November 2018: babeld-1.8.4

  * Fixed a bug that discarded pipelined commands received on the local
    configuration interface.
* Added the per-interface option rfc6126-compatible.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2018-11-11 00:34:59 +01:00
Sven Eckelmann
9bc898b8f4 batman-adv: Re-add kmod-lib-crc16 back to dependency line
The OpenWrt dependency builder cannot extract the crc16 dependency from
the KMOD_BATMAN_ADV_BLA dependencies. They have to be specified directly in
the OpenWrt Makefile's DEPENDS line to avoid error when BLA is enabled:

  Package kmod-batman-adv is missing dependencies for the following libraries:
  crc16.ko

Reported-by: Lech Perczak <lech.perczak@gmail.com>
Fixes: 0db66160aa ("batman-adv: Sync config options with kernel Kconfig")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-22 12:34:32 +02:00
Simon Wunderlich
71664bae65
Merge pull request #421 from ecsv/batadv-2018.3
batman-adv: Cleanup of configuration options
2018-10-18 15:01:53 +02:00
Sven Eckelmann
c3b60d4c84 batman-adv: Remove unused dependency kmod-crypto-crc32c
The translation table code from batman-adv is only using the function
crc32c which is part of kmod-lib-crc32c. The kmod-crypto-crc32c is then
only used by kmod-lib-crc32c but not batman-adv.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 17:41:53 +02:00
Sven Eckelmann
6a25fd5ce5 batman-adv: Use the kernel style Kconfig symbols
Kernel modules like ath9k and ath10k are using the same Kconfig option
symbols as used in the kernel. This makes it easier to share them between
these two projects. A similar approach should be used for the batman-adv
module.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 17:41:52 +02:00
Sven Eckelmann
0db66160aa batman-adv: Sync config options with kernel Kconfig
The kernel already provides all available kernel options for batman-adv and
even includes more verbose descriptions of each option. Importing this
Kconfig (with minor adjustments) file as Config.in allows to share most
information between kernel and OpenWrt.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 17:41:52 +02:00
Sven Eckelmann
45c12f406f batman-adv: Disable MCAST during compilation
The multicast optimization compile option is disabled by default in the
Kconfig of batman-adv. The out-of-tree module should keep this setting in
sync and thus has to also disable the build of multicast optimization by
default.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 16:58:01 +02:00
Sven Eckelmann
c5092c6e78 batman-adv: Order Kconfig config symbols like kernel
The options in the kernel Kconfig have a different order than the one in
the OptionWrt Config.in. This makes it unnecessary hard to compare these
two files.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 16:50:23 +02:00
Sven Eckelmann
726b00dc9f batman-adv: Add DEBUG_LOG -> DEBUGFS dependency
The debug log is only available when the debugfs is also enabled. This
must be reflected in Kconfig to avoid incompatible selection of batman-adv
options.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-14 16:07:42 +02:00
Simon Wunderlich
c7f14ce932
Merge pull request #420 from ecsv/batadv-2018.3
batman-adv package fixes
2018-10-11 10:34:05 +02:00
Sven Eckelmann
e6a8135faa batctl: Don't overwrite default PKG_BUILD_DIR
There is no benefit to overwrite the PKG_BUILD_DIR directory for batctl. As
seen with kmod-batman-adv, it actually can also break the build.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 16:11:48 +02:00
Sven Eckelmann
3736630676 alfred: Add openwrt revision to internal version
OpenWrt is using a modified version of the software and these modifications
may introduce extra bugs (or behavior changes). It is also patched for
stable releases instead of switching to new releases. The revision should
therefore be added to the version number to make it easier understandable
which modified version the user may have installed.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 13:31:32 +02:00
Sven Eckelmann
c903a445a8 batctl: Add openwrt revision to internal version
OpenWrt is using a modified version of the software and these modifications
may introduce extra bugs (or behavior changes). It is also patched for
stable releases instead of switching to new releases. The revision should
therefore be added to the version number to make it easier understandable
which modified version the user may have installed.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 13:31:16 +02:00
Sven Eckelmann
542a63720f batman-adv: Add openwrt revision to internal version
OpenWrt is using a modified version of the software and these modifications
may introduce extra bugs (or behavior changes). It is also patched for
stable releases instead of switching to new releases. The revision should
therefore be added to the version number to make it easier understandable
which modified version the user may have installed.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 13:31:01 +02:00
Sven Eckelmann
8112737cdc batman-adv: Fix search for cfg80211 module symbols
The Module.symvers with the exported symbols of all other kernel modules in
OpenWrt is usually placed in the main source directory of the package. But
the actual sources for batman-adv are found in net/batman-adv. OpenWrt must
therefore be informed to move it to this subdirectory or otherwise modpost
will fail to find the symbols

  WARNING: "cfg80211_get_station" [.../batman-adv-2018.3/net/batman-adv/batman-adv.ko] undefined!

The dependency will then be missing in the .modinfo depends= option and
thus it the kernel module loader will not correctly load the cfg80211.ko
during bootup.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 13:29:24 +02:00
Sven Eckelmann
003607ac1e batman-adv: Rebuild automatically on mac80211 changes
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-10-07 10:42:12 +02:00
Moritz Warning
4303ca68a6
Merge pull request #415 from unquietwiki/patch-1
babeld: update to 1.8.3
2018-10-03 19:53:13 +02:00
Michael Adams
bab933d4ca babeld: Update to version 1.8.3 + fix init
24 September 2018: babeld-1.8.3

  * Fixed a read-only two byte buffer overflow in the packet parser.
    This is a read-only overflow, and hence most probably not exploitable.
  * Fixed an issue with creating unreachable routes on recent kernels
    (4.16 and up).  Thanks to Christof Schulze.
  * Notice interface changes faster by listening to more netlink events.
    Thanks to Christof Schulze.
  * Fixed a local interface issue when an interface has no link-local
    address.  Thanks to Christof Schulze.

Also, the init script was edited to kill babeld on stop; restart works properly now, as well.

Signed-off-by: Michael Adams <unquietwiki@gmail.com>
2018-10-03 10:04:46 -07:00
Moritz Warning
c5094aac9b
Merge pull request #419 from mwarning/nds_link_fix
nodogsplash: fix download link
2018-09-28 15:31:14 +02:00
Moritz Warning
372ed0da13 nodogsplash: fix download hash
The tagging of the release was wrong, as a result, the hash of the downloaded files is different from the usual download package.
The content has been verified to be the same.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-09-28 15:29:16 +02:00
Rob White
4bfb63f25b nodogsplash: Version 3.2.1 release (#416)
nodogsplash: Release 3.2.1

Signed-off-by: Rob White <rob@blue-wave.net>
2018-09-27 14:59:33 +02:00
Simon Wunderlich
a8d3f89007
Merge pull request #412 from ecsv/batadv-2018.3
batman-adv 2018.3
2018-09-17 10:46:21 +02:00
Sven Eckelmann
02e3cb6db9 batman-adv: upgrade package to latest release 2018.3
* support latest kernels (3.16 - 4.19)
* coding style cleanups and refactoring
* enable the DAT by default for the in-tree Linux module
* bugs squashed:

  - fix segfault when writing to sysfs files under batman_adv/ with
    CONFIG_BATMAN_ADV_DEBUG enabled
  - avoid information leakage in probe ELP packets
  - adjust reference counters when queue_work fails
  - prevent duplicated entries in various lists

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-09-15 10:20:02 +02:00
Sven Eckelmann
22fd5c5f06 batctl: upgrade package to latest release 2018.3
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-09-15 10:19:39 +02:00
Sven Eckelmann
99430a87e3 alfred: upgrade package to latest release 2018.3
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-09-15 10:19:39 +02:00
Moritz Warning
89edf8c15d
Merge pull request #410 from bluewavenet/nodogsplash-3.2.0
nodogsplash: add missing config options
2018-09-13 16:39:42 +02:00
Rob White
00a6bef40b nodogsplash: add missing config options
sessiontimeout (minutes) until client is forced out
checkinterval (seconds) interval at which nodogsplash checks client timeout status

Add real world useful values to timeout options.

Signed-off-by: Rob White <rob@blue-wave.net>
2018-09-13 15:05:26 +01:00
Moritz Warning
c394f54b63
Merge pull request #406 from bluewavenet/nodogsplash-3.2.0
nodogsplash: Release 3.2.0
2018-09-03 12:17:37 +02:00
William Fleurant
cc7986a774
luci-app-cjdns: luci admin support for cjdns-v20.2 (#394)
* luci-app-cjdns: luci admin support for cjdns-v20.2

* adds layer 2 and 3 address display column
* fixes switch label pinger
* get version from addr string
* parse addr string for peerStats publicKey

Signed-off-by: William Fleurant <william@netblazr.com>

* luci-app-cjdns: bump release, update repo-url and license year

Signed-off-by: William Fleurant <william@netblazr.com>

* luci-app-cjdns: support views for 17.01 and 18.06
- fixed user/name column
- removed latency column
- combind peerstats functions
- fix css on overview page
- table displays with `cbi_update_table` with fallback
- columns ordered similar to peerStats.js output
- normalized XHR polling to mimic wireless.htm by jow@openwrt

Signed-off-by: William Fleurant <william@netblazr.com>
2018-09-03 00:50:34 +00:00
Rob White
9d7a3f6428 nodogsplash: Release 3.2.0
Signed-off-by: Rob White <rob@blue-wave.net>
2018-09-02 22:30:22 +01:00
Moritz Warning
b6efcd5cba
Merge pull request #405 from bluewavenet/nodogsplash-3.1.0
nodogsplash: Release 3.1.0
2018-08-28 10:47:37 +02:00
Rob White
0b21cb77d9 nodogsplash: Release 3.1.0
Signed-off-by: Rob White <rob@blue-wave.net>
2018-08-26 22:57:12 +01:00
Moritz Warning
f18bdeab6c
Merge pull request #404 from mwarning/nodogsplash
nodogsplash: fix minor things
2018-08-17 19:25:52 +02:00
Moritz Warning
02966f80c1 nodogsplash: fix minor package issues
- package now conflicts with nodogsplash2
- properly close heredoc block
- quiet uci when removing previous firewall hook

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-08-17 19:23:00 +02:00
Moritz Warning
938e4dbaa3
Merge pull request #402 from crza/fix-ndppd
ndppd: fix compile error with musl
2018-08-16 16:39:09 +02:00
Moritz Warning
e737f4f9c7
Merge pull request #400 from cotequeiroz/bmx7_list.h
bmx7: avoid list.h namespace collision
2018-08-16 16:36:52 +02:00
Eneas U de Queiroz
dfe80970d5 bmx7: Avoid namespace collision with libubox.
Applied Daniel Golle's patch from
https://github.com/bmx-routing/bmx7/pull/35 to "rename some list stuff
to avoid namespace collision with libubox."

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2018-08-16 11:05:51 -03:00
Moritz Warning
85d01f8280
Merge pull request #401 from mwarning/nodogsplash2
nodogsplash2: update to 3.0 and merge packages
2018-08-16 15:51:26 +02:00
Moritz Warning
6f82d5128e nodogsplash2: remove package
Nodogplash 3.0.0 was released and makes the nodogsplash2 package unnecessary.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-08-16 15:05:49 +02:00
Moritz Warning
1a27c9a34d nodogsplash: update to release 3.0.0
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-08-16 15:03:29 +02:00
Martin Strobel
9333cdff05 ndppd: fix compile error with musl
Error:
src/logger.cc: In static member function 'static std::string ndppd::logger::err()':
src/logger.cc:86:22: error: could not convert 'strerror_r((*__errno_location()), ((char*)(& buf)), sizeof (buf))'
                            from 'int' to 'std::string {aka std::basic_string<char>}'
    return strerror_r(errno, buf, sizeof(buf));

Added and modified some patches from
eb81b8f2d6...navossoc:master
(See https://github.com/DanielAdolfsson/ndppd/issues/40 for details)

Compile-tested: octeon + mpc85xx openwrt master, musl + uclibc++
                octeon openwrt master, glibc + libstdc++

Run-tested: octeon openwrt master, musl + uclibc++

Signed-off-by: Martin Strobel <arctus@crza.de>
2018-08-12 18:03:38 +02:00
Jo-Philipp Wich
76773ec5dd
Merge pull request #399 from mwarning/nodogsplash2_fix
nodogsplash2: remove reference to dead code
2018-07-31 18:33:58 +02:00
Moritz Warning
c7d0e1c7a4 nodogsplash2: remove reference to dead code
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-07-31 18:30:08 +02:00
Moritz Warning
e46736e78c
Merge pull request #395 from mwarning/nodogsplash2
nodogsplash2: cleanup
2018-07-24 00:13:15 +02:00
Moritz Warning
fa70e4cdc6 nodogsplash2: init script cleanup and refactoring
- refactor firewall restart hook
- remove dead code
- shorten existing code

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-07-23 22:25:15 +02:00
Moritz Warning
512084e948
Merge pull request #397 from adrianschmutzler/fixalfred
alfred: Fix alfred.init
2018-07-21 17:15:02 +02:00
Adrian Schmutzler
52e2545198 alfred: Fix alfred.init
The commit 45db0e6 introduced curly brackets which are not correct
syntax and thus broke the script.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-07-21 16:00:20 +02:00
Moritz Warning
4c7b4a349b
Merge pull request #390 from aparcar/alfred_procd
alfred: use procd fix #388
2018-07-20 14:22:52 +02:00
Paul Spooren
45db0e60d2 alfred: use procd
Signed-off-by: Paul Spooren <mail@aparcar.org>
2018-07-20 18:23:10 +09:00
Simon Wunderlich
d01c661c6d
Merge pull request #396 from ecsv/batadv-2018.2
batman-adv 2018.2
2018-07-18 05:07:46 -07:00
Sven Eckelmann
afba8ae2c0 batman-adv: upgrade package to latest release 2018.2
* support latest kernels (3.16 - 4.18)
* dropped support for kernels < 3.16 (note the removed build directory)
* coding style cleanups and refactoring
* avoid old nodes disabling multicast optimizations completely
* disable ethtool based B.A.T.M.A.N. V speed detection for virtual interfaces
* enable B.A.T.M.A.N. V compilation by default
* disable debugfs support by default
* bugs squashed:

  - fix TT sync flags for intermediate TT responses
  - avoid race in TT TVLV allocator helper
  - prevent TT request storms by not sending inconsistent TT TVLVs
  - fix best gw refcnt after netlink dump
  - adjust debugfs paths for interfaces after a namechange
  - fix single entry TT non-sync flag storage
  - fix multicast TT issues with bogus ROAM flags
  - work around insufficient memory initialization in cfg80211's station info

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
afc7b8f64c batctl: upgrade package to latest release 2018.2
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
ce461f8484 alfred: upgrade package to latest release 2018.2
* (no changes)

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
7a9336380a batman-adv: Simplify installation of files
It is not necessary to install each file manually to the target path. A
simple recursive copy is enough.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
303c282565 batctl: Drop unused clean rule
The rule can be removed because the OpenWrt build system takes care of the
removal of the build directory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
247499d2b0 batman-adv: Drop unused clean rule
The path $(BUILD_DIR)/$(PKG_NAME) is not used anymore. The rule can be
removed and the OpenWrt build system takes care of the removal of the build
directory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
643e41c9d6 batman-adv: Drop manual installation of compat-hacks.h
OpenWrt is able since a while to automatically install all files in ./src/
to the PKG_BUILD_DIR. It is no longer necessary to provide special
Build/Prepare rules to do so.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 21:23:54 +02:00
Sven Eckelmann
b30eb65d2f batman-adv: Provide default settings examples for bat0
Users may want to know what options can be specified and in which form they
have to specified. A commented out list of settings is helpful here while
making it not necessary to copy the default settings from batman-adv to
this config all the time.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:37:53 +02:00
Sven Eckelmann
0726085a2d batman-adv: Remove unused option "interfaces" in config
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:25:23 +02:00
Sven Eckelmann
69d016ebe5 batman-adv: Disable CONFIG_BATMAN_ADV_DEBUGFS by default
All tools which were known to the batman-adv development team are
supporting the batman-adv netlink interface since a while. Also debugfs is
not supported for batman-adv interfaces in any non-default netns. Thus
disabling CONFIG_BATMAN_ADV_DEBUGFS by default should not cause problems on
most systems. It is still possible to enable it in case it is still
required in a specific setup.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:21:06 +02:00
Sven Eckelmann
ccc93a4c45 batman-adv: Remove deprecated compat helpers
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:21:06 +02:00
Sven Eckelmann
74e9124611 batman-adv: Add compat for link_ksettings->base.autoneg
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:21:06 +02:00
Sven Eckelmann
846efa2305 batman-adv: Load module with AutoProbe
cfg80211 is loaded by kmodloader after the modules with a priority
(AutoLoad) are loaded. batman-adv should therefore also be loaded at that
time and must not load cfg80211 itself. The information in the ELF header
are enough for kmodloader to load these two modules in the correct order.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-07-17 20:21:06 +02:00
Moritz Warning
0013176125
Merge pull request #387 from diizzyy/patch-2
bird2: Disable libssh support
2018-07-17 18:39:19 +02:00
Moritz Warning
4f16bcfaaf
Merge pull request #392 from cotequeiroz/pimbd-constant_cpu_to_be32
pimbd: Fix gcc 7.3 compilation error
2018-07-12 20:45:54 +02:00
Moritz Warning
61ec956a1e
Merge pull request #391 from dguglielmi/master
ndppd: bump to 0.2.5
2018-07-12 16:54:27 +02:00
Daniel Engberg
43449bcbbd treewide: Basic cleanup and alignment to package guidelines (#383)
This is a very basic cleanup, several packages needs more work
but this at least drops git for https and removes the use of
PKG_MD5SUM and some minor fixes.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-07-12 16:50:47 +02:00
Axel Neumann
d82d299a27
Merge pull request #389 from aparcar/bmx7_trigger
bmx7: add config trigger
2018-06-20 13:31:11 +02:00
Eneas U de Queiroz
c299f8bcea pimbd: update to current git HEAD
Allow compilation with gcc 7.3.0.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2018-06-19 08:01:14 -03:00
David Guglielmi
3b0ad89f33
ndppd: bump to 0.2.5
* Remove downstream patches
 * Use github/codeload for source URL
 * Use PKG_HASH
2018-06-18 01:32:23 +02:00
Paul Spooren
440ad460b2 bmx7: add config trigger
this should automatically reload bmx7 if the config files is changed

Signed-off-by: Paul Spooren <mail@aparcar.org>
2018-06-13 20:03:54 +09:00
Simon Wunderlich
f785dc0e9b
Merge pull request #384 from ecsv/batadv-2018.1
batman-adv: add patches from 2018.1-maint 2018-06-12
2018-06-13 11:53:11 +02:00
Daniel Engberg
633130f8b5
bird2: Disable libssh support
Explicitly disable libssh support
Fixes build failure on buildbots

" Package bird2 is missing dependencies for the following libraries:
libssh.so.4 "
http://downloads.lede-project.org/snapshots/faillogs/arm_cortex-a9_neon/routing/bird2/compile.txt

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-06-12 23:51:07 +02:00
Sven Eckelmann
87cba7f899 batman-adv: add patches from 2018.1-maint 2018-06-12
* compat: initialize sinfo in cfg80211_get_station
* Avoid storing non-TT-sync flags on singular entries too
* Fix multicast TT issues with bogus ROAM flags

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-06-12 22:54:22 +02:00
Simon Wunderlich
013dcc6817
Merge pull request #379 from ecsv/batadv-2018.1
batman-adv: add patches from 2018.1-maint 2018-06-03
2018-06-04 14:12:48 +02:00
Sven Eckelmann
2dfb228764 batman-adv: add patches from 2018.1-maint 2018-06-03
* Avoid race in TT TVLV allocator helper
* Fix TT sync flags for intermediate TT responses
* prevent TT request storms by not sending inconsistent TT TLVLs
* don't implement skb_postpush_rcsum() for linux >=4.4.47
* Fix bat_ogm_iv best gw refcnt after netlink dump
* Fix bat_v best gw refcnt after netlink dump
* Fix debugfs path for renamed hardif
* Fix debugfs path for renamed softif

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-06-03 18:43:22 +02:00
Moritz Warning
23c04022c6
Merge pull request #378 from tohojo/bird-2.0
Add a package for Bird 2.0
2018-05-17 15:42:56 +02:00
Toke Høiland-Jørgensen
688901a664 bird2: Add package
This adds a separate package for the 2.0 branch of Bird, allowing it to
co-exist with the bird1 package. The two packages conflict with each other,
so they can't be installed at the same time; but in the build system they
coexist just fine.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-05-16 13:18:28 +02:00
Toke Høiland-Jørgensen
ecbdeb0500 bird: Rename to bird1 and bump to v1.6.4
This renames the bird and bird-openwrt packages to bird1, to make it
possible for bird2 (added in a subsequent commit) to coexist with it.

The packages are renamed to bird1-ipv{4,6} to avoid the confusion of
having packages named 'bird2', 'bird4' and 'bird6'.

Also bump to v1.6.4 as that contains important bug fixes.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2018-05-16 12:34:51 +02:00
Moritz Warning
453de2136e
nodogsplash2: update to version 2.1.1 (#376)
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-05-14 16:24:33 +02:00
zorun
307cf4c1a7
Merge pull request #377 from zorun/master
babeld: Update to 1.8.2
2018-05-13 01:09:00 +02:00
Baptiste Jonglez
a71ecc3ddd babeld: Update to 1.8.2
This fixes a serious bug where IPv4 routes were not being redistributed.

Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
2018-05-13 01:05:58 +02:00
Jo-Philipp Wich
ae4dda6dad
Merge pull request #372 from ldir-EDB0/dropminiupnpd
miniupnpd: drop from repo
2018-05-05 19:40:44 +02:00
Jo-Philipp Wich
ba5d2fc76e
Merge pull request #374 from dedeckeh/pr_nat46_hash
nat46: fixup PKG_MIRROR_HASH
2018-05-03 10:59:23 +02:00
Hans Dedecker
0bf3b72c33 nat46: fixup PKG_MIRROR_HASH
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-05-03 10:30:03 +02:00
Rob White
23aa2e7b4a nodogsplash2: Add NDS Restart Hook for Firewall (#369)
NodogSplash iptables entries are overwritten if the OpenWrt Firewall is restarted.
This change adds a restart hook to firewall.user to restart NoDogSplash if firewall is restarted.
Author-name: Rob White
Signed-off-by: Rob White rob@blue-wave.net
2018-05-02 20:42:19 +02:00
Moritz Warning
fd8f9285e7
Merge pull request #355 from neheb/patch-1
smcroute: Change download to HTTP
2018-05-02 16:58:46 +02:00
Moritz Warning
68e3498edb
Merge pull request #361 from akru/cjdns-build-fixes
cjdns: v20.1 -> v20.2
2018-05-02 16:51:59 +02:00
Moritz Warning
3349cae243
Merge pull request #367 from ecsv/batadv-2018.1
batman-adv 2018.1
2018-05-02 16:50:57 +02:00
Moritz Warning
069da036cb
Merge pull request #354 from adrianschmutzler/fe80master
alfred: Support interface IDs with more than two digits
2018-05-02 16:49:32 +02:00
Alexander Krupenkin
7ae81c8311
cjdns: 20.1 -> 20.2 2018-05-02 17:33:13 +03:00
Saverio Proto
00ae77674f
Merge pull request #368 from gabri94/master
prince: version bump to v0.4
2018-05-02 11:01:44 +02:00
Gabriele Gemmi
ff7b5da265 prince: version bump to v0.4
Signed-off-by: Gabriele Gemmi <gabriel@autistici.org>
2018-05-01 11:03:26 +02:00
Kevin Darbyshire-Bryant
2098770710 miniupnpd: drop from repo
As no maintainer take the opportunity to drop from this repo and put in
main openwrt/packages repo.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2018-04-30 11:20:14 +01:00
Markus Stenberg
2f90fe406c miniupnpd: De-maintainering myself.
I haven't used the package personally for last 3 years, so
de-maintainering myself as testing version updates is extra work I do
not need for stuff I do not use.
2018-04-29 21:28:47 +03:00
Axel Neumann
fdaa4cde3b bmx7: bump version
* Fix memory leaks 300522 and 300520 due to changed interface status and increased nlmsg size
  * Fix physical channel detection: https://github.com/bmx-routing/bmx7/issues/19
  * Enable DEBUG_MALLOC and CORE_LIMIT=20000 by default
2018-04-25 23:11:05 +02:00
Sven Eckelmann
455a54207c batman-adv: upgrade package to latest release 2018.1
* support latest kernels (3.2 - 4.17)
* coding style cleanups and refactoring
* add DAT cache and multicast flags netlink support
* avoid redundant multicast TT entries
* bugs squashed:

  - update data pointers after skb_cow()
  - fix header size check in batadv_dbg_arp()
  - fix skbuff rcsum on packet reroute
  - fix multicast-via-unicast transmission with AP isolation
  - fix packet loss for broadcasted DHCP packets to a server
  - fix multicast packet loss with a single WANT_ALL_IPV4/6 flag

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-04-25 21:18:35 +02:00
Sven Eckelmann
2e4937ea68 batctl: upgrade package to latest release 2018.1
* synchronization of batman-adv netlink and packet headers
* add DAT cache and multicast flags netlink support
* disable translation support for non-unicast mac addresses

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-04-25 21:18:00 +02:00
Sven Eckelmann
a0eca40b00 alfred: upgrade package to latest release 2018.1
* synchronization of batman-adv netlink header

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-04-25 21:17:08 +02:00
axn
0cbe4d4b9b
Merge pull request #364 from aparcar/bmx7-reload
bmx7: use configReaload on service reload
2018-04-25 08:50:21 +02:00
Paul Spooren
015e5e99f2 bmx7: use configReaload on service reload
It's #363 for procdbmx7: use configReaload on service reload

Signed-off-by: Paul Spooren <spooren@informatik.uni-leipzig.de>
2018-04-25 15:48:43 +09:00
axn
c9d120adc6
Merge pull request #360 from dangowrt/bmx7_use_procd
bmx7: convert init script to use procd
2018-04-16 20:26:28 +02:00
axn
4ca537620c
Merge pull request #362 from aparcar/patch-1
bmx7: keep bmx7 secret keys on sysupgrade
2018-04-16 20:26:08 +02:00
Paul Spooren
0ced8ec5a7 bmx7: keep bmx7 secret keys on sysupgrade
Sysupgrade currently leads to a loss of the content of /etc/bmx7 which
contains the secret keys.  After the reboot the device creates new IPs
leading to a new "identity" aka ID, shortID and IPv6 changes.
2018-04-16 01:05:36 +09:00
Alexander Krupenkin
4bff0b3c65
cjdns: build fixes 2018-04-13 12:17:51 +03:00
Gabriel Kerneis
7fc2fbdfc1
babeld: release 1.8.1 2018-04-10 17:49:18 +02:00
Adrian Schmutzler
135bc605b4 alfred: Support interface IDs with more than two digits
Occationally /proc/net/if_inet6 contains interface IDs with
three digits. In this case, the regex in wait_for_ll_address()
does not work anymore and alfred is not starting.

This patch changes the evaluation so that fields are used instead
of the mere position by counting characters.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-04-09 12:11:12 +02:00
Daniel Golle
91e600e1cd bmx7: convert init script to use procd
Using procd allows better control and monitoring of the bmx7 process.
Keep polling for mac80211.sh process for now until we find a better
way to make sure that wireless configuration has been generated before
starting bmx7.
Setting maximum core size to 20000 looks dangerous on small devices,
but keep it as it was before, we shall discuss this separately.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-04-08 21:02:33 +02:00
Moritz Warning
448ca58e4c
Merge pull request #359 from bluewavenet/patch-4
nodogsplash2: Add compatibility with mwan3 v2
2018-04-05 12:22:34 +02:00
Rob White
86be0095b4
nodogsplash2: Add compatibility with mwan3 v2
nodogsplash2: Add compatibility with mwan3 version 2
Changes in mwan3 version 2 resulted in previous recommended fix for Nodogsplash to fail.
Setting fw_mark to use bits set "higher" than used in mwan3 solves the problem. This works also for all previous versions of Nodogsplash.
Author-name: Rob White
Signed-off-by: Rob White <rob@blue-wave.net>
2018-04-04 22:44:19 +01:00
Rosen Penev
17fccad969
smcroute: Change download to HTTP
FTP is a lot more unreliable than HTTP(S). uscan was recently having trouble.

Signed-off-by: Rosen Penev <rosenp@gmail.com
2018-03-25 19:42:44 -07:00
Axel Neumann
63cae8f571 bmx7: bump version
* use Linux' sysfs to extract the lower-interface of virtual interfaces
2018-03-09 17:03:00 +01:00
Axel Neumann
3aaa772ef5 bmx7: bump version
* Sort links by name
 * Allow configuring invalid --pathLq1Threshold (due to configReload problem) and fix it in description
 * Introduce --linkThroughputEfficiency=0 (70) and cleanup metric algos
 * Update expectedThroughput only if estimation exists
 * Calculate and use average expected throughput instead of fluctuating current value
 * Rename wireless expected throughput variables
 * Align ordering of link_status struct and field_format
 * Fix: Interpret expected TP as Kbps
 * Fix txRateExpected typos
 * Add expected throughput as reported by minstrel(_ht)
2018-03-04 22:12:34 +01:00
Moritz Warning
28db3cc997
Merge pull request #348 from akru/cjdns-v20.1
cjdns: v20 -> v20.1
2018-03-04 00:15:26 +01:00
Moritz Warning
57bec529e0
Merge pull request #349 from ecsv/batadv-2018.0
batman-adv 2018.0
2018-03-04 00:12:39 +01:00
axn
b5524a5d25
Merge pull request #352 from dangowrt/bmx-add-PKG_MIRROR_HASH
bmx6/7: add pkg mirror hash
2018-03-03 14:14:43 +01:00
Daniel Golle
ccd4210f0b bmx7: add PKG_MIRROR_HASH
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-03-01 23:04:38 +01:00
Daniel Golle
d6dcd0c756 bmx6: add PKG_MIRROR_HASH
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-03-01 23:02:10 +01:00
Sven Eckelmann
536782119f alfred: upgrade package to latest release 2018.0
* synchronization of batman-adv netlink and packet headers
* mark licenses clearer, change batman-adv UAPI header from ISC to MIT
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-02-27 14:00:29 +01:00
Sven Eckelmann
6a6f5da5ef batctl: upgrade package to latest release 2018.0
* synchronization of batman-adv netlink and packet headers
* mark licenses clearer, change batman-adv UAPI header from ISC to MIT
* coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-02-27 13:59:55 +01:00
Sven Eckelmann
3bb75b0035 batman-adv: upgrade package to latest release 2018.0
* support latest kernels (3.2 - 4.16)
* coding style cleanups and refactoring
* mark licenses clearer, change UAPI header from ISC to MIT
* bugs squashed:

  - fix packet checksum handling in receive path
  - fix handling of large number of interfaces
  - fix netlink dumping of gateways and BLA claims+backbones

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-02-27 13:59:03 +01:00
Axel Neumann
2f74073c20 bmx7: bump version to 58b3823262512a48f5174e6778b2368c55bd05d9
* crypt: Fix broken MBEDTLS_THREADING_C support due to missing rsa_init()
 * Common.mk: remove unneeded linker dependency -lmbedtls
 * bmx ip link prof: fix several potential sprintf() buffer overwrites
2018-02-18 22:47:57 +01:00
Alexander Krupenkin
733e935f04
cjdns: v20 -> v20.1 2018-02-18 13:44:02 +03:00
Axel Neumann
f0ee73aa22 bmx7: bump version
* bmx desc json node: muting sys-level debug messages
 * Fix json-descriptions files
 * json: dump json originators file with relevance 2, do not remove descriptions due to deleted routes
 * json: change default json files update interval to a minute
 * bmx: fixing origs/keys_status_creator() with given key_node data
 * json: fixing /var/run/originators/... and cleanup
 * json: set json jshow default relevance to 1 (medium)
 * Cleanup and simplify status memory usage report
 * tun: --tunOutDelay=100 delay catched and rescheduled tunnel packets for us  to complete proper dedicated tunnel setup
2018-02-09 20:46:31 +01:00
Axel Neumann
21a6454d72 bmx6: bump to latest upstream version
* mute warning for unknown description-frame types
 * introduce --tunCatchDelay=100 to delay catched and rescheduled tunnel packets for us  to complete proper dedicated tunnel setup
 * Revert "hna: Use real or zero remote tunnel addresses"
   Which does not work with current openwrt/lede kernels
   due to their patched ip6_tunnel.c code for supporting MAP-E-FMRs.
 * Fix linker problem when compiling topology plugin with -DPROFILING
2018-02-09 15:35:00 +01:00
Jo-Philipp Wich
c5f18d5a2a bird: fix build dependencies
The PKG_BUILD_DEPENDS variable must refer to source packages instead of
binary package names.

Fixes the following errors on current OpenWrt master:

Upon scripts/feeds install:

    WARNING: No feed for source package 'libncurses' found
    WARNING: No feed for source package 'libreadline' found

Upon metadata scanning and dependency resolution:

    WARNING: Makefile 'package/feeds/routing/bird/Makefile' has a build dependency on 'libncurses', which does not exist
    WARNING: Makefile 'package/feeds/routing/bird/Makefile' has a build dependency on 'libreadline', which does not exist

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-01-16 16:34:51 +01:00
Jo-Philipp Wich
1418fce12b
Merge pull request #346 from dedeckeh/pr_nat46_xlat
nat46: harden 464xlat teardown logic
2018-01-16 15:46:29 +01:00
Hans Dedecker
013b91dc6d nat46: harden 464xlat teardown logic
Quit the teardown function in case the file 464-$cfg-anycast is not
present as it means no clean up of ip rules is required.
It fixes error traces like "cat: can't open '/tmp/464-wan6_4-anycast':
No such file or directory" and "Error: inet6 prefix is expected rather
than "lookup"."
At the same time remove the unused variable anycast_active.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-01-16 15:35:57 +01:00
Axel Neumann
d464bf11b8 bmx6: fix gcc6&7 warnings, avoid json-c patch 2018-01-13 13:56:33 +01:00
Moritz Warning
f48f3328d1
nodogsplash2: update to version 2.0.1 (#344)
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2018-01-08 23:34:18 +01:00
bluewavenet
c3487c6e74 nodogsplash2: Fix Startup Failure (#343)
nodogsplash2: fix startup failure

The underlying network_get_device() used for option network is not reliable. Use option gatewayinterface for now.

Signed-off-by: Rob White <rob@blue-wave.net>
2018-01-08 23:33:14 +01:00
Moritz Warning
03a4dbf437
Merge pull request #337 from ecsv/batadv-2017.4
batman-adv: Fix missing function name for timer_setup in compat-hacks
2018-01-06 22:37:25 +01:00
Álvaro Fernández Rojas
9abfeba603 mcproxy: update to latest version (#339)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2018-01-06 22:34:31 +01:00
Axel Neumann
d3b2d834f5 bmx7_json: Fix broken include of json.h 2018-01-06 20:53:48 +01:00
bluewavenet
5e96695d52 nodogsplash2: change configuration defaults (#341)
nodogsplash2: change configuration defaults

Changes:
* set default to NoDogsplash enabled as rest of config should now be safe and is possible to SSH to router to stop NDS if needed
* change clientidletimeout to 120 minutes (2 hours)
* add clientforcetimeout set to 1440 minutes (24 hours)
* comment out the two provided example authenticated_users block lines
* add list authenticated_users 'allow all'
* comment original list authenticated_users allow... entries and leave them as examples
* set preauth default to no use remote DNS. All devices used at a public wifi venues should be configured for DHCP. To force the use of the local DNS server makes DNS tunnelling very inefficient if not unusable on a typical OpenWrt device.
* set fw_mark settings for compatibility with other OpenWrt packages
2018-01-04 20:42:07 +01:00
Axel Neumann
679f780747 bmx: Use repos from https://github.com/bmx-routing and remove bmx7 json-c patch 2018-01-02 19:10:56 +01:00
Moritz Warning
69ef0bb2d0 nodogsplash2: set the default webroot explicitly 2017-12-28 13:16:26 +01:00
Sven Eckelmann
467f0b61e2 batman-adv: Fix missing function name for timer_setup
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-26 11:52:22 +01:00
Alexander Krupenkin
dabd5842b4 cjdns: update to version 0.20
Signed-off-by: Alexander Krupenkin <mail@akru.me>
2017-12-21 13:10:23 +01:00
Moritz Warning
96bcf8f331
Merge pull request #281 from stepet92/mcproxy-fix
mcproxy: remove pedantic flag to allow compilation with musl
2017-12-16 02:31:59 +01:00
Eloi
7cb7b83325 bird-openwrt: update to version 0.3
Enhancements and bug fixes including:
- Developed and Tested against Bird-1.6.3
- New LUCI scripts (Logs, Functions and Filters)
- Enhanced UX and less use of Terminal for daily management
- Improved UX by adding extra information for the administrator
- Refactor DOCN and include missing parts.
- Code cleaning and refactoring
- New DOCN-specific [Repository](https://github.com/eloicaso/bgp-bmx6-bird-docn)
2017-12-13 22:52:59 +01:00
Moritz Warning
e35a8f9dc9
Merge pull request #332 from ecsv/batadv-2017.4
batman-adv 2017.4
2017-12-13 21:42:52 +01:00
Steven Barth
381e082757
Merge pull request #330 from lynxis/rb_mrd6
mrd6: remove build timestamp
2017-12-13 19:46:44 +01:00
Bastian Bittorf
69f70f04d5
Merge pull request #305 from HRogge/master
OONF 0.14.1-1
2017-12-13 12:42:03 +01:00
Bastian Bittorf
f33ccc725c
Merge pull request #300 from OLSR/master
olsrd: pud: does not depend on ncurses
2017-12-13 12:41:10 +01:00
Jo-Philipp Wich
5457ae6524
Merge pull request #331 from lynxis/rb_smcroute
smcroute: make build id optional
2017-12-06 13:50:46 +01:00
Sven Eckelmann
3eb8bf4c2b alfred: upgrade package to latest release 2017.4
* synchronization of batman-adv netlink header
* coding style cleanups and refactoring
* documentation cleanup
* bugs squashed:

  - only query debugfs when netlink failed
  - handle allocation errors in hashtable iterator

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-05 19:20:24 +01:00
Sven Eckelmann
e211376b53 batctl: upgrade package to latest release 2017.4
* synchronization of batman-adv netlink header
* coding style cleanups and refactoring
* documentation cleanup
* bugs squashed:

  - improve error handling for libnl related errors
  - add checks for various allocation errors

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-05 19:18:48 +01:00
Sven Eckelmann
d046353539 batman-adv: upgrade package to latest release 2017.4
* support latest kernels (3.2 - 4.15)
* coding style cleanups and refactoring
* documentation cleanup
* bugs squashed:

  - avoid spurious warnings from bat_v neigh_cmp implementation
  - fix check of gateway availability in B.A.T.M.A.N. V
  - fix locking for bidirectional TQ check counters
  - remove leak of stack bits in fragmentation header priority

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-05 19:11:26 +01:00
Bastian Bittorf
5c6c04d99c
Merge pull request #326 from thuehn/bump-olsr
[olsr] Bump olsr version to 0.9.6.2
2017-12-05 10:39:01 +01:00
Alexander Couzens
b47bae1c12
smcroute: make build id optional
The build id contains the build timestamp by default.
Make this field optional.
Build timestamp prevents reproducible builds [0].
Thanks to the debian project for the patch.

[0] https://reproducible-builds.org/docs/timestamps/

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2017-12-02 02:51:33 +01:00
Alexander Couzens
73601c9895 mrd6: remove build timestamp
Build timestamp prevents reproducible builds [0].

[0] https://reproducible-builds.org/docs/timestamps/

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2017-12-02 01:42:44 +01:00
Alexander Couzens
1c6ef01fe2 mrd6: refresh patches
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2017-12-02 01:42:15 +01:00
Thomas Huehn
78049b46ac [olsr] Bump olsr version to 0.9.6.2
This patch bumps olsr version from 0.9.6.1 to 0.9.6.2
One major bugfix comes with the newer version, which is quite relevant
for our Freifunk mesh network: the feature LinkQualityMult was not
working in 0.9.6.1 and got fixed in the new version.

Tested on 92 productive mesh nodes running current LEDE trunk .

Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de>
2017-10-13 20:18:51 +02:00
Simon Wunderlich
0d1c5f77d4 Merge pull request #325 from ecsv/batadv-2017.3
batman-adv 2017.3
2017-10-02 17:03:01 +02:00
Sven Eckelmann
8d12cf5ae4 alfred: upgrade package to latest release 2017.3
* reduction of memory usage when using --update-command

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-09-28 18:42:28 +02:00
Sven Eckelmann
34db538e33 batctl: upgrade package to latest release 2017.3
* bugs squashed:
   - Fix error messages on traceroute send failures

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-09-28 18:42:27 +02:00
Sven Eckelmann
14daec66ef batman-adv: upgrade package to latest release 2017.3
* support latest kernels (3.2 - 4.14)
 * coding style cleanups and refactoring
 * bugs squashed:
   - fix TT sync flag inconsistencies
   - ignore invalid throughput values from wifi interfaces

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-09-28 18:42:27 +02:00
Simon Wunderlich
bf4a73fb61 Merge pull request #324 from ecsv/batadv/compat-wireless-4.14-rc1
batman-adv: Fix conflicts with compat-wireless backports-4.14-rc1
2017-09-18 14:41:20 +02:00
Sven Eckelmann
7d5648775a batman-adv: Fix conflicts with compat-wireless backports-4.14-rc1
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-09-18 14:21:49 +02:00
Simon Wunderlich
3cc8d49900 Merge pull request #318 from ecsv/batadv-2017.2-ftbfs
batman-adv: Prevent FTBFS when redefining ether_setup
2017-08-12 09:15:34 +02:00
Sven Eckelmann
187937b35a batman-adv: Prevent FTBFS when redefining ether_setup
batman-adv must make sure that ether_setup is already declared via
linux/netdevice.h before the preprocessor can patch the use of it in
batman-adv. Otherwise it is tried to also patch the declaration of
ether_setup.

Fixes: 8da2f5cbb1 ("batman-adv: upgrade package to latest release 2017.2")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-08-12 08:54:47 +02:00
Simon Wunderlich
e656a6e0e6 Merge pull request #316 from ecsv/batadv-2017.2
batman-adv 2017.2
2017-08-07 18:03:35 +02:00
Moritz Warning
9e5cb3bd25 nodogsplash2: fix install folder to match the orignal nodogsplash package (#317) 2017-08-06 21:47:15 +02:00
Sven Eckelmann
77a88d5d0b batman-adv: fix TT sync flag inconsistencies
This patch fixes an issue in the translation table code potentially
leading to a TT Request + Response storm. The issue may occur for nodes
involving BLA and an inconsistent configuration of the batman-adv AP
isolation feature. However, since the new multicast optimizations, a
single, malformed packet may lead to a mesh-wide, persistent
Denial-of-Service, too.

The issue occurs because nodes are currently OR-ing the TT sync flags of
all originators announcing a specific MAC address via the
translation table. When an intermediate node now receives a TT Request
and wants to answer this on behave of the destination node then this
intermediate node now responds with an altered flag field and broken
CRC. The next OGM of the real destination will lead to a CRC mismatch
and triggering a TT Request and Response again.

Furthermore, the OR-ing is currently never undone as long as at least
one originator announcing the according MAC address remains, leading to
the potential persistency of this issue.

This patch fixes this issue by storing the flags used in the CRC
calculation on a a per TT orig entry basis to be able to respond with
the correct, original flags in an intermediate TT Response for one
thing. And to be able to correctly unset sync flags once all nodes
announcing a sync flag vanish for another.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 10:18:28 +02:00
Sven Eckelmann
d97cd1b8c1 batman-adv: Remove outdated SVN $Id$ placeholder
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 09:28:47 +02:00
Sven Eckelmann
b5cd68b71b alfred: Remove incorrect comment about git revision
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 09:28:01 +02:00
Sven Eckelmann
a4264b3b54 batctl: upgrade package to latest release 2017.2
* coding style cleanups and refactoring
 * bugs squashed:
   - Fix error messages on traceroute send failures

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 09:26:41 +02:00
Sven Eckelmann
aa6a958810 alfred: upgrade package to latest release 2017.2
* reduce cpu load when rating multiple master servers
 * coding style cleanups and refactoring

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 09:26:40 +02:00
Sven Eckelmann
8da2f5cbb1 batman-adv: upgrade package to latest release 2017.2
* support latest kernels (3.2 - 4.13)
 * avoid bridge loop detection mac addresses in translation tables
 * coding style cleanups and refactoring
 * bugs squashed:
   - ignore invalid throughput values from wifi interfaces

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-07-29 09:26:40 +02:00
Moritz Warning
0b33235ddb Merge pull request #315 from mwarning/nds2
nodogsplash2: initial package
2017-07-19 19:03:20 +02:00
Moritz Warning
9a23cb4412 nodogsplash2: initial package
This package is a transitional package for nodogsplash, so that the old version is still available for those who miss features that have not yet been implemented.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2017-07-14 20:04:37 +02:00
Axel Neumann
c153ee8e59 bmx7: Update to fix raspberry compilation error 2017-07-10 19:49:53 +02:00
Markus Stenberg
c2a2489a53 Merge pull request #310 from jow-/miniupnpd-disable-igdv2
miniupnpd: disable IGDv2 by default
2017-07-03 12:47:14 +03:00
Jo-Philipp Wich
7ddbedb649 miniupnpd: disable IGDv2 by default
The upstream project also reverted IGDv2-by-default due to widespread
compatibility problems.

So far all Microsoft operating systems up to Windows 10, Xbox 360, Xbox One
Playstation 3 and Playstation 4 consoles seem to be incompatible to the
new 2.0 standard.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-07-03 11:36:55 +02:00
Henning Rogge
bb8271c304 Update OONF to 0.14.1-1 2017-06-13 10:56:49 +02:00
Henning Rogge
4c7624017c Update 0.14.1 release 2017-06-09 15:28:43 +02:00
Henning Rogge
565cd8d4f9 v0.14.1 2017-06-08 20:27:17 +02:00
Henning Rogge
560504b852 Control build type by CONFIG_DEBUG option 2017-06-08 19:06:40 +02:00
Henning Rogge
5a9cd902ab Fix http plugin option for olsrd2 2017-06-08 12:40:44 +02:00
Jo-Philipp Wich
754e652061 Merge pull request #298 from dedeckeh/pr_nat46_xlat
Rework 464xlat
2017-06-08 11:19:21 +02:00
Henning Rogge
cfb3e95251 Allow HTTP Plugin 2017-06-07 21:49:05 +02:00
Ferry Huberts
15e50466fb olsrd: pud: does not depend on ncurses
BTW According to Matthias there is no ncurses package either way!

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2017-06-07 10:17:21 +01:00
Henning Rogge
71d0a0b58a Add v0.14.0 OONF 2017-06-06 16:48:53 +02:00
Florian Fainelli
b09c768149 ohybridproxy: Properly search for libubox/utils.h
Fixes build error with external toolchains:

/local/users/fainelli/openwrt/trunk/build_dir/target-mipsel-linux-gnu_glibc/ohybridproxy-2016-06-28-8a28ae92c97099e771c9ede5641e3782ae809c27/src/util.h:32:27:
fatal error: libubox/utils.h: No such file or directory
 #include <libubox/utils.h>
                           ^
compilation terminated.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-06-05 17:57:40 -07:00
Florian Fainelli
6ad08f74da poprouting: Fix build with external toolchains
The Makefile would not consistently honour CFLAGS or LDFLAGS, and we
were not correctly setting them in the OpenWrt/LEDE Makefile either.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-06-05 17:40:10 -07:00
Florian Fainelli
c57701f439 poprouting: Fix package macro
Remove tabs, remove spaces, and remove MENU:=0 (the default)

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-06-05 17:23:05 -07:00
Hans Dedecker
eba05ae682 464xlat: add ip rule logic in the proto shell handler
Integrate ip rule support for the prelocal routing table lookup in the 464xlat
proto shell handler as netifd does not install anymore an ip rule for the prelocal
routing table.
The prelocal routing table ip rule needs to be installed before the local routing
table ip rule so the 464xlat traffic with as destination the IPv6 anycast address
is routed to the nat46 module otherwise the traffic will be dropped in the IPv6
local table.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-06-02 15:39:17 +02:00
Hans Dedecker
126c228513 464xlat: fix white space errors
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-06-02 15:36:25 +02:00
Hans Dedecker
04843f4234 464xlat: rework process id write logic
Write the process id in the pid file immediately after the 464xlat pid file has
been openend. Before the process id was written when the parent process exits
leaving a window where no valid process id was in place in the 464xlat pid file.
This lead to issues if the 464xlat utility was launched to terminate a running
464xlat utility as it could possibly terminate a random process.
If the parent process exits the pid file is updated with the process id of the
forked 464xlat utility.
Also rework the signal handling of SIGTERM so the running 464xlat utility is
correctly terminated.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-06-02 15:34:06 +02:00
Markus Stenberg
6e4c94a912 Merge pull request #297 from diizzyy/patch-3
miniupnpd: Update to 2.0.20170421
2017-05-31 15:03:48 +03:00
Daniel Engberg
1d5b485138 miniupnpd: Update to 2.0.20170421
Update miniupnpd to 2.0.20170421

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2017-05-31 12:33:40 +02:00
Simon Wunderlich
8d9d70510b Merge pull request #296 from ecsv/batadv-2017.1
batman-adv 2017.1
2017-05-29 09:29:00 +02:00
Sven Eckelmann
d036bcf643 batctl: upgrade package to latest release 2017.1
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-05-25 17:07:29 +02:00
Sven Eckelmann
ed2d6ae959 alfred: upgrade package to latest release 2017.1
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-05-25 17:05:41 +02:00
Sven Eckelmann
e7ccf38057 batman-adv: upgrade package to latest release 2017.1
* support latest kernels (3.2 - 4.12)
 * bridge loop avoidance improvements for various corner cases
 * reduction of maximum fragment size
 * coding style cleanups and refactoring
 * bugs squashed:
   - fix rx packet/bytes stats on local DAT ARP reply

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-05-25 17:02:31 +02:00
Jo-Philipp Wich
eb02edab59 Merge pull request #295 from dedeckeh/pr_nat46_map
nat46: improve 1:1 map share ratio support
2017-05-18 10:07:07 +02:00
Hans Dedecker
51d732e30c nat46: add PKG_MIRROR_HASH
Provide PKG_MIRROR_HASH for LEDE download mirror

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-05-17 22:20:07 +02:00
Moritz Warning
5ab3806949 Merge pull request #294 from mwarning/update-nodogsplash
nodogsplash: update to version 1.0.2
2017-05-16 22:20:49 +02:00
Hans Dedecker
b011e65d25 nat46: improve 1:1 map share ratio support
683fbd2 nat46-core: code clean-up
09df268 nat46-core: extend portless protocol support in 1:1 share ratio

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-05-16 09:58:26 +02:00
Moritz Warning
93468c3f5f nodogsplash: idletimeout => clientidletimeout (fixes #292)
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2017-05-16 00:25:23 +02:00
Moritz Warning
79ab503131 nodogsplash: update to version 1.0.2
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2017-05-16 00:01:57 +02:00
Pau Escrich
2a10adeee5 luci-app-bmx6: replace dependency of luci-mod-admin-full for luci-base
Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-04-26 14:24:44 +02:00
Pau Escrich
3aa019fc19 luci-app-bmx6: remove '$' as identifier for special json functions
Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-03-29 03:01:39 +02:00
Gui Iribarren
7b851e5f19 alfred: bat-hosts.lua: 'alfred -r' can fail with no output, so retry 3 times
Signed-off-by: Gui Iribarren <gui@altermundi.net>
2017-03-28 16:41:13 -03:00
Pau Escrich
e912da6625 luci-app-bmx: Redesign Makefile. Split JS libraries. Clean package
Add luci-lib-jquery-1-4 and luci-lib-dracula packages. Remove unused library Curry.

Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-03-26 03:15:06 +02:00
Gui Iribarren
a3972affe7 bmx6: migrate init.d script to procd syntax
Signed-off-by: Gui Iribarren <gui@altermundi.net>
2017-03-25 21:41:57 -03:00
Pau Escrich
eed409365f bmx6: bump to last version (include dbgMuteTimeout fix)
Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-03-23 23:29:38 +01:00
Nicolas Pace
1bc988c09c Polishes bmx6 graph. Adds colors by network and gives color to links based on link quality. 2017-03-23 23:29:38 +01:00
Pau Escrich
9646815e7d luci-app-bmx6: add new methods to bmx6-info and clean/sanityze the code
Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-03-23 23:29:38 +01:00
Simon Wunderlich
a881d5d4a6 Merge pull request #282 from ecsv/batadv-2017.0
batman-adv 2017.0
2017-03-05 17:49:46 +01:00
Saverio Proto
c1b0d8e36f MAINTAINERS: updated email addresses 2017-03-04 22:31:52 +01:00
Saverio Proto
8a75154cdc Merge pull request #283 from gabri94/master
Prince v0.3.1
2017-03-04 21:57:06 +01:00
Gabriel
a377a065f4 fixed +PKG_RELEASE 2017-03-04 21:52:29 +01:00
Sven Eckelmann
1c0419755d batman-adv: Add bugfixes for 2017.0.1
* batman-adv: average: change to declare precision, not factor
 * batman-adv: Keep fragments equally sized
 * batman-adv: Initialize gw sel_class via batadv_algo

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-03-04 17:49:18 +01:00
Gabriel
50560d22db Makefile for v0.3.1 2017-03-04 17:17:22 +01:00
gabri94
aa6c4711cd Symbolic Version number 2017-03-02 18:06:47 +01:00
gabri94
7da2bbccc0 compile v0.3 2017-03-02 12:55:11 +01:00
gabri94
1eccf0ec67 New makefile for prince v0.3 2017-03-01 09:23:48 +01:00
Sven Eckelmann
bc114d5acb alfred: upgrade package to latest release 2017.0
* support IPv4 multicast distribution
 * coding style cleanups

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-02-28 19:35:09 +01:00
Sven Eckelmann
62f4fa6ee4 batctl: upgrade package to latest release 2017.0
* remove root check for read-only sysfs and rtnl functionality
 * coding style cleanups
 * bugs squashed:
   - fix check for root privileges when started under modified effective
     uid

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-02-28 19:35:09 +01:00
Sven Eckelmann
f5b1fe1a60 batman-adv: upgrade package to latest release 2017.0
* support latest kernels (3.2 - 4.11)
 * remove bridge loop avoidance addresses from translation table
 * allow to build B.A.T.M.A.N. V without cfg80211 integration on Linux <
 * 3.16
 * coding style cleanups and refactoring
 * bugs squashed:
   - fix interface reference counter on fragmentation errors
   - avoid double free on fragment merge error
   - fix support for up to 16 fragments
   - fix build of multicast compatibility code on some architectures

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-02-28 19:35:09 +01:00
Simon Wunderlich
3f48ed92d0 Merge pull request #279 from ecsv/batadv-maint
batman-adv: add patches from 2016.5-maint 2017-02-21
2017-02-28 17:12:02 +01:00
Stefan Peter
91e76a2f56 mcproxy: remove pedantic flag to allow compilation with musl
Signed-off-by: Stefan Peter <s.peter@mpl.ch>
2017-02-27 10:05:34 +01:00
Sven Eckelmann
0a4df2c301 batman-adv: add patches from 2016.5-maint 2017-02-21
* batman-adv: Fix double free during fragment merge error
 * batman-adv: Fix transmission of final, 16th fragment

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-02-26 15:17:46 +01:00
Bastian Bittorf
2a5a5e1837 olsrd: find_most_recent_plugin_libary() fix sorting 2017-02-24 15:12:19 +01:00
Markus Stenberg
2430426c62 Merge pull request #275 from kdarbyshirebryant/upnp
miniupnpd: add IGDv2 support as build option
2017-02-22 10:00:59 +02:00
Markus Stenberg
209a58d40f Merge pull request #276 from kdarbyshirebryant/upnpenabled
miniupnpd: implement an 'enabled' flag
2017-02-22 09:59:36 +02:00
Pau Escrich
4ef6404bcb bmx6: update to d9b985
Signed-off-by: Pau Escrich <p4u@dabax.net>
2017-02-21 17:18:29 +01:00
Bastian Bittorf
f15b8246fa olsrd: find_most_recent_plugin_libary() fix input with 'exact' filenames 2017-02-14 08:58:22 +01:00
Bastian Bittorf
c91ced7279 olsrd: init-script: fix new plugin-lazymode
make sure that we do not select
'olsrd_dyn_gw_plain.so.0.4' if user wants
'olsrd_dyn_gw.so.0.5'
2017-02-13 16:25:56 +01:00
Bastian Bittorf
824f1a68e3 olsr: hotplug: fix a wrong grep (never successful) in olsrd_interface_already_in_config() 2017-02-12 20:41:04 +01:00
Bastian Bittorf
67939e59a2 olsr: fix minor complain from 'shellcheck' 2017-02-12 20:37:28 +01:00
Bastian Bittorf
22c05861e6 olsr: smartfw: fix a syntax error whwile checking for 'nowan'
introduced in 059b26c2 in 2011-nov-14 ("Manuel Munz freifunk@somakoma.de modified init
file of olsrd with improvements for 6and4 operation and also for setup of smartgw")
2017-02-12 20:23:25 +01:00
Bastian Bittorf
0e71dbfba6 olsr: init-script: minor style changes
1) echo -n -> printf
2) do not 'return 0' in functions where rc is 0 anyway
3) calc with $(( $var + $x )) -> $(( var + x ))
2017-02-12 20:19:16 +01:00
Bastian Bittorf
f4bc87dc65 olsr: allow lazy-plugin-naming: e.g. olsrd_txtinfo (not olsrd_txtinfo.so.1.2)
overload init-skript's olsrd_write_loadplugin() with new function
find_most_recent_plugin_libary() - so now we can mix 'exact' and lazy
names. This change is backward compatible and now we have a better
migration strategy. This topic was hot again, after the latest updates
of a lot of plugins, resulting in non-working configs...
2017-02-12 14:36:20 +01:00
Kevin Darbyshire-Bryant
33dc373da9 miniupnpd: implement an 'enabled' flag
Add a 'master' miniupnpd service enable flag rather than just relying on
rcS.d script existence.  This allows the service to be disabled across
sysupgrade, similar to minidlna.

The service assumes enabled if no 'enabled' config flag is configured
for backwards compatibility.

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
2017-02-12 08:46:24 +00:00
Kevin Darbyshire-Bryant
a7ce5a5d60 miniupnpd: add IGDv2 support as build option
Make IGDv2 support a build time option (default enabled)
Some devices (xbox one, windows home server) are not happy talking to an
IGDv2 enabled upnp server.

Remove 'portinuse' & 'igdv2' enabling patches backported from freebsd as
these can be configured via build time options in package makefile.

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
2017-02-12 08:45:24 +00:00
Bastian Bittorf
c71d752eda Merge pull request #273 from OLSR/master
olsrd: update to v0.9.6.1
2017-02-10 17:49:50 +01:00
Ferry Huberts
ede4989259 olsrd: update to v0.9.6.1
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2017-02-10 11:14:52 +01:00
Simon Wunderlich
3c466ebe40 Merge pull request #269 from ecsv/batadv-fixes
batman-adv: maint patch import + settings fixes
2017-02-03 19:06:32 +01:00
elektra42
713ea82014 Merge pull request #261 from ecsv/batmand-git
batman: Switch maintainers and get batmand/vis packages from git
2017-02-03 18:28:20 +01:00
Bastian Bittorf
dec45d4df5 Merge pull request #271 from OLSR/master
olsrd: update to v0.9.6 - contains important fixes
2017-02-02 15:59:18 +01:00
Ferry Huberts
54e47597d7 olsrd: update to v0.9.6
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2017-02-01 18:48:35 +01:00
Jo-Philipp Wich
8c9d4d76d4 Merge pull request #268 from dedeckeh/pr_nat46_upstep
nat46: support portless protocols in 1:1 share ratio
2017-01-31 08:45:58 +01:00
Sven Eckelmann
8a66ed1857 batman-adv: Remove non-existing setting "vis_mode"
There is no vis_mode in the batman-adv kernel module since batman-adv
2014.0.0. So don't expose such a setting in uci.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Sven Eckelmann
6c1a1a0666 batman-adv: Fix "aggregated_ogms" setting
The new setting for aggregated_ogms was read from the correct config key.
But the setting was applied to the wrong file. Also the value to set was
not read from the correct variable.

Reported-by: Edward Beech <initialed85@gmail.com>
Fixes: 2d654c0af1 ("batman-adv: upgrade package to latest release 2012.0.0")
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Sven Eckelmann
0e8b0976f5 batman-adv: add patches from 2016.4-maint 2017-01-04
* batman-adv: Decrease hardif refcnt on fragmentation send error

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Sven Eckelmann
438114cc26 batman-adv: Add sha256 PKG_HASH for LEDE
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Sven Eckelmann
7fce5dbf36 batctl: Add sha256 PKG_HASH for LEDE
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Sven Eckelmann
c1c1e134d6 alfred: Add sha256 PKG_HASH for LEDE
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-30 15:02:53 +01:00
Hans Dedecker
96fd90d9fa nat46: support portless protocols in 1:1 share ratio
5fed76d nat46-core: support portless protocols in 1:1 share ratio
df4c7da nat46-core: minor code improvements
4e45bd5 treewide: fix white space errors

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2017-01-30 10:52:38 +01:00
Simon Wunderlich
be5af18367 Merge pull request #267 from openwrt-routing/mareklindner/batman-adv/batman-v-enable-by-default
batman-adv: compile batman v by default
2017-01-30 09:45:44 +01:00
Marek Lindner
1f2e4d7d03 batman-adv: compile batman v by default
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
2017-01-29 19:46:17 +08:00
Simon Wunderlich
afd78d21a5 Merge pull request #266 from NeoRaider/batman-adv-build-dir
batman-adv: use kernel-specific PKG_BUILD_DIR
2017-01-27 14:59:26 +01:00
Matthias Schiffer
8018159e9c
batman-adv: use kernel-specific PKG_BUILD_DIR
The batman-adv Makefile set a PKG_BUILD_DIR outside of KERNEL_BUILD_DIR;
this could lead to batman-adv not being rebuilt when switching targets and
thus kernel configurations. This resulted in ABI mismatches and
occasionally broke the build with messages like the following:

    Package kmod-batman-adv is missing dependencies for the following libraries:
    crc16.ko

Instead of setting a better PKG_BUILD_DIR ourselves, we can just remove
the explicit PKG_BUILD_DIR definition and include kernel.mk before
package.mk to get the default definition used by other kernel module
packages.

Reported-by: David Lutz <kpanic@hirnduenger.de>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-27 13:39:10 +01:00
Bastian Bittorf
9c65b25b59 Merge pull request #263 from gabri94/master
Add Prince to openwrt-routing
2017-01-26 15:26:42 +01:00
Gabriel
8941865af0 Changed description 2017-01-26 01:21:17 +01:00
Gabriel
7120a94aaf added install 2017-01-25 23:33:28 +01:00
Gabriel
ef885818ec fixup! fixup! addedd poprouting makefile 2017-01-25 22:34:41 +01:00
Gabriel
2fa9b0cec9 fixup! addedd poprouting makefile 2017-01-25 21:50:27 +01:00
Gabriel
8d9d16c931 addedd poprouting makefile 2017-01-25 21:48:06 +01:00
Sven Eckelmann
7d66bea3d7 vis: Provide PKG_MIRROR_HASH for LEDE mirror download
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-25 09:53:29 +01:00
Sven Eckelmann
62152884eb batmand: Provide PKG_MIRROR_HASH for LEDE mirror download
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-25 09:51:44 +01:00
Gabriel Kerneis
6079210cd7 Merge pull request #258 from jow-/ndppd-compile-fix
ndppd: fix compilation with modern gcc
2017-01-23 21:49:51 +01:00
Sven Eckelmann
55890241f5 batmand: Use git repository to retrieve sources
The current package is build around the subversion repository which does
not exist anymore. The package can therefore be moved to the git repository
to have an official source for the revision used in OpenWrt.

The SVN version of batman r1439 was actually r1435. The git export of revision
r1435 is referenced by this commit. The version number was only increased
to 1440 to create a new source tarball. SVN revision r1440 is not a commit
for batman and therefore no code changes in batman was done in r1440.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:52 +01:00
Sven Eckelmann
44f9373e05 vis: Extract vis package from batmand
The batmand and vis sources are actually stored in two different
repositories. It therefore makes more sense to have these two packages also
split in two different OpenWrt packages. This also allows to get the vis
sources directly from the git repository.

The SVN version of vis r1439 was actually r1346. The git export of revision
r1346 is referenced by this commit.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:52 +01:00
Sven Eckelmann
81213497f1 batmand: Switch upstream URL to HTTPS
The open-mesh.org server is not serving plain HTTP pages since a while.
Updating the default URL to https is therefore prefered.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:51 +01:00
Sven Eckelmann
64cb90b04e batctl: Change maintainer to Simon Wunderlich
Marek Lindner forwarded all recent requests regarding the package changes
to Simon. He also asked that further changes should be handled directly
without waiting for him.

Simon Wunderlich already has write access to the repository and is
therefore well prepared to take over the role of the maintainer.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:30 +01:00
Sven Eckelmann
5e6eede6f3 batman-adv: Change maintainer to Simon Wunderlich
Marek Lindner forwarded all recent requests regarding the package changes
to Simon. He also asked that further changes should be handled directly
without waiting for him.

Simon Wunderlich already has write access to the repository and is
therefore well prepared to take over the role of the maintainer.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:30 +01:00
Sven Eckelmann
d35111fe5c batmand: Replace maintainer with Elektra
The mail address for Marek Lindner was not up to date. Marek was also not
maintaining this package and was forwarding requests to Elektra:

  "Elektra is the maintainer for batmand. I'd rather not interfere."

https://github.com/openwrt-routing/packages/pull/134#issuecomment-236346560

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-01-23 19:47:28 +01:00
Simon Wunderlich
0c7d59efa6 Merge pull request #259 from jow-/batmand-fix-package
batmand: switch to tarball download, fix build with musl libc
2017-01-18 10:46:04 +01:00
Jo-Philipp Wich
510aaaaffc batmand: switch to tarball download, fix build with musl libc
Since the upstream SVN repository is not available anymore, update the
Makefile to fetch tarballs cached by the LEDE or OpenWrt projects instead.

Also add a missing -D_GNU_SOURCE to the target flags to fix compilation
with musl libc.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-18 02:48:00 +01:00
Jo-Philipp Wich
5aa009c7e6 ndppd: fix compilation with modern gcc
Import upstream commit "f19fa4b Fix a cast so it can be compiled with gcc-6"
in order to fix building ndppd with recent gcc versions.

Fixes the following error spotted by the build bots:

    src/iface.cc: In static member function 'static ndppd::ptr<ndppd::iface> ndppd::iface::open_pfd(const string&)':
    src/iface.cc:153:5: error: narrowing conversion of '-1' from 'int' to '__u32 {aka unsigned int}' inside { } [-Wnarrowing]

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-18 01:59:20 +01:00
255 changed files with 7326 additions and 11822 deletions

16
.github/issue_template vendored Normal file
View file

@ -0,0 +1,16 @@
Please make sure that the issue subject starts with `<package-name>: `
Also make sure that the package is maintained in this repository and not in OpenWrt-base, OpenWrt-packages or OpenWrt-LuCI.
Issues related to releases below 18.06 and forks are not supported or maintained and will be closed.
# Issue template (remove lines from top till here)
Maintainer: @\<github-user> (find it by checking history of the package Makefile)
Environment: (put here arch, model, OpenWrt version)
Description:
```
Formating code blocks by wrapping them with pairs of ```
```

5
.github/pull_request_template vendored Normal file
View file

@ -0,0 +1,5 @@
Maintainer: me / @\<github-user> (find it by checking history of the package Makefile)
Compile tested: (put here arch, model, OpenWrt version)
Run tested: (put here arch, model, OpenWrt version, tests done)
Description:

6
.github/workflows/Dockerfile vendored Normal file
View file

@ -0,0 +1,6 @@
ARG ARCH=x86-64
FROM openwrt/rootfs:$ARCH
ADD entrypoint.sh /entrypoint.sh
CMD ["/entrypoint.sh"]

View file

@ -0,0 +1,91 @@
name: Check autorelease deprecation
on:
pull_request_target:
types: [opened, synchronize, converted_to_draft, ready_for_review, edited]
jobs:
build:
name: Check autorelease deprecation
runs-on: ubuntu-latest
strategy:
fail-fast: false
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Determine branch name
run: |
BRANCH="${GITHUB_BASE_REF#refs/heads/}"
echo "Building for $BRANCH"
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
- name: Determine changed packages
run: |
RET=0
# only detect packages with changes
PKG_ROOTS=$(find . -name Makefile | \
grep -v ".*/src/Makefile" | \
sed -e 's@./\(.*\)/Makefile@\1/@')
CHANGES=$(git diff --diff-filter=d --name-only origin/$BRANCH...)
for ROOT in $PKG_ROOTS; do
for CHANGE in $CHANGES; do
if [[ "$CHANGE" == "$ROOT"* ]]; then
if grep -q '$(AUTORELEASE)' "$ROOT/Makefile"; then
CONTAINS_AUTORELEASE+="$ROOT"
fi
break
fi
done
done
if [ -n "$CONTAINS_AUTORELEASE" ]; then
RET=1
cat > "$GITHUB_WORKSPACE/pr_comment.md" << EOF
Please do no longer set *PKG_RELEASE* to *AUTORELEASE* as the
feature is deprecated. Please use an integer instead. Below is a
list of affected packages including correct *PKG_RELEASE*:
EOF
fi
for ROOT in $CONTAINS_AUTORELEASE; do
echo -n " - ${ROOT}Makefile: PKG_RELEASE:=" >> "$GITHUB_WORKSPACE/pr_comment.md"
last_bump="$(git log --pretty=format:'%h %s' "$ROOT" |
grep --max-count=1 -e ': [uU]pdate to ' -e ': [bB]ump to ' |
cut -f 1 -d ' ')"
if [ -n "$last_bump" ]; then
echo -n $(($(git rev-list --count "$last_bump..HEAD" "$ROOT") + 2)) >> "$GITHUB_WORKSPACE/pr_comment.md"
else
echo -n $(($(git rev-list --count HEAD "$ROOT") + 2)) >> "$GITHUB_WORKSPACE/pr_comment.md"
fi
echo >> "$GITHUB_WORKSPACE/pr_comment.md"
done
exit $RET
- name: Find Comment
uses: peter-evans/find-comment@v2
if: ${{ failure() }}
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() }}
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body-file: 'pr_comment.md'
edit-mode: replace

26
.github/workflows/ci_helpers.sh vendored Normal file
View file

@ -0,0 +1,26 @@
#!/bin/sh
color_out() {
printf "\e[0;$1m$PKG_NAME: %s\e[0;0m\n" "$2"
}
success() {
color_out 32 "$1"
}
info() {
color_out 36 "$1"
}
err() {
color_out 31 "$1"
}
warn() {
color_out 33 "$1"
}
err_die() {
err "$1"
exit 1
}

62
.github/workflows/entrypoint.sh vendored Executable file
View file

@ -0,0 +1,62 @@
#!/bin/sh
# not enabling `errtrace` and `pipefail` since those are bash specific
set -o errexit # failing commands causes script to fail
set -o nounset # undefined variables causes script to fail
echo "src/gz packages_ci file:///ci" >> /etc/opkg/distfeeds.conf
FINGERPRINT="$(usign -F -p /ci/packages_ci.pub)"
cp /ci/packages_ci.pub "/etc/opkg/keys/$FINGERPRINT"
mkdir -p /var/lock/
opkg update
[ -n "${CI_HELPER:=''}" ] || CI_HELPER="/ci/.github/workflows/ci_helpers.sh"
for PKG in /ci/*.ipk; do
tar -xzOf "$PKG" ./control.tar.gz | tar xzf - ./control
# package name including variant
PKG_NAME=$(sed -ne 's#^Package: \(.*\)$#\1#p' ./control)
# package version without release
PKG_VERSION=$(sed -ne 's#^Version: \(.*\)-[0-9]*$#\1#p' ./control)
# package source contianing test.sh script
PKG_SOURCE=$(sed -ne 's#^Source: .*/\(.*\)$#\1#p' ./control)
echo "Testing package $PKG_NAME in version $PKG_VERSION from $PKG_SOURCE"
export PKG_NAME PKG_VERSION CI_HELPER
PRE_TEST_SCRIPT=$(find /ci/ -name "$PKG_SOURCE" -type d)/pre-test.sh
if [ -f "$PRE_TEST_SCRIPT" ]; then
echo "Use package specific pre-test.sh"
if sh "$PRE_TEST_SCRIPT" "$PKG_NAME" "$PKG_VERSION"; then
echo "Pre-test successful"
else
echo "Pre-test failed"
exit 1
fi
else
echo "No pre-test.sh script available"
fi
opkg install "$PKG"
TEST_SCRIPT=$(find /ci/ -name "$PKG_SOURCE" -type d)/test.sh
if [ -f "$TEST_SCRIPT" ]; then
echo "Use package specific test.sh"
if sh "$TEST_SCRIPT" "$PKG_NAME" "$PKG_VERSION"; then
echo "Test succesful"
else
echo "Test failed"
exit 1
fi
else
echo "No test.sh script available"
fi
opkg remove "$PKG_NAME" --force-removal-of-dependent-packages --force-remove --autoremove || true
done

63
.github/workflows/formal.yml vendored Normal file
View file

@ -0,0 +1,63 @@
name: Test Formalities
on:
pull_request:
jobs:
build:
name: Test Formalities
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Determine branch name
run: |
BRANCH="${GITHUB_BASE_REF#refs/heads/}"
echo "Building for $BRANCH"
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
- name: Test formalities
run: |
source .github/workflows/ci_helpers.sh
RET=0
for commit in $(git rev-list HEAD ^origin/$BRANCH); do
info "=== Checking commit '$commit'"
if git show --format='%P' -s $commit | grep -qF ' '; then
err "Pull request should not include merge commits"
RET=1
fi
author="$(git show -s --format=%aN $commit)"
if echo $author | grep -q '\S\+\s\+\S\+'; then
success "Author name ($author) seems ok"
else
err "Author name ($author) need to be your real name 'firstname lastname'"
RET=1
fi
subject="$(git show -s --format=%s $commit)"
if echo "$subject" | grep -q -e '^[0-9A-Za-z,+/_-]\+: ' -e '^Revert '; then
success "Commit subject line seems ok ($subject)"
else
err "Commit subject line MUST start with '<package name>: ' ($subject)"
RET=1
fi
body="$(git show -s --format=%b $commit)"
sob="$(git show -s --format='Signed-off-by: %aN <%aE>' $commit)"
if echo "$body" | grep -qF "$sob"; then
success "Signed-off-by match author"
else
err "Signed-off-by is missing or doesn't match author (should be '$sob')"
RET=1
fi
done
exit $RET

View file

@ -0,0 +1,157 @@
name: Test Build
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build:
name: Test ${{ matrix.arch }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- arch: aarch64_generic
target: armsr-armv8
runtime_test: true
- arch: arm_cortex-a15_neon-vfpv4
target: armsr-armv7
runtime_test: true
- arch: arm_cortex-a9_vfpv3-d16
target: mvebu-cortexa9
runtime_test: false
- arch: i386_pentium-mmx
target: x86-geode
runtime_test: true
- arch: mips_24kc
target: ath79-generic
runtime_test: true
- arch: powerpc_464fp
target: apm821xx-nand
runtime_test: false
- arch: powerpc_8548
target: mpc85xx-p1010
runtime_test: false
- arch: riscv64_riscv64
target: sifiveu-generic
runtime_test: false
- arch: x86_64
target: x86-64
runtime_test: true
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Determine branch name
run: |
BRANCH="${GITHUB_BASE_REF#refs/heads/}"
echo "Building for $BRANCH"
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
- name: Determine changed packages
run: |
# only detect packages with changes
PKG_ROOTS=$(find . -name Makefile | \
grep -v ".*/src/Makefile" | \
sed -e 's@./\(.*\)/Makefile@\1/@')
CHANGES=$(git diff --diff-filter=d --name-only origin/$BRANCH)
for ROOT in $PKG_ROOTS; do
for CHANGE in $CHANGES; do
if [[ "$CHANGE" == "$ROOT"* ]]; then
PACKAGES+=$(echo "$ROOT" | sed -e 's@\(.*\)/@\1 @')
break
fi
done
done
# fallback to test packages if nothing explicitly changes this is
# should run if other mechanics in packages.git changed
PACKAGES="${PACKAGES:-bird2 cjdns olsrd}"
echo "Building $PACKAGES"
echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
- name: Generate build keys
run: |
sudo apt-get update
sudo apt-get install -y signify-openbsd
signify-openbsd -G -n -c 'DO NOT USE - OpenWrt packages feed CI' -p packages_ci.pub -s packages_ci.sec
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "KEY_BUILD<<$EOF" >> $GITHUB_ENV
cat packages_ci.sec >> $GITHUB_ENV
echo "$EOF" >> $GITHUB_ENV
- name: Build
uses: openwrt/gh-action-sdk@v5
env:
ARCH: ${{ matrix.arch }}-${{ env.BRANCH }}
FEEDNAME: packages_ci
INDEX: 1
KEY_BUILD: ${{ env.KEY_BUILD }}
- name: Move created packages to project dir
run: cp bin/packages/${{ matrix.arch }}/packages_ci/* . || true
- name: Store packages
uses: actions/upload-artifact@v3
with:
name: ${{env.ARCHIVE_NAME}}-packages
path: |
Packages
Packages.*
*.ipk
PKG-INFO
- name: Store logs
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.arch}}-logs
path: logs/
- name: Remove logs
run: sudo rm -rf logs/ || true
- name: Check if any packages were built
run: |
if [ -n "$(find . -maxdepth 1 -type f -name '*.ipk' -print -quit)" ]; then
echo "Found *.ipk files"
HAVE_IPKS=true
else
echo "No *.ipk files found"
HAVE_IPKS=false
fi
echo "HAVE_IPKS=$HAVE_IPKS" >> $GITHUB_ENV
- name: Register QEMU
if: ${{ matrix.runtime_test && fromJSON(env.HAVE_IPKS) }}
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static binfmt-support
sudo update-binfmts --import
- name: Build Docker container
if: ${{ matrix.runtime_test && fromJSON(env.HAVE_IPKS) }}
run: |
docker build -t test-container --build-arg ARCH .github/workflows/
env:
ARCH: ${{ matrix.arch }}-${{ env.BRANCH }}
- name: Test via Docker container
if: ${{ matrix.runtime_test && fromJSON(env.HAVE_IPKS) }}
run: |
docker run --rm -v $GITHUB_WORKSPACE:/ci test-container

View file

@ -9,7 +9,7 @@
Axel "axn" Neumann <neumann@cgws.de> Axel "axn" Neumann <neumann@cgws.de>
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org> Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
Bastian Bittorf <bittorf@bluebottle.com> Bastian Bittorf <bb@npl.de>
Corinna "Elektra" Aichele <onelektra@gmx.net> Corinna "Elektra" Aichele <onelektra@gmx.net>
Gabriel Kerneis <gabriel@kerneis.info> Gabriel Kerneis <gabriel@kerneis.info>
Gui Iribarren <gui@altermundi.net> Gui Iribarren <gui@altermundi.net>
@ -21,5 +21,5 @@ Nicolás Echániz <nicoechaniz@altermundi.net>
Pau Escrich <pau@dabax.net> Pau Escrich <pau@dabax.net>
Saverio Proto <zioproto@gmail.com> Saverio Proto <zioproto@gmail.com>
Simon Wunderlich <sw@simonwunderlich.de> Simon Wunderlich <sw@simonwunderlich.de>
Steven Barth <cyrus@openwrt.org> Steven Barth <steven@midlink.org>
Vasilis "acinonyx" Tsiligiannis <acinonyx@openwrt.gr> Vasilis "acinonyx" Tsiligiannis <acinonyx@openwrt.gr>

18
README
View file

@ -1,18 +0,0 @@
This is an OpenWrt package feed containing community maintained routing packages.
To use these packages, add the following line to the feeds.conf
in the OpenWrt buildroot:
src-git routing git://github.com/openwrt-routing/packages.git
Update the feed:
./scripts/feeds update routing
Activate the package:
./scripts/feeds install -a -p routing
The routing packages should now appear in menuconfig.

21
README.md Normal file
View file

@ -0,0 +1,21 @@
# OpenWrt Routing Feed
## Description
This OpenWrt package feed contains community maintained routing packages.
## Usage
This repository is intended to be layered on-top of an OpenWrt buildroot.
If you do not have an OpenWrt buildroot installed, see the documentation at:
[OpenWrt Buildroot Installation][1] on the OpenWrt support site.
This feed is enabled by default. To install all its package definitions, run:
```
./scripts/feeds update routing
./scripts/feeds install -a -p routing
```
[1]: https://openwrt.org/docs/guide-developer/build-system/install-buildsystem

View file

@ -9,13 +9,15 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ahcpd PKG_NAME:=ahcpd
PKG_VERSION:=0.53 PKG_VERSION:=0.53
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.pps.univ-paris-diderot.fr/~jch/software/files/ PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
PKG_MD5SUM:=a1a610bf20965aa522cd766bf3d5829a PKG_HASH:=a4622e817d2b2a9b878653f085585bd57f3838cc546cca6028d3b73ffcac0d52
PKG_LICENSE:=MIT
PKG_MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENCE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -23,8 +25,7 @@ define Package/ahcpd
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=Ad-Hoc Configuration Protocol daemon TITLE:=Ad-Hoc Configuration Protocol daemon
URL:=http://www.pps.univ-paris-diderot.fr/~jch/software/ahcp/ URL:=https://www.irif.fr/~jch/software/ahcp/
MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>
DEPENDS:=@IPV6 +ip +librt DEPENDS:=@IPV6 +ip +librt
endef endef

View file

@ -1,52 +1,55 @@
# # SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
#
# The latest alfred git hash in PKG_REV can be obtained from https://git.open-mesh.org/alfred.git
#
PKG_NAME:=alfred PKG_NAME:=alfred
PKG_VERSION:=2016.5 PKG_VERSION:=2024.0
PKG_RELEASE:=0 PKG_RELEASE:=1
PKG_MD5SUM:=e03d422ed3b5a162b90e8af13389523f
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0 PKG_HASH:=d029a43638ab16771e5f71e134bc843d1713d74041c65bcda18a31d18f5531bd
PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
PKG_LICENSE:=GPL-2.0-only MIT
PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=gc-sections lto
PKG_CONFIG_DEPENDS += \
CONFIG_ALFRED_NEEDS_lua \
CONFIG_ALFRED_NEEDS_libgps \
CONFIG_PACKAGE_ALFRED_VIS \
CONFIG_PACKAGE_ALFRED_BATHOSTS \
CONFIG_PACKAGE_ALFRED_GPSD
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
init-y := alfred
define Package/alfred define Package/alfred
URL:=https://www.open-mesh.org/
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
URL:=https://www.open-mesh.org/
DEPENDS:= +libc @IPV6 +libnl-tiny +librt \ DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
+ALFRED_NEEDS_lua:lua \ +ALFRED_NEEDS_lua:lua \
+ALFRED_NEEDS_libgps:libgps +ALFRED_NEEDS_libgps:libgps
endef endef
define Package/alfred/description define Package/alfred/description
alfred is a user space daemon for distributing arbitrary local information over alfred is a user space daemon for distributing arbitrary local information
the mesh/network in a decentralized fashion. This data can be anything which over the mesh/network in a decentralized fashion. This data can be anything
appears to be useful - originally designed to replace the batman-adv which appears to be useful - originally designed to replace the batman-adv
visualization (vis), you may distribute hostnames, phone books, administration visualization (vis), you may distribute hostnames, phone books, administration
information, DNS information, the local weather forecast ... information, DNS information, the local weather forecast ...
alfred runs as daemon in the background of the system. A user may insert alfred runs as daemon in the background of the system. A user may insert
information by using the alfred binary on the command line, or use special information by using the alfred binary on the command line, or use special
programs to communicate with alfred (done via unix sockets). alfred then takes programs to communicate with alfred (done via unix sockets). alfred then takes
care of distributing the local information to other alfred servers on other care of distributing the local information to other alfred servers on other
nodes. This is done via IPv6 link-local multicast, and does not require any nodes. This is done via IPv6 link-local multicast, and does not require any
configuration. A user can request data from alfred, and will receive the configuration. A user can request data from alfred, and will receive the
information available from all alfred servers in the network. information available from all alfred servers in the network.
endef endef
define Package/alfred/conffiles define Package/alfred/conffiles
@ -57,21 +60,13 @@ define Package/alfred/config
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
endef endef
MAKE_ALFRED_FLAGS=\ MAKE_FLAGS += \
CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \ CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \ CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
CONFIG_ALFRED_CAPABILITIES=n \ CONFIG_ALFRED_CAPABILITIES=n \
LIBNL_NAME="libnl-tiny" \ LIBNL_NAME="libnl-tiny" \
LIBNL_GENL_NAME="libnl-tiny" LIBNL_GENL_NAME="libnl-tiny" \
REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin
define Build/Compile
CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
$(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) $(MAKE_ALFRED_FLAGS) all
endef
define Package/alfred/install define Package/alfred/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin

View file

@ -1,5 +1,5 @@
config 'alfred' 'alfred' config 'alfred' 'alfred'
option interface 'br-lan' list interface 'br-lan'
option mode 'master' option mode 'master'
option batmanif 'bat0' option batmanif 'bat0'
option start_vis '1' option start_vis '1'

View file

@ -1,81 +1,41 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
#
# Copyright (C) 2013 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
# #
START=99 START=99
STOP=99 USE_PROCD=1
alfred_args="" alfred_args=""
vis_args="" vis_args=""
facters_dir="/etc/alfred" facters_dir="/etc/alfred"
pid_file_alfred="/var/run/alfred.pid"
pid_file_vis="/var/run/batadv-vis.pid"
enable=0 enable=0
vis_enable=0 vis_enable=0
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
wait_for_dir() append_interface()
{ {
local ifce="$1" dir="$2" append "interfaces" "$1" ","
if ! [ -d "$dir" ] ; then
timeout=30
echo "${initscript}: waiting $timeout secs for $ifce interface..."
for i in $(seq $timeout); do
sleep 1
[ -d "$dir" ] && break
if [ $i == $timeout ] ; then
echo "${initscript}: $ifce not detected, alfred not starting."
exit 1
fi
done
fi
} }
wait_for_ll_address() alfred_start() {
{
local iface="$1"
local timeout=30
echo "${initscript}: waiting $timeout secs for $iface address..."
for i in $(seq $timeout); do
# We look for
# - the link-local address (starts with fe80)
# - without tentative flag (bit 0x40 in the flags field; the first char of the flags field begins 38 columns after the fe80 prefix
# - on interface $iface
if awk '
BEGIN { RET=1 }
/^fe80.{37} [012389ab]/ { if ($6 == "'"$iface"'") RET=0 }
END { exit RET }
' /proc/net/if_inet6; then
return
fi
sleep 1
done
echo "${initscript}: $iface address not detected, alfred not starting."
exit 1
}
alfred_start()
{
local args="" local args=""
local section="$1" local section="$1"
local disabled interface mode local disabled interface mode
local interfaces
# check if section is disabled # check if section is disabled
config_get_bool disabled "$section" disabled 0 config_get_bool disabled "$section" disabled 0
[ $disabled = 0 ] || return 1 [ $disabled = 0 ] || return 1
args="" args="-f"
config_get interface "$section" interface config_list_foreach "$section" "interface" append_interface
append args "-i $interface" if [ -z "$interfaces" ]; then
config_get interface "$section" interface
append_interface "$interface"
fi
append args "-i $interfaces"
config_get mode "$section" mode config_get mode "$section" mode
[ "$mode" = "master" ] && append args "-m" [ "$mode" = "master" ] && append args "-m"
@ -83,12 +43,6 @@ alfred_start()
config_get batmanif "$section" batmanif config_get batmanif "$section" batmanif
append args "-b $batmanif" append args "-b $batmanif"
if [ "$batmanif" != "none" ]; then
wait_for_dir "$batmanif" "/sys/class/net/$batmanif/mesh"
fi
wait_for_ll_address "$interface"
append alfred_args "$args" append alfred_args "$args"
enable=1 enable=1
@ -103,41 +57,41 @@ alfred_start()
return 0 return 0
} }
start() start_service() {
{
config_load "alfred" config_load "alfred"
config_foreach alfred_start alfred config_foreach alfred_start alfred
if [ "$enable" = "0" ]; then [ "$enable" = "0" ] && return 0
exit 0
fi
echo "${initscript}: starting alfred" procd_open_instance "alfred"
SERVICE_PID_FILE="$pid_file_alfred" procd_set_param command /usr/sbin/alfred
service_start /usr/sbin/alfred ${alfred_args} procd_append_param command ${alfred_args}
procd_close_instance
if [ "$vis_enable" = "1" ]; then [ "$vis_enable" = "1" ] && {
echo "${initscript}: starting batadv-vis" procd_open_instance "batadv-vis"
SERVICE_PID_FILE="$pid_file_vis" procd_set_param command /usr/sbin/batadv-vis
service_start /usr/sbin/batadv-vis ${vis_args} procd_append_param command ${vis_args}
fi procd_close_instance
}
if [ "$run_facters" = "1" ]; then [ "$run_facters" = "1" ] && {
( for file in $facters_dir/* ; do [ -x $file ] && $file ; done ) ( for file in $facters_dir/* ; do [ -x $file ] && $file ; done )
if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then
echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root
/etc/init.d/cron enable /etc/init.d/cron enable
/etc/init.d/cron restart /etc/init.d/cron restart
fi fi
fi }
} }
stop() service_triggers() {
{ procd_add_reload_trigger "alfred"
SERVICE_PID_FILE="$pid_file_alfred" }
service_stop /usr/sbin/alfred
SERVICE_PID_FILE="$pid_file_vis" stop_service() {
[ -x /usr/sbin/batadv-vis ] && service_stop /usr/sbin/batadv-vis [ -e /etc/crontabs/root ] && {
sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root
/etc/init.d/cron restart /etc/init.d/cron restart
}
} }

View file

@ -87,19 +87,24 @@ end
local function receive_bat_hosts() local function receive_bat_hosts()
-- read raw chunks from alfred, convert them to a nested table and call write_bat_hosts -- read raw chunks from alfred, convert them to a nested table and call write_bat_hosts
local fd = io.popen("alfred -r " .. type_id) -- "alfred -r" can fail in slave nodes (returns empty stdout), so:
--[[ this command returns something like -- check output is not null before writing /tmp/bat-hosts, and retry 3 times before giving up.
{ "54:e6:fc:b9:cb:37", "00:11:22:33:44:55 ham_wlan0\x0a00:22:33:22:33:22 ham_eth0\x0a" }, for n = 1, 3 do
{ "90:f6:52:bb:ec:57", "00:22:33:22:33:23 spam\x0a" }, local fd = io.popen("alfred -r " .. type_id)
]]-- --[[ this command returns something like
{ "54:e6:fc:b9:cb:37", "00:11:22:33:44:55 ham_wlan0\x0a00:22:33:22:33:22 ham_eth0\x0a" },
{ "90:f6:52:bb:ec:57", "00:22:33:22:33:23 spam\x0a" },
]]--
if fd then if fd then
local output = fd:read("*a") local output = fd:read("*a")
if output then fd:close()
assert(loadstring("rows = {" .. output .. "}"))() if output and output ~= "" then
write_bat_hosts(rows) assert(loadstring("rows = {" .. output .. "}"))()
write_bat_hosts(rows)
break
end
end end
fd:close()
end end
end end

View file

@ -10,7 +10,7 @@ PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.pps.univ-paris-diderot.fr/~jch/software/files/ PKG_SOURCE_URL:=http://www.pps.univ-paris-diderot.fr/~jch/software/files/
PKG_MD5SUM:=40d4931986913f5f8d9b5b70abf6fda5 PKG_HASH:=c411430bb102f08d3d68d2fb5010b5da0149908b671ac0fb12abd8c8ee6380c5
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View file

@ -1,20 +1,23 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# #
# Copyright (C) 2007-2009 OpenWrt.org # Copyright (C) 2007-2021 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=babeld PKG_NAME:=babeld
PKG_VERSION:=1.8.0 PKG_VERSION:=1.13.1
PKG_RELEASE:=3 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/ PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
PKG_MD5SUM:=eb1c66c382e9181c418ebd84e52b5af2 PKG_HASH:=15f24d26da0ccfc073abcdef0309f281e4684f2aa71126f826572c4c845e8dd9
PKG_MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>, \
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>, \
Nick Hainke <vincent@systemli.org>
PKG_LICENSE:=MIT PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENCE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -22,21 +25,17 @@ define Package/babeld
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
TITLE:=A loop-free distance-vector routing protocol TITLE:=A loop-avoiding distance-vector routing protocol
URL:=https://www.irif.fr/~jch/software/babel/ URL:=https://www.irif.fr/~jch/software/babel/
MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>, \ DEPENDS:=@IPV6 +libubus +libubox
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
DEPENDS:=@IPV6
endef endef
define Package/babeld/description define Package/babeld/description
Babel is a loop-avoiding distance-vector routing protocol roughly based Babel is a loop-avoiding distance-vector routing protocol for IPv6 and IPv4
on DSDV and AODV, but with provisions for link cost estimation and with fast convergence properties. It is based on the ideas in DSDV, AODV and
redistribution of routes from other routing protocols. Cisco's EIGRP, but is designed to work well not only in wired networks but
While it is optimised for wireless mesh networks, Babel will also work also in wireless mesh networks, and has been extended with support for
efficiently on wired networks. It will generate between 1.2 and 2.4 times overlay networks. Babel is an IETF standard protocol (RFC 8966).
the amount of routing traffic that RIPng would generate, while
never counting to infinity.
endef endef
define Package/babeld/conffiles define Package/babeld/conffiles
@ -47,6 +46,7 @@ endef
MAKE_FLAGS+= \ MAKE_FLAGS+= \
CFLAGS="$(TARGET_CFLAGS)" \ CFLAGS="$(TARGET_CFLAGS)" \
LDLIBS="" \ LDLIBS="" \
LDLIBS+="-lubus -lubox"
define Package/babeld/install define Package/babeld/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin

View file

@ -1,5 +1,7 @@
package babeld package babeld
# Detailed documentation: https://openwrt.org/docs/guide-user/services/babeld
# Babeld reads options from the following files (the last one takes precedence # Babeld reads options from the following files (the last one takes precedence
# if an option is defined in several places): # if an option is defined in several places):
# - the file defined by the option conf_file (default: /etc/babeld.conf), # - the file defined by the option conf_file (default: /etc/babeld.conf),
@ -22,6 +24,7 @@ config general
## See comment at the top of this file for more details. ## See comment at the top of this file for more details.
# option 'conf_file' '/etc/babeld.conf' # option 'conf_file' '/etc/babeld.conf'
# option 'conf_dir' '/tmp/babel.d/' # option 'conf_dir' '/tmp/babel.d/'
# option 'ubus_bindings' 'false'
config interface config interface
## Remove this line to enable babeld on this interface ## Remove this line to enable babeld on this interface
@ -39,7 +42,10 @@ config interface
option 'ignore' 'true' option 'ignore' 'true'
## Physical interface name ## Physical interface name
option 'ifname' 'tun-example' option 'ifname' 'tun-example'
# option 'max_rtt_penalty' '90' ## Specify the type of interface: tunnels use the RTT-based metric.
option 'type' 'tunnel'
## Other options that can be overriden.
# option 'max_rtt_penalty' '96'
# A config interface without "option ifname" will set default options # A config interface without "option ifname" will set default options
# for all interfaces. Interface-specific configuration always overrides # for all interfaces. Interface-specific configuration always overrides
@ -49,27 +55,49 @@ config interface
# option 'update_interval' '30' # option 'update_interval' '30'
# A filter consists of a type ('in', 'out' or 'redistribute'), an action # A filter consists of a type ('in', 'out', 'redistribute' or 'install'),
# ('allow', 'deny' or 'metric xxx') and a set of selectors ('ip', 'eq', # a set of selectors ('ip', 'eq', etc.) and a set of actions to perform
# etc.). See babeld man page ("Filtering rules") for more details. # ('allow', 'deny', 'metric xxx', 'src-prefix xxx', 'table xxx', 'pref-src xxx').
# Here is a sample filter wich redistributes the default route if its # See babeld man page ("Filtering rules") for more details.
# protocol number is "boot", e.g. when it installed by dhcp. It is
# disabled by default. # Below is a sample filter that redistributes the default route if its
# protocol number is "boot", e.g. when it is installed by dhcp (see
# /etc/iproute2/rt_protos). This filter is disabled thanks to the 'ignore'
# setting.
config filter config filter
option 'ignore' 'true' option 'ignore' 'true'
# Type # Type of filter
option 'type' 'redistribute' option 'type' 'redistribute'
# Selectors: ip, eq, le, ge, src_ip, src_eq, src_le, src_ge, neigh, id, # Selectors: ip, eq, le, ge, src_ip, src_eq, src_le, src_ge, neigh, id,
# proto, local, if. # proto, local, if.
option 'ip' '0.0.0.0/0' option 'ip' '0.0.0.0/0'
option 'eq' '0' option 'eq' '0'
option 'proto' '3' option 'proto' '3'
# Action (one of: allow, deny, metric XXX, src-prefix XXX). # Action, which can be any of: allow, deny, metric <NUMBER>, src-prefix <PREFIX>,
# table <ID>, pref-src <IP>.
# The action defaults to "allow" if not specified. Here, we specify a higher
# redistribution metric than the default (0).
option 'action' 'metric 128' option 'action' 'metric 128'
# Notice that the 'local' selector is a boolean. # Another example filter: don't redistribute local addresses in a certain IP prefix.
# By default, babeld redistributes *all* local addresses.
config filter config filter
option 'ignore' 'true' option 'ignore' 'true'
option 'type' 'redistribute' option 'type' 'redistribute'
# Only apply to routes/addresses within this prefix.
option 'ip' '198.51.100.0/24'
# Notice that the 'local' selector is a boolean.
option 'local' 'true' option 'local' 'true'
# No action means "allow" # Don't redistribute.
option 'action' 'deny'
# Example install filter, to change or filter routes before they are inserted
# into the kernel.
config filter
option 'ignore' 'true'
option 'type' 'install'
# Optional: only apply to routes within 2001:db8:cafe::/48
option 'ip' '2001:db8:cafe::/48'
# We specify the kernel routing table and the preferred source address to use for these routes.
# "Allow" is implicit.
option 'action' 'table 200 pref-src 2001:db8:ba:be1::42'

View file

@ -0,0 +1,132 @@
--- a/babeld.c
+++ b/babeld.c
@@ -54,6 +54,8 @@ THE SOFTWARE.
#include "local.h"
#include "version.h"
+#include "ubus.h"
+
struct timeval now;
unsigned char myid[8];
@@ -505,6 +507,9 @@ main(int argc, char **argv)
}
}
+ if(ubus_bindings)
+ babeld_add_ubus();
+
init_signals();
rc = resize_receive_buffer(1500);
if(rc < 0)
@@ -597,6 +602,8 @@ main(int argc, char **argv)
FD_SET(local_sockets[i].fd, &readfds);
maxfd = MAX(maxfd, local_sockets[i].fd);
}
+ if(ubus_bindings)
+ maxfd = babeld_ubus_add_read_sock(&readfds, maxfd);
rc = select(maxfd + 1, &readfds, NULL, NULL, &tv);
if(rc < 0) {
if(errno != EINTR) {
@@ -665,6 +672,9 @@ main(int argc, char **argv)
i++;
}
+ if(ubus_bindings)
+ babeld_ubus_receive(&readfds);
+
if(reopening) {
kernel_dump_time = now.tv_sec;
check_neighbours_timeout = now;
--- a/generate-version.sh
+++ b/generate-version.sh
@@ -10,4 +10,4 @@ else
version="unknown"
fi
-echo "#define BABELD_VERSION \"$version\""
+echo "#define BABELD_VERSION \"$version-ubus-mod\""
--- a/configuration.c
+++ b/configuration.c
@@ -42,6 +42,8 @@ THE SOFTWARE.
#include "hmac.h"
#include "configuration.h"
+#include "ubus.h"
+
static struct filter *input_filters = NULL;
static struct filter *output_filters = NULL;
static struct filter *redistribute_filters = NULL;
@@ -1024,7 +1026,8 @@ parse_option(int c, gnc_t gnc, void *clo
strcmp(token, "daemonise") == 0 ||
strcmp(token, "skip-kernel-setup") == 0 ||
strcmp(token, "ipv6-subtrees") == 0 ||
- strcmp(token, "reflect-kernel-metric") == 0) {
+ strcmp(token, "reflect-kernel-metric") == 0 ||
+ strcmp(token, "ubus-bindings") == 0) {
int b;
c = getbool(c, &b, gnc, closure);
if(c < -1)
@@ -1042,6 +1045,8 @@ parse_option(int c, gnc_t gnc, void *clo
has_ipv6_subtrees = b;
else if(strcmp(token, "reflect-kernel-metric") == 0)
reflect_kernel_metric = b;
+ else if(strcmp(token, "ubus-bindings") == 0)
+ ubus_bindings = b;
else
abort();
} else if(strcmp(token, "protocol-group") == 0) {
--- a/local.c
+++ b/local.c
@@ -42,6 +42,8 @@ THE SOFTWARE.
#include "local.h"
#include "version.h"
+#include "ubus.h"
+
int local_server_socket = -1;
struct local_socket local_sockets[MAX_LOCAL_SOCKETS];
int num_local_sockets = 0;
@@ -191,6 +193,8 @@ local_notify_neighbour(struct neighbour
if(local_sockets[i].monitor)
local_notify_neighbour_1(&local_sockets[i], neigh, kind);
}
+ if(ubus_bindings)
+ ubus_notify_neighbour(neigh, kind);
}
static void
@@ -228,6 +232,8 @@ local_notify_xroute(struct xroute *xrout
if(local_sockets[i].monitor)
local_notify_xroute_1(&local_sockets[i], xroute, kind);
}
+ if(ubus_bindings)
+ ubus_notify_xroute(xroute, kind);
}
static void
@@ -273,6 +279,8 @@ local_notify_route(struct babel_route *r
if(local_sockets[i].monitor)
local_notify_route_1(&local_sockets[i], route, kind);
}
+ if(ubus_bindings)
+ ubus_notify_route(route, kind);
}
static void
--- a/Makefile
+++ b/Makefile
@@ -11,11 +11,11 @@ LDLIBS = -lrt
SRCS = babeld.c net.c kernel.c util.c interface.c source.c neighbour.c \
route.c xroute.c message.c resend.c configuration.c local.c \
- hmac.c rfc6234/sha224-256.c BLAKE2/ref/blake2s-ref.c
+ hmac.c ubus.c rfc6234/sha224-256.c BLAKE2/ref/blake2s-ref.c
OBJS = babeld.o net.o kernel.o util.o interface.o source.o neighbour.o \
route.o xroute.o message.o resend.o configuration.o local.o \
- hmac.o rfc6234/sha224-256.o BLAKE2/ref/blake2s-ref.o
+ hmac.o ubus.o rfc6234/sha224-256.o BLAKE2/ref/blake2s-ref.o
babeld: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o babeld $(OBJS) $(LDLIBS)

535
babeld/src/ubus.c Normal file
View file

@ -0,0 +1,535 @@
#include <stdint.h>
#include <stdlib.h>
#include <sys/select.h>
#include <libubox/blob.h>
#include <libubox/blobmsg.h>
#include <libubox/list.h>
#include <libubus.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include "babeld.h"
#include "configuration.h"
#include "interface.h"
#include "kernel.h"
#include "local.h"
#include "message.h"
#include "neighbour.h"
#include "net.h"
#include "resend.h"
#include "route.h"
#include "source.h"
#include "util.h"
#include "version.h"
#include "xroute.h"
#include "ubus.h"
// Definition of header variable whether to enable ubus bindings.
int ubus_bindings = 0;
// Shared state maintained throughout calls to handle ubus messages.
static struct ubus_context *shared_ctx;
// List of exported routes (to be used with ubox's list helpers).
struct xroute_list_entry {
struct list_head list;
struct xroute *xroute;
};
// List of received routes (to be used with ubox's list helpers).
struct route_list_entry {
struct list_head list;
struct babel_route *route;
};
// List of neighbours (to be used with ubox's list helpers).
struct neighbour_list_entry {
struct list_head list;
struct neighbour *neighbour;
};
// Definition of interface function enums (to be used with ubox's blobmsg
// helpers).
enum { INTERFACE_IFNAME, __INTERFACE_MAX };
// Definition of interface parsing (to be used with ubox's blobmsg helpers).
static const struct blobmsg_policy interface_policy[__INTERFACE_MAX] = {
[INTERFACE_IFNAME] = {"ifname", BLOBMSG_TYPE_STRING},
};
// Definition of filter function enums (to be used with ubox's blobmsg
// helpers).
enum { FILTER_IFNAME, FILTER_TYPE, FILTER_METRIC, __FILTER_MAX };
// Definition of filter parsing (to be used with ubox's blobmsg helpers).
static const struct blobmsg_policy filter_policy[__FILTER_MAX] = {
[FILTER_IFNAME] = {"ifname", BLOBMSG_TYPE_STRING},
[FILTER_TYPE] = {"type", BLOBMSG_TYPE_INT32},
[FILTER_METRIC] = {"metric", BLOBMSG_TYPE_INT32},
};
// Adds a filter (ubus equivalent to "filter"-function).
static int babeld_ubus_add_filter(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method, struct blob_attr *msg) {
struct blob_attr *tb[__FILTER_MAX];
struct blob_buf b = {0};
struct filter *filter = NULL;
char *ifname;
int metric, type;
blobmsg_parse(filter_policy, __FILTER_MAX, tb, blob_data(msg), blob_len(msg));
if (!tb[FILTER_IFNAME])
return UBUS_STATUS_INVALID_ARGUMENT;
if (!tb[FILTER_TYPE])
return UBUS_STATUS_INVALID_ARGUMENT;
type = blobmsg_get_u32(tb[FILTER_TYPE]);
if (tb[FILTER_METRIC])
metric = blobmsg_get_u32(tb[FILTER_METRIC]);
filter = calloc(1, sizeof(struct filter));
if (filter == NULL)
return UBUS_STATUS_UNKNOWN_ERROR;
filter->af = AF_INET6;
filter->proto = 0;
filter->plen_le = 128;
filter->src_plen_le = 128;
filter->action.add_metric = metric;
ifname = blobmsg_get_string(tb[FILTER_IFNAME]);
filter->ifname = strdup(ifname);
filter->ifindex = if_nametoindex(filter->ifname);
add_filter(filter, type);
return UBUS_STATUS_OK;
}
// Adds an inteface (ubus equivalent to "interface"-function).
static int babeld_ubus_add_interface(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method,
struct blob_attr *msg) {
struct blob_attr *tb[__INTERFACE_MAX];
struct blob_buf b = {0};
struct interface *ifp = NULL;
char *ifname;
blobmsg_parse(interface_policy, __INTERFACE_MAX, tb, blob_data(msg),
blob_len(msg));
if (!tb[INTERFACE_IFNAME])
return UBUS_STATUS_INVALID_ARGUMENT;
ifname = blobmsg_get_string(tb[INTERFACE_IFNAME]);
ifp = add_interface(ifname, NULL);
if (ifp == NULL)
return UBUS_STATUS_UNKNOWN_ERROR;
return UBUS_STATUS_OK;
}
// Sends a babel info message on ubus socket.
static int babeld_ubus_babeld_info(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method, struct blob_attr *msg) {
struct blob_buf b = {0};
void *prefix;
char host[64];
int ret;
blob_buf_init(&b, 0);
blobmsg_add_string(&b, "babeld-version", BABELD_VERSION);
blobmsg_add_string(&b, "my-id", format_eui64(myid));
if (!gethostname(host, sizeof(host)))
blobmsg_add_string(&b, "host", host);
ret = ubus_send_reply(ctx_local, req, b.head);
if (ret)
fprintf(stderr, "Failed to send reply: %s\n", ubus_strerror(ret));
blob_buf_free(&b);
return ret;
}
// Appends an exported route message entry to the buffer.
static void babeld_add_xroute_buf(struct xroute *xroute, struct blob_buf *b) {
void *prefix;
prefix = blobmsg_open_table(b, format_prefix(xroute->prefix, xroute->plen));
blobmsg_add_string(b, "src-prefix",
format_prefix(xroute->src_prefix, xroute->src_plen));
blobmsg_add_u32(b, "metric", xroute->metric);
blobmsg_close_table(b, prefix);
}
// Sends an exported routes message on ubus socket, splitting apart IPv4 and
// IPv6 routes.
static int babeld_ubus_get_xroutes(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method, struct blob_attr *msg) {
struct blob_buf b = {0};
struct xroute_stream *xroutes;
struct xroute_list_entry *cur, *tmp;
void *ipv4, *ipv6;
int ret;
LIST_HEAD(xroute_ipv4_list);
LIST_HEAD(xroute_ipv6_list);
blob_buf_init(&b, 0);
xroutes = xroute_stream();
if (xroutes) {
while (1) {
struct xroute *xroute = xroute_stream_next(xroutes);
if (xroute == NULL)
break;
struct xroute_list_entry *xr =
calloc(1, sizeof(struct xroute_list_entry));
xr->xroute = xroute;
if (v4mapped(xroute->prefix)) {
list_add(&xr->list, &xroute_ipv4_list);
} else {
list_add(&xr->list, &xroute_ipv6_list);
}
}
xroute_stream_done(xroutes);
}
ipv4 = blobmsg_open_table(&b, "IPv4");
list_for_each_entry_safe(cur, tmp, &xroute_ipv4_list, list) {
babeld_add_xroute_buf(cur->xroute, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv4);
ipv6 = blobmsg_open_table(&b, "IPv6");
list_for_each_entry_safe(cur, tmp, &xroute_ipv6_list, list) {
babeld_add_xroute_buf(cur->xroute, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv6);
ret = ubus_send_reply(ctx_local, req, b.head);
if (ret)
fprintf(stderr, "Failed to send reply: %s\n", ubus_strerror(ret));
blob_buf_free(&b);
return ret;
}
// Appends an route message entry to the buffer.
static void babeld_add_route_buf(struct babel_route *route,
struct blob_buf *b) {
void *prefix;
prefix = blobmsg_open_table(
b, format_prefix(route->src->prefix, route->src->plen));
blobmsg_add_string(
b, "src-prefix",
format_prefix(route->src->src_prefix, route->src->src_plen));
blobmsg_add_u32(b, "route_metric", route_metric(route));
blobmsg_add_u32(b, "route_smoothed_metric", route_smoothed_metric(route));
blobmsg_add_u32(b, "refmetric", route->refmetric);
blobmsg_add_string(b, "id", format_eui64(route->src->id));
blobmsg_add_u32(b, "seqno", (uint32_t)route->seqno);
blobmsg_add_u32(b, "age", (int)(now.tv_sec - route->time));
blobmsg_add_string(b, "via", format_address(route->neigh->address));
if (memcmp(route->nexthop, route->neigh->address, 16) != 0)
blobmsg_add_string(b, "nexthop", format_address(route->nexthop));
blobmsg_add_u8(b, "installed", route->installed);
blobmsg_add_u8(b, "feasible", route_feasible(route));
blobmsg_close_table(b, prefix);
}
// Sends received routes message on ubus socket, splitting apart IPv4 and IPv6
// routes.
static int babeld_ubus_get_routes(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method, struct blob_attr *msg) {
struct blob_buf b = {0};
struct route_stream *routes;
struct route_list_entry *cur, *tmp;
void *prefix, *ipv4, *ipv6;
int ret;
LIST_HEAD(route_ipv4_list);
LIST_HEAD(route_ipv6_list);
blob_buf_init(&b, 0);
routes = route_stream(0);
if (routes) {
while (1) {
struct babel_route *route = route_stream_next(routes);
if (route == NULL)
break;
struct route_list_entry *r = calloc(1, sizeof(struct route_list_entry));
r->route = route;
if (v4mapped(route->src->prefix)) {
list_add(&r->list, &route_ipv4_list);
} else {
list_add(&r->list, &route_ipv6_list);
}
}
route_stream_done(routes);
}
ipv4 = blobmsg_open_table(&b, "IPv4");
list_for_each_entry_safe(cur, tmp, &route_ipv4_list, list) {
babeld_add_route_buf(cur->route, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv4);
ipv6 = blobmsg_open_table(&b, "IPv6");
list_for_each_entry_safe(cur, tmp, &route_ipv6_list, list) {
babeld_add_route_buf(cur->route, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv6);
ret = ubus_send_reply(ctx_local, req, b.head);
if (ret)
fprintf(stderr, "Failed to send reply: %s\n", ubus_strerror(ret));
blob_buf_free(&b);
return ret;
}
// Appends an neighbour entry to the buffer.
static void babeld_add_neighbour_buf(struct neighbour *neigh,
struct blob_buf *b) {
void *neighbour;
neighbour = blobmsg_open_table(b, format_address(neigh->address));
blobmsg_add_string(b, "dev", neigh->ifp->name);
blobmsg_add_u32(b, "hello-reach", neigh->hello.reach);
blobmsg_add_u32(b, "uhello-reach", neigh->uhello.reach);
blobmsg_add_u32(b, "rxcost", neighbour_rxcost(neigh));
blobmsg_add_u32(b, "txcost", neigh->txcost);
blobmsg_add_string(b, "rtt", format_thousands(neigh->rtt));
blobmsg_add_u8(b, "if_up", if_up(neigh->ifp));
blobmsg_close_table(b, neighbour);
}
// Sends neighbours message on ubus socket, splitting apart IPv4 and IPv6
// neighbours.
static int babeld_ubus_get_neighbours(struct ubus_context *ctx_local,
struct ubus_object *obj,
struct ubus_request_data *req,
const char *method,
struct blob_attr *msg) {
struct blob_buf b = {0};
struct neighbour *neigh;
struct neighbour_list_entry *cur, *tmp;
void *ipv4, *ipv6;
int ret;
LIST_HEAD(neighbour_ipv4_list);
LIST_HEAD(neighbour_ipv6_list);
blob_buf_init(&b, 0);
FOR_ALL_NEIGHBOURS(neigh) {
struct neighbour_list_entry *n =
calloc(1, sizeof(struct neighbour_list_entry));
n->neighbour = neigh;
if (v4mapped(neigh->address)) {
list_add(&n->list, &neighbour_ipv4_list);
} else {
list_add(&n->list, &neighbour_ipv6_list);
}
}
ipv4 = blobmsg_open_table(&b, "IPv4");
list_for_each_entry_safe(cur, tmp, &neighbour_ipv4_list, list) {
babeld_add_neighbour_buf(cur->neighbour, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv4);
ipv6 = blobmsg_open_table(&b, "IPv6");
list_for_each_entry_safe(cur, tmp, &neighbour_ipv6_list, list) {
babeld_add_neighbour_buf(cur->neighbour, &b);
list_del(&cur->list);
free(cur);
}
blobmsg_close_table(&b, ipv6);
ret = ubus_send_reply(ctx_local, req, b.head);
if (ret)
fprintf(stderr, "Failed to send reply: %s\n", ubus_strerror(ret));
blob_buf_free(&b);
return ret;
}
// List of functions we expose via the ubus bus.
static const struct ubus_method babeld_methods[] = {
UBUS_METHOD("add_interface", babeld_ubus_add_interface, interface_policy),
UBUS_METHOD("add_filter", babeld_ubus_add_filter, filter_policy),
UBUS_METHOD_NOARG("get_info", babeld_ubus_babeld_info),
UBUS_METHOD_NOARG("get_xroutes", babeld_ubus_get_xroutes),
UBUS_METHOD_NOARG("get_routes", babeld_ubus_get_routes),
UBUS_METHOD_NOARG("get_neighbours", babeld_ubus_get_neighbours),
};
// Definition of the ubus object type.
static struct ubus_object_type babeld_object_type =
UBUS_OBJECT_TYPE("babeld", babeld_methods);
// Object we announce via the ubus bus.
static struct ubus_object babeld_object = {
.name = "babeld",
.type = &babeld_object_type,
.methods = babeld_methods,
.n_methods = ARRAY_SIZE(babeld_methods),
};
// Registers handlers for babel methods in the global ubus context.
static bool ubus_init_object() {
int ret;
ret = ubus_add_object(shared_ctx, &babeld_object);
if (ret) {
fprintf(stderr, "Failed to add object: %s\n", ubus_strerror(ret));
return false;
}
return true;
}
// Initializes the global ubus context, connecting to the bus to be able to
// receive and send messages.
static bool babeld_ubus_init(void) {
if (shared_ctx)
return true;
shared_ctx = ubus_connect(NULL);
if (!shared_ctx)
return false;
return true;
}
void ubus_notify_route(struct babel_route *route, int kind) {
struct blob_buf b = {0};
char method[50]; // possible methods are route.change, route.add, route.flush
if (!babeld_object.has_subscribers)
return;
if (!route)
return;
if (!shared_ctx)
return;
blob_buf_init(&b, 0);
babeld_add_route_buf(route, &b);
snprintf(method, sizeof(method), "route.%s", local_kind(kind));
ubus_notify(shared_ctx, &babeld_object, method, b.head, -1);
blob_buf_free(&b);
}
void ubus_notify_xroute(struct xroute *xroute, int kind) {
struct blob_buf b = {0};
char method[50]; // possible methods are xroute.change, xroute.add,
// xroute.flush
if (!babeld_object.has_subscribers)
return;
if (!xroute)
return;
if (!shared_ctx)
return;
blob_buf_init(&b, 0);
babeld_add_xroute_buf(xroute, &b);
snprintf(method, sizeof(method), "xroute.%s", local_kind(kind));
ubus_notify(shared_ctx, &babeld_object, method, b.head, -1);
blob_buf_free(&b);
}
void ubus_notify_neighbour(struct neighbour *neigh, int kind) {
struct blob_buf b = {0};
char method[50]; // possible methods are neigh.change, neigh.add, neigh.flush
if (!babeld_object.has_subscribers)
return;
if (!neigh)
return;
if (!shared_ctx)
return;
blob_buf_init(&b, 0);
babeld_add_neighbour_buf(neigh, &b);
snprintf(method, sizeof(method), "neigh.%s", local_kind(kind));
ubus_notify(shared_ctx, &babeld_object, method, b.head, -1);
blob_buf_free(&b);
}
void babeld_ubus_receive(fd_set *readfds) {
if (!shared_ctx)
return;
if (FD_ISSET(shared_ctx->sock.fd, readfds))
ubus_handle_event(shared_ctx);
}
int babeld_ubus_add_read_sock(fd_set *readfds, int maxfd) {
if (!shared_ctx)
return maxfd;
FD_SET(shared_ctx->sock.fd, readfds);
return MAX(maxfd, shared_ctx->sock.fd);
}
bool babeld_add_ubus() {
if (!babeld_ubus_init()) {
fprintf(stderr, "Failed to initialize ubus!\n");
return false;
}
if (!ubus_init_object()) {
fprintf(stderr, "Failed to add objects to ubus!\n");
return false;
}
return true;
}

99
babeld/src/ubus.h Normal file
View file

@ -0,0 +1,99 @@
/*
IPC integration of babeld with OpenWrt.
The ubus interface offers following functions:
- add_filter '{"ifname":"eth0", "type":0, "metric":5000}'
type:
0: FILTER_TYPE_INPUT
1: FILTER_TYPE_OUTPUT
2: FILTER_TYPE_REDISTRIBUTE
3: FILTER_TYPE_INSTALL
- add_interface '{"ifname":"eth0"}'
- get_info
- get_neighbours
- get_xroutes
- get_routes
All output is divided into IPv4 and IPv6.
Ubus notifications are sent if we receive updates for
- xroutes
- routes
- neighbours
The format is:
- {route,xroute,neighbour}.add: Object was added
- {route,xroute,neighbour}.change: Object was changed
- {route,xroute,neighbour}.flush: Object was flushed
*/
#include <stdbool.h>
#include <sys/select.h>
struct babel_route;
struct neighbour;
struct xroute;
// Whether to enable ubus bindings (boolean option).
extern int ubus_bindings;
/**
* Initialize ubus interface.
*
* Connect to the ubus daemon and expose the ubus functions.
*
* @return if initializing ubus was successful
*/
bool babeld_add_ubus();
/**
* Add ubus socket to given filedescriptor set.
*
* We need to check repeatedly if the ubus socket has something to read.
* The functions allows to add the ubus socket to the normal while(1)-loop of
* babeld.
*
* @param readfs: the filedescriptor set
* @param maxfd: the current maximum file descriptor
* @return the maximum file descriptor
*/
int babeld_ubus_add_read_sock(fd_set *readfds, int maxfd);
/**
* Check and process ubus socket.
*
* If the ubus-socket signals that data is available, the ubus_handle_event is
* called.
*/
void babeld_ubus_receive(fd_set *readfds);
/***
* Notify the ubus bus that a new xroute is received.
*
* If a new xroute is received or changed, we will notify subscribers.
*
* @param xroute: xroute that experienced some change
* @param kind: kind that describes if we have a flush, add or change
*/
void ubus_notify_xroute(struct xroute *xroute, int kind);
/***
* Notify the ubus bus that a new route is received.
*
* If a new route is received or changed, we will notify subscribers.
*
* @param route: route that experienced some change
* @param kind: kind that describes if we have a flush, add or change
*/
void ubus_notify_route(struct babel_route *route, int kind);
/***
* Notify the ubus bus that a new neighbour is received.
*
* If a new neighbour is received or changed, we will notify subscribers.
*
* @param neigh: neighbour that experienced some change
* @param kind: kind that describes if we have a flush, add or change
*/
void ubus_notify_neighbour(struct neighbour *neigh, int kind);

View file

@ -1,81 +1,248 @@
# # SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=batctl PKG_NAME:=batctl
PKG_VERSION:=2024.0
PKG_VERSION:=2016.5 PKG_RELEASE:=1
PKG_RELEASE:=0
PKG_MD5SUM:=7b33fb47c7fa5b317e9a152a286999fc
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0 PKG_HASH:=76853e87201af63c411db152fd0c625a729a9733115897d1331604e2c5a67c7d
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION) PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
PKG_LICENSE:=GPL-2.0-only ISC MIT
PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT LICENSES/deprecated/ISC
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/batctl define Package/batctl/Default
URL:=https://www.open-mesh.org/
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
DEPENDS:=+kmod-batman-adv +libnl-tiny +libc +librt URL:=https://www.open-mesh.org/
TITLE:=B.A.T.M.A.N. Advanced user space configuration tool batctl DEPENDS:=+libnl-tiny +libc +librt
MAINTAINER:=Marek Lindner <mareklindner@neomailbox.ch> PROVIDES:=batctl
endef endef
define Package/batctl/description define Package/batctl/description
batctl is a more intuitive managment utility for B.A.T.M.A.N.-Advanced. batctl is a more intuitive managment utility for B.A.T.M.A.N.-Advanced.
It is an easier method for configuring batman-adv and provides some It is an easier method for configuring batman-adv and provides some
additional tools for debugging as well. This package builds additional tools for debugging as well. This package builds
version $(PKG_VERSION) of the user space utility. version $(PKG_VERSION) of the user space utility.
endef endef
# The linker can identify unused sections of a binary when each symbol is stored define Package/batctl-tiny
# in a separate section. This mostly removes unused linker sections and reduces $(call Package/batctl/Default)
# the size by ~3% on mipsel. TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Minimal)
VARIANT:=tiny
ALTERNATIVES:=100:/usr/sbin/batctl:/usr/libexec/batctl-tiny
endef
TARGET_CFLAGS += -ffunction-sections -fdata-sections define Package/batctl-tiny/description
TARGET_LDFLAGS += -Wl,--gc-sections $(Package/batctl/description)
Only configuration relevant subcommands are enabled.
endef
# Link-time optimization allows to move parts of the optimization from the single define Package/batctl-default
# source file to the global source view. This is done by emitting the GIMPLE $(call Package/batctl/Default)
# representation in each object file and analyzing it again during the link step. TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Default)
VARIANT:=default
ALTERNATIVES:=200:/usr/sbin/batctl:/usr/libexec/batctl-default
endef
TARGET_CFLAGS += -flto define Package/batctl-default/description
TARGET_LDFLAGS += -fuse-linker-plugin $(Package/batctl/description)
Standard subcommands for configuration and online debugging are enabled.
endef
MAKE_BATCTL_ENV += \ define Package/batctl-full
CPPFLAGS="$(TARGET_CPPFLAGS)" \ $(call Package/batctl/Default)
CFLAGS="$(TARGET_CFLAGS)" \ TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Full)
LDFLAGS="$(TARGET_LDFLAGS)" \ VARIANT:=full
ALTERNATIVES:=300:/usr/sbin/batctl:/usr/libexec/batctl-full
endef
define Package/batctl-full/description
$(Package/batctl/description)
Subcommands for configuration, online and offline debugging are enabled.
endef
MAKE_VARS += \
LIBNL_NAME="libnl-tiny" \ LIBNL_NAME="libnl-tiny" \
LIBNL_GENL_NAME="libnl-tiny" LIBNL_GENL_NAME="libnl-tiny"
MAKE_BATCTL_ARGS += \ MAKE_FLAGS += \
REVISION="$(PKG_BATCTL_SHORTREV)" \ REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
CC="$(TARGET_CC)" \
DESTDIR="$(PKG_INSTALL_DIR)" \
batctl install
config-n := \
aggregation \
ap_isolation \
backbonetable \
bisect_iv \
bonding \
bla_backbone_json \
bla_claim_json \
bridge_loop_avoidance \
claimtable \
dat_cache \
dat_cache_json \
distributed_arp_table \
elp_interval \
event \
fragmentation \
gateways \
gateways_json \
gw_mode \
hardif_json \
hardifs_json \
hop_penalty \
interface \
isolation_mark \
loglevel \
mcast_flags \
mcast_flags_json \
mesh_json \
multicast_fanout \
multicast_forceflood \
multicast_mode \
neighbors \
neighbors_json \
network_coding \
orig_interval \
originators \
originators_json \
ping \
routing_algo \
statistics \
tcpdump \
throughput_override \
throughputmeter \
traceroute \
transglobal \
translate \
translocal \
transtable_global_json \
transtable_local_json \
vlan_json \
define Build/Compile config-settings := \
$(MAKE_BATCTL_ENV) $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_BATCTL_ARGS) aggregation \
ap_isolation \
bonding \
bridge_loop_avoidance \
distributed_arp_table \
elp_interval \
fragmentation \
gw_mode \
hop_penalty \
interface \
isolation_mark \
loglevel \
multicast_fanout \
multicast_forceflood \
multicast_mode \
network_coding \
orig_interval \
routing_algo \
throughput_override \
config-tables := \
backbonetable \
claimtable \
dat_cache \
gateways \
mcast_flags \
neighbors \
originators \
statistics \
transglobal \
translocal \
config-json := \
bla_backbone_json \
bla_claim_json \
dat_cache_json \
gateways_json \
hardif_json \
hardifs_json \
mcast_flags_json \
mesh_json \
neighbors_json \
originators_json \
transtable_global_json \
transtable_local_json \
vlan_json \
config-tools := \
event \
ping \
tcpdump \
throughputmeter \
traceroute \
translate \
config-extratools := \
bisect_iv \
ifeq ($(BUILD_VARIANT),tiny)
config-y := \
$(config-settings) \
endif
ifeq ($(BUILD_VARIANT),default)
config-y := \
$(config-settings) \
$(config-tables) \
$(config-json) \
$(config-tools) \
endif
ifeq ($(BUILD_VARIANT),full)
config-y := \
$(config-settings) \
$(config-tables) \
$(config-json) \
$(config-tools) \
$(config-extratools) \
endif
define ConfigVars
$(subst $(space),,$(foreach opt,$(config-$(1)),CONFIG_$(opt)=$(1)
))
endef endef
define Build/Clean define batctl_config
rm -rf $(BUILD_DIR)/$(PKG_NAME)/ $(call ConfigVars,n)$(call ConfigVars,y)
endef
$(eval $(call shexport,batctl_config))
MAKE_FLAGS += $$$$$(call shvar,batctl_config)
define Package/batctl-tiny/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-tiny
endef endef
define Package/batctl/install define Package/batctl-default/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-default
endef endef
$(eval $(call BuildPackage,batctl)) define Package/batctl-full/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-full
endef
$(eval $(call BuildPackage,batctl-default))
$(eval $(call BuildPackage,batctl-tiny))
$(eval $(call BuildPackage,batctl-full))

View file

@ -1,35 +1,88 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2007-2019 B.A.T.M.A.N. contributors:
#
# Marek Lindner, Simon Wunderlich
config KMOD_BATMAN_ADV_DEBUG_LOG #
bool "enable verbose debug logging" # B.A.T.M.A.N meshing protocol
depends on PACKAGE_kmod-batman-adv #
default n
config KMOD_BATMAN_ADV_BLA config BATMAN_ADV_BATMAN_V
bool "enable bridge loop avoidance" bool "B.A.T.M.A.N. V protocol"
depends on PACKAGE_kmod-batman-adv depends on PACKAGE_kmod-batman-adv
default y default y
help
This option enables the B.A.T.M.A.N. V protocol, the successor
of the currently used B.A.T.M.A.N. IV protocol. The main
changes include splitting of the OGM protocol into a neighbor
discovery protocol (Echo Location Protocol, ELP) and a new OGM
Protocol OGMv2 for flooding protocol information through the
network, as well as a throughput based metric.
B.A.T.M.A.N. V is currently considered experimental and not
compatible to B.A.T.M.A.N. IV networks.
config KMOD_BATMAN_ADV_DAT config BATMAN_ADV_BLA
bool "enable distributed arp table" bool "Bridge Loop Avoidance"
depends on PACKAGE_kmod-batman-adv
select PACKAGE_kmod-lib-crc16
default y
help
This option enables BLA (Bridge Loop Avoidance), a mechanism
to avoid Ethernet frames looping when mesh nodes are connected
to both the same LAN and the same mesh. If you will never use
more than one mesh node in the same LAN, you can safely remove
this feature and save some space.
config BATMAN_ADV_DAT
bool "Distributed ARP Table"
depends on PACKAGE_kmod-batman-adv depends on PACKAGE_kmod-batman-adv
default y default y
help
This option enables DAT (Distributed ARP Table), a DHT based
mechanism that increases ARP reliability on sparse wireless
mesh networks. If you think that your network does not need
this option you can safely remove it and save some space.
config KMOD_BATMAN_ADV_DEBUGFS config BATMAN_ADV_NC
bool "enable debugfs support" bool "Network Coding"
depends on PACKAGE_kmod-batman-adv
help
This option enables network coding, a mechanism that aims to
increase the overall network throughput by fusing multiple
packets in one transmission.
Note that interfaces controlled by batman-adv must be manually
configured to have promiscuous mode enabled in order to make
network coding work.
If you think that your network does not need this feature you
can safely disable it and save some space.
config BATMAN_ADV_MCAST
bool "Multicast optimisation"
depends on PACKAGE_kmod-batman-adv depends on PACKAGE_kmod-batman-adv
default y default y
help
This option enables the multicast optimisation which aims to
reduce the air overhead while improving the reliability of
multicast messages.
config KMOD_BATMAN_ADV_MCAST config BATMAN_ADV_DEBUG
bool "enable multicast transmission optimization" bool "B.A.T.M.A.N. debugging"
depends on PACKAGE_kmod-batman-adv depends on PACKAGE_kmod-batman-adv
default y help
This is an option for use by developers; most people should
say N here. This enables compilation of support for
outputting debugging information to the debugfs log or tracing
buffer. The output is controlled via the batadv netdev specific
log_level setting.
config KMOD_BATMAN_ADV_NC config BATMAN_ADV_TRACING
bool "enable network coding [requires promisc mode support]" bool "B.A.T.M.A.N. tracing support"
depends on PACKAGE_kmod-batman-adv depends on PACKAGE_kmod-batman-adv
default n select KERNEL_FTRACE
select KERNEL_ENABLE_DEFAULT_TRACERS
config KMOD_BATMAN_ADV_BATMAN_V help
bool "enable batman v routing algorithm" This is an option for use by developers; most people should
depends on PACKAGE_kmod-batman-adv say N here. Select this option to gather traces like the debug
default n messages using the generic tracing infrastructure of the kernel.
BATMAN_ADV_DEBUG must also be selected to get trace events for
batadv_dbg.

View file

@ -1,42 +1,52 @@
# # SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile 5624 2006-11-23 00:29:07Z nbd $
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=batman-adv PKG_NAME:=batman-adv
PKG_VERSION:=2024.0
PKG_VERSION:=2016.5 PKG_RELEASE:=2
PKG_RELEASE:=0
PKG_MD5SUM:=6717a933a08dd2a01b00df30cb9f16a8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0 PKG_HASH:=61110697b5799f646a2a82a4dcf97faed4bb12a7cc43bf4683d2c4de4f6b40e7
PKG_EXTMOD_SUBDIRS:=net/batman-adv
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION) PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
PKG_LICENSE:=GPL-2.0-only MIT
PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
PKG_BUILD_PARALLEL:=1
STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
PKG_CONFIG_DEPENDS += \
CONFIG_BATMAN_ADV_BATMAN_V \
CONFIG_BATMAN_ADV_BLA \
CONFIG_BATMAN_ADV_DAT \
CONFIG_BATMAN_ADV_NC \
CONFIG_BATMAN_ADV_MCAST \
CONFIG_BATMAN_ADV_DEBUG \
CONFIG_BATMAN_ADV_TRACING
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define KernelPackage/batman-adv define KernelPackage/batman-adv
URL:=https://www.open-mesh.org/
MAINTAINER:=Marek Lindner <mareklindner@neomailbox.ch>
SUBMENU:=Network Support SUBMENU:=Network Support
DEPENDS:=+KMOD_BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-crypto-crc32c +kmod-lib-crc32c +kmod-cfg80211
TITLE:=B.A.T.M.A.N. Adv TITLE:=B.A.T.M.A.N. Adv
URL:=https://www.open-mesh.org/
DEPENDS:=+BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-lib-crc32c +kmod-cfg80211 +batctl
FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,cfg80211 batman-adv) AUTOLOAD:=$(call AutoProbe,batman-adv)
endef endef
define KernelPackage/batman-adv/description define KernelPackage/batman-adv/description
B.A.T.M.A.N. advanced is a kernel module which allows to B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
build layer 2 mesh networks. This package builds a routing protocol for multi-hop ad-hoc mesh networks. The
version $(PKG_VERSION) of the kernel module. networks may be wired or wireless. See
https://www.open-mesh.org/ for more information and user space
tools. This package builds version $(PKG_VERSION) of the kernel
module.
endef endef
define KernelPackage/batman-adv/config define KernelPackage/batman-adv/config
@ -49,61 +59,43 @@ endef
PKG_EXTRA_KCONFIG:= \ PKG_EXTRA_KCONFIG:= \
CONFIG_BATMAN_ADV=m \ CONFIG_BATMAN_ADV=m \
CONFIG_BATMAN_ADV_DEBUG=$(if $(CONFIG_KMOD_BATMAN_ADV_DEBUG_LOG),y,n) \ CONFIG_BATMAN_ADV_DEBUG=$(if $(CONFIG_BATMAN_ADV_DEBUG),y,n) \
CONFIG_BATMAN_ADV_DEBUGFS=$(if $(CONFIG_KMOD_BATMAN_ADV_DEBUGFS),y,n) \ CONFIG_BATMAN_ADV_BLA=$(if $(CONFIG_BATMAN_ADV_BLA),y,n) \
CONFIG_BATMAN_ADV_BLA=$(if $(CONFIG_KMOD_BATMAN_ADV_BLA),y,n) \ CONFIG_BATMAN_ADV_DAT=$(if $(CONFIG_BATMAN_ADV_DAT),y,n) \
CONFIG_BATMAN_ADV_DAT=$(if $(CONFIG_KMOD_BATMAN_ADV_DAT),y,n) \ CONFIG_BATMAN_ADV_MCAST=$(if $(CONFIG_BATMAN_ADV_MCAST),y,n) \
CONFIG_BATMAN_ADV_MCAST=$(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),y,n) \ CONFIG_BATMAN_ADV_NC=$(if $(CONFIG_BATMAN_ADV_NC),y,n) \
CONFIG_BATMAN_ADV_NC=$(if $(CONFIG_KMOD_BATMAN_ADV_NC),y,n) \ CONFIG_BATMAN_ADV_BATMAN_V=$(if $(CONFIG_BATMAN_ADV_BATMAN_V),y,n) \
CONFIG_BATMAN_ADV_BATMAN_V=$(if $(CONFIG_KMOD_BATMAN_ADV_BATMAN_V),y,n) \ CONFIG_BATMAN_ADV_TRACING=$(if $(CONFIG_BATMAN_ADV_TRACING),y,n) \
PKG_EXTRA_CFLAGS:= \ PKG_EXTRA_CFLAGS:= \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \ $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \ $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \
NOSTDINC_FLAGS = \ NOSTDINC_FLAGS = \
$(KERNEL_NOSTDINC_FLAGS) \
-I$(PKG_BUILD_DIR)/net/batman-adv \ -I$(PKG_BUILD_DIR)/net/batman-adv \
-I$(STAGING_DIR)/usr/include/mac80211-backport \ -I$(STAGING_DIR)/usr/include/mac80211-backport \
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
-I$(STAGING_DIR)/usr/include/mac80211 \ -I$(STAGING_DIR)/usr/include/mac80211 \
-I$(STAGING_DIR)/usr/include/mac80211/uapi \ -I$(STAGING_DIR)/usr/include/mac80211/uapi \
-I$(PKG_BUILD_DIR)/include/ \ -I$(PKG_BUILD_DIR)/include/ \
-include backport/autoconf.h \
-include backport/backport.h \ -include backport/backport.h \
-include $(PKG_BUILD_DIR)/compat-hacks.h -include $(PKG_BUILD_DIR)/compat-hacks.h \
-DBATADV_SOURCE_VERSION=\\\"$(PKG_VERSION)-openwrt-$(PKG_RELEASE)\\\"
COMPAT_SOURCES = \
$(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/core/skbuff.o,) \
$(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/ipv4/igmp.o,) \
$(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/ipv6/mcast_snoop.o,) \
define Build/Compile define Build/Compile
+env "batman-adv-y=$(COMPAT_SOURCES)" \
$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
ARCH="$(LINUX_KARCH)" \ $(KERNEL_MAKE_FLAGS) \
CROSS_COMPILE="$(TARGET_CROSS)" \ M="$(PKG_BUILD_DIR)/net/batman-adv" \
SUBDIRS="$(PKG_BUILD_DIR)/net/batman-adv" \
$(PKG_EXTRA_KCONFIG) \ $(PKG_EXTRA_KCONFIG) \
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \ EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules modules
endef endef
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) ./files/compat-hacks.h $(PKG_BUILD_DIR)/
endef
define Build/Clean
rm -rf $(BUILD_DIR)/$(PKG_NAME)/
endef
define KernelPackage/batman-adv/install define KernelPackage/batman-adv/install
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/hotplug.d/iface $(1)/lib/batman-adv $(1)/usr/sbin $(1)/lib/netifd/proto $(CP) ./files/. $(1)/
$(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
$(INSTALL_DATA) ./files/lib/batman-adv/config.sh $(1)/lib/batman-adv
$(INSTALL_BIN) ./files/etc/hotplug.d/net/99-batman-adv $(1)/etc/hotplug.d/net
$(INSTALL_BIN) ./files/lib/netifd/proto/batadv.sh $(1)/lib/netifd/proto
$(INSTALL_BIN) ./files/lib/netifd/proto/batadv_vlan.sh $(1)/lib/netifd/proto
endef endef
$(eval $(call KernelPackage,batman-adv)) $(eval $(call KernelPackage,batman-adv))

View file

@ -1,206 +0,0 @@
/* Please avoid adding hacks here - instead add it to mac80211/backports.git */
#undef CONFIG_MODULE_STRIPPED
#include <linux/version.h> /* LINUX_VERSION_CODE */
#include <linux/types.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
#define dev_get_iflink(_net_dev) ((_net_dev)->iflink)
#endif /* < KERNEL_VERSION(4, 1, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
#include <linux/netdevice.h>
#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info) ({\
BUILD_BUG_ON(upper_priv != NULL); \
BUILD_BUG_ON(upper_info != NULL); \
netdev_set_master(dev, upper_dev); \
})
#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
#include <linux/netdevice.h>
#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info) ({\
BUILD_BUG_ON(upper_priv != NULL); \
BUILD_BUG_ON(upper_info != NULL); \
netdev_master_upper_dev_link(dev, upper_dev); \
})
#endif /* < KERNEL_VERSION(4, 5, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
unsigned int transport_len,
__sum16(*skb_chkf)(struct sk_buff *skb));
int ip_mc_check_igmp(struct sk_buff *skb, struct sk_buff **skb_trimmed);
int ipv6_mc_check_mld(struct sk_buff *skb, struct sk_buff **skb_trimmed);
#endif /* < KERNEL_VERSION(4, 2, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
#define IFF_NO_QUEUE 0; dev->tx_queue_len = 0
static inline bool hlist_fake(struct hlist_node *h)
{
return h->pprev == &h->next;
}
#endif /* < KERNEL_VERSION(4, 3, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
#include <linux/ethtool.h>
#define ethtool_link_ksettings batadv_ethtool_link_ksettings
struct batadv_ethtool_link_ksettings {
struct {
__u32 speed;
__u8 duplex;
} base;
};
#define __ethtool_get_link_ksettings(__dev, __link_settings) \
batadv_ethtool_get_link_ksettings(__dev, __link_settings)
static inline int
batadv_ethtool_get_link_ksettings(struct net_device *dev,
struct ethtool_link_ksettings *link_ksettings)
{
struct ethtool_cmd cmd;
int ret;
memset(&cmd, 0, sizeof(cmd));
ret = __ethtool_get_settings(dev, &cmd);
if (ret != 0)
return ret;
link_ksettings->base.duplex = cmd.duplex;
link_ksettings->base.speed = ethtool_cmd_speed(&cmd);
return 0;
}
#endif /* < KERNEL_VERSION(4, 6, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
#define netif_trans_update batadv_netif_trans_update
static inline void batadv_netif_trans_update(struct net_device *dev)
{
dev->trans_start = jiffies;
}
#endif /* < KERNEL_VERSION(4, 7, 0) */
#include_next <linux/netlink.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
#include_next <net/netlink.h>
static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb);
static inline int batadv_nla_align_64bit(struct sk_buff *skb, int padattr)
{
if (batadv_nla_need_padding_for_64bit(skb) &&
!nla_reserve(skb, padattr, 0))
return -EMSGSIZE;
return 0;
}
static inline struct nlattr *batadv__nla_reserve_64bit(struct sk_buff *skb,
int attrtype,
int attrlen, int padattr)
{
if (batadv_nla_need_padding_for_64bit(skb))
batadv_nla_align_64bit(skb, padattr);
return __nla_reserve(skb, attrtype, attrlen);
}
static inline void batadv__nla_put_64bit(struct sk_buff *skb, int attrtype,
int attrlen, const void *data,
int padattr)
{
struct nlattr *nla;
nla = batadv__nla_reserve_64bit(skb, attrtype, attrlen, padattr);
memcpy(nla_data(nla), data, attrlen);
}
static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb)
{
#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
/* The nlattr header is 4 bytes in size, that's why we test
* if the skb->data _is_ aligned. A NOP attribute, plus
* nlattr header for next attribute, will make nla_data()
* 8-byte aligned.
*/
if (IS_ALIGNED((unsigned long)skb_tail_pointer(skb), 8))
return true;
#endif
return false;
}
static inline int batadv_nla_total_size_64bit(int payload)
{
return NLA_ALIGN(nla_attr_size(payload))
#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+ NLA_ALIGN(nla_attr_size(0))
#endif
;
}
static inline int batadv_nla_put_64bit(struct sk_buff *skb, int attrtype,
int attrlen, const void *data,
int padattr)
{
size_t len;
if (batadv_nla_need_padding_for_64bit(skb))
len = batadv_nla_total_size_64bit(attrlen);
else
len = nla_total_size(attrlen);
if (unlikely(skb_tailroom(skb) < len))
return -EMSGSIZE;
batadv__nla_put_64bit(skb, attrtype, attrlen, data, padattr);
return 0;
}
#define nla_put_u64_64bit(_skb, _attrtype, _value, _padattr) \
batadv_nla_put_u64_64bit(_skb, _attrtype, _value, _padattr)
static inline int batadv_nla_put_u64_64bit(struct sk_buff *skb, int attrtype,
u64 value, int padattr)
{
return batadv_nla_put_64bit(skb, attrtype, sizeof(u64), &value,
padattr);
}
#endif /* < KERNEL_VERSION(4, 7, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
#include_next <linux/cache.h>
/* hack for netlink.c which marked the family ops as ro */
#ifdef __ro_after_init
#undef __ro_after_init
#endif
#define __ro_after_init
#endif /* < KERNEL_VERSION(4, 10, 0) */

View file

@ -1,22 +0,0 @@
config 'mesh' 'bat0'
option 'aggregated_ogms'
option 'ap_isolation'
option 'bonding'
option 'fragmentation'
option 'gw_bandwidth'
option 'gw_mode'
option 'gw_sel_class'
option 'log_level'
option 'orig_interval'
option 'vis_mode'
option 'bridge_loop_avoidance'
option 'distributed_arp_table'
option 'multicast_mode'
option 'network_coding'
option 'hop_penalty'
option 'isolation_mark'
# yet another batX instance
# config 'mesh' 'bat5'
# option 'interfaces' 'second_mesh'

View file

@ -1,12 +0,0 @@
#!/bin/sh
. /lib/batman-adv/config.sh
bat_load_module
config_load batman-adv
case "$ACTION" in
add)
[ -d /sys/class/net/$INTERFACE/mesh/ ] && bat_config "$INTERFACE"
;;
esac

View file

@ -0,0 +1,97 @@
#!/bin/sh
# This UCI-Defaults script will split the batadv proto network interfaces
# in batadv_hardif and batadv proto. The configuration options from
# /etc/config/batman-adv will be moved to the latter.
. /lib/functions.sh
proto_batadv_to_batadv_hardif() {
local section="$1"
local proto
local mesh
local routing_algo
config_get proto "${section}" proto
config_get mesh "${section}" mesh
config_get routing_algo "${section}" routing_algo
if [ -z "$mesh" -o "${proto}" != "batadv" ]; then
continue
fi
uci set network."${section}".proto="batadv_hardif"
uci rename network."${section}".mesh="master"
uci delete network."${section}".routing_algo
# create new section or adjust existing one
uci set network."${mesh}"=interface
uci set network."${mesh}".proto=batadv
[ -n "${routing_algo}" ] && uci set network."${mesh}".routing_algo="${routing_algo}"
}
mv_batadv_config_section() {
local section="$1"
local aggregated_ogms
local ap_isolation
local bonding
local bridge_loop_avoidance
local distributed_arp_table
local fragmentation
local gw_bandwidth
local gw_mode
local gw_sel_class
local hop_penalty
local isolation_mark
local log_level
local multicast_mode
local network_coding
local orig_interval
config_get aggregated_ogms "${section}" aggregated_ogms
config_get ap_isolation "${section}" ap_isolation
config_get bonding "${section}" bonding
config_get bridge_loop_avoidance "${section}" bridge_loop_avoidance
config_get distributed_arp_table "${section}" distributed_arp_table
config_get fragmentation "${section}" fragmentation
config_get gw_bandwidth "${section}" gw_bandwidth
config_get gw_mode "${section}" gw_mode
config_get gw_sel_class "${section}" gw_sel_class
config_get hop_penalty "${section}" hop_penalty
config_get isolation_mark "${section}" isolation_mark
config_get log_level "${section}" log_level
config_get multicast_mode "${section}" multicast_mode
config_get network_coding "${section}" network_coding
config_get orig_interval "${section}" orig_interval
# update section in case it exists
[ -n "${aggregated_ogms}" ] && uci set network."${section}".aggregated_ogms="${aggregated_ogms}"
[ -n "${ap_isolation}" ] && uci set network."${section}".ap_isolation="${ap_isolation}"
[ -n "${bonding}" ] && uci set network."${section}".bonding="${bonding}"
[ -n "${bridge_loop_avoidance}" ] && uci set network."${section}".bridge_loop_avoidance="${bridge_loop_avoidance}"
[ -n "${distributed_arp_table}" ] && uci set network."${section}".distributed_arp_table="${distributed_arp_table}"
[ -n "${fragmentation}" ] && uci set network."${section}".fragmentation="${fragmentation}"
[ -n "${gw_bandwidth}" ] && uci set network."${section}".gw_bandwidth="${gw_bandwidth}"
[ -n "${gw_mode}" ] && uci set network."${section}".gw_mode="${gw_mode}"
[ -n "${gw_sel_class}" ] && uci set network."${section}".gw_sel_class="${gw_sel_class}"
[ -n "${hop_penalty}" ] && uci set network."${section}".hop_penalty="${hop_penalty}"
[ -n "${isolation_mark}" ] && uci set network."${section}".isolation_mark="${isolation_mark}"
[ -n "${log_level}" ] && uci set network."${section}".log_level="${log_level}"
[ -n "${multicast_mode}" ] && uci set network."${section}".multicast_mode="${multicast_mode}"
[ -n "${network_coding}" ] && uci set network."${section}".network_coding="${network_coding}"
[ -n "${orig_interval}" ] && uci set network."${section}".orig_interval="${orig_interval}"
}
if [ -f /etc/config/batman-adv ]; then
config_load network
config_foreach proto_batadv_to_batadv_hardif 'interface'
uci commit network
config_load batman-adv
config_foreach mv_batadv_config_section 'mesh'
uci commit network
rm -f /etc/config/batman-adv
fi
exit 0

View file

@ -1,53 +0,0 @@
#!/bin/sh
bat_load_module()
{
[ -d "/sys/module/batman_adv/" ] && return
. /lib/functions.sh
load_modules /etc/modules.d/*-crc16 /etc/modules.d/*-crypto* /etc/modules.d/*-lib-crc* /etc/modules.d/*-batman-adv*
}
bat_config()
{
local mesh="$1"
local aggregated_ogms ap_isolation bonding bridge_loop_avoidance distributed_arp_table fragmentation
local gw_bandwidth gw_mode gw_sel_class isolation_mark hop_penalty multicast_mode network_coding log_level
local orig_interval vis_mode
config_get aggregated_ogms "$mesh" aggregated_ogms
config_get ap_isolation "$mesh" ap_isolation
config_get bonding "$mesh" bonding
config_get bridge_loop_avoidance "$mesh" bridge_loop_avoidance
config_get distributed_arp_table "$mesh" distributed_arp_table
config_get fragmentation "$mesh" fragmentation
config_get gw_bandwidth "$mesh" gw_bandwidth
config_get gw_mode "$mesh" gw_mode
config_get gw_sel_class "$mesh" gw_sel_class
config_get hop_penalty "$mesh" hop_penalty
config_get isolation_mark "$mesh" isolation_mark
config_get multicast_mode "$mesh" multicast_mode
config_get network_coding "$mesh" network_coding
config_get log_level "$mesh" log_level
config_get orig_interval "$mesh" orig_interval
config_get vis_mode "$mesh" vis_mode
[ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1
[ -n "$aggregate_ogms" ] && echo $aggregate_ogms > /sys/class/net/$mesh/mesh/aggregate_ogms
[ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation
[ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding
[ -n "$bridge_loop_avoidance" ] && echo $bridge_loop_avoidance > /sys/class/net/$mesh/mesh/bridge_loop_avoidance 2>&-
[ -n "$distributed_arp_table" ] && echo $distributed_arp_table > /sys/class/net/$mesh/mesh/distributed_arp_table 2>&-
[ -n "$fragmentation" ] && echo $fragmentation > /sys/class/net/$mesh/mesh/fragmentation
[ -n "$gw_bandwidth" ] && echo $gw_bandwidth > /sys/class/net/$mesh/mesh/gw_bandwidth
[ -n "$gw_mode" ] && echo $gw_mode > /sys/class/net/$mesh/mesh/gw_mode
[ -n "$gw_sel_class" ] && echo $gw_sel_class > /sys/class/net/$mesh/mesh/gw_sel_class
[ -n "$hop_penalty" ] && echo $hop_penalty > /sys/class/net/$mesh/mesh/hop_penalty
[ -n "$isolation_mark" ] && echo $isolation_mark > /sys/class/net/$mesh/mesh/isolation_mark
[ -n "$multicast_mode" ] && echo $multicast_mode > /sys/class/net/$mesh/mesh/multicast_mode 2>&-
[ -n "$network_coding" ] && echo $network_coding > /sys/class/net/$mesh/mesh/network_coding 2>&-
[ -n "$log_level" ] && echo $log_level > /sys/class/net/$mesh/mesh/log_level 2>&-
[ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval
[ -n "$vis_mode" ] && echo $vis_mode > /sys/class/net/$mesh/mesh/vis_mode
}

115
batman-adv/files/lib/netifd/proto/batadv.sh Normal file → Executable file
View file

@ -1,34 +1,123 @@
#!/bin/sh #!/bin/sh
. /lib/functions.sh [ -n "$INCLUDE_ONLY" ] || {
. ../netifd-proto.sh . /lib/functions.sh
init_proto "$@" . ../netifd-proto.sh
init_proto "$@"
}
proto_batadv_init_config() { proto_batadv_init_config() {
proto_config_add_string "mesh" no_device=1
proto_config_add_string "routing_algo" available=1
proto_config_add_boolean 'aggregated_ogms:bool'
proto_config_add_boolean 'ap_isolation:bool'
proto_config_add_boolean 'bonding:bool'
proto_config_add_boolean 'bridge_loop_avoidance:bool'
proto_config_add_boolean 'distributed_arp_table:bool'
proto_config_add_boolean 'fragmentation:bool'
proto_config_add_string 'gw_bandwidth'
proto_config_add_string 'gw_mode'
proto_config_add_int 'gw_sel_class'
proto_config_add_int 'hop_penalty'
proto_config_add_string 'isolation_mark'
proto_config_add_string 'log_level'
proto_config_add_int 'multicast_fanout'
proto_config_add_boolean 'multicast_mode:bool'
proto_config_add_boolean 'network_coding:bool'
proto_config_add_int 'orig_interval'
proto_config_add_string 'routing_algo'
} }
proto_batadv_setup() { proto_batadv_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$config"
local mesh routing_algo local aggregated_ogms
json_get_vars mesh routing_algo local ap_isolation
local bonding
local bridge_loop_avoidance
local distributed_arp_table
local fragmentation
local gw_bandwidth
local gw_mode
local gw_sel_class
local hop_penalty
local isolation_mark
local log_level
local multicast_fanout
local multicast_mode
local network_coding
local orig_interval
local routing_algo
[ -n "$routing_algo" ] || routing_algo="BATMAN_IV" json_get_vars aggregated_ogms
echo "$routing_algo" > "/sys/module/batman_adv/parameters/routing_algo" json_get_vars ap_isolation
json_get_vars bonding
json_get_vars bridge_loop_avoidance
json_get_vars distributed_arp_table
json_get_vars fragmentation
json_get_vars gw_bandwidth
json_get_vars gw_mode
json_get_vars gw_sel_class
json_get_vars hop_penalty
json_get_vars isolation_mark
json_get_vars log_level
json_get_vars multicast_fanout
json_get_vars multicast_mode
json_get_vars network_coding
json_get_vars orig_interval
json_get_vars routing_algo
set_default routing_algo 'BATMAN_IV'
batctl routing_algo "$routing_algo"
batctl meshif "$iface" interface create
[ -n "$aggregated_ogms" ] && batctl meshif "$iface" aggregation "$aggregated_ogms"
[ -n "$ap_isolation" ] && batctl meshif "$iface" ap_isolation "$ap_isolation"
[ -n "$bonding" ] && batctl meshif "$iface" bonding "$bonding"
[ -n "$bridge_loop_avoidance" ] && batctl meshif "$iface" bridge_loop_avoidance "$bridge_loop_avoidance" 2>&-
[ -n "$distributed_arp_table" ] && batctl meshif "$iface" distributed_arp_table "$distributed_arp_table" 2>&-
[ -n "$fragmentation" ] && batctl meshif "$iface" fragmentation "$fragmentation"
case "$gw_mode" in
server)
if [ -n "$gw_bandwidth" ]; then
batctl meshif "$iface" gw_mode "server" "$gw_bandwidth"
else
batctl meshif "$iface" gw_mode "server"
fi
;;
client)
if [ -n "$gw_sel_class" ]; then
batctl meshif "$iface" gw_mode "client" "$gw_sel_class"
else
batctl meshif "$iface" gw_mode "client"
fi
;;
*)
batctl meshif "$iface" gw_mode "off"
;;
esac
[ -n "$hop_penalty" ] && batctl meshif "$iface" hop_penalty "$hop_penalty"
[ -n "$isolation_mark" ] && batctl meshif "$iface" isolation_mark "$isolation_mark"
[ -n "$multicast_fanout" ] && batctl meshif "$iface" multicast_fanout "$multicast_fanout"
[ -n "$multicast_mode" ] && batctl meshif "$iface" multicast_mode "$multicast_mode" 2>&-
[ -n "$network_coding" ] && batctl meshif "$iface" network_coding "$network_coding" 2>&-
[ -n "$log_level" ] && batctl meshif "$iface" loglevel "$log_level" 2>&-
[ -n "$orig_interval" ] && batctl meshif "$iface" orig_interval "$orig_interval"
echo "$mesh" > "/sys/class/net/$iface/batman_adv/mesh_iface"
proto_init_update "$iface" 1 proto_init_update "$iface" 1
proto_send_update "$config" proto_send_update "$config"
} }
proto_batadv_teardown() { proto_batadv_teardown() {
local config="$1" local config="$1"
local iface="$2" local iface="$config"
echo "none" > "/sys/class/net/$iface/batman_adv/mesh_iface" || true batctl meshif "$iface" interface destroy
} }
add_protocol batadv add_protocol batadv

View file

@ -0,0 +1,53 @@
#!/bin/sh
[ -n "$INCLUDE_ONLY" ] || {
. /lib/functions.sh
. ../netifd-proto.sh
init_proto "$@"
}
proto_batadv_hardif_init_config() {
proto_config_add_int 'elp_interval'
proto_config_add_int 'hop_penalty'
proto_config_add_string "master"
proto_config_add_string 'throughput_override'
}
proto_batadv_hardif_setup() {
local config="$1"
local iface="$2"
local elp_interval
local hop_penalty
local master
local throughput_override
json_get_vars elp_interval
json_get_vars hop_penalty
json_get_vars master
json_get_vars throughput_override
( proto_add_host_dependency "$config" '' "$master" )
batctl meshif "$master" interface -M add "$iface"
[ -n "$elp_interval" ] && batctl hardif "$iface" elp_interval "$elp_interval"
[ -n "$hop_penalty" ] && batctl hardif "$iface" hop_penalty "$hop_penalty"
[ -n "$throughput_override" ] && batctl hardif "$iface" throughput_override "$throughput_override"
proto_init_update "$iface" 1
proto_send_update "$config"
}
proto_batadv_hardif_teardown() {
local config="$1"
local iface="$2"
local master
json_get_vars master
batctl meshif "$master" interface -M del "$iface" || true
}
add_protocol batadv_hardif

12
batman-adv/files/lib/netifd/proto/batadv_vlan.sh Normal file → Executable file
View file

@ -5,25 +5,25 @@
init_proto "$@" init_proto "$@"
proto_batadv_vlan_init_config() { proto_batadv_vlan_init_config() {
proto_config_add_string "ap_isolation" proto_config_add_boolean 'ap_isolation:bool'
} }
proto_batadv_vlan_setup() { proto_batadv_vlan_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
# VLAN specific variables
local device="${iface%.*}"
local vid="${iface#*.}"
# batadv_vlan options # batadv_vlan options
local ap_isolation local ap_isolation
json_get_vars ap_isolation json_get_vars ap_isolation
echo "$ap_isolation" > "/sys/class/net/${device}/mesh/vlan${vid}/ap_isolation" [ -n "$ap_isolation" ] && batctl vlan "$iface" ap_isolation "$ap_isolation"
proto_init_update "$iface" 1 proto_init_update "$iface" 1
proto_send_update "$config" proto_send_update "$config"
} }
proto_batadv_vlan_teardown() {
local cfg="$1"
}
add_protocol batadv_vlan add_protocol batadv_vlan

View file

@ -1,29 +0,0 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 23 Sep 2016 14:55:38 +0200
Subject: [PATCH] Add compat fallback for batadv_getlink_net
---
net/batman-adv/hard-interface.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 61a431a9..6969f580 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -95,6 +95,9 @@ out:
static struct net *batadv_getlink_net(const struct net_device *netdev,
struct net *fallback_net)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ return fallback_net;
+#else
if (!netdev->rtnl_link_ops)
return fallback_net;
@@ -102,6 +105,7 @@ static struct net *batadv_getlink_net(const struct net_device *netdev,
return fallback_net;
return netdev->rtnl_link_ops->get_link_net(netdev);
+#endif
}
/**

View file

@ -0,0 +1,274 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 6 May 2022 22:03:29 +0200
Subject: Revert "batman-adv: Migrate to linux/container_of.h"
The original patch requires Linux 5.16.0 or a mac80211 compat header with this
name. But the mac80211 package is currently not providing this header and
OpenWrt main is still using older Linux kernel versions for some targets.
This reverts commit 043ae5634bdfd4c4dd8b95a22890752495080bb5.
--- a/compat-include/linux/container_of.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) B.A.T.M.A.N. contributors:
- *
- * Marek Lindner, Simon Wunderlich
- *
- * This file contains macros for maintaining compatibility with older versions
- * of the Linux kernel.
- */
-
-#ifndef _NET_BATMAN_ADV_COMPAT_LINUX_CONTAINER_OF_H_
-#define _NET_BATMAN_ADV_COMPAT_LINUX_CONTAINER_OF_H_
-
-#include <linux/version.h>
-#if LINUX_VERSION_IS_GEQ(5, 16, 0)
-#include_next <linux/container_of.h>
-#else
-#include <linux/kernel.h>
-#endif
-
-#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_CONTAINER_OF_H_ */
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -13,13 +13,13 @@
#include <linux/bug.h>
#include <linux/byteorder/generic.h>
#include <linux/cache.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/if_ether.h>
#include <linux/init.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -10,13 +10,13 @@
#include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/gfp.h>
#include <linux/if_ether.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/minmax.h>
#include <linux/netdevice.h>
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -9,12 +9,12 @@
#include <linux/atomic.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/if_ether.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -10,7 +10,6 @@
#include <linux/atomic.h>
#include <linux/byteorder/generic.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/crc16.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -11,7 +11,6 @@
#include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
@@ -21,6 +20,7 @@
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/netlink.h>
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -9,7 +9,6 @@
#include <linux/atomic.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -10,12 +10,12 @@
#include <linux/atomic.h>
#include <linux/byteorder/generic.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/gfp.h>
#include <linux/if.h>
#include <linux/if_arp.h>
#include <linux/if_ether.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/limits.h>
#include <linux/list.h>
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -10,7 +10,6 @@
#include <linux/atomic.h>
#include <linux/build_bug.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/crc32c.h>
#include <linux/device.h>
#include <linux/errno.h>
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -11,7 +11,6 @@
#include <linux/bitops.h>
#include <linux/bug.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
--- a/net/batman-adv/network-coding.c
+++ b/net/batman-adv/network-coding.c
@@ -11,7 +11,6 @@
#include <linux/bitops.h>
#include <linux/byteorder/generic.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
@@ -20,6 +19,7 @@
#include <linux/init.h>
#include <linux/jhash.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -8,11 +8,11 @@
#include "main.h"
#include <linux/atomic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -10,13 +10,13 @@
#include <linux/atomic.h>
#include <linux/bug.h>
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/netdevice.h>
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -11,7 +11,6 @@
#include <linux/byteorder/generic.h>
#include <linux/cache.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/cpumask.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
@@ -20,6 +19,7 @@
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/tp_meter.c
+++ b/net/batman-adv/tp_meter.c
@@ -12,13 +12,13 @@
#include <linux/byteorder/generic.h>
#include <linux/cache.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/err.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/if_ether.h>
#include <linux/init.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/kthread.h>
#include <linux/limits.h>
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -13,7 +13,6 @@
#include <linux/byteorder/generic.h>
#include <linux/cache.h>
#include <linux/compiler.h>
-#include <linux/container_of.h>
#include <linux/crc32c.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
@@ -22,6 +21,7 @@
#include <linux/init.h>
#include <linux/jhash.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
--- a/net/batman-adv/tvlv.c
+++ b/net/batman-adv/tvlv.c
@@ -7,10 +7,10 @@
#include "main.h"
#include <linux/byteorder/generic.h>
-#include <linux/container_of.h>
#include <linux/etherdevice.h>
#include <linux/gfp.h>
#include <linux/if_ether.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>

View file

@ -0,0 +1,19 @@
From: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Date: Thu, 6 Apr 2023 18:05:50 -0500
Subject: fix batadv_is_cfg80211_netdev
Replace CONFIG_CFG80211 with CPTCFG_CFG80211, which is the correct
macro to use when building under backports.
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -308,8 +308,7 @@ static bool batadv_is_cfg80211_netdev(st
{
if (!net_device)
return false;
-
-#if IS_ENABLED(CONFIG_CFG80211)
+#if IS_ENABLED(CPTCFG_CFG80211)
/* cfg80211 drivers have to set ieee80211_ptr */
if (net_device->ieee80211_ptr)
return true;

View file

@ -0,0 +1,97 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 2 Feb 2024 22:49:00 +0100
Subject: Revert "batman-adv: Switch to linux/sprintf.h"
The original patch requires Linux 6.6.0 or a mac80211 compat header with this
name. But the mac80211 package is currently not providing this header and
OpenWrt main is still using older Linux kernel versions for some targets.
This reverts commit f0fb49c5ab70dfa064f0aa8d1c5d84f65e8cbc86.
--- a/compat-include/linux/sprintf.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) B.A.T.M.A.N. contributors:
- *
- * Marek Lindner, Simon Wunderlich
- *
- * This file contains macros for maintaining compatibility with older versions
- * of the Linux kernel.
- */
-
-#ifndef _NET_BATMAN_ADV_COMPAT_LINUX_SPRINTF_H_
-#define _NET_BATMAN_ADV_COMPAT_LINUX_SPRINTF_H_
-
-#include <linux/version.h>
-#if LINUX_VERSION_IS_GEQ(6, 6, 0)
-#include_next <linux/sprintf.h>
-#else
-#include <linux/kernel.h>
-#endif
-
-#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_SPRINTF_H_ */
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -19,6 +19,7 @@
#include <linux/if_vlan.h>
#include <linux/jhash.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
@@ -29,7 +30,6 @@
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/sprintf.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/workqueue.h>
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -17,6 +17,7 @@
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
+#include <linux/kernel.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/lockdep.h>
@@ -27,7 +28,6 @@
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/sprintf.h>
#include <linux/stddef.h>
#include <linux/udp.h>
#include <net/sock.h>
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -32,7 +32,6 @@
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/sprintf.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/workqueue.h>
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -24,6 +24,7 @@
#include <linux/ip.h>
#include <linux/ipv6.h>
#include <linux/jiffies.h>
+#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/lockdep.h>
#include <linux/netdevice.h>
@@ -34,7 +35,6 @@
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/sprintf.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/types.h>

View file

@ -0,0 +1,69 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 2 Feb 2024 22:49:48 +0100
Subject: Revert "batman-adv: Switch to linux/array_size.h"
The original patch requires Linux 6.7.0 or a mac80211 compat header with this
name. But the mac80211 package is currently not providing this header and
OpenWrt main is still using older Linux kernel versions for some targets.
This reverts commit f33d7f724675544a36b24c77f8d4b95d41252ae2.
--- a/compat-include/linux/array_size.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) B.A.T.M.A.N. contributors:
- *
- * Marek Lindner, Simon Wunderlich
- *
- * This file contains macros for maintaining compatibility with older versions
- * of the Linux kernel.
- */
-
-#ifndef _NET_BATMAN_ADV_COMPAT_LINUX_ARRAY_SIZE_H_
-#define _NET_BATMAN_ADV_COMPAT_LINUX_ARRAY_SIZE_H_
-
-#include <linux/version.h>
-#if LINUX_VERSION_IS_GEQ(6, 7, 0)
-#include_next <linux/array_size.h>
-#else
-#include <linux/kernel.h>
-#endif
-
-#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_ARRAY_SIZE_H_ */
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -6,7 +6,6 @@
#include "main.h"
-#include <linux/array_size.h>
#include <linux/atomic.h>
#include <linux/build_bug.h>
#include <linux/byteorder/generic.h>
@@ -20,6 +19,7 @@
#include <linux/init.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
+#include <linux/kernel.h>
#include <linux/kobject.h>
#include <linux/kref.h>
#include <linux/list.h>
--- a/net/batman-adv/netlink.c
+++ b/net/batman-adv/netlink.c
@@ -7,7 +7,6 @@
#include "netlink.h"
#include "main.h"
-#include <linux/array_size.h>
#include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/bug.h>
@@ -21,6 +20,7 @@
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <linux/init.h>
+#include <linux/kernel.h>
#include <linux/limits.h>
#include <linux/list.h>
#include <linux/minmax.h>

View file

@ -0,0 +1,121 @@
/* Please avoid adding hacks here - instead add it to mac80211/backports.git */
#undef CONFIG_MODULE_STRIPPED
#include <linux/version.h> /* LINUX_VERSION_CODE */
#include <linux/types.h>
#if LINUX_VERSION_IS_LESS(6, 0, 0)
#define __vstring(item, fmt, ap) __dynamic_array(char, item, 256)
#define __assign_vstr(dst, fmt, va) \
WARN_ON_ONCE(vsnprintf(__get_dynamic_array(dst), 256, fmt, *va) >= 256)
#endif /* LINUX_VERSION_IS_LESS(6, 0, 0) */
#if LINUX_VERSION_IS_LESS(6, 2, 0)
#include <linux/random.h>
#define genl_split_ops genl_ops
static inline u32 batadv_get_random_u32_below(u32 ep_ro)
{
return prandom_u32_max(ep_ro);
}
#define get_random_u32_below batadv_get_random_u32_below
#endif /* LINUX_VERSION_IS_LESS(6, 2, 0) */
#if LINUX_VERSION_IS_LESS(6, 4, 0) && \
!(LINUX_VERSION_IS_GEQ(5, 10, 205) && LINUX_VERSION_IS_LESS(5, 11, 0)) && \
!(LINUX_VERSION_IS_GEQ(5, 15, 144) && LINUX_VERSION_IS_LESS(5, 16, 0)) && \
!(LINUX_VERSION_IS_GEQ(6, 1, 69) && LINUX_VERSION_IS_LESS(6, 2, 0))
#include <linux/if_vlan.h>
/* Prefer this version in TX path, instead of
* skb_reset_mac_header() + vlan_eth_hdr()
*/
static inline struct vlan_ethhdr *skb_vlan_eth_hdr(const struct sk_buff *skb)
{
return (struct vlan_ethhdr *)skb->data;
}
#endif /* LINUX_VERSION_IS_LESS(6, 4, 0) */
/* <DECLARE_EWMA> */
#include <linux/version.h>
#include_next <linux/average.h>
#include <linux/bug.h>
#ifdef DECLARE_EWMA
#undef DECLARE_EWMA
#endif /* DECLARE_EWMA */
/*
* Exponentially weighted moving average (EWMA)
*
* This implements a fixed-precision EWMA algorithm, with both the
* precision and fall-off coefficient determined at compile-time
* and built into the generated helper funtions.
*
* The first argument to the macro is the name that will be used
* for the struct and helper functions.
*
* The second argument, the precision, expresses how many bits are
* used for the fractional part of the fixed-precision values.
*
* The third argument, the weight reciprocal, determines how the
* new values will be weighed vs. the old state, new values will
* get weight 1/weight_rcp and old values 1-1/weight_rcp. Note
* that this parameter must be a power of two for efficiency.
*/
#define DECLARE_EWMA(name, _precision, _weight_rcp) \
struct ewma_##name { \
unsigned long internal; \
}; \
static inline void ewma_##name##_init(struct ewma_##name *e) \
{ \
BUILD_BUG_ON(!__builtin_constant_p(_precision)); \
BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp)); \
/* \
* Even if you want to feed it just 0/1 you should have \
* some bits for the non-fractional part... \
*/ \
BUILD_BUG_ON((_precision) > 30); \
BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp); \
e->internal = 0; \
} \
static inline unsigned long \
ewma_##name##_read(struct ewma_##name *e) \
{ \
BUILD_BUG_ON(!__builtin_constant_p(_precision)); \
BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp)); \
BUILD_BUG_ON((_precision) > 30); \
BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp); \
return e->internal >> (_precision); \
} \
static inline void ewma_##name##_add(struct ewma_##name *e, \
unsigned long val) \
{ \
unsigned long internal = READ_ONCE(e->internal); \
unsigned long weight_rcp = ilog2(_weight_rcp); \
unsigned long precision = _precision; \
\
BUILD_BUG_ON(!__builtin_constant_p(_precision)); \
BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp)); \
BUILD_BUG_ON((_precision) > 30); \
BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp); \
\
WRITE_ONCE(e->internal, internal ? \
(((internal << weight_rcp) - internal) + \
(val << precision)) >> weight_rcp : \
(val << precision)); \
}
/* </DECLARE_EWMA> */

View file

@ -6,33 +6,29 @@
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=batmand PKG_NAME:=batmand
PKG_REV:=1439
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=2
PKG_EXTRA_CFLAGS=-DDEBUG_MALLOC -DMEMORY_USAGE -DPROFILE_DATA -DREVISION_VERSION=\"\ rv$(PKG_REV)\"
PKG_SOURCE_PROTO:=svn PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_REV) PKG_SOURCE_URL:=https://git.open-mesh.org/batmand.git
PKG_SOURCE_SUBDIR:=$(if $(PKG_BRANCH),$(PKG_BRANCH),$(PKG_NAME))-$(PKG_VERSION) PKG_REV:=b67a7087b51d7a5e90d27ac39116d1f57257c86e
PKG_SOURCE_URL:=http://downloads.open-mesh.org/svn/batman/trunk/ PKG_VERSION:=1440
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz PKG_RELEASE:=1
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
PKG_KMOD_BUILD_DIR:=$(PKG_BUILD_DIR)/batman/linux/modules PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
PKG_MIRROR_HASH:=ceb8e0e399f79b1b663594fcf9642e1efc40e696a7604daf709c77da9b6ec52f
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/batmand/Default
URL:=http://www.open-mesh.org/
MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
endef
define Package/batmand define Package/batmand
$(call Package/batmand/Default) URL:=https://www.open-mesh.org/
MAINTAINER:=Corinna "Elektra" Aichele <onelektra@gmx.net>
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
@ -44,91 +40,16 @@ define Package/batmand/description
B.A.T.M.A.N. layer 3 routing daemon B.A.T.M.A.N. layer 3 routing daemon
endef endef
define Package/vis MAKE_FLAGS += \
$(call Package/batmand/Default) EXTRA_CFLAGS='-DDEBUG_MALLOC -DMEMORY_USAGE -DPROFILE_DATA -DREVISION_VERSION=\"\ rv$(PKG_REV)\" -D_GNU_SOURCE' \
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+libpthread
TITLE:=visualization server for B.A.T.M.A.N. layer 3
endef
define Package/vis/description
visualization server for B.A.T.M.A.N. layer 3
endef
define KernelPackage/batgat
$(call Package/batmand/Default)
SUBMENU:=Network Support
DEPENDS:=+batmand @BROKEN
TITLE:=B.A.T.M.A.N. gateway module
FILES:=$(PKG_KMOD_BUILD_DIR)/batgat.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,batgat)
endef
define KernelPackage/batgat/description
Kernel gateway module for B.A.T.M.A.N. for better tunnel performance
endef
MAKE_BATMAND_ARGS += \
EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
CCFLAGS="$(TARGET_CFLAGS)" \
OFLAGS="$(TARGET_CFLAGS)" \
REVISION="$(PKG_REV)" \ REVISION="$(PKG_REV)" \
CC="$(TARGET_CC)" \ CC="$(TARGET_CC)" \
NODEBUG=1 \
UNAME="Linux" \ UNAME="Linux" \
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ batmand
STRIP="/bin/true" \
batmand install
MAKE_VIS_ARGS += \
EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
CCFLAGS="$(TARGET_CFLAGS)" \
OFLAGS="$(TARGET_CFLAGS)" \
REVISION="$(PKG_REV)" \
CC="$(TARGET_CC)" \
NODEBUG=1 \
UNAME="Linux" \
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
STRIP="/bin/true" \
vis install
MAKE_BATGAT_ARGS += \
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
PATH="$(TARGET_PATH)" \
SUBDIRS="$(PKG_KMOD_BUILD_DIR)" \
LINUX_VERSION="$(LINUX_VERSION)" \
REVISION="$(PKG_REV)" modules
define Build/Configure
endef
ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_batmand),)
BUILD_BATMAND := $(MAKE) -C $(PKG_BUILD_DIR)/batman $(MAKE_BATMAND_ARGS)
endif
ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_vis),)
BUILD_VIS := $(MAKE) -C $(PKG_BUILD_DIR)/vis $(MAKE_VIS_ARGS)
endif
ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_kmod-batgat),)
BUILD_BATGAT := $(MAKE) -C "$(LINUX_DIR)" $(MAKE_BATGAT_ARGS)
endif
define Build/Compile
$(BUILD_BATMAND)
$(BUILD_VIS)
cp $(PKG_KMOD_BUILD_DIR)/Makefile.kbuild $(PKG_KMOD_BUILD_DIR)/Makefile
$(BUILD_BATGAT)
endef
define Package/batmand/install define Package/batmand/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/batmand $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/batmand $(1)/usr/sbin/
$(INSTALL_BIN) ./files/etc/init.d/batmand $(1)/etc/init.d $(INSTALL_BIN) ./files/etc/init.d/batmand $(1)/etc/init.d
$(INSTALL_DATA) ./files/etc/config/batmand $(1)/etc/config $(INSTALL_DATA) ./files/etc/config/batmand $(1)/etc/config
endef endef
@ -137,17 +58,4 @@ define Package/batmand/conffiles
/etc/config/batmand /etc/config/batmand
endef endef
define Package/vis/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/vis $(1)/usr/sbin/
$(INSTALL_BIN) ./files/etc/init.d/vis $(1)/etc/init.d
$(INSTALL_DATA) ./files/etc/config/vis $(1)/etc/config
endef
define Package/vis/conffiles
/etc/config/vis
endef
$(eval $(call BuildPackage,batmand)) $(eval $(call BuildPackage,batmand))
$(eval $(call BuildPackage,vis))
$(eval $(call KernelPackage,batgat))

View file

@ -1,12 +1,11 @@
config batmand general config batmand general
option interface ath0 option interface ath0
option hna option hna
option gateway_class option gateway_class
option originator_interval option originator_interval
option preferred_gateway option preferred_gateway
option routing_class option routing_class
option visualisation_srv option visualisation_srv
option policy_routing_script option policy_routing_script
option disable_client_nat option disable_client_nat
option disable_aggregation option disable_aggregation

View file

@ -1,27 +1,44 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=90 START=90
USE_PROCD=1
start () { batmand_start() {
interface=$(uci get batmand.general.interface) local config="$1"
local batman_args
local interface
local hnas
local gateway_class
local originator_interval
local preferred_gateway
local routing_class
local visualisation_srv
local local policy_routing_script
local disable_client_nat
local disable_aggregation
[ "$config" = "general" ] || return 1
config_get interface "$config" interface
if [ "$interface" = "" ]; then if [ "$interface" = "" ]; then
echo $1 Error, you must specify at least a network interface echo $1 Error, you must specify at least a network interface
exit return 1
fi fi
hnas=$(uci get batmand.general.hna)
gateway_class=$(uci get batmand.general.gateway_class) config_get hnas "$config" hna
originator_interval=$(uci get batmand.general.originator_interval) config_get gateway_class "$config" gateway_class
preferred_gateway=$(uci get batmand.general.preferred_gateway) config_get originator_interval "$config" originator_interval
routing_class=$(uci get batmand.general.routing_class) config_get preferred_gateway "$config" preferred_gateway
visualisation_srv=$(uci get batmand.general.visualisation_srv) config_get routing_class "$config" routing_class
policy_routing_script=$(uci get batmand.general.policy_routing_script) config_get visualisation_srv "$config" visualisation_srv
disable_client_nat=$(uci get batmand.general.disable_client_nat) config_get policy_routing_script "$config" policy_routing_script
disable_aggregation=$(uci get batmand.general.disable_aggregation) config_get disable_client_nat "$config" disable_client_nat
config_get disable_aggregation "$config" disable_aggregation
batman_args="" batman_args=""
for hna in $hnas for hna in $hnas; do
do batman_args=${batman_args}'-a '$hna' '
batman_args=${batman_args}'-a '$hna' ' done
done
if [ $gateway_class ]; then if [ $gateway_class ]; then
batman_args=${batman_args}'-g '$gateway_class' ' batman_args=${batman_args}'-g '$gateway_class' '
@ -38,29 +55,37 @@ start () {
if [ $routing_class ]; then if [ $routing_class ]; then
batman_args=${batman_args}'-r '$routing_class' ' batman_args=${batman_args}'-r '$routing_class' '
fi fi
if [ $visualisation_srv ]; then if [ $visualisation_srv ]; then
batman_args=${batman_args}'-s '$visualisation_srv' ' batman_args=${batman_args}'-s '$visualisation_srv' '
fi fi
if [ $policy_routing_script ]; then if [ $policy_routing_script ]; then
batman_args=${batman_args}'--policy-routing-script '$policy_routing_script' ' batman_args=${batman_args}'--policy-routing-script '$policy_routing_script' '
fi fi
if [ $disable_client_nat ]; then if [ $disable_client_nat ]; then
batman_args=${batman_args}'--disable-client-nat ' batman_args=${batman_args}'--disable-client-nat '
fi fi
if [ $disable_aggregation ]; then if [ $disable_aggregation ]; then
batman_args=${batman_args}'--disable-aggregation ' batman_args=${batman_args}'--disable-aggregation '
fi fi
batman_args=${batman_args}$interface procd_open_instance "${config}"
batmand $batman_args >/dev/null 2>&1 procd_set_param command /usr/sbin/batmand
procd_append_param command --no-detach
procd_append_param command ${batman_args}
procd_append_param command ${interface}
procd_set_param netdev ${interface}
procd_close_instance
} }
stop () { start_service() {
killall batmand config_load "batmand"
config_foreach batmand_start batmand
} }
service_triggers() {
procd_add_reload_trigger "batmand"
}

View file

@ -1,19 +0,0 @@
#!/bin/sh /etc/rc.common
START=90
start () {
interface=$(uci get vis.general.interface)
if [ "$interface" = "" ]; then
echo $1 Error, you must specify at least a network interface
exit
fi
vis_args=$interface
vis $vis_args >/dev/null 2>&1
}
stop () {
killall vis
}

View file

@ -0,0 +1,66 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Sun, 1 Dec 2013 14:39:00 +0100
Subject: Allow one to disable forking to background in debug_mode 0
---
posix/init.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
--- a/posix/init.c
+++ b/posix/init.c
@@ -44,6 +44,7 @@
#define IOCSETDEV 1
int8_t stop;
+int no_detach = 0;
@@ -159,6 +160,7 @@ void apply_init_args( int argc, char *ar
{"purge-timeout", required_argument, 0, 'q'},
{"disable-aggregation", no_argument, 0, 'x'},
{"disable-client-nat", no_argument, 0, 'z'},
+ {"no-detach", no_argument, 0, 'D'},
{0, 0, 0, 0}
};
@@ -169,7 +171,7 @@ void apply_init_args( int argc, char *ar
if ( strstr( SOURCE_VERSION, "-" ) != NULL )
printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" );
- while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vV", long_options, &option_index ) ) != -1 ) {
+ while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vVD", long_options, &option_index ) ) != -1 ) {
switch ( optchar ) {
@@ -381,6 +383,11 @@ void apply_init_args( int argc, char *ar
found_args++;
break;
+ case 'D':
+ no_detach = 1;
+ found_args++;
+ break;
+
case 'h':
default:
usage();
@@ -539,12 +546,14 @@ void apply_init_args( int argc, char *ar
/* daemonize */
if (debug_level == 0) {
- if (my_daemon() < 0) {
+ if (!no_detach) {
+ if (my_daemon() < 0) {
- printf("Error - can't fork to background: %s\n", strerror(errno));
- restore_defaults();
- exit(EXIT_FAILURE);
+ printf("Error - can't fork to background: %s\n", strerror(errno));
+ restore_defaults();
+ exit(EXIT_FAILURE);
+ }
}
openlog("batmand", LOG_PID, LOG_DAEMON);

View file

@ -1,47 +0,0 @@
---
batman/linux/modules/gateway.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
--- batmand-r1439.orig/batman/linux/modules/gateway.c
+++ batmand-r1439/batman/linux/modules/gateway.c
@@ -29,6 +29,7 @@ static struct class *batman_class;
static int batgat_open(struct inode *inode, struct file *filp);
static int batgat_release(struct inode *inode, struct file *file);
static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg );
+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg );
static void udp_data_ready(struct sock *sk, int len);
@@ -53,7 +54,11 @@ static int proc_clients_read(char *buf,
static struct file_operations fops = {
.open = batgat_open,
.release = batgat_release,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ .unlocked_ioctl = batgat_ioctl_unlocked,
+#else
.ioctl = batgat_ioctl,
+#endif
};
@@ -166,6 +171,20 @@ static int batgat_release(struct inode *
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+#include <linux/smp_lock.h>
+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg )
+{
+ int ret;
+
+ lock_kernel();
+ ret = batgat_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
+ unlock_kernel();
+
+ return ret;
+}
+#endif
+
static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg )
{
uint8_t tmp_ip[4];

View file

@ -1,531 +0,0 @@
---------------------------------------------------------------------
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
---------------------------------------------------------------------
*** Original documentation for BIRD Daemon can be found here: http://bird.network.cz/?get_doc
*** Some interesting examples are placed in BIRD daemon Gitlab page: https://gitlab.labs.nic.cz/labs/bird/wikis/home
*** If you want to add new options to bird*-openwrt packages,
*** feel free to make a pull request it in: https://github.com/openwrt-routing/packages/bird-openwrt
*** or email me and ask for it: eloicaso@openmailbox.org
- Options used in /etc/config/birdX -
---------------------------------------------------------------------
CONFIGURATION SECTION 1: 'bird'
---------------------------------------------------------------------
Example
--
config bird 'bird'
option use_UCI_config '1'
option UCI_config_file '/tmp/bird4.conf'
--
* use_UCI_config: Boolean
This option allows you to use UCI configuration translation file instead of the original Bird one. If true/1, birdX init.d script will use the translation placed in "UCI_config_file". Otherwise, it will use the default "/etc/birdX.conf" configuration.
[Hint] This could be used to allow multiple configurations and swap them easily.
Default: 0
* UCI_config_file: String (File path)
This option sets where will be placed the translation of the UCI configuration file.
Default: /tmp/birdX.conf
---------------------------------------------------------------------
CONFIGURATION SECTION 2: 'global NAME'
---------------------------------------------------------------------
Example
--
config global 'global'
option log_file '/tmp/bird4.log'
option log 'all'
option debug 'off'
option router_id '172.16.1.6'
--
* log_file: String (File path)
This option sets the path of the file used to save Bird Log and Debug's information.
Default: /tmp/birdX.log
* log: String/Enumeration (all/off, info, warning, error, fatal, debug, trace, remote, auth, bug)
This option allows you to set which information you want to save in the
[HINT] Use the enumeration like: { info, waning, error }
Default: all
* debug: String/Enumeration ( all/off, states, routes, filters, interfaces, events, packets)
This option allows you to set which debug information will be saved in the "log_file" file.
[HINT] Use the enumeration like: { info, waning, error }
Default: off
* router_id: IP Address
This option sets which will be the Router ID. Usually is the lowest IP address (not loopback) among the existing interfaces.
[HINT] In IPv4 this field is optional. In IPv6 is mandatory.
* listen_bgp_addr: IP Address
This option sets the IP address that Bird BGP instances will listen by default.
Default: 0.0.0.0
* listen_bgp_port: Integer (Port)
This option sets the port that Bird BGP instances will listen by default.
Default: 179
[IPv6 only]
* listen_bgp_dual: Boolean
This option sets if Bird6 BGP instances will listen only to IPv6 or IPv4/6 BGP routes.
---------------------------------------------------------------------
CONFIGURATION SECTION 3: 'table'
---------------------------------------------------------------------
Example
--
config table
option name 'aux'
--
* name: String
This option allows you to set the name of the auxiliar kernel tables used for Bird.
---------------------------------------------------------------------
CONFIGURATION SECTION 4: 'kernel NAME'
---------------------------------------------------------------------
Example
--
config kernel kernel1
option table 'aux'
option import 'all'
option export 'all'
option kernel_table '100'
option scan_time '10'
option learn '1'
option persist '0'
option disabled '0'
--
* table: String
Set an auxiliary table for the current kernel routing instance. This table MUST exist as a SECTION 3 instance.
[HINT] If there is an Kernel protocol instance that uses the "main" kernel table (not using table/kernel_table options), this should be included before the rest of Kernel instances (which will use auxiliary tables).
* import: String/Filter function
This option delimits which routes coming from other protocols will be accepted. This option allows filters in different manners:
1. All/none: allows to import all the routes or none of them.
2. Filter name: [import 'bgp_filter_in'] the protocol will use the filter with the Filter name. (Needs an existing filter declared in the UCI configuration file)
* export: String/Filter function
This option delimits which routes going out from the protocol. This option allows filters in different manners:
1. All/none: allows to export all the routes or none of them.
2. Filter name: [export 'bgp_filter_out'] the protocol will use the filter with the 'Filter name'. (Needs an existing filter declared in the UCI configuration file)
* kernel_table: Integer
This option sets the identification number of the Kernel table that will be used instead of the main one.
Default: main table (254)
* scan_time: Integer
This option sets the time between checks to the selected kernel table.
* learn: Boolean
Set if the kernel table will add the routes from other routing protocols or the system administrator.
* persist: Boolean
Set if Bird Daemon will save the known routes when exiting or if it will clean the routing table.
* disable: Boolean
This option sets if the protocol will be used or dismissed.
Default: 0
---------------------------------------------------------------------
CONFIGURATION SECTION 5: 'device NAME'
---------------------------------------------------------------------
Example
--
config device device1
option scan_time '10'
option disabled '0'
--
* scan_time: Integer
This option sets the time between checks to the selected kernel table.
* disable: Boolean
This option sets if the protocol will be used or dismissed.
Default: 0
CONFIGURATION SECTION 6: 'static NAME'
Example
--
config static static1
option table 'aux'
option disabled '0'
--
* table: String
Set an auxiliary table for the current static instance. This table MUST exist as a SECTION 3 instance.
[HINT] If there is an static instance that uses the "main" kernel table (not using table/kernel_table options), this should be included before the rest of static instances (which will use auxiliary tables).
* disable: Boolean
This option sets if the protocol will be used or dismissed.
Default: 0
---------------------------------------------------------------------
CONFIGURATION SECTION 7 & 8: 'bgp NAME' & 'bgp_template NAME'
---------------------------------------------------------------------
This section merges two different configuration sections: bgp instances and templates. The first one is the basic bgp configuration part and the second one is the template used to minimize the number of options written in the configuration file. Both configuration sections has the same options, but when Bird found duplicities, the bgp instance has priority over the template.
Examples
-- instance --
config bgp bgp1
option template 'bgp_common'
option description 'Description of the BGP instance'
option neighbor_address '172.16.1.5'
option neighbor_as '65530'
option source_address '172.16.1.6'
option next_hop_self '0'
option next_hop_keep '0'
option rr_client '1'
option rr_cluster_id '172.16.1.6'
--
-- template --
config bgp_template bgp_common
option table 'aux'
option import 'all'
option export 'all'
option local_address '172.16.1.6'
option local_as '65001'
option import_limit '100'
option import_limit_action 'warn'
option export_limit '100'
option export_limit_action 'warn'
option receive_limit '100'
option receive_limit_action 'warn'
option disabled '0'
--
* template: String
This option states the template used for current BGP instance. This template MUST exist as a SECTION 8 instance.
* description: String
This option allows to add a description of the bgp instance and its function
* local_addr: IP address
This optional option allows to set the IP source of our Autonomous System (AS).
* local_as: Integer
This option allows to set the identification number of our AS number. This option is mandatory for each BGP instance.
* neighbor_addr: IP address
Each BGP instance has a neighbor connected to. This option allows to set its IP address
* neighbor_as: Integer
Each BGP instance has a neighbor connected to. This option allows to set its AS ID.
* next_hop_self: Boolean
If this option is true, BGP protocol will avoid to calculate the next hop and always advertise own "Router id" IP .
Default: 0
* next_hop_keep: Boolean
If this option is true, BGP will always use the received next_hop information to redirect the route.
Default: 0
* rr_client: Boolean
IF this option is true, the router will be set as Route Reflector and will treat the rest of the routers as RR clients.
Default: 0
* rr_cluster_id: Integer
This option sets the identification number of the RR cluster. All the nodes in a cluster needs this option and share the same number.
Default: Router id
* import_limit: Integer
This option sets the limit of routes that a protocol can import until take the action indicated in the import_limit_action.
import_limit also counts filtered routes (even dropped).
Default: 0 (no limit)
* import_limit_action: String
This option allows to decide the action to take when reached the limit of imported routes.
Actions are: warn, block, restart, disable
* export_limit: Integer
This option sets the limit of routes that a protocol can export until take the action indicated in the export_limit_action.
Default: 0 (no limit)
* export_limit_action: String
This option allows to decide the action to take when reached the limit of exported routes.
Actions are: warn, block, restart, disable
* receive_limit: Integer
This option sets the limit of routes that a protocol can receive until take the action indicated in the receive_limit_action. receive_limit only counts accepted routes from the protocol.
Default: 0 (no limit)
* receive_limit_action: String
This option allows to decide the action to take when reached the limit of received routes.
Actions are: warn, block, restart, disable
* disable: Boolean
This option sets if the protocol will be used or dismissed.
Default: 0
---------------------------------------------------------------------
CONFIGURATION SECTION 9: 'route'
---------------------------------------------------------------------
Example
--
config route
option instance 'static1'
option type 'router'
option prefix '192.168.9.0/24'
option via '10.99.105.159'
config route
option instance 'static1'
option type 'special'
option prefix '192.168.2.0/24'
option attribute 'unreachable'
config route
option instance 'static1'
option type 'iface'
option prefix '192.168.3.0/24'
option iface 'mgmt0'
config route
option instance 'static1'
option type 'recursive'
option prefix '192.168.4.0/24'
option ip '192.168.1.1'
config route
option instance 'static1'
option type 'multipath'
option prefix '192.168.30.0/24'
list l_via '172.16.1.5'
list l_via '172.16.1.6'
--
* instance: String
This option indicates the route that the static protocol instance will apply.
* type: String
This option states the type of route that will be applied. Also defines the options available for it.
Types are: 'router', 'special', 'iface', 'recursive' or 'multipath'.
* prefix: IP address/network
This option allows to define the network that you want to define.
[router only]
* via: IP Address
This option indicates the IP address of the neighbor router where the routes will pass through.
[special only]
* attribute: String
This option will mark the behaviour of the route.
Attribures are: 'blackhole', 'unreachable' or 'prohibit'.
[iface only]
* iface: String
This option indicates the interface used to redirect the BGP routes. Careful, the interface MUST exist, or Bird will fail to start.
[recursive only]
* ip: IP address
This option states the IP address which the next hop will depend on.
[multipath only][This is a list, not an option. Use it as in the example, or check the UCI configuration documentation.]
* l_via: IP address
This list of IPs specifies the list (following the sequence) of routers that the route will follow as next hops.
---------------------------------------------------------------------
CONFIGURATION SECTION 10: 'filter NAME'
---------------------------------------------------------------------
Filters are written in separated files. Its syntax can be found in http://bird.network.cz/?get_doc&f=bird-5.html
The content of each filter file is copied in the birdX.conf file without checking its syntax.
Example
--
config filter 'firstFilter'
option type 'bgp'
option instance 'bgp1'
option file_path '/var/filters/f1'
--
* type: String
The type indicates to which routing protocol is the filter directed to. Currently only BGP is available.
* instance: String
This option indicates the filter that the routing protocol instance will apply.
* file_path: String (File path)
This option specifies the path to the filter file to be used in the routing protocol.
---------------------------------------------------------------------
COMPLETE CONFIGURATION EXAMPLE:
---------------------------------------------------------------------
config bird 'bird'
option use_UCI_config '1'
#Caution! Enabling this option, Bird will translate this
#UCI file and use it instead of /etc/bird4.conf
option UCI_config_file '/tmp/bird4.conf'
#If you enable useUCIconfig, UCIconfigFile will be Bird's
#configuration file location.
config global 'global'
option log_file '/tmp/bird4.log'
option log 'all'
option debug 'off'
option router_id '172.16.1.6'
config table
option name 'aux'
config kernel kernel1
option table 'aux'
option import 'all'
option export 'all'
option kernel_table '100'
option scan_time '10'
option learn '1'
option persist '0'
option disabled '0'
config device device1
option scan_time '10'
option disabled '0'
config static static1
option table 'aux'
option disabled '0'
config bgp bgp1
option template 'bgp_common'
option description 'Description of the BGP instance'
option neighbor_address '172.16.1.5'
option neighbor_as '65530'
option source_address '172.16.1.6'
option next_hop_self '0'
option next_hop_keep '0'
option rr_client '1'
option rr_cluster_id '172.16.1.6'
config bgp_template bgp_common
option table 'aux'
option import 'all'
option export 'all'
option local_address '172.16.1.6'
option local_as '65001'
option import_limit '100'
option import_limit_action 'warn'
option export_limit '100'
option export_limit_action 'warn'
option receive_limit '100'
option receive_limit_action 'warn'
option disabled '0'
#config ospf ospf1
# option cfg1583compat '1'
#
#config ospf_area '0.0.0.0'
# option instance 'ospf1'
# option stub '0'
#
#config ospf_interface '*'
# option area '0.0.0.0'
# option cost '100'
# option type 'broadcast'
# option hello '5'
# option password '1'
#
#config ospf_password '1'
# option authentication 'cryptographic'
# option passphrase '1234'
#
#config ospf_networks
# option area '0.0.0.0'
# list prefix '10.0.0.0/24'
#
#config ospf_hidden_networks
# option area '0.0.0.0'
# option prefix '12.0.0.0/24'
#
#config ospf_stubnet '11.0.0.0/24'
# option area '0.0.0.0'
# option hidden '0'
# option summary '0'
# option cost '101'
#
config route
option instance 'static1'
option type 'router'
option prefix '192.168.9.0/24'
option via '10.99.105.159'
config route
option instance 'static1'
option type 'special'
option prefix '192.168.2.0/24'
option attribute 'unreachable'
config route
option instance 'static1'
option type 'iface'
option prefix '192.168.3.0/24'
option iface 'mgmt0'
config route
option instance 'static1'
option type 'recursive'
option prefix '192.168.4.0/24'
option ip '192.168.1.1'
config route
option instance 'static1'
option type 'multipath'
option prefix '192.168.30.0/24'
list l_via '172.16.1.5'
list l_via '172.16.1.6'
config filter 'firstFilter'
option type 'bgp'
option instance 'bgp1'
option file_path '/var/filters/f1'

View file

@ -1,91 +0,0 @@
# Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
# BGP/Bird integration with OpenWRT and QMP
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
BIRD:=bird4
PKG_NAME:=$(BIRD)-openwrt
PKG_RELEASE:=0.2
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=GPL-3.0+
uci:=$(BIRD)-uci
luci:=luci-app-$(BIRD)
include $(INCLUDE_DIR)/package.mk
define Build/Prepare
endef
define Build/Compile
endef
define Package/$(uci)
TITLE:=The BIRD UCI module
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
MAINTAINER:=Eloi Carbo <eloicaso@openmailbox.org>
URL:=https://github.com/eloicaso/bird4-openwrt/
DEPENDS:=+$(BIRD) +libuci +uci
endef
define Package/$(uci)/description
$(BIRD) UCI integration module
endef
define Package/$(uci)/install
$(INSTALL_DIR) $(1)/etc/$(BIRD)/init.d
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_BIN) ./src/init.d/$(BIRD) $(1)/etc/$(BIRD)/init.d/
$(CP) ./src/uci-defaults/$(uci)-install-init.d $(1)/etc/$(BIRD)/init.d/
$(CP) ./src/config/$(BIRD) $(1)/etc/config/
endef
define Package/$(uci)/postinst
#!/bin/sh
if [ -z $${IPKG_INSTROOT} ]; then
( . /etc/bird4/init.d/bird4-uci-install-init.d ) && rm -f /etc/bird4/init.d/bird4-uci-install-init.d
fi
endef
$(eval $(call BuildPackage,$(uci)))
define Package/$(luci)
TITLE:=LuCI support for $(BIRD)
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=3. Applications
MAINTAINER:=Eloi Carbo <eloicaso@openmailbox.org>
URL:=https://github.com/eloicaso/bird4-openwrt/
DEPENDS:=+$(BIRD)-uci +luci-base
endef
define Package/$(luci)/description
$(BIRD) application for LuCI
endef
define Package/$(luci)/install
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/$(BIRD)/
$(CP) ./src/model/* $(1)/usr/lib/lua/luci/model/cbi/$(BIRD)/
$(CP) ./src/controller/* $(1)/usr/lib/lua/luci/controller/
endef
$(eval $(call BuildPackage,$(luci)))

View file

@ -1,67 +0,0 @@
config bird 'bird'
option use_UCI_config '1'
#Caution! Enabling this option, Bird will translate this
#UCI file and use it instead of /etc/bird4.conf
option UCI_config_file '/tmp/bird4.conf'
#If you enable useUCIconfig, UCIconfigFile will be Bird's
#configuration file location.
config global 'global'
option log_file '/tmp/bird4.log'
option log 'all'
option debug 'off'
option router_id '172.16.1.6'
config table
option name 'aux'
config kernel kernel1
option table 'aux'
option import 'all'
option export 'all'
option kernel_table '100'
option scan_time '10'
option learn '1'
option persist '0'
option disabled '0'
config device device1
option scan_time '10'
option disabled '0'
config static static1
option table 'aux'
option disabled '0'
config bgp bgp1
option template 'bgp_common'
option description 'Description of the BGP instance'
option neighbor_address '172.16.1.5'
option neighbor_as '65530'
option source_address '172.16.1.6'
option next_hop_self '0'
option next_hop_keep '0'
option rr_client '1'
option rr_cluster_id '172.16.1.6'
config bgp_template bgp_common
option table 'aux'
option import 'all'
option export 'all'
option local_address '172.16.1.6'
option local_as '65001'
option import_limit '100'
option import_limit_action 'warn'
option export_limit '100'
option export_limit_action 'warn'
option receive_limit '100'
option receive_limit_action 'warn'
option disabled '0'
config route
option instance 'static1'
option type 'router'
option prefix '192.168.9.0/24'
option via '10.99.105.159'

View file

@ -1,27 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
module("luci.controller.bird4", package.seeall)
function index()
entry({"admin","network","bird4"}, cbi("bird4/overview"), "Bird4", 0).dependent=false
entry({"admin","network","bird4","overview"}, cbi("bird4/overview"), "Overview", 1).dependent=false
entry({"admin","network","bird4","proto_general"}, cbi("bird4/gen_proto"), "General protocols", 3).dependent=false
entry({"admin","network","bird4","proto_bgp"}, cbi("bird4/bgp_proto"), "BGP Protocol", 4).dependent=false
end

View file

@ -1,411 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
# BGP/Bird integration with OpenWRT and QMP
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
BIRD="bird4"
BIRD_CONFIG="/etc/$BIRD.conf"
START=99
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid"
BIRD_BIN="/usr/sbin/$BIRD"
# Function: writeToConfig $1
# $1 string.
# Allows to write in the $BIRD_CONFIG file, the string $1. This function does not check the $1 string.
# Example: writeToConfig "value: $N"
writeToConfig() {
echo "$1" >> $BIRD_CONFIG
}
# Function: write $1 $2
# $1 string. $2 string.
# This function checks if $2 is empty. If not, it writes the string $1 in the $BIRD_CONFIG file.
# Use write function to check if $1, value found inside $2, is not empty and can be written in the configuration file.
# Example: N=""; write "value: $N" $N;
write() {
[ -n "$2" ] && writeToConfig "$1"
}
#Function: write_bool $1 $2
# $1 string; $2 boolean
# This function checks if $2 is true or false and write the $1 string into $BIRD_CONFIG file.
# The function writes a # before the $2 string if its false.
# Example: local N=0; write_bool $N
write_bool() {
[ "$2" == 0 ] && writeToConfig "# $1;" || writeToConfig " $1;"
}
# Function: get $1 $2
# $1 string. $2 string
# This function uses the external UCI function "config_get $result $section $option" to obtain a string value from UCI config file.
# To use this function, use the same name of the UCI option for the variable.
# Example: UCI (option id 'abcd'); local id; get id $section
get() {
config_get $1 $2 $1
}
# Function: get_bool $1 $2
# $1 boolean. $2 string
# This function uses the external UCI function "config_get_bool $result $section $option" to obtain a boolean value from UCI config file.
# To use this function, use the same name of the UCI option for the variable $1.
# Example: UCI (option use_ipv6 '1'); local use_ipv6; get use_ipv6 $section
get_bool() {
config_get_bool $1 $2 $1
}
# Function: multipath_list $1
# $1 string
# This function writes the $1 string in the multipath routes.
multipath_list() {
write " via $1" $1
}
# Function: prepare_tables $1
# $1 string
# This function gets each "table" section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI table section
prepare_tables() {
local section="$1"; local name
get name $section
write "table $name;" $name
}
# Function: prepare_global $1
# $1 string
# This function gets each "global" section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI global section. prepare_global is the first configuration set in the bird4.conf and removes the old file.
prepare_global () {
local section="$1"
local log_file; local log; local debug; local router_id; local table
# Remove old configuration file
rm -f "$BIRD_CONFIG"
get log_file $section
get log $section
get debug $section
get router_id $section
get table $section
# First line of the NEW configuration file
echo "#Bird4 configuration using UCI:" > $BIRD_CONFIG
writeToConfig " "
[ -n "$log_file" -a -n "$log" ] && writeToConfig 'log "'$log_file'" '$log';'
write "debug protocols $debug;" $debug
writeToConfig " "
writeToConfig "#Router ID"
write "router id $router_id;" $router_id
writeToConfig " "
writeToConfig "#Secondary tables"
config_foreach prepare_tables 'table'
writeToConfig " "
}
# Function: prepare_routes $1
# $1 string
# This function gets each "route" section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI route section. Each type of route has its own treatment.
prepare_routes() {
local instance; local prefix; local via; local type
local section="$1"
local protoInstance="$2"
get instance $section
if [ "$instance" = "$protoInstance" ]; then
get type $section
case "$type" in
"router")
get prefix $section
get via $section
[ -n "$prefix" -a -n "$via" ] && writeToConfig " route $prefix via $via;"
;;
"special")
get prefix $section
get attribute $section
[ -n "$prefix" -a -n "$attribute" ] && writeToConfig " route $prefix $attribute;"
;;
"iface")
get prefix $section
get iface $section
[ -n "$prefix" -a -n "$iface" ] && writeToConfig ' route '$prefix' via "'$iface'";'
;;
"multipath")
get prefix $section
write " route $prefix multipath" $prefix
config_list_foreach $section l_via multipath_list
writeToConfig " ;"
;;
esac
fi
}
# Function: prepare_kernel $1
# $1 string
# This function gets each "kernel" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI kernel section.
prepare_kernel() {
local section="$1"
write "#$section configuration:" $section
local disabled; local table; local kernel_table; local import; local export; local scan_time; local persist; local learn
get_bool disabled $section
get table $section
get import $section
get export $section
get scan_time $section
get kernel_table $section
get learn $section
get persist $section
writeToConfig "protocol kernel {"
write_bool disabled $disabled
write " table $table;" $table
write " kernel table $kernel_table;" $kernel_table
write_bool learn $learn
write_bool persist $persist
write " scan time $scan_time;" $scan_time
write " import $import;" $import
write " export $export;" $export
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_static $1
# $1 string
# This function gets each "static" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI static section.
prepare_static() {
local section="$1"
local disabled
get disabled $section
if [ "$disabled" -eq 0 ]; then
local table
get table $section
writeToConfig "#$section configration:" $section
writeToConfig "protocol static {"
write " table $table;" $table
config_foreach prepare_routes 'route' $section
writeToConfig "}"
writeToConfig " "
fi
}
# Function: prepare_device $1
# $1 string
# This function gets each "device" protocol section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI device section.
prepare_device() {
local section="$1"
local disabled; local scan_time
get disabled $section
get scan_time $section
write "#$section configuration:" $section
writeToConfig "protocol device {"
write_bool disabled $disabled
write " scan time $scan_time;" $scan_time
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp_template $1
# $1 string
# This function gets each "bgp_template" protocol section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI bgp_template section.
# Careful! Template options will be replaced by "instance" options if there is any match.
prepare_bgp_template() {
local section="$1"
local disabled; local table; local import; local export; local local_address; local local_as; local neighbor_address; local neighbor_as; local source_address; local next_hop_self; local next_hop_keep; local rr_client; local rr_cluster_id; local import_limit; local import_limit_action; local export_limit; local export_limit_action; local receive_limit; local receive_limit_action
get_bool disabled $section
get_bool next_hop_self $section
get_bool next_hop_keep $section
get table $section
get import $section
get export $section
get local_address $section
get local_as $section
get rr_client $section
get rr_cluster_id $section
get import_limit $section
get import_limit_action $section
get export_limit $section
get export_limit_action $section
get receive_limit $section
get receive_limit_action $section
get neighbor_address $section
get neighbor_as $section
writeToConfig "#$section template:"
writeToConfig "template bgp $section {"
[ -n "$disabled" ] && write_bool disabled $disabled
write " table $table;" $table
write " local as $local_as;" $local_as
write " source address $local_address;" $local_address
write " import $import;" $import
write " export $export;" $export
if [ -n "$next_hop_self" ]; then
[ "$next_hop_self" = "1" ] && writeToConfig " next hop self;" || writeToConfig "# next hop self;"
fi
if [ -n "$next_hop_keep" ]; then
[ "$next_hop_keep" = "1" ] && writeToConfig " next hop keep;" || writeToConfig "# next hop keep;"
fi
[ "$rr_client" = "1" ] && writeToConfig " rr client;" || writeToConfig "# rr client;"
write " rr cluster id $rr_cluster_id;" $rr_cluster_id
if [ -n "$import_limit" -a "$import_limit" > "0" ]; then
[ -z "$import_limit_action" ] && $import_limit_action = "warn"
writeToConfig " import limit $import_limit action $import_limit_action;"
fi
if [ -n "$export_limit" -a "$export_limit" > "0" ]; then
[ -z "$export_limit_action" ] && $export_limit_action = "warn"
writeToConfig " export limit $export_limit action $export_limit_action;"
fi
if [ -n "$receive_limit" -a "$receive_limit" > "0" ]; then
[ -z "$receive_limit_action" ] && $receive_limit_action = "warn"
writeToConfig " receive limit $receive_limit action $receive_limit_action;"
fi
[ -n "$neighbor_address" -a -n "$neighbor_as" ] && writeToConfig " neighbor $neighbor_address as $neighbor_as;"
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp $1
# $1 string
# This function gets each "bgp" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI bgp section.
# Careful! The options set in bgp instances overlap bgp_template ones.
prepare_bgp() {
local section="$1"
local disabled; local table; local template; local description; local import; local export; local local_address; local local_as; local neighbor_address; local neighbor_as; local rr_client; local rr_cluster_id; local import_limit; local import_limit_action; local export_limit; local export_limit_action; local receive_limit; local receive_limit_action
get disabled $section
get table $section
get template $section
get description $section
get import $section
get export $section
get local_address $section
get local_as $section
get rr_client $section
get rr_cluster_id $section
get import_limit $section
get import_limit_action $section
get export_limit $section
get export_limit_action $section
get receive_limit $section
get receive_limit_action $section
get neighbor_address $section
get neighbor_as $section
writeToConfig "#$section configuration:"
[ -n "$template" ] && writeToConfig "protocol bgp $section from $template {" || writeToConfig "protocol bgp $section {"
[ -n "$disabled" ] && write_bool disabled $disabled
write " table $table;" $table
# [ -n "$description" ] && writeToConfig ' description "'$description'";'
write " local as $local_as;" $local_as
write " source address $local_address;" $local_address
write " import $import;" $import
write " export $export;" $export
if [ -n "$next_hop_self" ]; then
[ "$next_hop_self" = "1" ] && writeToConfig " next hop self;" || writeToConfig "# next hop self;"
fi
if [ -n "$next_hop_keep" ]; then
[ "$next_hop_keep" = "1" ] && writeToConfig " next hop keep;" || writeToConfig "# next hop keep;"
fi
[ "$rr_client" = "1" ] && writeToConfig " rr client;" || writeToConfig "# rr client;"
write " rr cluster id $rr_cluster_id;" $rr_cluster_id
if [ -n "$import_limit" -a "$import_limit" > "0" ]; then
[ -z "$import_limit_action" ] && $import_limit_action = "warn"
writeToConfig " import limit $import_limit action $import_limit_action;"
fi
if [ -n "$export_limit" -a "$export_limit" > "0" ]; then
[ -z "$export_limit_action" ] && $export_limit_action = "warn"
writeToConfig " export limit $export_limit action $export_limit_action;"
fi
if [ -n "$receive_limit" -a "$receive_limit" > "0" ]; then
[ -z "$receive_limit_action" ] && $receive_limit_action = "warn"
writeToConfig " receive limit $receive_limit action $receive_limit_action;"
fi
[ -n "$neighbor_address" -a -n "$neighbor_as" ] && writeToConfig " neighbor $neighbor_address as $neighbor_as;"
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp_filters $1
# $1 string
# This function gets each "bgp_filter" protocol section in the UCI configuration and sets each option in the bird4.conf file.
# $1 is set as the ID of the current UCI bgp_filter section.
# This function checks if the filter file exists and, in that case, it writes its content to the configuration file.
prepare_bgp_filters() {
local section="$1"
local type
local file_path
get type $section
get file_path $section
if [ -e "$file_path" ]; then
local filter_content=`cat $file_path`
if [ -n "$type" -a "$type" = "bgp" ]; then
writeToConfig "#Filter $section:"
writeToConfig "${filter_content}"
writeToConfig " "
fi
fi
}
start() {
config_load bird4
local use_UCI_config
get use_UCI_config 'bird'
if [ -z "$use_UCI_config" -o "$use_UCI_config" = "0" ]; then
service_start $BIRD_BIN -d -c $BIRD_CONFIG -P $SERVICE_PID_FILE
else
#Set Bird4 configuration location:
local UCI_config_File
get UCI_config_File 'bird'
BIRD_CONFIG=${UCI_config_File:-/tmp/bird4.conf}
#Setup the basic configuration
prepare_global 'global'
config_foreach prepare_kernel 'kernel'
config_foreach prepare_static 'static'
config_foreach prepare_device 'device'
#config_foreach prepare_direct 'direct'
#Setup the protocols configuration (currently BGP only)
config_foreach prepare_bgp_template 'bgp_template'
config_foreach prepare_bgp 'bgp'
config_foreach prepare_bgp_filters 'filter'
#Start the service
service_start $BIRD_BIN -d -c $BIRD_CONFIG -P $SERVICE_PID_FILE
fi
}
stop() {
service_stop $BIRD_BIN
}
restart() {
stop
start
}
reload() {
service_reload $BIRD_BIN
}

View file

@ -1,239 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird4", "Bird4 BGP protocol's configuration")
tab_templates = {}
uciout:foreach('bird4', 'bgp_template', function (s)
local name = s[".name"]
if (name ~= nil) then
table.insert(tab_templates, name)
end
end)
-- Section BGP Templates
sect_templates = m:section(TypedSection, "bgp_template", "BGP Templates", "Configuration of the templates used in BGP instances.")
sect_templates.addremove = true
sect_templates.anonymous = false
disabled = sect_templates:option(Flag, "disabled", "Disabled", "Enable/Disable BGP Protocol")
disabled.optional=true
table = sect_templates:option(ListValue, "table", "Table", "Set the table used for BGP Routing")
table.optional=true
uciout:foreach("bird4", "table",
function (s)
table:value(s.name)
end)
table:value("")
import = sect_templates:option(Value, "import", "Import","")
import.optional=true
export = sect_templates:option(Value, "export", "Export", "")
export.optional=true
source_addr = sect_templates:option(Value, "source_address", "Source Address", "Source address for BGP routing. By default uses Router ID")
source_addr.optional = true
description = sect_templates:option(TextValue, "description", "Description", "Description of the current BGP instance")
description.optional = true
next_hop_self = sect_templates:option(Flag, "next_hop_self", "Next hop self", "Avoid next hop calculation and advertise own source address as next hop")
next_hop_self.default = nil
next_hop_self.optional = true
next_hop_keep = sect_templates:option(Flag, "next_hop_keep", "Next hop keep", "Forward the received Next Hop attribute event in situations where the local address should be used instead, like subneting")
next_hop_keep.default = nil
next_hop_keep.optional = true
rr_client = sect_templates:option(Flag, "rr_client", "Route Reflector server", "This router serves as a Route Reflector server and treats neighbors as clients")
rr_client.default = nil
rr_client.optional = true
rr_cluster_id = sect_templates:option(Value, "rr_cluster_id", "Route Reflector Cluster ID", "Identificator of the RR cluster. By default uses the Router ID")
rr_cluster_id.optional = true
import_limit = sect_templates:option(Value, "import_limit", "Routes import limit", "Specify an import route limit. By default is disabled '0'")
import_limit.default= "0"
import_limit.optional = true
import_limit_action = sect_templates:option(ListValue, "import_limit_action", "Routes import limit action", "Action to take when import routes limit ir reached")
import_limit_action:value("warn")
import_limit_action:value("block")
import_limit_action:value("disable")
import_limit_action:value("restart")
import_limit_action.default = "warn"
import_limit_action.optional = true
export_limit = sect_templates:option(Value, "export_limit", "Routes export limit", "Specify an export route limit. By default is disabled '0'")
export_limit.default="0"
export_limit.optional = true
export_limit_action = sect_templates:option(ListValue, "export_limit_action", "Routes export limit action", "Action to take when export routes limit is reached")
export_limit_action:value("warn")
export_limit_action:value("block")
export_limit_action:value("disable")
export_limit_action:value("restart")
export_limit_action.default = "warn"
export_limit_action.optional = true
receive_limit = sect_templates:option(Value, "receive_limit", "Routes received limit", "Specify a received route limit. By default is disabled '0'")
receive_limit.default="0"
receive_limit.optional = true
receive_limit_action = sect_templates:option(ListValue, "receive_limit_action", "Routes received limit action", "Action to take when received routes limit is reached")
receive_limit_action:value("warn")
receive_limit_action:value("block")
receive_limit_action:value("disable")
receive_limit_action:value("restart")
receive_limit_action.default = "warn"
receive_limit_action.optional = true
local_address = sect_templates:option(Value, "local_address", "Local BGP address", "")
local_address.optional=true
local_as = sect_templates:option(Value, "local_as", "Local AS", "")
local_as.optional=true
-- Section BGP Instances:
sect_instances = m:section(TypedSection, "bgp", "BGP Instances", "Configuration of the BGP protocol instances")
sect_instances.addremove = true
sect_instances.anonymous = false
templates = sect_instances:option(ListValue, "template", "Templates", "Available BGP templates")
uciout:foreach("bird4", "bgp_template",
function(s)
templates:value(s[".name"])
end)
templates:value("")
source_addr = sect_instances:option(Value, "source_address", "Source Address", "Source address for BGP routing. By default uses Router ID")
source_addr.optional = true
description = sect_instances:option(TextValue, "description", "Description", "Description of the current BGP instance")
description.optional = true
next_hop_self = sect_instances:option(Flag, "next_hop_self", "Next hop self", "Avoid next hop calculation and advertise own source address as next hop")
next_hop_self.default = nil
next_hop_self.optional = true
next_hop_keep = sect_instances:option(Flag, "next_hop_keep", "Next hop keep", "Forward the received Next Hop attribute event in situations where the local address should be used instead, like subneting")
next_hop_keep.default = nil
next_hop_keep.optional = true
rr_client = sect_instances:option(Flag, "rr_client", "Route Reflector server", "This router serves as a Route Reflector server and treats neighbors as clients")
rr_client.default = nil
rr_client.optional = true
rr_cluster_id = sect_instances:option(Value, "rr_cluster_id", "Route Reflector Cluster ID", "Identificator of the RR cluster. By default uses the Router ID")
rr_cluster_id.optional = true
import_limit = sect_instances:option(Value, "import_limit", "Routes import limit", "Specify an import route limit. By default is disabled '0'")
import_limit.default="0"
import_limit.optional = true
import_limit_action = sect_instances:option(ListValue, "import_limit_action", "Routes import limit action", "Action to take when import routes limit ir reached")
import_limit_action:value("warn")
import_limit_action:value("block")
import_limit_action:value("disable")
import_limit_action:value("restart")
import_limit_action.default = "warn"
import_limit_action.optional = true
export_limit = sect_instances:option(Value, "export_limit", "Routes export limit", "Specify an export route limit. By default is disabled '0'")
export_limit.default="0"
export_limit.optional = true
export_limit_action = sect_instances:option(ListValue, "export_limit_action", "Routes export limit action", "Action to take when export routes limit is reached")
export_limit_action:value("warn")
export_limit_action:value("block")
export_limit_action:value("disable")
export_limit_action:value("restart")
export_limit_action.default = "warn"
export_limit_action.optional = true
receive_limit = sect_instances:option(Value, "receive_limit", "Routes received limit", "Specify a received route limit. By default is disabled '0'")
receive_limit.default="0"
receive_limit.optional = true
receive_limit_action = sect_instances:option(ListValue, "receive_limit_action", "Routes received limit action", "Action to take when received routes limit is reached")
receive_limit_action:value("warn")
receive_limit_action:value("block")
receive_limit_action:value("disable")
receive_limit_action:value("restart")
receive_limit_action.default = "warn"
receive_limit_action.optional = true
neighbor_address = sect_instances:option(Value, "neighbor_address", "Neighbor IP Address", "")
neighbor_as = sect_instances:option(Value, "neighbor_as", "Neighbor AS", "")
disabled = sect_instances:option(Flag, "disabled", "Disabled", "Enable/Disable BGP Protocol")
disabled.optional=true
disabled.default=nil
table = sect_instances:option(ListValue, "table", "Table", "Set the table used for BGP Routing")
table.optional=true
uciout:foreach("bird4", "table",
function (s)
table:value(s.name)
end)
table:value("")
import = sect_instances:option(Value, "import", "Import","")
import.optional=true
export = sect_instances:option(Value, "export", "Export", "")
export.optional=true
local_address = sect_instances:option(Value, "local_address", "Local BGP address", "")
local_address.optional=true
local_as = sect_instances:option(Value, "local_as", "Local AS", "")
local_as.optional=true
-- Section BGP Filters
sect_filters = m:section(TypedSection, "filter", "BGP Filters", "Filters of the BGP instances")
sect_filters.addremove = true
sect_filters.anonymous = false
sect_filters:depends("type", "bgp")
instance = sect_filters:option(ListValue, "instance", "BGP instance", "Filter's BGP instance")
instance:depends("type", "bgp")
uciout:foreach("bird4", "bgp",
function (s)
instance:value(s[".name"])
end)
type = sect_filters:option(Value, "type", "Filter type", "")
type.default = "bgp"
path = sect_filters:option(Value, "file_path", "Filter's file path", "Path to the Filter's file")
path:depends("type", "bgp")
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird4 stop; /etc/init.d/bird4 start')
end
return m

View file

@ -1,200 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird4", "Bird4 general protocol's configuration.")
-- Optional parameters lists
local protoptions = {
{["name"]="table", ["help"]="Auxiliar table for routing", ["depends"]={"static","kernel"}},
{["name"]="import", ["help"]="Set if the protocol must import routes", ["depends"]={"kernel"}},
{["name"]="export", ["help"]="Set if the protocol must export routes", ["depends"]={"kernel"}},
{["name"]="scan_time", ["help"]="Time between scans", ["depends"]={"kernel","device"}},
{["name"]="kernel_table", ["help"]="Set which table must be used as auxiliar kernel table", ["depends"]={"kernel"}},
{["name"]="learn", ["help"]="Learn routes", ["depends"]={"kernel"}},
{["name"]="persist", ["help"]="Store routes. After a restart, routes will be still configured", ["depends"]={"kernel"}}
}
local routeroptions = {
{["name"]="prefix",["help"]="",["depends"]={"router","special","iface","multipath","recursive"}},
{["name"]="via",["help"]="",["depends"]={"router","multipath"}},
{["name"]="attribute",["help"]="",["depends"]={"special"}},
{["name"]="iface",["help"]="",["depends"]={"iface"}},
{["name"]="ip",["help"]="",["depends"]={"recursive"}}
}
--
-- KERNEL PROTOCOL
--
sect_kernel_protos = m:section(TypedSection, "kernel", "Kernel options", "Configuration of the kernel protocols. First Instance MUST be Primary table (no table or kernel_table fields).")
sect_kernel_protos.addremove = true
sect_kernel_protos.anonymous = false
-- Default kernel parameters
disabled = sect_kernel_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "kernel" then
if o.name == "learn" or o.name == "persist" then
value = sect_kernel_protos:option(Flag, o.name, translate(o.name), translate(o.help))
elseif o.name == "table" then
value = sect_kernel_protos:option(ListValue, o.name, translate(o.name), translate(o.help))
uciout:foreach("bird4", "table",
function (s)
value:value(s.name)
end)
value:value("")
else
value = sect_kernel_protos:option(Value, o.name, translate(o.name), translate(o.help))
end
value.optional = true
value.rmempty = true
end
end
end
end
--
-- DEVICE PROTOCOL
--
sect_device_protos = m:section(TypedSection, "device", "Device options", "Configuration of the device protocols.")
sect_device_protos.addremove = true
sect_device_protos.anonymous = false
-- Default kernel parameters
disabled = sect_device_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "device" then
value = sect_device_protos:option(Value, o.name, translate(o.name), translate(o.help))
value.optional = true
value.rmempty = true
end
end
end
end
--
-- STATIC PROTOCOL
--
sect_static_protos = m:section(TypedSection, "static", "Static options", "Configuration of the static protocols.")
sect_static_protos.addremove = true
sect_static_protos.anonymous = false
-- Default kernel parameters
disabled = sect_static_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "static" then
if o.name == "table" then
value = sect_static_protos:option(ListValue, o.name, translate(o.name), translate(o.help))
uciout:foreach("bird4", "table",
function (s)
value:value(s.name)
end)
value:value("")
else
value = sect_static_protos:option(Value, o.name, translate(o.name), translate(o.help))
end
value.optional = true
value.rmempty = true
end
end
end
end
--
-- ROUTES FOR STATIC PROTOCOL
--
sect_routes = m:section(TypedSection, "route", "Routes configuration", "Configuration of the routes used in static protocols.")
sect_routes.addremove = true
sect_routes.anonymous = true
instance = sect_routes:option(ListValue, "instance", "Route instance", "")
i = 0
uciout:foreach("bird4", "static",
function (s)
instance:value(s[".name"])
end)
prefix = sect_routes:option(Value, "prefix", "Route prefix", "")
type = sect_routes:option(ListValue, "type", "Type of route", "")
type:value("router")
type:value("special")
type:value("iface")
type:value("recursive")
type:value("multipath")
valueVia = sect_routes:option(Value, "via", "Via", "")
valueVia.optional = false
valueVia:depends("type", "router")
valueVia.datatype = "ip4addr"
listVia = sect_routes:option(DynamicList, "l_via", "Via", "")
listVia:depends("type", "multipath")
listVia.optional=false
listVia.datatype = "ip4addr"
attribute = sect_routes:option(Value, "attribute", "Attribute", "Types are: unreachable, prohibit and blackhole")
attribute:depends("type", "special")
iface = sect_routes:option(ListValue, "iface", "Interface", "")
iface:depends("type", "iface")
uciout:foreach("wireless", "wifi-iface",
function(section)
iface:value(section[".name"])
end)
ip = sect_routes:option(Value, "ip", "IP address", "")
ip:depends("type", "ip")
ip.datatype = [[ or"ip4addr", "ip6addr" ]]
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird4 stop; /etc/init.d/bird4 start')
end
return m

View file

@ -1,77 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]--
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird4", "Bird4 UCI configuration helper", "")
-- Named section: "bird"
s_bird_uci = m:section(NamedSection, "bird", "bird", "Bird4 file settings", "")
s_bird_uci.addremove = False
uuc = s_bird_uci:option(Flag, "use_UCI_config", "Use UCI configuration", "Use UCI configuration instead of the /etc/bird4.conf file")
ucf = s_bird_uci:option(Value, "UCI_config_File", "UCI File", "Specify the file to place the UCI-translated configuration")
ucf.default = "/tmp/bird4.conf"
-- Named Section: "table"
s_bird_table = m:section(TypedSection, "table", "Tables configuration", "Configuration of the tables used in the protocols")
s_bird_table.addremove = true
s_bird_table.anonymous = true
name = s_bird_table:option(Value, "name", "Table name", "Descriptor ID of the table")
-- Named section: "global"
s_bird_global = m:section(NamedSection, "global", "global", "Global options", "Basic Bird4 settings")
s_bird_global.addremove = False
id = s_bird_global:option(Value, "router_id", "Router ID", "Identification number of the router. By default, is the router's IP.")
lf = s_bird_global:option(Value, "log_file", "Log File", "File used to store log related data.")
l = s_bird_global:option(MultiValue, "log", "Log", "Set which elements do you want to log.")
l:value("all", "All")
l:value("info", "Info")
l:value("warning","Warning")
l:value("error","Error")
l:value("fatal","Fatal")
l:value("debug","Debug")
l:value("trace","Trace")
l:value("remote","Remote")
l:value("auth","Auth")
d = s_bird_global:option(MultiValue, "debug", "Debug", "Set which elements do you want to debug.")
d:value("all", "All")
d:value("states","States")
d:value("routes","Routes")
d:value("filters","Filters")
d:value("interfaces","Interfaces")
d:value("events","Events")
d:value("packets","Packets")
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird4 stop; /etc/init.d/bird4 start')
end
return m

View file

@ -1,7 +0,0 @@
#!/bin/sh
EXC=`mount -t overlayfs | grep overlayfs -c`
[ $EXC > 0 ] && rm -r /etc/init.d/bird4 || mv /etc/init.d/bird4 /etc/bird4/init.d/bird4.orig
ln -s /etc/bird4/init.d/bird4 /etc/init.d/bird4

View file

@ -1,92 +0,0 @@
# Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
# BGP/Bird integration with OpenWRT and QMP
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
BIRD:=bird6
PKG_NAME:=$(BIRD)-openwrt
PKG_RELEASE:=0.2
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=GPL-3.0+
uci:=$(BIRD)-uci
luci:=luci-app-$(BIRD)
include $(INCLUDE_DIR)/package.mk
define Build/Prepare
endef
define Build/Compile
endef
define Package/$(uci)
TITLE:=The BIRD UCI module
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
MAINTAINER:=Eloi Carbo <eloicaso@openmailbox.org>
URL:=https://github.com/eloicaso/bird6-openwrt/
DEPENDS:=+$(BIRD) +libuci +uci
endef
define Package/$(uci)/description
$(BIRD) UCI integration module
endef
define Package/$(uci)/install
$(INSTALL_DIR) $(1)/etc/$(BIRD)/init.d
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_BIN) ./src/init.d/$(BIRD) $(1)/etc/$(BIRD)/init.d/
$(CP) ./src/uci-defaults/$(uci)-install-init.d $(1)/etc/$(BIRD)/init.d/
$(CP) ./src/config/$(BIRD) $(1)/etc/config/
endef
define Package/$(uci)/postinst
#!/bin/sh
if [ -z $${IPKG_INSTROOT} ]; then
( . /etc/bird6/init.d/bird6-uci-install-init.d ) && rm -f /etc/bird6/init.d/bird6-uci-install-init.d
fi
endef
$(eval $(call BuildPackage,$(uci)))
define Package/$(luci)
TITLE:=LuCI support for $(BIRD)
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=3. Applications
MAINTAINER:=Eloi Carbo <eloicaso@openmailbox.org>
URL:=https://github.com/eloicaso/bird6-openwrt/
DEPENDS:=+$(BIRD)-uci +luci-base
endef
define Package/$(luci)/description
$(BIRD) application for LuCI
endef
define Package/$(luci)/install
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/$(BIRD)/
$(CP) ./src/model/* $(1)/usr/lib/lua/luci/model/cbi/$(BIRD)/
$(CP) ./src/controller/* $(1)/usr/lib/lua/luci/controller/
endef
$(eval $(call BuildPackage,$(luci)))

View file

@ -1,80 +0,0 @@
config bird 'bird'
option use_UCI_config '1'
#Caution! Enabling this option, Bird will translate this
#UCI file and use it instead of /etc/bird6.conf
option UCI_config_file '/tmp/bird6.conf'
#If you enable useUCIconfig, UCIconfigFile will be Bird's
#configuration file location.
config global 'global'
option log_file '/tmp/bird6.log'
option log 'all'
option debug 'off'
option router_id 'fc00::1:5'
option listen_bgp_addr 'fc00::1:5'
option listen_bgp_port '179'
option listen_bgp_dual '1'
config table
option name 'aux'
config kernel kernel1
option table 'aux'
option import 'all'
option export 'all'
option kernel_table '100'
option scan_time '10'
option learn '1'
option persist '0'
option disabled '0'
config device device1
option scan_time '10'
option disabled '0'
config static static1
option table 'aux'
option disabled '0'
config bgp bgp1
option template 'bgp_common'
option description 'Description of the BGP instance'
option neighbor_address 'fc00::1:5'
option neighbor_as '65530'
option next_hop_self '0'
option next_hop_keep '0'
option rr_client '1'
option rr_cluster_id 'fc00::1:5'
config bgp_template bgp_common
option table 'aux'
option import 'all'
option export 'all'
option local_address '2001:B30:1000:19::2'
option local_as '65001'
option import_limit '100'
option import_limit_action 'warn'
option export_limit '100'
option export_limit_action 'warn'
option receive_limit '100'
option receive_limit_action 'warn'
option disabled '0'
config route
option instance 'static1'
option type 'router'
option prefix '2001:db8:0:f103::/64'
option via 'fe80::225:90ff:fe97:a718'
config route
option instance 'static1'
option type 'special'
option prefix '2001:db8:0:f101::/128'
option attribute 'unreachable'
config route
option instance 'static1'
option type 'iface'
option prefix '2001:db8:0:f101::1111/128'
option iface 'eth0'

View file

@ -1,27 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
module("luci.controller.bird6", package.seeall)
function index()
entry({"admin","network","bird6"}, cbi("bird6/overview"), "Bird6", 1).dependent=false
entry({"admin","network","bird6","overview"}, cbi("bird6/overview"), "Overview", 2).dependent=false
entry({"admin","network","bird6","proto_general"}, cbi("bird6/gen_proto"), "General protocols", 3).dependent=false
entry({"admin","network","bird6","proto_bgp"}, cbi("bird6/bgp_proto"), "BGP Protocol", 4).dependent=false
end

View file

@ -1,421 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
# BGP/Bird integration with OpenWRT and QMP
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
BIRD="bird6"
BIRD_CONFIG="/etc/$BIRD.conf"
START=99
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid"
BIRD_BIN="/usr/sbin/$BIRD"
# Function: writeToConfig $1
# $1 string.
# Allows to write in the $BIRD_CONFIG file, the string $1. This function does not check the $1 string.
# Example: writeToConfig "value: $N"
writeToConfig() {
echo "$1" >> $BIRD_CONFIG
}
# Function: write $1 $2
# $1 string. $2 string.
# This function checks if $2 is empty. If not, it writes the string $1 in the $BIRD_CONFIG file.
# Use write function to check if $1, value found inside $2, is not empty and can be written in the configuration file.
# Example:
N=""; write "value: $N" $N;
write() {
[ -n "$2" ] && writeToConfig "$1"
}
#Function: write_bool $1 $2
# $1 string; $2 boolean
# This function checks if $2 is true or false and write the $1 string into $BIRD_CONFIG file.
# The function writes a # before the $2 string if its false.
# Example: local N=0; write_bool $N
write_bool() {
[ "$2" == 0 ] && writeToConfig "# $1;" || writeToConfig " $1;"
}
# Function: get $1 $2
# $1 string. $2 string
# This function uses the external UCI function "config_get $result $section $option" to obtain a string value from UCI config file.
# To use this function, use the same name of the UCI option for the variable.
# Example: UCI (option id 'abcd'); local id; get id $section
get() {
config_get $1 $2 $1
}
# Function: get_bool $1 $2
# $1 boolean. $2 string
# This function uses the external UCI function "config_get_bool $result $section $option" to obtain a boolean value from UCI config file.
# To use this function, use the same name of the UCI option for the variable $1.
# Example: UCI (option use_ipv6 '1'); local use_ipv6; get use_ipv6 $section
get_bool() {
config_get_bool $1 $2 $1
}
# Function: multipath_list $1
# $1 string
# This function writes the $1 string in the multipath routes.
multipath_list() {
write " via $1" $1
}
# Function: prepare_tables $1
# $1 string
# This function gets each "table" section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI table section
prepare_tables() {
local section="$1"; local name
get name $section
write "table $name;" $name
}
# Function: prepare_global $1
# $1 string
# This function gets each "global" section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI global section. prepare_global is the first configuration set in the bird6.conf and removes the old file.
prepare_global () {
local section="$1"
local log_file; local log; local debug; local router_id; local table; local listen_bgp_addr; local listen_bgp_port; local listen_bgp_dual
# Remove old configuration file
rm -f "$BIRD_CONFIG"
get log_file $section
get log $section
get debug $section
get router_id $section
get table $section
get listen_bgp_addr $section
get listen_bgp_port $section
get listen_bgp_dual $section
# First line of the NEW configuration file
echo "#Bird6 configuration using UCI:" > $BIRD_CONFIG
writeToConfig " "
[ -n "$log_file" -a -n "$log" ] && writeToConfig 'log "'$log_file'" '$log';'
write "debug protocols $debug;" $debug
writeToConfig " "
writeToConfig "#Router ID"
write "router id $router_id;" $router_id
writeToConfig " "
writeToConfig "#Secondary tables"
config_foreach prepare_tables 'table'
if [ -n "$listen_bgp_dual" -o "$listen_bgp_dual" = "0" ]; then
writeToConfig "listen bgp $listen_bgp_addr $listen_bgp_port v6only;"
else
writeToConfig "listen bgp $listen_bgp_addr $listen_bgp_port dual;"
fi
writeToConfig " "
}
# Function: prepare_routes $1
# $1 string
# This function gets each "route" section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI route section. Each type of route has its own treatment.
prepare_routes() {
local instance; local prefix; local via; local type
local section="$1"
local protoInstance="$2"
get instance $section
if [ "$instance" = "$protoInstance" ]; then
get type $section
case "$type" in
"router")
get prefix $section
get via $section
[ -n "$prefix" -a -n "$via" ] && writeToConfig " route $prefix via $via;"
;;
"special")
get prefix $section
get attribute $section
[ -n "$prefix" -a -n "$attribute" ] && writeToConfig " route $prefix $attribute;"
;;
"iface")
get prefix $section
get iface $section
[ -n "$prefix" -a -n "$iface" ] && writeToConfig ' route '$prefix' via "'$iface'";'
;;
"multipath")
get prefix $section
write " route $prefix multipath" $prefix
config_list_foreach $section l_via multipath_list
writeToConfig " ;"
;;
esac
fi
}
# Function: prepare_kernel $1
# $1 string
# This function gets each "kernel" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI kernel section.
prepare_kernel() {
local section="$1"
write "#$section configuration:" $section
local disabled; local table; local kernel_table; local import; local export; local scan_time; local persist; local learn
get_bool disabled $section
get table $section
get import $section
get export $section
get scan_time $section
get kernel_table $section
get learn $section
get persist $section
writeToConfig "protocol kernel {"
write_bool disabled $disabled
write " table $table;" $table
write " kernel table $kernel_table;" $kernel_table
write_bool learn $learn
write_bool persist $persist
write " scan time $scan_time;" $scan_time
write " import $import;" $import
write " export $export;" $export
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_static $1
# $1 string
# This function gets each "static" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI static section.
prepare_static() {
local section="$1"
local disabled
get disabled $section
if [ "$disabled" -eq 0 ]; then
local table
get table $section
writeToConfig "#$section configration:" $section
writeToConfig "protocol static {"
write " table $table;" $table
config_foreach prepare_routes 'route' $section
writeToConfig "}"
writeToConfig " "
fi
}
# Function: prepare_device $1
# $1 string
# This function gets each "device" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI device section.
prepare_device() {
local section="$1"
local disabled; local scan_time
get disabled $section
get scan_time $section
write "#$section configuration:" $section
writeToConfig "protocol device {"
write_bool disabled $disabled
write " scan time $scan_time;" $scan_time
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp_template $1
# $1 string
# This function gets each "bgp_template" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI bgp_template section.
# Careful! Template options will be replaced by "instance" options if there is any match.
prepare_bgp_template() {
local section="$1"
local disabled; local table; local import; local export; local local_address; local local_as; local neighbor_address; local neighbor_as; local source_address; local next_hop_self; local next_hop_keep; local rr_client; local rr_cluster_id; local import_limit; local import_limit_action; local export_limit; local export_limit_action; local receive_limit; local receive_limit_action
get_bool disabled $section
get_bool next_hop_self $section
get_bool next_hop_keep $section
get table $section
get import $section
get export $section
get local_address $section
get local_as $section
get rr_client $section
get rr_cluster_id $section
get import_limit $section
get import_limit_action $section
get export_limit $section
get export_limit_action $section
get receive_limit $section
get receive_limit_action $section
get neighbor_address $section
get neighbor_as $section
writeToConfig "#$section template:"
writeToConfig "template bgp $section {"
[ -n "$disabled" ] && write_bool disabled $disabled
write " table $table;" $table
write " local as $local_as;" $local_as
write " source address $local_address;" $local_address
write " import $import;" $import
write " export $export;" $export
if [ -n "$next_hop_self" ]; then
[ "$next_hop_self" = "1" ] && writeToConfig " next hop self;" || writeToConfig "# next hop self;"
fi
if [ -n "$next_hop_keep" ]; then
[ "$next_hop_keep" = "1" ] && writeToConfig " next hop keep;" || writeToConfig "# next hop keep;"
fi
[ "$rr_client" = "1" ] && writeToConfig " rr client;" || writeToConfig "# rr client;"
write " rr cluster id $rr_cluster_id;" $rr_cluster_id
if [ -n "$import_limit" -a "$import_limit" > "0" ]; then
[ -z "$import_limit_action" ] && $import_limit_action = "warn"
writeToConfig " import limit $import_limit action $import_limit_action;"
fi
if [ -n "$export_limit" -a "$export_limit" > "0" ]; then
[ -z "$export_limit_action" ] && $export_limit_action = "warn"
writeToConfig " export limit $export_limit action $export_limit_action;"
fi
if [ -n "$receive_limit" -a "$receive_limit" > "0" ]; then
[ -z "$receive_limit_action" ] && $receive_limit_action = "warn"
writeToConfig " receive limit $receive_limit action $receive_limit_action;"
fi
[ -n "$neighbor_address" -a -n "$neighbor_as" ] && writeToConfig " neighbor $neighbor_address as $neighbor_as;"
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp $1
# $1 string
# This function gets each "bgp" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI bgp section.
# Careful! The options set in bgp instances overlap bgp_template ones.
prepare_bgp() {
local section="$1"
local disabled; local table; local template; local description; local import; local export; local local_address; local local_as; local neighbor_address; local neighbor_as; local rr_client; local rr_cluster_id; local import_limit; local import_limit_action; local export_limit; local export_limit_action; local receive_limit; local receive_limit_action
get disabled $section
get table $section
get template $section
get description $section
get import $section
get export $section
get local_address $section
get local_as $section
get rr_client $section
get rr_cluster_id $section
get import_limit $section
get import_limit_action $section
get export_limit $section
get export_limit_action $section
get receive_limit $section
get receive_limit_action $section
get neighbor_address $section
get neighbor_as $section
writeToConfig "#$section configuration:"
[ -n "$template" ] && writeToConfig "protocol bgp $section from $template {" || writeToConfig "protocol bgp $section {"
[ -n "$disabled" ] && write_bool disabled $disabled
write " table $table;" $table
# [ -n "$description" ] && writeToConfig ' description "'$description'";'
write " local as $local_as;" $local_as
write " source address $local_address;" $local_address
write " import $import;" $import
write " export $export;" $export
if [ -n "$next_hop_self" ]; then
[ "$next_hop_self" = "1" ] && writeToConfig " next hop self;" || writeToConfig "# next hop self;"
fi
if [ -n "$next_hop_keep" ]; then
[ "$next_hop_keep" = "1" ] && writeToConfig " next hop keep;" || writeToConfig "# next hop keep;"
fi
[ "$rr_client" = "1" ] && writeToConfig " rr client;" || writeToConfig "# rr client;"
write " rr cluster id $rr_cluster_id;" $rr_cluster_id
if [ -n "$import_limit" -a "$import_limit" > "0" ]; then
[ -z "$import_limit_action" ] && $import_limit_action = "warn"
writeToConfig " import limit $import_limit action $import_limit_action;"
fi
if [ -n "$export_limit" -a "$export_limit" > "0" ]; then
[ -z "$export_limit_action" ] && $export_limit_action = "warn"
writeToConfig " export limit $export_limit action $export_limit_action;"
fi
if [ -n "$receive_limit" -a "$receive_limit" > "0" ]; then
[ -z "$receive_limit_action" ] && $receive_limit_action = "warn"
writeToConfig " receive limit $receive_limit action $receive_limit_action;"
fi
[ -n "$neighbor_address" -a -n "$neighbor_as" ] && writeToConfig " neighbor $neighbor_address as $neighbor_as;"
writeToConfig "}"
writeToConfig " "
}
# Function: prepare_bgp_filters $1
# $1 string
# This function gets each "bgp_filter" protocol section in the UCI configuration and sets each option in the bird6.conf file.
# $1 is set as the ID of the current UCI bgp_filter section.
# This function checks if the filter file exists and, in that case, it writes its content to the configuration file.
prepare_bgp_filters() {
local section="$1"
local type
local file_path
get type $section
get file_path $section
if [ -e "$file_path" ]; then
local filter_content=`cat $file_path`
if [ -n "$type" -a "$type" = "bgp" ]; then
writeToConfig "#Filter $section:"
writeToConfig "${filter_content}"
writeToConfig " "
fi
fi
}
start() {
config_load bird6
local use_UCI_config
get use_UCI_config 'bird'
if [ -z "$use_UCI_config" -o "$use_UCI_config" = "0" ]; then
service_start $BIRD_BIN -d -c $BIRD_CONFIG -P $SERVICE_PID_FILE
else
#Set Bird6 configuration location:
local UCI_config_File
get UCI_config_File 'bird'
BIRD_CONFIG=${UCI_config_File:-/tmp/bird6.conf}
#Setup the basic configuration
prepare_global 'global'
config_foreach prepare_kernel 'kernel'
config_foreach prepare_static 'static'
config_foreach prepare_device 'device'
#config_foreach prepare_direct 'direct'
#Setup the protocols configuration (currently BGP only)
config_foreach prepare_bgp_template 'bgp_template'
config_foreach prepare_bgp 'bgp'
config_foreach prepare_bgp_filters 'filter'
#Start the service
service_start $BIRD_BIN -d -c $BIRD_CONFIG -P $SERVICE_PID_FILE
fi
}
stop() {
service_stop $BIRD_BIN
}
restart() {
stop
start
}
reload() {
service_reload $BIRD_BIN
}

View file

@ -1,237 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird6", "Bird6 BGP protocol's configuration")
tab_templates = {}
uciout:foreach('bird6', 'bgp_template', function (s)
local name = s[".name"]
if (name ~= nil) then
table.insert(tab_templates, name)
end
end)
-- Section BGP Templates
sect_templates = m:section(TypedSection, "bgp_template", "BGP Templates", "Configuration of the templates used in BGP instances.")
sect_templates.addremove = true
sect_templates.anonymous = false
disabled = sect_templates:option(Flag, "disabled", "Disabled", "Enable/Disable BGP Protocol")
disabled.optional=true
table = sect_templates:option(ListValue, "table", "Table", "Set the table used for BGP Routing")
table.optional=true
uciout:foreach("bird6", "table",
function (s)
table:value(s.name)
end)
table:value("")
import = sect_templates:option(Value, "import", "Import","")
import.optional=true
export = sect_templates:option(Value, "export", "Export", "")
export.optional=true
source_addr = sect_templates:option(Value, "source_address", "Source Address", "Source address for BGP routing. By default uses Router ID")
source_addr.optional = true
description = sect_templates:option(TextValue, "description", "Description", "Description of the current BGP instance")
description.optional = true
next_hop_self = sect_templates:option(Flag, "next_hop_self", "Next hop self", "Avoid next hop calculation and advertise own source address as next hop")
next_hop_self.default = nil
next_hop_self.optional = true
next_hop_keep = sect_templates:option(Flag, "next_hop_keep", "Next hop keep", "Forward the received Next Hop attribute event in situations where the local address should be used instead, like subneting")
next_hop_keep.default = nil
next_hop_keep.optional = true
rr_client = sect_templates:option(Flag, "rr_client", "Route Reflector server", "This router serves as a Route Reflector server and treats neighbors as clients")
rr_client.default = nil
rr_client.optional = true
rr_cluster_id = sect_templates:option(Value, "rr_cluster_id", "Route Reflector Cluster ID", "Identificator of the RR cluster. By default uses the Router ID")
rr_cluster_id.optional = true
import_limit = sect_templates:option(Value, "import_limit", "Routes import limit", "Specify an import route limit. By default is disabled '0'")
import_limit.default= "0"
import_limit.optional = true
import_limit_action = sect_templates:option(ListValue, "import_limit_action", "Routes import limit action", "Action to take when import routes limit ir reached")
import_limit_action:value("warn")
import_limit_action:value("block")
import_limit_action:value("disable")
import_limit_action:value("restart")
import_limit_action.default = "warn"
import_limit_action.optional = true
export_limit = sect_templates:option(Value, "export_limit", "Routes export limit", "Specify an export route limit. By default is disabled '0'")
export_limit.default="0"
export_limit.optional = true
export_limit_action = sect_templates:option(ListValue, "export_limit_action", "Routes export limit action", "Action to take when export routes limit is reached")
export_limit_action:value("warn")
export_limit_action:value("block")
export_limit_action:value("disable")
export_limit_action:value("restart")
export_limit_action.default = "warn"
export_limit_action.optional = true
receive_limit = sect_templates:option(Value, "receive_limit", "Routes received limit", "Specify a received route limit. By default is disabled '0'")
receive_limit.default="0"
receive_limit.optional = true
receive_limit_action = sect_templates:option(ListValue, "receive_limit_action", "Routes received limit action", "Action to take when received routes limit is reached")
receive_limit_action:value("warn")
receive_limit_action:value("block")
receive_limit_action:value("disable")
receive_limit_action:value("restart")
receive_limit_action.default = "warn"
receive_limit_action.optional = true
local_address = sect_templates:option(Value, "local_address", "Local BGP address", "")
local_address.optional=true
local_as = sect_templates:option(Value, "local_as", "Local AS", "")
local_as.optional=true
-- Section BGP Instances:
sect_instances = m:section(TypedSection, "bgp", "BGP Instances", "Configuration of the BGP protocol instances")
sect_instances.addremove = true
sect_instances.anonymous = false
templates = sect_instances:option(ListValue, "template", "Templates", "Available BGP templates")
uciout:foreach("bird6", "bgp_template",
function(s)
templates:value(s[".name"])
end)
templates:value("")
neighbor_address = sect_instances:option(Value, "neighbor_address", "Neighbor IP Address", "")
neighbor_as = sect_instances:option(Value, "neighbor_as", "Neighbor AS", "")
disabled = sect_instances:option(Flag, "disabled", "Disabled", "Enable/Disable BGP Protocol")
disabled.optional=true
disabled.default=nil
table = sect_instances:option(ListValue, "table", "Table", "Set the table used for BGP Routing")
table.optional=true
uciout:foreach("bird6", "table",
function (s)
table:value(s.name)
end)
table:value("")
description = sect_instances:option(TextValue, "description", "Description", "Description of the current BGP instance")
description.optional = true
import = sect_instances:option(Value, "import", "Import","")
import.optional=true
export = sect_instances:option(Value, "export", "Export", "")
export.optional=true
source_addr = sect_instances:option(Value, "source_address", "Source Address", "Source address for BGP routing. By default uses Router ID")
source_addr.optional = true
local_address = sect_instances:option(Value, "local_address", "Local BGP address", "")
local_address.optional=true
local_as = sect_instances:option(Value, "local_as", "Local AS", "")
local_as.optional=true
next_hop_self = sect_instances:option(Flag, "next_hop_self", "Next hop self", "Avoid next hop calculation and advertise own source address as next hop")
next_hop_self.default = nil
next_hop_self.optional = true
next_hop_keep = sect_instances:option(Flag, "next_hop_keep", "Next hop keep", "Forward the received Next Hop attribute event in situations where the local address should be used instead, like subneting")
next_hop_keep.default = nil
next_hop_keep.optional = true
rr_client = sect_instances:option(Flag, "rr_client", "Route Reflector server", "This router serves as a Route Reflector server and treats neighbors as clients")
rr_client.default = nil
rr_client.optional = true
rr_cluster_id = sect_instances:option(Value, "rr_cluster_id", "Route Reflector Cluster ID", "Identificator of the RR cluster. By default uses the Router ID")
rr_cluster_id.optional = true
import_limit = sect_instances:option(Value, "import_limit", "Routes import limit", "Specify an import route limit. By default is disabled '0'")
import_limit.default="0"
import_limit.optional = true
import_limit_action = sect_instances:option(ListValue, "import_limit_action", "Routes import limit action", "Action to take when import routes limit ir reached")
import_limit_action:value("warn")
import_limit_action:value("block")
import_limit_action:value("disable")
import_limit_action:value("restart")
import_limit_action.default = "warn"
import_limit_action.optional = true
export_limit = sect_instances:option(Value, "export_limit", "Routes export limit", "Specify an export route limit. By default is disabled '0'")
export_limit.default="0"
export_limit.optional = true
export_limit_action = sect_instances:option(ListValue, "export_limit_action", "Routes export limit action", "Action to take when export routes limit is reached")
export_limit_action:value("warn")
export_limit_action:value("block")
export_limit_action:value("disable")
export_limit_action:value("restart")
export_limit_action.default = "warn"
export_limit_action.optional = true
receive_limit = sect_instances:option(Value, "receive_limit", "Routes received limit", "Specify a received route limit. By default is disabled '0'")
receive_limit.default="0"
receive_limit.optional = true
receive_limit_action = sect_instances:option(ListValue, "receive_limit_action", "Routes received limit action", "Action to take when received routes limit is reached")
receive_limit_action:value("warn")
receive_limit_action:value("block")
receive_limit_action:value("disable")
receive_limit_action:value("restart")
receive_limit_action.default = "warn"
receive_limit_action.optional = true
-- Section BGP Filters
sect_filters = m:section(TypedSection, "filter", "BGP Filters", "Filters of the BGP instances")
sect_filters.addremove = true
sect_filters.anonymous = false
sect_filters:depends("type", "bgp")
instance = sect_filters:option(ListValue, "instance", "BGP instance", "Filter's BGP instance")
instance:depends("type", "bgp")
uciout:foreach("bird6", "bgp",
function (s)
instance:value(s[".name"])
end)
type = sect_filters:option(Value, "type", "Filter type", "")
type.default = "bgp"
path = sect_filters:option(Value, "file_path", "Filter's file path", "Path to the Filter's file")
path:depends("type", "bgp")
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird6 stop; /etc/init.d/bird6 start')
end
return m

View file

@ -1,201 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird6", "Bird6 general protocol's configuration.")
-- Optional parameters lists
local protoptions = {
{["name"]="table", ["help"]="Auxiliar table for routing", ["depends"]={"static","kernel"}},
{["name"]="import", ["help"]="Set if the protocol must import routes", ["depends"]={"kernel"}},
{["name"]="export", ["help"]="Set if the protocol must export routes", ["depends"]={"kernel"}},
{["name"]="scan_time", ["help"]="Time between scans", ["depends"]={"kernel","device"}},
{["name"]="kernel_table", ["help"]="Set which table must be used as auxiliar kernel table", ["depends"]={"kernel"}},
{["name"]="learn", ["help"]="Learn routes", ["depends"]={"kernel"}},
{["name"]="persist", ["help"]="Store routes. After a restart, routes will be still configured", ["depends"]={"kernel"}}
}
local routeroptions = {
{["name"]="prefix",["help"]="",["depends"]={"router","special","iface","multipath","recursive"}},
{["name"]="via",["help"]="",["depends"]={"router","multipath"}},
{["name"]="attribute",["help"]="",["depends"]={"special"}},
{["name"]="iface",["help"]="",["depends"]={"iface"}},
{["name"]="ip",["help"]="",["depends"]={"recursive"}}
}
--
-- KERNEL PROTOCOL
--
sect_kernel_protos = m:section(TypedSection, "kernel", "Kernel options", "Configuration of the kernel protocols. First Instance MUST be Primary table (no table or kernel_table fields).")
sect_kernel_protos.addremove = true
sect_kernel_protos.anonymous = false
-- Default kernel parameters
disabled = sect_kernel_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "kernel" then
if o.name == "learn" or o.name == "persist" then
value = sect_kernel_protos:option(Flag, o.name, translate(o.name), translate(o.help))
elseif o.name == "table" then
value = sect_kernel_protos:option(ListValue, o.name, translate(o.name), translate(o.help))
uciout:foreach("bird6", "table",
function (s)
value:value(s.name)
end)
value:value("")
else
value = sect_kernel_protos:option(Value, o.name, translate(o.name), translate(o.help))
end
value.optional = true
value.rmempty = true
end
end
end
end
--
-- DEVICE PROTOCOL
--
sect_device_protos = m:section(TypedSection, "device", "Device options", "Configuration of the device protocols.")
sect_device_protos.addremove = true
sect_device_protos.anonymous = false
-- Default kernel parameters
disabled = sect_device_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "device" then
value = sect_device_protos:option(Value, o.name, translate(o.name), translate(o.help))
value.optional = true
value.rmempty = true
end
end
end
end
--
-- STATIC PROTOCOL
--
sect_static_protos = m:section(TypedSection, "static", "Static options", "Configuration of the static protocols.")
sect_static_protos.addremove = true
sect_static_protos.anonymous = false
-- Default kernel parameters
disabled = sect_static_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.")
disabled.default=0
-- Optional parameters
for _,o in ipairs(protoptions) do
if o.name ~= nil then
for _, d in ipairs(o.depends) do
if d == "static" then
if o.name == "table" then
value = sect_static_protos:option(ListValue, o.name, translate(o.name), translate(o.help))
uciout:foreach("bird6", "table",
function (s)
value:value(s.name)
end)
value:value("")
else
value = sect_static_protos:option(Value, o.name, translate(o.name), translate(o.help))
end
value.optional = true
value.rmempty = true
end
end
end
end
--
-- ROUTES FOR STATIC PROTOCOL
--
sect_routes = m:section(TypedSection, "route", "Routes configuration", "Configuration of the routes used in static protocols.")
sect_routes.addremove = true
sect_routes.anonymous = true
instance = sect_routes:option(ListValue, "instance", "Route instance", "")
i = 0
uciout:foreach("bird6", "static",
function (s)
instance:value(s[".name"])
end)
prefix = sect_routes:option(Value, "prefix", "Route prefix", "")
prefix.datatype = "ip6prefix"
type = sect_routes:option(ListValue, "type", "Type of route", "")
type:value("router")
type:value("special")
type:value("iface")
type:value("recursive")
type:value("multipath")
valueVia = sect_routes:option(Value, "via", "Via", "")
valueVia.optional = false
valueVia:depends("type", "router")
valueVia.datatype = "ip6addr"
listVia = sect_routes:option(DynamicList, "l_via", "Via", "")
listVia:depends("type", "multipath")
listVia.optional=false
listVia.datatype = "ip6addr"
attribute = sect_routes:option(Value, "attribute", "Attribute", "Types are: unreachable, prohibit and blackhole")
attribute:depends("type", "special")
iface = sect_routes:option(ListValue, "iface", "Interface", "")
iface:depends("type", "iface")
uciout:foreach("wireless", "wifi-iface",
function(section)
iface:value(section[".name"])
end)
ip = sect_routes:option(Value, "ip", "IP address", "")
ip:depends("type", "ip")
ip.datatype = [[ or"ip4addr", "ip6addr" ]]
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird6 stop; /etc/init.d/bird6 start')
end
return m

View file

@ -1,87 +0,0 @@
--[[
Copyright (C) 2014 - Eloi Carbó Solé (GSoC2014)
BGP/Bird integration with OpenWRT and QMP
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]--
require("luci.sys")
local http = require "luci.http"
local uci = require "luci.model.uci"
local uciout = uci.cursor()
m=Map("bird6", "Bird6 UCI configuration helper", "")
-- Named section: "bird"
s_bird_uci = m:section(NamedSection, "bird", "bird", "Bird6 file settings", "")
s_bird_uci.addremove = False
uuc = s_bird_uci:option(Flag, "use_UCI_config", "Use UCI configuration", "Use UCI configuration instead of the /etc/bird6.conf file")
ucf = s_bird_uci:option(Value, "UCI_config_File", "UCI File", "Specify the file to place the UCI-translated configuration")
ucf.default = "/tmp/bird6.conf"
-- Named Section: "table"
s_bird_table = m:section(TypedSection, "table", "Tables configuration", "Configuration of the tables used in the protocols")
s_bird_table.addremove = true
s_bird_table.anonymous = true
name = s_bird_table:option(Value, "name", "Table name", "Descriptor ID of the table")
-- Named section: "global"
s_bird_global = m:section(NamedSection, "global", "global", "Global options", "Basic Bird6 settings")
s_bird_global.addremove = False
id = s_bird_global:option(Value, "router_id", "Router ID", "Identification number of the router. By default, is the router's IP.")
lf = s_bird_global:option(Value, "log_file", "Log File", "File used to store log related data.")
l = s_bird_global:option(MultiValue, "log", "Log", "Set which elements do you want to log.")
l:value("all", "All")
l:value("info", "Info")
l:value("warning","Warning")
l:value("error","Error")
l:value("fatal","Fatal")
l:value("debug","Debug")
l:value("trace","Trace")
l:value("remote","Remote")
l:value("auth","Auth")
d = s_bird_global:option(MultiValue, "debug", "Debug", "Set which elements do you want to debug.")
d:value("all", "All")
d:value("states","States")
d:value("routes","Routes")
d:value("filters","Filters")
d:value("interfaces","Interfaces")
d:value("events","Events")
d:value("packets","Packets")
listen_addr = s_bird_global:option(Value, "listen_bgp_addr", "BGP Address", "Set the Addres that BGP will listen to.")
listen_addr.optional = true
listen_port = s_bird_global:option(Value, "listen_bgp_port", "BGP Port", "Set the port that BGP will listen to.")
listen_port.optional = true
listen_dual = s_bird_global:option(Flag, "listen_bgp_dual", "BGP Dual/ipv6", "Set if BGP connections will listen ipv6 only 'ipv6only' or both ipv4/6 'dual' routes")
listen_dual.optional = true
function m.on_commit(self,map)
luci.sys.call('/etc/init.d/bird6 stop; /etc/init.d/bird6 start')
end
return m

View file

@ -1,7 +0,0 @@
#!/bin/sh
EXC=`mount -t overlayfs | grep overlayfs -c`
[ $EXC > 0 ] && rm -r /etc/init.d/bird6 || mv /etc/init.d/bird6 /etc/bird6/init.d/bird6.orig
ln -s /etc/bird6/init.d/bird6 /etc/init.d/bird6

View file

@ -1,214 +0,0 @@
#
# Copyright (C) 2009-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=bird
PKG_VERSION:=1.6.3
PKG_RELEASE:=1
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
PKG_MD5SUM:=39c51cf57c3ba8b5978b2a657ffa2f647ec7f3ae643e91cf42ee5cb070cf7e7c
PKG_BUILD_DEPENDS:=libncurses libreadline
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
define Package/bird/Default
TITLE:=The BIRD Internet Routing Daemon
URL:=http://bird.network.cz/
DEPENDS:=+libpthread
endef
define Package/birdc/Default
TITLE:=The BIRD command-line client
URL:=http://bird.network.cz/
DEPENDS:= +libreadline +libncurses
endef
define Package/birdcl/Default
TITLE:=The BIRD lightweight command-line client
URL:=http://bird.network.cz/
endef
define Package/bird/Default/description1
BIRD is an internet routing daemon which manages TCP/IP routing tables
with support of modern routing protocols, easy to use configuration
interface and powerful route filtering language. It is lightweight and
efficient and therefore appropriate for small embedded routers.
endef
define Package/bird/Default/description2
In BGP, BIRD supports communities, multiprotocol extensions, MD5
authentication, 32bit AS numbers and could act as a route server or a
route reflector. BIRD also supports multiple RIBs, multiple kernel
routing tables and redistribution between the protocols with a powerful
configuration syntax.
endef
define Package/bird/Default/description3
This is a BIRD command-line client. It is used to send commands to BIRD,
commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show
a routing table filtered by a filter, or asking BIRD to reconfigure.
Unless you can't afford dependency on ncurses and readline, you
should install BIRD command-line client together with BIRD.
endef
define Package/bird/Default/description4
This is a BIRD lightweight command-line client. It is used to send commands to BIRD,
commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show
a routing table filtered by a filter, or asking BIRD to reconfigure.
endef
define Package/bird4
$(call Package/bird/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
endef
define Package/birdc4
$(call Package/birdc/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
DEPENDS+= +bird4
endef
define Package/birdcl4
$(call Package/birdcl/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
DEPENDS+= +bird4
endef
define Package/bird6
$(call Package/bird/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
endef
define Package/birdc6
$(call Package/birdc/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
DEPENDS+= +bird6
endef
define Package/birdcl6
$(call Package/birdcl/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
DEPENDS+= +bird6
endef
define Package/bird4/description
$(call Package/bird/Default/description1)
This is IPv4 version of BIRD, it supports OSPFv2, RIPv2 and BGP
protocols.
$(call Package/bird/Default/description2)
endef
define Package/birdc4/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description3)
endef
define Package/birdcl4/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description4)
endef
define Package/bird6/description
$(call Package/bird/Default/description1)
This is IPv6 version of BIRD, it supports OSPFv3, RIPng and BGP
protocols.
$(call Package/bird/Default/description2)
endef
define Package/birdc6/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description3)
endef
define Package/birdcl6/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description4)
endef
CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"
TARGET_CFLAGS+=-std=gnu89
define Build/Template
$(STAMP_BUILT)-$(2): $(STAMP_PREPARED)
$(call Build/Configure/Default,$(3))
$(call Build/Compile/Default,)
( cd $(PKG_BUILD_DIR); mv -f bird bird$(2); mv -f birdc birdc$(2); mv -f birdcl birdcl$(2) )
-$(MAKE) -C $(PKG_BUILD_DIR) clean
touch $$@
$(STAMP_BUILT): $(STAMP_BUILT)-$(2)
define Package/bird$(2)/install
$(INSTALL_DIR) $$(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/bird$(2) $$(1)/usr/sbin/
$(INSTALL_DIR) $$(1)/etc
$(INSTALL_DATA) ./files/bird$(2).conf $$(1)/etc/
$(INSTALL_DIR) $$(1)/etc/init.d
$(INSTALL_BIN) ./files/bird$(2).init $$(1)/etc/init.d/bird$(2)
endef
define Package/bird$(2)/conffiles
/etc/bird$(2).conf
endef
define Package/birdc$(2)/install
$(INSTALL_DIR) $$(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdc$(2) $$(1)/usr/sbin/
endef
define Package/birdcl$(2)/install
$(INSTALL_DIR) $$(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdcl$(2) $$(1)/usr/sbin/
endef
endef
$(eval $(call Build/Template,bird4,4, --disable-ipv6))
$(eval $(call Build/Template,bird6,6, --enable-ipv6))
$(eval $(call BuildPackage,bird4))
$(eval $(call BuildPackage,birdc4))
$(eval $(call BuildPackage,birdcl4))
$(eval $(call BuildPackage,bird6))
$(eval $(call BuildPackage,birdc6))
$(eval $(call BuildPackage,birdcl6))

View file

@ -1,121 +0,0 @@
# THIS CONFIG FILE IS NOT A COMPLETE DOCUMENTATION
# PLEASE LOOK IN THE BIRD DOCUMENTATION FOR MORE INFO
# However, most of options used here are just for example
# and will be removed in real-life configs.
log syslog all;
# Override router ID
#router id 192.168.0.1;
# Turn on global debugging of all protocols
#debug protocols all;
# Define a route filter...
# filter test_filter {
# if net ~ 10.0.0.0/16 then accept;
# else reject;
# }
# The direct protocol automatically generates device routes to all network
# interfaces. Can exist in as many instances as you wish if you want to
# populate multiple routing tables with device routes. Because device routes
# are handled by Linux kernel, this protocol is usually not needed.
# protocol direct {
# interface "*"; # Restrict network interfaces it works with
# }
# This pseudo-protocol performs synchronization between BIRD's routing
# tables and the kernel. You can run multiple instances of the kernel
# protocol and synchronize different kernel tables with different BIRD tables.
protocol kernel {
# learn; # Learn all alien routes from the kernel
# persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
# import none; # Default is import all
# export all; # Default is export none
}
# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
# Static routes (again, there can be multiple instances, so that you
# can disable/enable various groups of static routes on the fly).
protocol static {
# export all; # Default is export none
# route 0.0.0.0/0 via 62.168.0.13;
# route 10.0.0.0/8 reject;
# route 192.168.0.0/16 reject;
}
#protocol rip {
# disabled;
# import all;
# export all;
# export filter test_filter;
# port 1520;
# period 7;
# infinity 16;
# garbage time 60;
# interface "*" { mode broadcast; };
# honor neighbor;
# honor always;
# honor never;
# authentication none;
#}
#protocol ospf {
# disabled;
# import all;
# export all;
# export where source = RTS_STATIC;
# area 0 {
# interface "eth*" {
# cost 10;
# hello 3;
# retransmit 2;
# wait 5;
# dead 20;
# type broadcast;
# authentication simple;
# password "pass";
# };
# };
#}
#protocol bgp {
# disabled;
# import all;
# export all;
# export where source = RTS_STATIC;
# local as 65000;
# neighbor 192.168.1.1 as 65001;
# multihop 20 via 192.168.2.1;
# hold time 240;
# startup hold time 240;
# connect retry time 120;
# keepalive time 80; # defaults to hold time / 3
# start delay time 5; # How long do we wait before initial connect
# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
# # errors occur, we increase the delay exponentially ...
# error forget time 300; # ... until this timeout expires)
# disable after error; # Disable the protocol automatically when an error occurs
# next hop self; # Disable next hop processing and always advertise our local address as nexthop
# source address 62.168.0.14; # What local address we use for the TCP connection
# password "secret" # Password used for MD5 authentication
# rr client; # I am a route reflector and the neighor is my client
# rr cluster id 1.0.0.1 # Use this value for cluster id instead of my router id
# };
#}

View file

@ -1,26 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org
BIRD="bird4"
START=99
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid"
BIRD_BIN="/usr/sbin/$BIRD"
BIRD_CONF="/etc/$BIRD.conf"
start() {
service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE
}
stop() {
service_stop $BIRD_BIN
}
reload() {
service_reload $BIRD_BIN
}

View file

@ -1,121 +0,0 @@
# THIS CONFIG FILE IS NOT A COMPLETE DOCUMENTATION
# PLEASE LOOK IN THE BIRD DOCUMENTATION FOR MORE INFO
# However, most of options used here are just for example
# and will be removed in real-life configs.
log syslog all;
# Override router ID
#router id 192.168.0.1;
# Turn on global debugging of all protocols
#debug protocols all;
# Define a route filter...
# filter test_filter {
# if net ~ 10.0.0.0/16 then accept;
# else reject;
# }
# The direct protocol automatically generates device routes to all network
# interfaces. Can exist in as many instances as you wish if you want to
# populate multiple routing tables with device routes. Because device routes
# are handled by Linux kernel, this protocol is usually not needed.
# protocol direct {
# interface "*"; # Restrict network interfaces it works with
# }
# This pseudo-protocol performs synchronization between BIRD's routing
# tables and the kernel. You can run multiple instances of the kernel
# protocol and synchronize different kernel tables with different BIRD tables.
protocol kernel {
# learn; # Learn all alien routes from the kernel
# persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
# import none; # Default is import all
# export all; # Default is export none
}
# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
# Static routes (again, there can be multiple instances, so that you
# can disable/enable various groups of static routes on the fly).
protocol static {
# export all; # Default is export none
# route 0.0.0.0/0 via 62.168.0.13;
# route 10.0.0.0/8 reject;
# route 192.168.0.0/16 reject;
}
#protocol rip {
# disabled;
# import all;
# export all;
# export filter test_filter;
# port 1520;
# period 7;
# infinity 16;
# garbage time 60;
# interface "*" { mode broadcast; };
# honor neighbor;
# honor always;
# honor never;
# authentication none;
#}
#protocol ospf {
# disabled;
# import all;
# export all;
# export where source = RTS_STATIC;
# area 0 {
# interface "eth*" {
# cost 10;
# hello 3;
# retransmit 2;
# wait 5;
# dead 20;
# type broadcast;
# authentication simple;
# password "pass";
# };
# };
#}
#protocol bgp {
# disabled;
# import all;
# export all;
# export where source = RTS_STATIC;
# local as 65000;
# neighbor 192.168.1.1 as 65001;
# multihop 20 via 192.168.2.1;
# hold time 240;
# startup hold time 240;
# connect retry time 120;
# keepalive time 80; # defaults to hold time / 3
# start delay time 5; # How long do we wait before initial connect
# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
# # errors occur, we increase the delay exponentially ...
# error forget time 300; # ... until this timeout expires)
# disable after error; # Disable the protocol automatically when an error occurs
# next hop self; # Disable next hop processing and always advertise our local address as nexthop
# source address 62.168.0.14; # What local address we use for the TCP connection
# password "secret" # Password used for MD5 authentication
# rr client; # I am a route reflector and the neighor is my client
# rr cluster id 1.0.0.1 # Use this value for cluster id instead of my router id
# };
#}

View file

@ -1,26 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org
BIRD="bird6"
START=99
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid"
BIRD_BIN="/usr/sbin/$BIRD"
BIRD_CONF="/etc/$BIRD.conf"
start() {
service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE
}
stop() {
service_stop $BIRD_BIN
}
reload() {
service_reload $BIRD_BIN
}

129
bird2/Makefile Normal file
View file

@ -0,0 +1,129 @@
#
# Copyright (C) 2009-2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=bird2
PKG_VERSION:=2.14
PKG_RELEASE:=1
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
PKG_HASH:=b0b9f6f8566541b9be4af1f0cac675c5a3785601a55667a7ec3d7de29735a786
PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
PKG_LICENSE:=GPL-2.0-or-later
PKG_BUILD_DEPENDS:=ncurses readline
PKG_BUILD_DIR:=$(BUILD_DIR)/bird-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/bird2/Default/description
BIRD is an internet routing daemon which manages TCP/IP routing tables
with support of modern routing protocols, easy to use configuration
interface and powerful route filtering language. It is lightweight and
efficient and therefore appropriate for small embedded routers.
endef
define Package/bird2
TITLE:=The BIRD Internet Routing Daemon (v2)
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+libpthread
CONFLICTS:=bird1-ipv4 bird1-ipv6 bird4 bird6
endef
define Package/bird2c
TITLE:=The BIRD command-line client (v2)
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+bird2 +libreadline +libncurses
CONFLICTS:=bird1c-ipv4 bird1c-ipv6 birdc4 birdc6
endef
define Package/bird2cl
TITLE:=The BIRD lightweight command-line client (v2)
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+bird2
CONFLICTS:=bird1cl-ipv4 bird1cl-ipv6 birdcl4 birdcl6
endef
define Package/bird2/description
$(call Package/bird2/Default/description)
BIRD supports OSPFv2, RIPv2, Babel and BGP protocols for IPv4 and
OSPFv3, RIPng, Babel and BGP protocols for IPv6.
In BGP, BIRD supports communities, multiprotocol extensions, MD5
authentication, 32bit AS numbers and could act as a route server or a
route reflector. BIRD also supports multiple RIBs, multiple kernel
routing tables and redistribution between the protocols with a powerful
configuration syntax.
This is the 2.0 branch of Bird which integrates support for IPv4 and IPv6
into a single branch, and also adds support for the Babel routing protocol.
endef
define Package/bird2c/description
$(call Package/bird2/Default/description)
This is a BIRD command-line client. It is used to send commands to BIRD,
commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show
a routing table filtered by a filter, or asking BIRD to reconfigure.
Unless you can't afford dependency on ncurses and readline, you
should install BIRD command-line client together with BIRD.
endef
define Package/bird2cl/description
$(call Package/bird2/Default/description)
This is a BIRD lightweight command-line client. It is used to send commands
to BIRD, commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show
a routing table filtered by a filter, or asking BIRD to reconfigure.
endef
CONFIGURE_ARGS += --disable-libssh
define Package/bird2/conffiles
/etc/bird.conf
/etc/bird4.conf
/etc/bird6.conf
endef
define Package/bird2/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bird $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_DATA) ./files/bird.conf $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/bird.init $(1)/etc/init.d/bird
endef
define Package/bird2c/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/birdc $(1)/usr/sbin/
endef
define Package/bird2cl/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/birdcl $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,bird2))
$(eval $(call BuildPackage,bird2c))
$(eval $(call BuildPackage,bird2cl))

332
bird2/files/bird.conf Normal file
View file

@ -0,0 +1,332 @@
/*
* This is an example configuration file for MB-BGP setting
*/
log syslog all;
# debug protocols all;
router id 192.168.1.1;
ipv4 table master4;
ipv6 table master6;
ipv4 table mcast4;
ipv6 table mcast6;
ipv4 table mtab4;
ipv6 table mtab6;
vpn4 table vpntab4;
vpn6 table vpntab6;
vpn4 table vpn4mc;
vpn6 table vpn6mc;
flow4 table flowtab4;
flow6 table flowtab6;
protocol device {
}
protocol kernel kernel4 {
ipv4 {
export all;
};
}
protocol kernel kernel6 {
ipv6 {
export all;
};
}
protocol static static4 {
ipv4;
route 10.10.0.0/24 via 192.168.1.2;
route 10.10.1.0/24 via 192.168.1.2 { bgp_large_community.add((10,20,30)); bgp_large_community.add((10,(20*3),10)); };
}
protocol static static6 {
ipv6;
route 2001:db8:10:10::/64 via 2001:db8:1:1::10;
route 2001:db8:10:11::/64 via 2001:db8:1:1::10;
route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
}
# VPNv4 routes with MPLS labels
protocol static statvpn4 {
vpn4;
route 10:10 10.20.0.0/24 via 192.168.1.2 mpls 210;
route 10:10 10.20.1.0/24 via 192.168.1.2 mpls 210;
route 10:20 10.20.0.0/24 via 192.168.1.2 mpls 220;
route 10:20 10.20.1.0/24 via 192.168.1.2 mpls 220;
}
protocol static statvpn6 {
vpn6;
route 10:10 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/210;
route 10:10 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/210;
route 10:20 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/220;
route 10:20 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/220;
}
# RFC 5575 flow specification
protocol static flowstat4 {
flow4;
route flow4 {
dst 10.0.0.0/8;
proto = 23;
dport > 24 && < 30 || 40..50,60..70,80;
sport > 24 && < 30 || = 40 || 50,60..70,80;
icmp type 80;
icmp code 90;
tcp flags 0x03/0x0f;
length 2048..65535;
dscp = 63;
fragment dont_fragment, is_fragment || !first_fragment;
};
route flow4 {
dst 11.0.0.0/8;
proto = 0x12;
sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
dport = 50;
tcp flags 0x000/0xf00;
};
route flow4 {
dst 12.0.0.0/32;
tcp flags ! 0/0x999;
};
route flow4 {
dst 220.0.254.0/24;
tcp flags 0x99/0x999;
};
route flow4 {
dst 220.0.254.192/28;
tcp flags ! 0xfff/0xfff;
};
route flow4 {
dst 15.0.0.0/8;
tcp flags ! 0x999/0x999;
};
}
protocol static flowstat6 {
flow6;
route flow6 {
dst fec0:1122:3344:5566::1/128;
src 0000:0000:0000:0001:1234:5678:9800:0000/101 offset 63;
next header = 23;
sport 24..30, 42 || 50,60,70..80;
dport = 50;
tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
fragment !is_fragment || !first_fragment;
label 0xaaaa/0xaaaa && 0x33/0x33;
};
route flow6 {
dst fec0:1122:3344:5566::1/128;
src ::1:1234:5678:9800:0/101 offset 63;
next header = 23;
dport = 50;
sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
tcp flags 0x3/0x3 && 0x0/0xc;
};
}
protocol pipe {
table master4;
peer table mcast4;
import none;
export where source = RTS_OSPF;
}
protocol pipe {
table master6;
peer table mcast6;
import none;
export where source = RTS_OSPF;
}
protocol ospf v2 ospf4 {
ipv4 {
import all;
# export where source = RTS_STATIC;
};
area 0 {
interface "ve0" { stub; };
interface "ve1" { hello 5; type ptp; };
interface "ve2" { hello 5; type bcast; ttl security; };
interface "ve3" { hello 5; type bcast; ttl security; };
};
}
protocol ospf v3 ospf6 {
ipv6 {
import all;
# export where source = RTS_STATIC;
};
area 0 {
interface "ve0" { stub; };
interface "ve1" { hello 5; type ptp; };
interface "ve2" { hello 5; type bcast; };
};
}
protocol bgp {
local 192.168.11.1 as 1000;
neighbor 192.168.11.2 as 2000;
# local 192.168.1.1 as 1000;
# neighbor 192.168.2.1 as 2000;
# multihop;
# rr client;
# strict bind;
# debug all;
# regular IPv4 unicast (1/1)
ipv4 {
# connects to master4 table by default
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
# regular IPv6 unicast (2/1)
ipv6 {
# connects to master6 table by default
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
# next hop address 2001:db8:1:1::1;
};
# IPv4 multicast topology (1/2)
ipv4 multicast {
# explicit IPv4 table
table mcast4;
import all;
export all;
};
# IPv6 multicast topology (2/2)
ipv6 multicast {
# explicit IPv6 table
table mcast6;
import all;
export all;
# next hop address 2001:db8:1:1::1;
};
# IPv4 with MPLS labels (1/4)
ipv4 mpls {
# explicit IPv4 table
table mtab4;
import all;
export all;
};
# IPv6 with MPLS labels (2/4)
ipv6 mpls {
# explicit IPv6 table
table mtab6;
import all;
export all;
# allows IPv4 next hops (6PE)
# extended next hop;
};
# VPNv4 with MPLS labels (1/128)
vpn4 mpls {
# connects to vpntab4 table by default
import all;
export all;
};
# VPNv6 with MPLS labels (2/128)
vpn6 mpls {
# connects to vpntab6 table by default
import all;
export all;
};
# VPNv4 multicast topology (1/129)
vpn4 multicast {
table vpn4mc;
import all;
export all;
};
# VPNv6 multicast topology (2/129)
vpn6 multicast {
table vpn6mc;
import all;
export all;
};
# IPv4 Flowspec (1/133)
flow4 {
# connects to flowtab4 table by default
import all;
export all;
};
# IPv6 Flowspec (2/133)
flow6 {
# connects to flowtab6 table by default
import all;
export all;
};
}
protocol bgp {
local 192.168.1.1 as 1000;
neighbor 192.168.3.1 as 1000;
multihop;
rr client;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
next hop address 2001:db8:1:1::1;
};
}
protocol bgp {
local 2001:db8:1:1::1 as 1000;
neighbor 2001:db8:4:1::1 as 1000;
multihop;
rr client;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
next hop address 192.168.4.1;
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}

25
bird2/files/bird.init Normal file
View file

@ -0,0 +1,25 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2017 OpenWrt.org
USE_PROCD=1
START=70
STOP=10
BIRD_BIN="/usr/sbin/bird"
BIRD_CONF="/etc/bird.conf"
BIRD_PID_FILE="/var/run/bird.pid"
start_service() {
mkdir -p /var/run
procd_open_instance
procd_set_param command $BIRD_BIN -f -c $BIRD_CONF -P $BIRD_PID_FILE
procd_set_param file "$BIRD_CONF"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
reload_service() {
procd_send_signal bird
}

View file

@ -0,0 +1,11 @@
--- a/proto/ospf/topology.h
+++ b/proto/ospf/topology.h
@@ -41,7 +41,7 @@ struct top_hash_entry
u8 mode; /* LSA generated during RT calculation (LSA_RTCALC or LSA_STALE)*/
u8 nhs_reuse; /* Whether nhs nodes can be reused during merging.
See a note in rt.c:add_cand() */
-};
+} PACKED;
/* Prevents ospf_hash_find() to ignore the entry, for p->lsrqh and p->lsrth */

View file

@ -1,156 +0,0 @@
# Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
#
# Contibutors:
# Axel Neumann, Simó Albert i Beltran, Pau Escrich
#
include $(TOPDIR)/rules.mk
PKG_NAME:=bmx6
PKG_SOURCE_PROTO:=git
#PKG_SOURCE_URL:=git://bmx6.net/bmx6.git
PKG_SOURCE_URL:=git://github.com/axn/bmx6.git
PKG_REV:=2a87b770d3f9c254e3927dc159e2f425f2e0e83a
PKG_VERSION:=r2015080701
PKG_RELEASE:=4
PKG_LICENSE:=GPL-2.0
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += $(FPIC)
MAKE_ARGS += \
EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DNO_DEBUG_ALL -DNO_DEBUG_DUMP" \
EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib " \
GIT_REV="$(PKG_REV)" \
CC="$(TARGET_CC)" \
INSTALL_DIR="$(PKG_INSTALL_DIR)" \
STRIP="/bin/false" \
build_all
define Package/bmx6/Default
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE:=BMX6 layer 3 routing daemon
URL:=http://bmx6.net/
MAINTAINER:=Axel Neumann <neumann@cgws.de>
DEPENDS:=+kmod-ip6-tunnel +kmod-iptunnel6 +kmod-tun
endef
define Package/bmx6/description
BMX6 layer 3 routing daemon supporting IPv4, IPv6, and IPv4 over IPv6
endef
define Package/bmx6
$(call Package/bmx6/Default)
MENU:=1
endef
define Package/bmx6-uci-config
$(call Package/bmx6/Default)
DEPENDS:=bmx6 +libuci
TITLE:=configuration plugin based on uci (recommended!)
endef
define Package/bmx6-json
$(call Package/bmx6/Default)
DEPENDS:=bmx6 +libjson-c
TITLE:=json plugin based on json-c
endef
define Package/bmx6-sms
$(call Package/bmx6/Default)
DEPENDS:=bmx6
TITLE:=sms plugin
endef
#define Package/bmx6-quagga
# $(call Package/bmx6/Default)
# DEPENDS:=bmx6 +qmp-quagga @BROKEN
# TITLE:=bmx6 quagga plugin to redistribute/export routes (needs manet/bmx6 patched quagga 0.99.21)
#endef
define Package/bmx6-table
$(call Package/bmx6/Default)
DEPENDS:=bmx6
TITLE:=bmx6 table plugin to automatic announce routing-table routes via ip6ip tunnels
endef
define Build/Configure
mkdir -p $(PKG_INSTALL_DIR)
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
endef
define Package/bmx6/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx6 $(1)/usr/sbin/bmx6
endef
define Package/bmx6-uci-config/conffiles
/etc/config/bmx6
endef
define Package/bmx6-uci-config/install
$(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_uci_config/bmx6_config.so $(1)/usr/lib/bmx6_config.so
$(INSTALL_BIN) ./files/etc/init.d/bmx6 $(1)/etc/init.d/bmx6
$(INSTALL_DATA) ./files/etc/config/bmx6 $(1)/etc/config/bmx6
endef
define Package/bmx6-json/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_json/bmx6_json.so $(1)/usr/lib/bmx6_json.so
endef
define Package/bmx6-sms/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_sms/bmx6_sms.so $(1)/usr/lib/bmx6_sms.so
endef
define Package/bmx6-table/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_table/bmx6_table.so $(1)/usr/lib/bmx6_table.so
endef
#define Package/bmx6-quagga/install
# $(INSTALL_DIR) $(1)/usr/lib
# $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_quagga/bmx6_quagga.so $(1)/usr/lib/bmx6_quagga.so
#endef
$(eval $(call BuildPackage,bmx6))
$(eval $(call BuildPackage,bmx6-uci-config))
$(eval $(call BuildPackage,bmx6-json))
$(eval $(call BuildPackage,bmx6-sms))
#$(eval $(call BuildPackage,bmx6-quagga))
$(eval $(call BuildPackage,bmx6-table))

View file

@ -1,82 +0,0 @@
# for more information:
# http://bmx6.net/projects/bmx6/wiki
# options execute: bmx6 --help
config 'bmx6' 'general'
# option 'runtimeDir' '/var/run/bmx6'
# option 'tun4Address' '10.202.0.116/32'
# option 'tun4Address' '10.254.10.0/32'
# option 'tun6Address' '2012:0:0:1000::1/64'
#config 'ipVersion' 'ipVersion'
# option 'ipVersion' '6' # default is 4
# option 'throwRules' '0'
#config 'plugin'
# option 'plugin' 'bmx6_config.so'
#config 'plugin'
# option 'plugin' 'bmx6_json.so'
#config 'plugin'
# option 'plugin' 'bmx6_sms.so'
config 'dev' 'mesh_1'
option 'dev' 'eth0.12'
config 'dev' 'mesh_2'
option 'dev' 'ath0.12'
#config 'hna' 'my_global_prefix'
# option 'hna' '2012:0:0:74:0:0:0:0/64'
#config 'tunOut'
# option 'tunOut' 'ip6'
# option 'network' '2012::/16'
# option 'exportDistance' '0'
#config 'tunOut'
# option 'tunOut' 'ip4'
# option 'network' '10.254.0.0/16'
# option 'exportDistance' '0' # requires quagga plugin !
# option 'minPrefixLen' '27'
#config 'plugin'
# option 'plugin' 'bmx6_quagga.so'
#config 'redistribute'
# option 'redistribute' 'ospf6'
# option 'network' '10.0.0.0/8'
# option 'minPrefixLen' '10'
# option 'bandwidth' '10000000'
# option 'ospf6' '1'
# option 'aggregatePrefixLen' '16'
#config 'redistribute'
# option 'redistribute' 'bgp'
# option 'network' '0.0.0.0/0'
# option 'minPrefixLen' '0'
# option 'maxPrefixLen' '24'
# option 'bandwidth' '10000000'
# option 'bgp' '1'
# option 'aggregatePrefixLen' '8'

View file

@ -1,41 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
START=91
BIN=/usr/sbin/bmx6
CONF=/etc/config/bmx6
PID=/var/run/bmx6/pid
start() {
cd /root/
while pgrep -f mac80211.sh ; do sleep 1; done
ulimit -c 20000
$BIN -f $CONF -d0 > /dev/null &
}
stop() {
start-stop-daemon -p $PID -K
}
restart() {
stop; sleep 3; start
}

View file

@ -1,13 +0,0 @@
Index: bmx6-r2014112401/lib/bmx6_json/json.c
===================================================================
--- bmx6-r2014112401.orig/lib/bmx6_json/json.c
+++ bmx6-r2014112401/lib/bmx6_json/json.c
@@ -27,7 +27,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <stdint.h>
-#include <json/json.h>
+#include <json-c/json.h>
//#include <dirent.h>
//#include <sys/inotify.h>

View file

@ -1,73 +1,51 @@
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
#
# Contibutors:
# Axel Neumann, Simó Albert i Beltran, Pau Escrich
#
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=bmx7 PKG_NAME:=bmx7
PKG_VERSION:=7.1.1
PKG_RELEASE:=5
PKG_SOURCE_PROTO:=git PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/bmx-routing/bmx7/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=5f88df1c95e5cb842a6016bb1604e3e7f6097c63c5c9916edc3c84e96d4f5f65
#PKG_SOURCE_URL:=git://bmx6.net/bmx6.git PKG_MAINTAINER:=Axel Neumann <neumann@cgws.de>
PKG_SOURCE_URL:=git://github.com/axn/bmx6.git PKG_LICENSE:=GPL-2.0-or-later
#PKG_SOURCE_URL:=file:///usr/src/bmx6/bmx6.git PKG_LICENSE_FILES:=LICENSE
PKG_REV:=589ee21b49d370056a24d8931d663626608f3c12 PKG_BUILD_PARALLEL:=1
PKG_VERSION:=r2017011101
PKG_RELEASE:=4
PKG_LICENSE:=GPL-2.0
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += $(FPIC) TARGET_CFLAGS += $(FPIC)
#MAKE_ARGS += EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DCRYPTLIB=POLARSSL_1_3_4 -DCORE_LIMIT=20000 -DTRAFFIC_DUMP -DNO_TRACE_FUNCTION_CALLS -DBMX7_LIB_IWINFO" MAKE_ARGS += EXTRA_CFLAGS="$(TARGET_CFLAGS) \
MAKE_ARGS += EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DCRYPTLIB=MBEDTLS_2_4_0 -DCORE_LIMIT=20000 -DTRAFFIC_DUMP -DNO_TRACE_FUNCTION_CALLS -DBMX7_LIB_IWINFO" -I. \
-I$(STAGING_DIR)/usr/include \
-DCRYPTLIB=MBEDTLS_2_8_0 \
-DCORE_LIMIT=20000 \
-DTRAFFIC_DUMP \
-DNO_TRACE_FUNCTION_CALLS \
-DBMX7_LIB_IWINFO" \
EXTRA_LDFLAGS="$(TARGET_LDFLAGS) \
-L$(STAGING_DIR)/usr/lib -liwinfo" \
GIT_REV="$(PKG_REV)" \
CC="$(TARGET_CC)" \
INSTALL_DIR="$(PKG_INSTALL_DIR)" \
build_all
MAKE_ARGS += \ MAKE_PATH:=src
EXTRA_LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -liwinfo" \
GIT_REV="$(PKG_REV)" \
CC="$(TARGET_CC)" \
INSTALL_DIR="$(PKG_INSTALL_DIR)" \
build_all
define Package/bmx7/Default define Package/bmx7/Default
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
TITLE:=BMX7 layer 3 routing daemon TITLE:=BMX7 layer 3 routing daemon
URL:=http://bmx6.net/ URL:=https://github.com/bmx-routing/bmx7
MAINTAINER:=Axel Neumann <neumann@cgws.de>
# DEPENDS:=+zlib +libpolarssl +libiwinfo
DEPENDS:=+zlib +libmbedtls +libiwinfo DEPENDS:=+zlib +libmbedtls +libiwinfo
endef endef
define Package/bmx7/description define Package/bmx7/description
BMX7 routing daemon supporting securely-entrusted IPv6 (and IPv4in6) routing BMX7 routing daemon supporting securely-entrusted IPv6 (and IPv4in6) routing
endef endef
define Package/bmx7 define Package/bmx7
@ -84,7 +62,7 @@ endef
define Package/bmx7-iwinfo define Package/bmx7-iwinfo
$(call Package/bmx7/Default) $(call Package/bmx7/Default)
DEPENDS:=bmx7 +libiwinfo DEPENDS:=bmx7 +libiwinfo
TITLE:=link characteristics plugin based on libiwinfo (recommended!) TITLE:=link characteristics plugin via libiwinfo (recommended!)
endef endef
define Package/bmx7-topology define Package/bmx7-topology
@ -117,72 +95,64 @@ define Package/bmx7-table
TITLE:=plugin to announce routes from tables via tunnels TITLE:=plugin to announce routes from tables via tunnels
endef endef
define Build/Configure define Package/bmx7/install
mkdir -p $(PKG_INSTALL_DIR) $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/bmx7 $(1)/usr/sbin/bmx7
endef endef
define Build/Compile define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS) $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) $(MAKE_ARGS)
endef endef
define Package/bmx7/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx7 $(1)/usr/sbin/bmx7
endef
define Package/bmx7/postinst
#!/bin/sh
# # check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
if [ -f /etc/sysupgrade.conf ] && ! grep bmx7 /etc/sysupgrade.conf; then
echo /etc/bmx7 >> /etc/sysupgrade.conf
fi
fi
endef
define Package/bmx7-uci-config/conffiles define Package/bmx7-uci-config/conffiles
/etc/config/bmx7 /etc/config/bmx7
/etc/bmx7
endef endef
define Package/bmx7-uci-config/install define Package/bmx7-uci-config/install
$(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_uci_config/bmx7_config.so $(1)/usr/lib/bmx7_config.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_uci_config/bmx7_config.so \
$(1)/usr/lib/bmx7_config.so
$(INSTALL_BIN) ./files/etc/init.d/bmx7 $(1)/etc/init.d/bmx7 $(INSTALL_BIN) ./files/etc/init.d/bmx7 $(1)/etc/init.d/bmx7
$(INSTALL_DATA) ./files/etc/config/bmx7 $(1)/etc/config/bmx7 $(INSTALL_DATA) ./files/etc/config/bmx7 $(1)/etc/config/bmx7
endef endef
define Package/bmx7-iwinfo/install define Package/bmx7-iwinfo/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_iwinfo/bmx7_iwinfo.so $(1)/usr/lib/bmx7_iwinfo.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_iwinfo/bmx7_iwinfo.so \
$(1)/usr/lib/bmx7_iwinfo.so
endef endef
define Package/bmx7-topology/install define Package/bmx7-topology/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_topology/bmx7_topology.so $(1)/usr/lib/bmx7_topology.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_topology/bmx7_topology.so \
$(1)/usr/lib/bmx7_topology.so
endef endef
define Package/bmx7-json/install define Package/bmx7-json/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_json/bmx7_json.so $(1)/usr/lib/bmx7_json.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_json/bmx7_json.so \
$(1)/usr/lib/bmx7_json.so
endef endef
define Package/bmx7-sms/install define Package/bmx7-sms/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_sms/bmx7_sms.so $(1)/usr/lib/bmx7_sms.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_sms/bmx7_sms.so \
$(1)/usr/lib/bmx7_sms.so
endef endef
define Package/bmx7-tun/install define Package/bmx7-tun/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_tun/bmx7_tun.so $(1)/usr/lib/bmx7_tun.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_tun/bmx7_tun.so \
$(1)/usr/lib/bmx7_tun.so
endef endef
define Package/bmx7-table/install define Package/bmx7-table/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_table/bmx7_table.so $(1)/usr/lib/bmx7_table.so $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_table/bmx7_table.so \
$(1)/usr/lib/bmx7_table.so
endef endef
$(eval $(call BuildPackage,bmx7)) $(eval $(call BuildPackage,bmx7))
$(eval $(call BuildPackage,bmx7-uci-config)) $(eval $(call BuildPackage,bmx7-uci-config))
$(eval $(call BuildPackage,bmx7-iwinfo)) $(eval $(call BuildPackage,bmx7-iwinfo))

View file

@ -1,11 +1,10 @@
# for more information: # for more information:
# http://bmx6.net/projects/bmx6/wiki # https://github.com/bmx-routing/bmx7/
# options execute: bmx7 --help # options execute: bmx7 --help
config 'bmx7' 'general' config 'bmx7' 'general'
# option 'runtimeDir' '/var/run/bmx7' # option 'runtimeDir' '/var/run/bmx7'
# option 'trustedNodesDir' '/etc/bmx7/trustedNodes' # option 'trustedNodesDir' '/etc/bmx7/trustedNodes'
#config 'plugin' #config 'plugin'
# option 'plugin' 'bmx7_config.so' # option 'plugin' 'bmx7_config.so'
@ -19,22 +18,18 @@ config 'bmx7' 'general'
#config 'plugin' #config 'plugin'
# option 'plugin' 'bmx7_iwinfo.so' # option 'plugin' 'bmx7_iwinfo.so'
config 'dev' 'mesh_1' config 'dev' 'mesh_1'
option 'dev' 'br-lan' option 'dev' 'br-lan'
config 'dev' 'mesh_2' config 'dev' 'mesh_2'
option 'dev' 'wlan0' option 'dev' 'wlan0'
#config 'plugin' #config 'plugin'
# option 'plugin' 'bmx7_tun.so' # option 'plugin' 'bmx7_tun.so'
#config 'plugin' #config 'plugin'
# option 'plugin' 'bmx7_table.so' # option 'plugin' 'bmx7_table.so'
#config 'tunDev' default #config 'tunDev' default
# option 'tunDev' 'default' # option 'tunDev' 'default'
# option 'tun6Address' '2012:0:0:6666::1/64' # option 'tun6Address' '2012:0:0:6666::1/64'
@ -50,8 +45,3 @@ config 'dev' 'mesh_2'
# option 'tunOut' 'ip4' # option 'tunOut' 'ip4'
# option 'network' '10.0.0.0/9' # option 'network' '10.0.0.0/9'
# option 'minPrefixLen' '27' # option 'minPrefixLen' '27'

View file

@ -1,41 +1,28 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
START=91 START=91
USE_PROCD=1
BIN=/usr/sbin/bmx7 BIN=/usr/sbin/bmx7
CONF=/etc/config/bmx7 CONF=/etc/config/bmx7
PID=/var/run/bmx7/pid
start_service() {
start() { cd /root/ || return
cd /root/
while pgrep -f mac80211.sh ; do sleep 1; done while pgrep -f mac80211.sh ; do sleep 1; done
ulimit -c 20000
$BIN -f $CONF -d0 > /dev/null & procd_open_instance "bmx7"
procd_set_param command "$BIN"
procd_append_param command -f "$CONF" -d0
procd_set_param limits core=20000
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
} }
stop() { reload_service() {
start-stop-daemon -p $PID -K "$BIN" -c configReload
} }
restart() { service_triggers() {
stop; sleep 3; start procd_add_reload_trigger "bmx7"
} }

View file

@ -1,13 +0,0 @@
Index: bmx7-r2014112401/lib/bmx7_json/json.c
===================================================================
--- bmx7-r2014112401.orig/lib/bmx7_json/json.c
+++ bmx7-r2014112401/lib/bmx7_json/json.c
@@ -27,7 +27,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <stdint.h>
-#include <json/json.h>
+#include <json-c/json.h>
//#include <dirent.h>
//#include <sys/inotify.h>

View file

@ -0,0 +1,11 @@
--- a/src/bmx.h
+++ b/src/bmx.h
@@ -290,7 +290,7 @@ enum ADGSN {
#define SUCCESS 0
#define FAILURE -1
-const void* FAILURE_PTR;
+extern const void* FAILURE_PTR;
#define MAX_SELECT_TIMEOUT_MS 1100 /* MUST be smaller than (1000/2) to fit into max tv_usec */

View file

@ -0,0 +1,38 @@
--- a/src/schedule.c
+++ b/src/schedule.c
@@ -375,7 +375,9 @@ loop4Event:
continue;
}
+#ifdef SIOCGSTAMP
ioctl(pb.i.iif->rx_mcast_sock, SIOCGSTAMP, &(pb.i.tv_stamp));
+#endif
rx_packet(&pb);
@@ -401,7 +403,9 @@ loop4Event:
continue;
}
+#ifdef SIOCGSTAMP
ioctl(pb.i.iif->rx_fullbrc_sock, SIOCGSTAMP, &(pb.i.tv_stamp));
+#endif
rx_packet(&pb);
@@ -451,10 +455,15 @@ loop4Event:
}
}
#endif
+#ifdef SIOCGSTAMP
if (tv_stamp == NULL)
ioctl(pb.i.iif->unicast_sock, SIOCGSTAMP, &(pb.i.tv_stamp));
else
timercpy(&(pb.i.tv_stamp), tv_stamp);
+#else
+ if (tv_stamp)
+ timercpy(&(pb.i.tv_stamp), tv_stamp);
+#endif
rx_packet(&pb);

View file

@ -17,28 +17,27 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=cjdns PKG_NAME:=cjdns
PKG_VERSION:=0.17 PKG_VERSION:=v21.1
PKG_RELEASE:=3 PKG_RELEASE:=5
PKG_SOURCE_URL:=https://github.com/hyperboria/cjdns.git PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://codeload.github.com/cjdelisle/cjdns/tar.gz/$(PKG_NAME)-$(PKG_VERSION)?
PKG_SOURCE_VERSION:=40e87d9419c19063e772e39c7c59a8a8771c5ee8 PKG_HASH:=a6158ce7847159aa44e86f74ccc7b6ded6910a230ed8f3830db53cda5838f0b0
PKG_LICENSE:=GPL-3.0 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_MAINTAINER:=William Fleurant <meshnet@protonmail.com>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/cjdns define Package/cjdns
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
TITLE:=Encrypted near-zero-conf mesh routing protocol TITLE:=Encrypted near-zero-conf mesh routing protocol
URL:=https://github.com/hyperboria/cjdns URL:=https://github.com/cjdelisle/cjdns
MAINTAINER:=Lars Gierth <larsg@systemli.org> DEPENDS:=@!arc @IPV6 +kmod-tun +libnl-tiny +libpthread +librt \
DEPENDS:=@IPV6 +kmod-tun +libnl-tiny +libpthread +librt \
+libuci-lua +lua-bencode +dkjson +luasocket +lua-sha2 +libuci-lua +lua-bencode +dkjson +luasocket +lua-sha2
endef endef
@ -54,13 +53,12 @@ define Package/cjdns-tests
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
TITLE:=cjdns test cases TITLE:=cjdns test cases
URL:=https://github.com/hyperboria/cjdns URL:=https://github.com/cjdelisle/cjdns
MAINTAINER:=Lars Gierth <larsg@systemli.org> DEPENDS:=+libpthread +librt @!arc
DEPENDS:=+libpthread +librt
endef endef
define Package/cjdns-test/description define Package/cjdns-test/description
cjdns test cases Builds cjdns test cases binary test_testcjdroute_c
endef endef
define Build/Configure define Build/Configure
@ -78,11 +76,12 @@ endif
define Build/Compile define Build/Compile
$(INSTALL_DIR) $(PKG_BUILD_DIR)/tmp $(INSTALL_DIR) $(PKG_BUILD_DIR)/tmp
(cd $(PKG_BUILD_DIR) && \
CROSS="true" \ CROSS="true" \
CC="$(TARGET_CC)" \ CC="$(TARGET_CC_NOCACHE)" \
AR="$(TARGET_AR)" \ AR="$(TARGET_AR)" \
RANLIB="$(TARGET_RANLIB)" \ RANLIB="$(TARGET_RANLIB)" \
CFLAGS="$(TARGET_CFLAGS)" \ CFLAGS="$(TARGET_CFLAGS) -U_FORTIFY_SOURCE -Wno-error=array-bounds -Wno-error=stringop-overflow -Wno-error=stringop-overread" \
LDFLAGS="$(TARGET_LDFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \
SYSTEM="linux" \ SYSTEM="linux" \
TARGET_ARCH="$(CONFIG_ARCH)" \ TARGET_ARCH="$(CONFIG_ARCH)" \
@ -90,7 +89,7 @@ define Build/Compile
GYP_ADDITIONAL_ARGS="-f make-linux" \ GYP_ADDITIONAL_ARGS="-f make-linux" \
CJDNS_BUILD_TMPDIR="$(PKG_BUILD_DIR)/tmp" \ CJDNS_BUILD_TMPDIR="$(PKG_BUILD_DIR)/tmp" \
$(PKG_DO_VARS) \ $(PKG_DO_VARS) \
$(PKG_BUILD_DIR)/do exec ./do)
endef endef
define Package/cjdns/install define Package/cjdns/install
@ -131,7 +130,6 @@ define Package/cjdns/postinst
#!/bin/sh #!/bin/sh
if [ -z $${IPKG_INSTROOT} ] ; then if [ -z $${IPKG_INSTROOT} ] ; then
( . /etc/uci-defaults/cjdns ) && rm -f /etc/uci-defaults/cjdns ( . /etc/uci-defaults/cjdns ) && rm -f /etc/uci-defaults/cjdns
# TODO: we should have an 'Enable' button instead
/etc/init.d/cjdns enabled || /etc/init.d/cjdns enable /etc/init.d/cjdns enabled || /etc/init.d/cjdns enable
exit 0 exit 0
fi fi

View file

@ -23,17 +23,10 @@ EOF
fi fi
# enable auto-peering on ethernet interface lan, if existing # enable auto-peering on ethernet interface lan, if existing
uci get network.lan | grep interface >/dev/null 2>&1 ifname=$(uci -q get network.lan.device || \
if [ $? -eq 0 ]; then ([ "$(uci -q get network.lan.type)" == "bridge" ] && echo br-lan) || \
uci get network.lan.type | grep bridge >/dev/null 2>&1 uci -q get network.lan.ifname)
if [ $? -eq 0 ]; then if [ -n "$ifname" ]; then
# most routers will set up an ethernet bridge for the lan
ifname="br-lan"
else
# docker containers don't have permission to create bridges by default,
# so we bind to the underlying interface instead (likely eth0)
ifname=`uci get network.lan.ifname`
fi
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
add cjdns eth_interface add cjdns eth_interface
set cjdns.@eth_interface[-1].beacon=2 set cjdns.@eth_interface[-1].beacon=2
@ -46,7 +39,7 @@ EOF
# create the network interface # create the network interface
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set network.cjdns=interface set network.cjdns=interface
set network.cjdns.ifname=tuncjdns set network.cjdns.device=tuncjdns
set network.cjdns.proto=none set network.cjdns.proto=none
EOF EOF

View file

@ -19,6 +19,7 @@ function UCI.defaults()
{ setupComplete = 1 } { setupComplete = 1 }
}, },
router = { router = {
supernodes = {},
ipTunnel = { outgoingConnections = {}, allowedConnections = {} }, ipTunnel = { outgoingConnections = {}, allowedConnections = {} },
interface = { type = "TUNInterface" } interface = { type = "TUNInterface" }
}, },
@ -52,6 +53,10 @@ function UCI.get()
obj.router.interface.tunDevice = config.tun_device obj.router.interface.tunDevice = config.tun_device
end end
cursor:foreach("cjdns", "supernodes", function(supernodes)
table.insert(obj.router.supernodes, supernodes.public_key)
end)
for i,section in pairs(obj.security) do for i,section in pairs(obj.security) do
if type(section.seccomp) == "number" then if type(section.seccomp) == "number" then
obj.security[i].seccomp = tonumber(config.seccomp) obj.security[i].seccomp = tonumber(config.seccomp)

View file

@ -0,0 +1,13 @@
--- a/node_build/builder.js
+++ b/node_build/builder.js
@@ -277,8 +277,8 @@ const execJs = function (js, ctx, file,
js = '"use strict";' + qs.join("'");
const to = setTimeout(function () {
- throw new Error("Inline JS did not return after 120 seconds [" + js + "]");
- }, 120000);
+ throw new Error("Inline JS did not return after 5 minutes [" + js + "]");
+ }, 300000);
nThen(function (waitFor) {

View file

@ -0,0 +1,11 @@
--- a/node_build/FindPython.js
+++ b/node_build/FindPython.js
@@ -23,7 +23,7 @@ var Fs = require('fs');
// de-prioritize because the testing script accepts ANY python3 version
// (as of this writing, we don't know what python3 versions actually work)
// whereas we know that python2.7 is the only working python2 version.
-var PYTHONS = ["python3.7", "python3", "python2.7", "python2", "python"];
+var PYTHONS = ["python2", "python2.7", "python3.7", "python3.8", "python3.9", "python3"]
var SCRIPT = [
'import sys',

View file

@ -0,0 +1,23 @@
--- a/net/SwitchPinger_admin.c
+++ b/net/SwitchPinger_admin.c
@@ -78,8 +78,10 @@ static void adminPing(Dict* args, void*
uint32_t timeout = (timeoutPtr) ? *timeoutPtr : DEFAULT_TIMEOUT;
uint64_t path;
String* err = NULL;
+ String* pathNotParsable = String_CONST("path was not parsable.");
+ String* noOpenSlots = String_CONST("no open slots to store ping, try later.");
if (pathStr->len != 19 || AddrTools_parsePath(&path, (uint8_t*) pathStr->bytes)) {
- err = String_CONST("path was not parsable.");
+ err = pathNotParsable;
} else {
struct SwitchPinger_Ping* ping = SwitchPinger_newPing(path,
data,
@@ -89,7 +91,7 @@ static void adminPing(Dict* args, void*
context->switchPinger);
if (keyPing && *keyPing) { ping->type = SwitchPinger_Type_KEYPING; }
if (!ping) {
- err = String_CONST("no open slots to store ping, try later.");
+ err = noOpenSlots;
} else {
ping->onResponseContext = Allocator_clone(ping->pingAlloc, (&(struct Ping) {
.context = context,

View file

@ -0,0 +1,15 @@
--- a/node_build/dependencies/libuv/build/gyp/pylib/gyp/common.py
+++ b/node_build/dependencies/libuv/build/gyp/pylib/gyp/common.py
@@ -4,7 +4,11 @@
from __future__ import with_statement
-import collections
+try:
+ # Python 3.10
+ from six.moves import collections_abc as collections
+except ImportError:
+ import collections
import errno
import filecmp
import os.path

View file

@ -7,17 +7,19 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=hnetd PKG_NAME:=hnetd
PKG_SOURCE_VERSION:=606d7e904603ad8792ac1a7ba825618df97b5a4e PKG_SOURCE_DATE:=2018-12-21
PKG_VERSION:=2016-06-28-$(PKG_SOURCE_VERSION) PKG_SOURCE_VERSION:=c43766610ed30194b048bc070a3c433aec731c40
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/sbyx/hnetd.git PKG_SOURCE_URL:=https://github.com/sbyx/hnetd
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org> PKG_MIRROR_HASH:=a41baa2e3d7930cc88073b0b3f6e1fa6a4abd9fd663f2577cfde1564fa07f8f2
PKG_LICENSE:=GPL-2.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk

View file

@ -0,0 +1,43 @@
--- a/src/dtls.c
+++ b/src/dtls.c
@@ -698,8 +698,10 @@ dtls dtls_create(uint16_t port)
if (!_ssl_initialized)
{
_ssl_initialized = true;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
SSL_load_error_strings();
SSL_library_init();
+#endif
}
if (!d)
goto fail;
@@ -711,9 +713,9 @@ dtls dtls_create(uint16_t port)
goto fail;
#ifdef USE_ONE_CONTEXT
- SSL_CTX *ctx = SSL_CTX_new(DTLSv1_method());
+ SSL_CTX *ctx = SSL_CTX_new(DTLS_method());
#else
- SSL_CTX *ctx = SSL_CTX_new(DTLSv1_server_method());
+ SSL_CTX *ctx = SSL_CTX_new(DTLS_server_method());
#endif /* USE_ONE_CONTEXT */
if (!ctx)
{
@@ -1002,6 +1004,7 @@ _client_psk(SSL *ssl,
bool dtls_set_psk(dtls d, const char *psk, size_t psk_len)
{
+#ifndef OPENSSL_NO_PSK
free(d->psk);
d->psk = malloc(psk_len);
if (!d->psk)
@@ -1011,6 +1014,9 @@ bool dtls_set_psk(dtls d, const char *ps
SSL_CTX_set_psk_client_callback(d->ssl_client_ctx, _client_psk);
SSL_CTX_set_psk_server_callback(d->ssl_server_ctx, _server_psk);
return true;
+#else
+ return false;
+#endif
}
bool dtls_cert_to_pem_buf(dtls_cert cert, char *buf, int buf_len)

View file

@ -0,0 +1,10 @@
--- a/src/hnetd.h
+++ b/src/hnetd.h
@@ -39,6 +39,7 @@
#endif /* __APPLE__ */
+#undef __unused
#include <stddef.h>
#include <stdint.h>
#include <time.h>

View file

@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View file

@ -1,62 +0,0 @@
# Copyright (C) 2011 Pau Escrich <pau@dabax.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-bmx6
PKG_RELEASE:=3
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=GPL-2.0+
include $(INCLUDE_DIR)/package.mk
define Package/luci-app-bmx6
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=3. Applications
TITLE:= bmx6 configuration, status and visualization module
DEPENDS:=+luci-lib-json +luci-mod-admin-full +luci-lib-httpclient +bmx6
MAINTAINER:= Pau Escrich <p4u@dabax.net>
endef
define Package/luci-app-bmx6/description
bmx6 web application (status and configuration) for LuCi web interface
endef
define Package/luci-app-bmx6/conffiles
/etc/config/luci-bmx6
endef
define Build/Prepare
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/luci-app-bmx6/install
$(CP) ./files/* $(1)/
chmod 755 $(1)/www/cgi-bin/bmx6-info
endef
$(eval $(call BuildPackage,luci-app-bmx6))

View file

@ -1,7 +0,0 @@
config 'bmx6' 'luci'
option ignore '0'
option place 'admin network BMX6'
#option place 'qmp Mesh'
option position '3'
#option json 'http://127.0.0.1/cgi-bin/bmx6-info?'
option json 'exec:/www/cgi-bin/bmx6-info -s'

View file

@ -1,277 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
Contributors Jo-Philipp Wich <xm@subsignal.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
local bmx6json = require("luci.model.bmx6json")
module("luci.controller.bmx6", package.seeall)
function index()
local place = {}
local ucim = require "luci.model.uci"
local uci = ucim.cursor()
-- checking if ignore is on
if uci:get("luci-bmx6","luci","ignore") == "1" then
return nil
end
-- getting value from uci database
local uci_place = uci:get("luci-bmx6","luci","place")
-- default values
if uci_place == nil then
place = {"bmx6"}
else
local util = require "luci.util"
place = util.split(uci_place," ")
end
-- getting position of menu
local uci_position = uci:get("luci-bmx6","luci","position")
---------------------------
-- Starting with the pages
---------------------------
--- status (default)
entry(place,call("action_nodes_j"),place[#place],tonumber(uci_position))
table.insert(place,"Status")
entry(place,call("action_status_j"),"Status",0)
table.remove(place)
--- nodes
table.insert(place,"Nodes")
entry(place,call("action_nodes_j"),"Nodes",1)
table.remove(place)
--- links
table.insert(place,"Links")
entry(place,call("action_links"),"Links",2).leaf = true
table.remove(place)
-- Tunnels
table.insert(place,"Tunnels")
entry(place,call("action_tunnels_j"), "Tunnels", 3).leaf = true
table.remove(place)
--- Chat
table.insert(place,"Chat")
entry(place,call("action_chat"),"Chat",5)
table.remove(place)
--- Graph
table.insert(place,"Graph")
entry(place, template("bmx6/graph"), "Graph",4)
table.remove(place)
--- Topology (hidden)
table.insert(place,"topology")
entry(place, call("action_topology"), nil)
table.remove(place)
--- configuration (CBI)
table.insert(place,"Configuration")
entry(place, cbi("bmx6/main"), "Configuration",6).dependent=false
table.insert(place,"General")
entry(place, cbi("bmx6/main"), "General",1)
table.remove(place)
table.insert(place,"Advanced")
entry(place, cbi("bmx6/advanced"), "Advanced",5)
table.remove(place)
table.insert(place,"Interfaces")
entry(place, cbi("bmx6/interfaces"), "Interfaces",2)
table.remove(place)
table.insert(place,"Tunnels")
entry(place, cbi("bmx6/tunnels"), "Tunnels",3)
table.remove(place)
table.insert(place,"Plugins")
entry(place, cbi("bmx6/plugins"), "Plugins",6)
table.remove(place)
table.insert(place,"HNAv6")
entry(place, cbi("bmx6/hna"), "HNAv6",4)
table.remove(place)
table.remove(place)
end
function action_status_j()
luci.template.render("bmx6/status_j", {})
end
function action_nodes_j()
local http = require "luci.http"
local link_non_js = "/cgi-bin/luci" .. http.getenv("PATH_INFO") .. '/nodes_nojs'
luci.template.render("bmx6/nodes_j", {link_non_js=link_non_js})
end
function action_gateways_j()
luci.template.render("bmx6/gateways_j", {})
end
function action_tunnels_j()
luci.template.render("bmx6/tunnels_j", {})
end
function action_links(host)
local links = bmx6json.get("links", host)
local devlinks = {}
local _,l
if links ~= nil then
links = links.links
for _,l in ipairs(links) do
devlinks[l.viaDev] = {}
end
for _,l in ipairs(links) do
l.name = luci.util.split(l.name,'.')[1]
table.insert(devlinks[l.viaDev],l)
end
end
luci.template.render("bmx6/links", {links=devlinks})
end
function action_topology()
local originators = bmx6json.get("originators/all")
local o,i,l,i2
local first = true
local topology = '[ '
local cache = '/tmp/bmx6-topology.json'
local offset = 60
local cachefd = io.open(cache,r)
local update = false
if cachefd ~= nil then
local lastupdate = tonumber(cachefd:read("*line")) or 0
if os.time() >= lastupdate + offset then
update = true
else
topology = cachefd:read("*all")
end
cachefd:close()
end
if cachefd == nil or update then
for i,o in ipairs(originators) do
local links = bmx6json.get("links",o.primaryIp)
if links then
if first then
first = false
else
topology = topology .. ', '
end
topology = topology .. '{ "name": "%s", "links": [' %o.name
local first2 = true
for i2,l in ipairs(links.links) do
if first2 then
first2 = false
else
topology = topology .. ', '
end
name = l.name or l.llocalIp or "unknown"
topology = topology .. '{ "name": "%s", "rxRate": %s, "txRate": %s }'
%{ name, l.rxRate, l.txRate }
end
topology = topology .. ']}'
end
end
topology = topology .. ' ]'
-- Upgrading the content of the cache file
cachefd = io.open(cache,'w+')
cachefd:write(os.time()..'\n')
cachefd:write(topology)
cachefd:close()
end
luci.http.prepare_content("application/json")
luci.http.write(topology)
end
function action_chat()
local sms_dir = "/var/run/bmx6/sms"
local rcvd_dir = sms_dir .. "/rcvdSms"
local send_file = sms_dir .. "/sendSms/chat"
local sms_list = bmx6json.get("rcvdSms")
local sender = ""
local sms_file = ""
local chat = {}
local to_send = nil
local sent = ""
local fd = nil
if luci.sys.call("test -d " .. sms_dir) ~= 0 then
luci.template.render("bmx6/error", {txt="sms plugin disabled or some problem with directory " .. sms_dir})
return nil
end
sms_list = luci.util.split(luci.util.exec("ls "..rcvd_dir.."/*:chat"))
for _,sms_path in ipairs(sms_list) do
if #sms_path > #rcvd_dir then
sms_file = luci.util.split(sms_path,'/')
sms_file = sms_file[#sms_file]
sender = luci.util.split(sms_file,':')[1]
-- Trying to clean the name
if string.find(sender,".") ~= nil then
sender = luci.util.split(sender,".")[1]
end
fd = io.open(sms_path,"r")
chat[sender] = fd:read()
fd:close()
end
end
to_send = luci.http.formvalue("toSend")
if to_send ~= nil and #to_send > 1 then
fd = io.open(send_file,"w")
fd:write(to_send)
fd:close()
sent = to_send
else
sent = luci.util.exec("cat "..send_file)
end
luci.template.render("bmx6/chat", {chat=chat,sent=sent})
end

View file

@ -1,223 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
Contributors Jo-Philipp Wich <xm@subsignal.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
local ltn12 = require("luci.ltn12")
local json = require("luci.json")
local util = require("luci.util")
local uci = require("luci.model.uci")
local sys = require("luci.sys")
local template = require("luci.template")
local http = require("luci.http")
local string = require("string")
local table = require("table")
local nixio = require("nixio")
local nixiofs = require("nixio.fs")
local ipairs = ipairs
module "luci.model.bmx6json"
-- Returns a LUA object from bmx6 JSON daemon
function get(field, host)
local url
if host ~= nil then
if host:match(":") then
url = 'http://[%s]/cgi-bin/bmx6-info?' % host
else
url = 'http://%s/cgi-bin/bmx6-info?' % host
end
else
url = uci.cursor():get("luci-bmx6","luci","json")
end
if url == nil then
print_error("bmx6 json url not configured, cannot fetch bmx6 daemon data",true)
return nil
end
local json_url = util.split(url,":")
local raw = ""
if json_url[1] == "http" then
raw,err = wget(url..field,1000)
else
if json_url[1] == "exec" then
raw = sys.exec(json_url[2]..' '..field)
else
print_error("bmx6 json url not recognized, cannot fetch bmx6 daemon data. Use http: or exec:",true)
return nil
end
end
local data = nil
if raw and raw:len() > 10 then
local decoder = json.Decoder()
ltn12.pump.all(ltn12.source.string(raw), decoder:sink())
data = decoder:get()
-- else
-- print_error("Cannot get data from bmx6 daemon",true)
-- return nil
end
return data
end
function print_error(txt,popup)
util.perror(txt)
sys.call("logger -t bmx6json " .. txt)
if popup then
http.write('<script type="text/javascript">alert("Some error detected, please check it: '..txt..'");</script>')
else
http.write("<h1>Dammit! some error detected</h1>")
http.write("bmx6-luci: " .. txt)
http.write('<p><FORM><INPUT TYPE="BUTTON" VALUE="Go Back" ONCLICK="history.go(-1)"></FORM></p>')
end
end
function text2html(txt)
txt = string.gsub(txt,"<","{")
txt = string.gsub(txt,">","}")
txt = util.striptags(txt)
return txt
end
function wget(url, timeout)
local rfd, wfd = nixio.pipe()
local pid = nixio.fork()
if pid == 0 then
rfd:close()
nixio.dup(wfd, nixio.stdout)
-- candidates for wget, try first ones with SSL support
local candidates = {{"/usr/bin/wget-ssl",1},{"/usr/bin/wget",0},{"/bin/wget",0}}
local _, bin
for _, bin in ipairs(candidates) do
if nixiofs.access(bin[1], "x") then
if bin[2] == 0 then
nixio.exec(bin[1], "-q", "-O", "-", url)
else
nixio.exec(bin[1], "--no-check-certificate", "-q", "-O", "-", url)
end
end
end
return
else
wfd:close()
rfd:setblocking(false)
local buffer = { }
local err1, err2
while true do
local ready = nixio.poll({{ fd = rfd, events = nixio.poll_flags("in") }}, timeout)
if not ready then
nixio.kill(pid, nixio.const.SIGKILL)
err1 = "timeout"
break
end
local rv = rfd:read(4096)
if rv then
-- eof
if #rv == 0 then
break
end
buffer[#buffer+1] = rv
else
-- error
if nixio.errno() ~= nixio.const.EAGAIN and
nixio.errno() ~= nixio.const.EWOULDBLOCK then
err1 = "error"
err2 = nixio.errno()
end
end
end
nixio.waitpid(pid, "nohang")
if not err1 then
return table.concat(buffer)
else
return nil, err1, err2
end
end
end
function getOptions(name)
-- Getting json and Checking if bmx6-json is avaiable
local options = get("options")
if options == nil or options.OPTIONS == nil then
m.message = "bmx6-json plugin is not running or some mistake in luci-bmx6 configuration, check /etc/config/luci-bmx6"
return nil
else
options = options.OPTIONS
end
-- Filtering by the option name
local i,_
local namedopt = nil
if name ~= nil then
for _,i in ipairs(options) do
if i.name == name and i.CHILD_OPTIONS ~= nil then
namedopt = i.CHILD_OPTIONS
break
end
end
end
return namedopt
end
-- Rturns a help string formated to be used in HTML scope
function getHtmlHelp(opt)
if opt == nil then return nil end
local help = ""
if opt.help ~= nil then
help = text2html(opt.help)
end
if opt.syntax ~= nil then
help = help .. "<br/><b>Syntax: </b>" .. text2html(opt.syntax)
end
return help
end
function testandreload()
local test = sys.call('bmx6 -c --test > /tmp/bmx6-luci.err.tmp')
if test ~= 0 then
return sys.exec("cat /tmp/bmx6-luci.err.tmp")
end
local err = sys.call('bmx6 -c --configReload > /tmp/bmx6-luci.err.tmp')
if err ~= 0 then
return sys.exec("cat /tmp/bmx6-luci.err.tmp")
end
return nil
end

View file

@ -1,75 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
m = Map("bmx6", "bmx6")
local bmx6json = require("luci.model.bmx6json")
local util = require("luci.util")
local http = require("luci.http")
local sys = require("luci.sys")
local options = bmx6json.get("options")
if options == nil or options.OPTIONS == nil then
m.message = "bmx6-json plugin is not running or some mistake in luci-bmx6 configuration, check /etc/config/luci-bmx6"
options = {}
else
options = options.OPTIONS
end
local general = m:section(NamedSection,"general","bmx6")
general.addremove = true
local name = ""
local help = ""
local value = nil
local _,o
for _,o in ipairs(options) do
if o.name ~= nil and o.CHILD_OPTIONS == nil and o.configurable == 1 then
help = ""
name = o.name
if o.help ~= nil then
help = bmx6json.text2html(o.help)
end
if o.syntax ~= nil then
help = help .. "<br/><strong>Syntax: </strong>" .. bmx6json.text2html(o.syntax)
end
if o.def ~= nil then
help = help .. "<strong> Default: </strong>" .. o.def
end
value = general:option(Value,name,name,help)
end
end
function m.on_commit(self,map)
local err = sys.call('bmx6 -c --configReload > /tmp/bmx6-luci.err.tmp')
if err ~= 0 then
m.message = sys.exec("cat /tmp/bmx6-luci.err.tmp")
end
end
return m

View file

@ -1,47 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
local sys = require("luci.sys")
m = Map("bmx6", "bmx6")
local hna = m:section(TypedSection,"unicastHna","IPv6 HNA")
hna.addremove = true
hna.anonymous = true
local hna_option = hna:option(Value,"unicastHna", "IPv6 Host Network Announcement. Syntax <NETADDR>/<PREFIX>")
--function hna_option:validate(value)
-- local err = sys.call('bmx6 -c --test -a ' .. value)
-- if err ~= 0 then
-- return nil
-- end
-- return value
--end
function m.on_commit(self,map)
local err = sys.call('bmx6 -c --configReload > /tmp/bmx6-luci.err.tmp')
if err ~= 0 then
m.message = sys.exec("cat /tmp/bmx6-luci.err.tmp")
end
end
return m

View file

@ -1,77 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
local sys = require("luci.sys")
local bmx6json = require("luci.model.bmx6json")
local m = Map("bmx6", "bmx6")
local eth_int = sys.net.devices()
local interfaces = m:section(TypedSection,"dev","Devices","")
interfaces.addremove = true
interfaces.anonymous = true
local intlv = interfaces:option(ListValue,"dev","Device")
for _,i in ipairs(eth_int) do
intlv:value(i,i)
end
-- Getting json and looking for device section
local json = bmx6json.get("options")
if json == nil or json.OPTIONS == nil then
m.message = "bmx6-json plugin is not running or some mistake in luci-bmx6 configuration, check /etc/config/luci-bmx6"
json = {}
else
json = json.OPTIONS
end
local dev = {}
for _,j in ipairs(json) do
if j.name == "dev" and j.CHILD_OPTIONS ~= nil then
dev = j.CHILD_OPTIONS
break
end
end
local help = ""
local name = ""
for _,o in ipairs(dev) do
if o.name ~= nil then
help = ""
name = o.name
if o.help ~= nil then
help = bmx6json.text2html(o.help)
end
if o.syntax ~= nil then
help = help .. "<br/><strong>Syntax: </strong>" .. bmx6json.text2html(o.syntax)
end
value = interfaces:option(Value,name,name,help)
value.optional = true
end
end
return m

View file

@ -1,105 +0,0 @@
--[[
Copyright (C) 2011 Pau Escrich <pau@dabax.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
--]]
local sys = require("luci.sys")
local bmx6json = require("luci.model.bmx6json")
m = Map("bmx6", "bmx6")
-- Getting json and Checking if bmx6-json is avaiable
local options = bmx6json.get("options")
if options == nil or options.OPTIONS == nil then
m.message = "bmx6-json plugin is not running or some mistake in luci-bmx6 configuration, check /etc/config/luci-bmx6"
return m
else
options = options.OPTIONS
end
-- Getting a list of interfaces
local eth_int = luci.sys.net.devices()
local tunDev = m:section(TypedSection,"tunDev",translate("Tunnel device"),translate("Define incoming ipip tunnel interface name"))
tunDev.addremove = true
tunDev.anonymous = true
tunDev:option(Value,"tunDev",translate("Name"),translate("Name for the tunnel network device"))
tunDev:option(Value,"tun4Address", translate("IPv4 address/length"),translate("Specify default IPv4 tunnel address and announced range (ex. 10.1.2.3/24)"))
tunDev:option(Value,"tun6Address", translate("IPv6 address/length"),translate("Specify default IPv6 tunnel address and announced range (ex. 2012:0:0:123:0:0:0:1/64)"))
-- IP section
local ipV = m:section(NamedSection,"ipVersion","ipVersion",translate("Miscellaneous IP options"))
ipV.addremove = false
local lipv = ipV:option(ListValue,"ipVersion",translate("IP version"))
lipv:value("6","6")
lipv.default = "6"
-- rest of ip options are optional, getting them from json
local ipoptions = {}
for _,o in ipairs(options) do
if o.name == "ipVersion" and o.CHILD_OPTIONS ~= nil then
ipoptions = o.CHILD_OPTIONS
break
end
end
local help = ""
local name = ""
local value = nil
for _,o in ipairs(ipoptions) do
if o.name ~= nil then
help = ""
name = o.name
if o.help ~= nil then
help = bmx6json.text2html(o.help)
end
if o.syntax ~= nil then
help = help .. "<br/><strong>Syntax: </strong>" .. bmx6json.text2html(o.syntax)
end
if o.def ~= nil then
help = help .. "<br/><strong> Default: </strong>" .. bmx6json.text2html(o.def)
end
value = ipV:option(Value,name,name,help)
value.optional = true
end
end
-- Interfaces section
local interfaces = m:section(TypedSection,"dev",translate("Devices"),translate("Network devices to mesh with"))
interfaces.addremove = true
interfaces.anonymous = true
local intlv = interfaces:option(ListValue,"dev",translate("Device"))
for _,i in ipairs(eth_int) do
intlv:value(i,i)
end
function m.on_commit(self,map)
local err = sys.call('bmx6 -c --configReload > /tmp/bmx6-luci.err.tmp')
if err ~= 0 then
m.message = sys.exec("cat /tmp/bmx6-luci.err.tmp")
end
end
return m

Some files were not shown because too many files have changed in this diff Show more