Compare commits

..

396 Commits

Author SHA1 Message Date
Vivek Kumar Dutta
a9729d47d1 sulu: use gnx server certificates if available 2025-03-12 17:48:47 +05:30
Vivek Kumar Dutta
5b07fcce33 swmodd: 2.5.25 2025-03-12 16:55:34 +05:30
Vivek Kumar Dutta
2219f2efba sulu: Enable SecureRole for admin ACL 2025-03-12 11:33:27 +05:30
Meng
ba3b00c784 obuspa: Support ControllerTrust.SecuredRoles
Patch for the obuspa:
- Add DM_SECURE flag in usp_api.h.
- Register Device.LocalAgent.ControllerTrust.SecuredRoles with Validate_SecuredRoles().
- Implement DEVICE_CTRUST_IsControllerSecured() to check controller trust.
- Update DATA_MODEL_GetParameterValue() and group_get_vector functions to return
  an empty string for secure parameters when the controller is not secured.

Updated usp_utils.sh to to add SecuredRole from role ACL files
2025-03-12 11:33:27 +05:30
Vivek Kumar Dutta
9598258993 usermngr: Remove ash from SupportedShell 2025-03-12 11:24:18 +05:30
Amin Ben Romdhane
32ab2eb2cc self-diagnostics: 1.0.14 2025-03-12 04:56:22 +00:00
Vivek Kumar Dutta
63c27601e5 gateway-info: documentation and CI pipeline 2025-03-12 09:11:12 +05:30
Suvendhu Hansa
f2d4b6ff7d obuspa: Support to DHCP on-boarding via Option 125 2025-03-12 03:35:28 +00:00
Marina Maslova
e945226956 libwifi: 7.10.6 2025-03-11 20:22:24 +04:00
Jakob Olsson
9a7ff0bbf2 map-agent: 6.3.3.6 2025-03-11 15:27:25 +01:00
Janusz Dziedzic
97830621a6 wifimngr: 17.5.9 2025-03-11 13:51:51 +00:00
Janusz Dziedzic
1c77fb2e76 libwifi: 7.10.5 2025-03-11 12:47:05 +00:00
Jakob Olsson
67c4a3c317 map-agent: 6.3.3.5 2025-03-11 10:37:38 +01:00
Vivek Dutta
7f17359913 libvoice-airoha: Updated uci-default script
Uci default script should not commit the uci, as its committed by its
handler/runner latter on, this is required to avoid race conditions.
2025-03-11 08:59:28 +00:00
Vivek Kumar Dutta
b6212b90d8 owsd: Updated uci-default script 2025-03-11 08:00:40 +00:00
Suvendhu Hansa
74cbe1062a gateway-info: Added support for USP events 2025-03-11 07:42:11 +00:00
Vivek Kumar Dutta
2be4eeebb7 linux-pam: 1.7.0 2025-03-11 11:23:45 +05:30
Vivek Kumar Dutta
a49407ad79 passwdqc: 2.0.3 2025-03-11 11:23:02 +05:30
Reidar Cederqvist
24737321b0 sulu: update sulu to latest version 2025-03-10 16:09:07 +01:00
Janusz Dziedzic
3a72a7ee61 libwifi: 7.10.4 2025-03-10 15:04:34 +00:00
Vivek Kumar Dutta
d9b6136916 swmodd: 2.5.24 2025-03-10 17:58:48 +05:30
Vivek Dutta
537e1758c3 ieee1905: remove uci commit from uci-default 2025-03-10 08:28:51 +00:00
Vivek Kumar Dutta
c6bbe14c6f icwmp: Fix operate syntax for diagnostics 2025-03-10 08:39:18 +05:30
Vivek Kumar Dutta
8af265a689 bridgemngr: Fix wifi ubus usages 2025-03-10 08:32:34 +05:30
Vivek Kumar Dutta
193a6cf502 icwmp: support for mutual authentication 2025-03-09 15:02:54 +05:30
Markus Gothe
d6c148f7e3 dectmngr: Support DECT FW per target
Add support for installing default DECT FW per target. This solves the need
to be able to have different default FW for different hardware architectures.

For Airoha we will update the DECT FW to DSPG 4.13 build 21 RC1.
2025-03-07 15:28:41 +00:00
Amin Ben Romdhane
afdc0006b5 icwmp: 9.8.36 2025-03-07 14:53:33 +01:00
Suvendhu Hansa
2cb0f6e159 obuspa,gateway-info: Support GatewayInfo USP params 2025-03-07 13:42:51 +00:00
Suvendhu Hansa
db72ee376e obuspa: Fix raise condition in dhcp Controller setup 2025-03-07 11:36:43 +00:00
Jakob Olsson
2bbeb83eb2 map-agent: 6.3.3.4 2025-03-07 10:27:18 +01:00
Jakob Olsson
f718adf692 map-controller: 6.3.0.2 2025-03-07 10:27:18 +01:00
Vivek Kumar Dutta
2aaf56ac6d swmodd: added datamodel dependency on swmod ubus 2025-03-06 19:17:03 +05:30
Suvendhu Hansa
426cc077e0 obuspa: controller provisioning via dhcp 2025-03-06 13:42:18 +00:00
Janusz Dziedzic
879e549581 libwifi: 7.10.3 2025-03-06 13:38:52 +00:00
Amin Ben Romdhane
78f6198d0a sysmngr: reduce log verbosity
- Change log level from 4 to 3 to show only error logs
2025-03-06 11:44:29 +01:00
Janusz Dziedzic
6ddaa150b4 wifimngr: 17.5.8 2025-03-06 10:33:22 +00:00
Janusz Dziedzic
9188a99c99 libwifi: 7.10.2 2025-03-06 10:33:22 +00:00
Amin Ben Romdhane
352a56448e userinterface: Fix misplaced closing quote 2025-03-06 10:15:36 +01:00
Jakob Olsson
5c7fea694f map-controller: 6.3.0.1 2025-03-05 16:37:16 +01:00
Vivek Kumar Dutta
5474007dcf swmodd: 2.5.22 2025-03-05 19:23:26 +05:30
Vivek Kumar Dutta
320d155a96 sysmngr: extend keep_config from Download to Activate 2025-03-05 19:13:19 +05:30
Meng
73f91e09db obuspa: add patches/0006-contains-expression.patch 2025-03-05 13:09:57 +00:00
Amin Ben Romdhane
36d2b24bae icwmp: Fix 'M Reboot' event is not sent on firmware upgrade 2025-03-05 11:45:57 +00:00
Janusz Dziedzic
f9010d9ef1 libwifi: 7.10.1 2025-03-05 11:08:01 +00:00
Vivek Kumar Dutta
aeda3280b3 bbfdm: avoid uci commit in uci-defaults 2025-03-05 09:10:42 +00:00
Jakob Olsson
5e3b30daa8 map-agent: 6.3.3.3 2025-03-05 10:05:09 +01:00
Mohd Mehdi
ee2165b184 qosmngr: update rate processing for queue 2025-03-05 06:02:13 +00:00
Vivek Kumar Dutta
1b7fa8ba15 qosmngr: updated uci-default scripts 2025-03-05 10:28:33 +05:30
Vivek Kumar Dutta
052dc52801 parental-control: updated uci-default script 2025-03-05 10:25:42 +05:30
Vivek Kumar Dutta
4373ec21aa obuspc: avoid uci commit in uci-defaults 2025-03-05 10:24:13 +05:30
Vivek Kumar Dutta
892e0f3599 obuspa: avoid uci commit in uci-defaults 2025-03-05 10:22:23 +05:30
Vivek Kumar Dutta
d9a742b734 mcastmngr: avoid uci commit in uci-defaults 2025-03-05 10:20:06 +05:30
Vivek Kumar Dutta
9e1a8de1bd logmngr: avoid uci commit in uci-defaults 2025-03-05 10:18:22 +05:30
Vivek Kumar Dutta
73c8e7eb75 gateway-info: avoid uci commit in uci-defaults 2025-03-05 10:13:15 +05:30
Vivek Kumar Dutta
41ba4fcedc dhcpmngr: avoid uci commit in uci-defaults 2025-03-05 10:10:41 +05:30
Erik Karlsson
b673daf265 swmodd: avoid uci-defaults script failure
Keep uci-defaults script from failing if there are no containers.
2025-03-04 16:09:40 +01:00
Vivek Kumar Dutta
06b9f7eb00 parental-control: 1.1.4 2025-03-04 19:10:00 +05:30
Vivek Kumar Dutta
092026794e netmngr: 1.1.5 2025-03-04 19:07:44 +05:30
Vivek Kumar Dutta
0bc9dd365f bridgemngr: 1.0.12 2025-03-04 19:05:57 +05:30
Vivek Kumar Dutta
f4eb3ec090 icwmp: 9.8.34 2025-03-04 19:04:57 +05:30
Vivek Kumar Dutta
7596b3b4f4 bbfdm: Fix Max instance log and uci list buffer size 2025-03-04 19:01:01 +05:30
Erik Karlsson
d546e1699f sshmngr: enable SFTP by default
Note that the openssh-sftp-server package works together with both
OpenSSH and dropbear
2025-03-04 12:39:23 +00:00
Amin Ben Romdhane
fe4a859af6 bbfdm: 1.15.5 2025-03-04 10:36:37 +01:00
Anjan Chanda
7ecce240d0 map-controller: 6.3.0.0 2025-03-03 17:51:48 +01:00
Jakob Olsson
a8dd08cf33 map-agent: 6.3.3.2 2025-03-03 15:01:05 +01:00
George Yang
9a38439d11 libvoice-airoha: 1.1.2 2025-03-03 14:35:27 +01:00
Jakob Olsson
06c977c39d remove package map-topology 2025-03-03 09:58:29 +01:00
Janusz Dziedzic
1e352925ef wifimngr: 17.5.7 2025-02-28 15:43:24 +00:00
Janusz Dziedzic
9b6a9158af Revert "libwifi: 7.10.1"
This reverts commit fd49d9a203.
2025-02-28 15:41:50 +00:00
Janusz Dziedzic
fd49d9a203 libwifi: 7.10.1 2025-02-28 15:13:01 +00:00
Janusz Dziedzic
093d1b95da libwifi: 7.10.0 2025-02-28 13:51:56 +00:00
Janusz Dziedzic
52ef85a910 libwifi: 8.0.0 2025-02-28 13:31:46 +00:00
Elena Vengerova
ca8f2f91ab libwifi: 7.9.9 2025-02-28 15:49:36 +04:00
Janusz Dziedzic
3553cca81c wifimngr: 17.5.6 2025-02-28 11:44:53 +00:00
Janusz Dziedzic
bdeea206e3 libwifi: 7.9.8 2025-02-28 11:43:21 +00:00
Marina Maslova
34cb916d59 libwifi: 7.9.7 2025-02-28 15:10:37 +04:00
Marina Maslova
5f253a5d5c libwifi: fix en7523 names updated on migration to 7.4 2025-02-28 10:52:37 +00:00
Balalakshmi Arunachalam Rajendran
948f727a0b map-agent: map-topology-discovery: fix the redirection of buildcmdu
Not redirecting caused stdout issues over the serial console.
2025-02-28 09:52:29 +00:00
Vivek Kumar Dutta
7b4be698fc obuspa: Fix overriding of permissions on reboot 2025-02-28 15:14:03 +05:30
Vivek Kumar Dutta
3f079d7543 sulu: Added Firewall in admin ACL 2025-02-28 15:13:15 +05:30
Balalakshmi Arunachalam Rajendran
52d5bf6db6 map-agent: map-topology-discovery: remove redirection of buildcmdu result 2025-02-27 12:45:12 +00:00
Suvendhu Hansa
d80d41a6f6 timemngr: use NTP servers from dhcp option 42 2025-02-27 17:03:21 +05:30
George Yang
4b8d721af8 libvoice-airoha: Fix compiling error for airoha32 because of codec difference 2025-02-27 11:22:01 +01:00
Jakob Olsson
a2b051c773 map-controller: 6.2.3.1 2025-02-27 10:46:41 +01:00
Vivek Kumar Dutta
2aa49112f3 obuspa: Fix full_access assignment 2025-02-27 13:59:04 +05:30
Vivek Kumar Dutta
60b21cb3ce Revert "libvoice-airoha: Update codec list from 2024Q4_Airoha_LTS_SDK"
This reverts commit 55e9299da5.
2025-02-27 12:26:57 +05:30
George Yang
55e9299da5 libvoice-airoha: Update codec list from 2024Q4_Airoha_LTS_SDK 2025-02-26 17:54:36 +01:00
Amin Ben Romdhane
6df78961ab bbfdm: 1.15.4 2025-02-26 17:00:48 +01:00
Janusz Dziedzic
6a65a15b0d wifimngr: 17.5.5 2025-02-26 12:24:51 +00:00
Janusz Dziedzic
2a1f9a00d4 libwifi: 7.9.6 2025-02-26 12:24:51 +00:00
Vivek Kumar Dutta
211de47076 sulu: Align role json files 2025-02-26 12:02:07 +00:00
Vivek Kumar Dutta
af3cf465bc usermngr: Added full_access and Untrusted role 2025-02-26 12:02:07 +00:00
Vivek Kumar Dutta
c1a8c1aa86 obuspa: Updated max CT role
- Updated role json to include role name and instance number
- Removed full_access.json
- Reuse full_access Role from core code
2025-02-26 12:02:07 +00:00
George Yang
08fb82fae4 libvoice-airoha: Fix error caller name in CLIP, REF #16094 2025-02-26 11:11:51 +01:00
Suvendhu Hansa
0c4485ea15 bbfdm: moved GatewayInfo DM to gateway-info 2025-02-26 09:32:03 +05:30
Suvendhu Hansa
064b655fa9 icwmp: move GatewayInfo config to gateway-info package 2025-02-26 09:27:49 +05:30
Suvendhu Hansa
d71d4914d5 gateway-info: 1.0.0
- Updated netmode config to mark wan interface in gwinfo
2025-02-26 09:20:08 +05:30
Jakob Olsson
2a7f21a8f8 map-agent: 6.3.3.1 2025-02-25 17:00:13 +01:00
Erik Karlsson
d720da1852 firewallmngr: add missing "iptables -w" 2025-02-25 14:31:11 +01:00
Erik Karlsson
e9f40eba08 bbfdm: fix shell injection in /etc/firewall.portmap
Rework the script to use iptables-restore instead of eval

(cherry picked from commit cf8350b6b365429aa68f0f957f79eb31bb43e2db)
(cherry picked from commit df87055d04)
2025-02-25 14:13:01 +01:00
Erik Karlsson
3d68c3b9f7 bbfdm: fix shell injection in /etc/firewall.service
Avoid use of eval

(cherry picked from commit 53167364863ef4afc249045fe5dcb510e3ec164d)
(cherry picked from commit 32848d7f69)
2025-02-25 14:12:52 +01:00
Markus Gothe
f5ad0195bc Update iptables rules to use proper locking. 2025-02-25 13:57:50 +01:00
Jakob Olsson
85818a7778 map-agent: 6.3.3.0 2025-02-25 13:14:56 +01:00
Dariusz Iwanoczko
b6e5749b7f fwbank: add copy_config method to fwbank API
Implemented copy_config handler to create and copy a system upgrade backup
2025-02-25 08:53:03 +00:00
Janusz Dziedzic
2a1323bfd0 libwifi: 7.9.5 2025-02-24 16:10:55 +00:00
Vivek Kumar Dutta
0c56d3ab39 bbfdm: minor output fixes 2025-02-24 19:57:34 +05:30
Vivek Kumar Dutta
c59c53aa47 usp-js: Updated allow_partial default to true 2025-02-24 18:43:34 +05:30
Vivek Kumar Dutta
90c3949696 bbfdm: Add multi-ap services in usp critical list 2025-02-24 12:19:41 +05:30
Markus Gothe
14ca35a64b Revert "qosmngr: fix ebtables-extensions dependencies"
This reverts commit c55ab35b14.
2025-02-24 03:18:38 +00:00
Vivek Kumar Dutta
cf148f6c06 ebtables-extensions: 2.0.5 2025-02-24 08:29:28 +05:30
Erik Karlsson
c3e0426c36 gryphon-led-module: remove obsolete commented out test code 2025-02-21 17:04:22 +01:00
Erik Karlsson
c7f3e52f92 gryphon-led-module: clean up package Makefile
Use a more modern approach for building kernel modules
out-of-tree. Remove a lot of unused stuff.
2025-02-21 17:04:22 +01:00
Erik Karlsson
1605577538 gryphon-led-module: fix error handling
The dev_get_drvdata/platform_get_drvdata functions do not return an
error pointer. Use devm_gpiod_get_index to manage GPIO resources. Do
not support obsolete Linux versions. Check the return value of
gpiod_direction_output
2025-02-21 17:04:22 +01:00
Reidar Cederqvist
69ba712cb3 Sulu: update to latest devel 2025-02-21 14:51:31 +00:00
Amin Ben Romdhane
634d40fa01 logmngr: 1.0.9 2025-02-21 15:45:37 +01:00
Amin Ben Romdhane
088ed56c50 icwmp: 9.8.32 2025-02-21 15:44:08 +01:00
Amin Ben Romdhane
d49c758d04 ieee1905: 8.7.3 2025-02-21 15:43:14 +01:00
Amin Ben Romdhane
187492a827 packet-capture-diagnostics: 1.0.3 2025-02-21 15:39:24 +01:00
Amin Ben Romdhane
0a375e6ac4 self-diagnostics: 1.0.13 2025-02-21 15:38:43 +01:00
Amin Ben Romdhane
226c5b4685 obuspa: 9.0.4.8 2025-02-21 15:37:40 +01:00
Amin Ben Romdhane
e72352d7e1 netmngr: 1.1.4 2025-02-21 15:36:08 +01:00
Amin Ben Romdhane
322d80f151 sysmngr: 1.0.17 2025-02-21 15:34:25 +01:00
Amin Ben Romdhane
8e4d3920d9 wifidmd: 1.0.32 2025-02-21 15:32:47 +01:00
Amin Ben Romdhane
241afdc4fd hostmngr: 1.2.15 2025-02-21 15:31:05 +01:00
Amin Ben Romdhane
4ee68f7a84 bbfdm: introduce data model core micro-service and update bbfdmd to use async call to optimize RPCs handling 2025-02-21 15:29:45 +01:00
Janusz Dziedzic
11b13af489 libwifi: 7.9.4 2025-02-21 10:15:00 +00:00
Vivek Kumar Dutta
5abf23d711 Revert "icwmp: fix gateway info race condition"
This reverts commit c118da628d.
2025-02-21 15:08:22 +05:30
Mohd Mehdi
38c7075422 qosmngr: remove unused variable and fix error logs in uci-default 2025-02-21 06:28:14 +00:00
Suvendhu Hansa
dead11036c wifidmd: Remove iwinfo dependency 2025-02-21 10:44:27 +05:30
Markus Gothe
e708d6caec ipt-trigger: Resolve dependecies for Mediatek platform. 2025-02-20 15:14:32 +01:00
Markus Gothe
3a7c4119ff ipt-trigger: Clean up dependencies. 2025-02-20 13:59:21 +01:00
Markus Gothe
b1fc7a09be Update ipt-trigger dependencies. 2025-02-20 11:35:19 +00:00
Janusz Dziedzic
7c0a37c8a8 libwifi: 7.9.3 2025-02-20 09:31:53 +00:00
Mohd Mehdi
bfdd241330 parental-control: add support for Status and Enable 2025-02-20 05:43:09 +00:00
Markus Gothe
cdc8972031 ebtables-extensions: Fix usage of KERNEL_MAKE_FLAGS
KERNEL_MAKE_FLAGS passes arguments to 'make'
and not to the compiler which is probably
what was intended.
2025-02-19 16:25:39 +01:00
Markus Gothe
f668c5cc33 ipt-trigger: Fix usage of KERNEL_MAKE_FLAGS
KERNEL_MAKE_FLAGS passes arguments to 'make'
and not to the compiler which is probably
what was intended.

This solves a compilation issue on the
Broadcom platform.
2025-02-19 16:07:59 +01:00
Erik Karlsson
ed0373f188 libvoice-airoha: 1.1.1 2025-02-19 15:32:51 +01:00
Janusz Dziedzic
74f37ee761 wifimngr: 17.5.4 2025-02-19 13:52:47 +00:00
Janusz Dziedzic
3970668d0e libwifi: 7.9.2 2025-02-19 13:51:05 +00:00
Jakob Olsson
fe833164de map-agent: 6.3.2.4 2025-02-19 13:08:46 +01:00
Erik Karlsson
eca57960a0 libvoice-airoha: set the default transmit and receive gain in the UCI config 2025-02-19 11:01:25 +00:00
Mohd Husaam Mehdi
41c8325aae parental-control: Support BlockHistory 2025-02-19 08:21:58 +00:00
Suvendhu Hansa
c118da628d icwmp: fix gateway info race condition 2025-02-19 06:47:15 +00:00
Suvendhu Hansa
0714c79917 obuspa: Add csv report support in Bulkdata mqtt 2025-02-18 14:01:16 +00:00
Vivek Kumar Dutta
d01f484999 swmodd: 2.5.21 2025-02-17 18:52:13 +05:30
Jakob Olsson
d161ccf816 map-controller: 6.2.3.0 2025-02-17 11:01:21 +01:00
Jakob Olsson
e18da4e996 map-controller: add config option to provision disabled APs 2025-02-17 09:59:25 +00:00
Jakob Olsson
4aca931a23 map-agent: 6.3.2.3 2025-02-14 17:29:54 +01:00
Elena Vengerova
81b0f6e7fe libwifi: 7.9.1 2025-02-14 15:36:50 +04:00
Vivek Kumar Dutta
93873874bb sulu: Fix mqtt acl generation 2025-02-14 12:44:18 +05:30
Vivek Kumar Dutta
88ca4b3011 icwmp: config options to skip datatype check and insecure connect 2025-02-14 12:39:48 +05:30
Amin Ben Romdhane
a3bd6392a1 bbfdm: 1.14.5 2025-02-13 14:47:43 +01:00
Janusz Dziedzic
ed01591374 map-agent: 6.3.2.2 2025-02-13 13:08:17 +00:00
arbala
c48d4923d6 map-controller: 6.2.2.3 2025-02-12 16:45:58 +01:00
Erik Karlsson
3dbc47b54f gryphon-led-module: turn LED off on system shutdown and module unload 2025-02-12 13:55:21 +01:00
Anjan Chanda
d6ef40fd0f decollector: 6.2.0.1 2025-02-12 12:20:24 +01:00
arbala
b94dbcdbdf map-agent: 6.3.2.1 2025-02-11 17:00:01 +01:00
Vivek Kumar Dutta
d0be4f8056 mcastmngr: Fix instance add/del operations 2025-02-11 19:30:46 +05:30
Suvendhu Hansa
5e392d0832 wifidmd: Fix SSID instance deletion 2025-02-11 13:56:02 +00:00
Vivek Kumar Dutta
acc92dfb1f obuspa: Config option to override CT roles with fw default roles 2025-02-11 19:24:02 +05:30
Erik Karlsson
5e13161b70 Fix out-of-tree Broadcom kernel module build
The inclusion of bcm-kernel-toolchain.mk cannot be conditional since
CONFIG_TARGET_brcmbca is not defined when package metadata is being
generated. Instead make it optional in case broadcom feed is absent.
2025-02-11 10:26:44 +01:00
Amin Ben Romdhane
20034609e0 wifidmd: 1.0.29 2025-02-10 20:16:33 +01:00
Anjan Chanda
58ddcd7499 decollector: 6.2.0.0 2025-02-10 17:18:13 +01:00
Suvendhu Hansa
81755b83ad dnsmngr: optimize dns-sd advertise object 2025-02-10 12:24:20 +00:00
Vivek Kumar Dutta
b96e7077fc icwmp: 9.8.30 2025-02-10 17:33:51 +05:30
Jakob Olsson
1b0a792b56 map-controller: 6.2.2.2 2025-02-10 12:29:58 +01:00
Vivek Kumar Dutta
4e093e59f3 obuspa: Fix random delay in get calls 2025-02-09 11:42:45 +05:30
Vivek Kumar Dutta
9400526e47 wifidmd: Use dump2 output for Network.SSID. table 2025-02-08 16:17:29 +05:30
Mohd Mehdi
a2733b66b7 parental-control: 1.1.0 2025-02-08 06:15:20 +00:00
Markus Gothe
40251b2371 ponmngr: Refactorize PtP-mode detection. 2025-02-07 16:39:00 +01:00
Markus Gothe
980779a583 Don't start ponmngr microservice in PtP-mode. 2025-02-07 15:55:58 +01:00
Jakob Olsson
ad31d21380 map-agent: 6.3.2.0 2025-02-07 12:18:24 +01:00
Anjan Chanda
525b56ebc5 ieee1905: 8.7.2 2025-02-07 09:59:20 +01:00
Janusz Dziedzic
abc15029e6 wifimngr: 17.5.3 2025-02-05 19:17:54 +00:00
Janusz Dziedzic
d992340d98 libwifi: 7.9.0 2025-02-05 17:20:39 +00:00
Jakob Olsson
e5fa525364 map-controller: 6.2.2.1 2025-02-05 16:59:37 +01:00
Marina Maslova
39622c277c map-agent: 6.3.1.2 2025-02-05 18:59:53 +04:00
Vivek Kumar Dutta
98a6c9bd62 icwmp: faultstring improvements 2025-02-05 19:29:55 +05:30
Vivek Kumar Dutta
409cecd943 sulu: Fix admin acl for ParentalControl 2025-02-05 17:37:07 +05:30
Vivek Kumar Dutta
54c92d5b42 bbfdm: 1.14.4
- Fix kill sequence of bbfdm services
- Removed support of BBF_CONFIGMNGR_SCRIPT_BACKEND
- Removed support of BBF_MAX_OBJECT_INSTANCES
- Enabled debug release
2025-02-05 17:26:58 +05:30
Jakob Olsson
2ef97edd43 map-agent: 6.3.1.1 2025-02-05 11:45:40 +01:00
Vivek Kumar Dutta
e19c743888 wifidmd: Fix 80+80MHz in OperatingChannelBandwidth 2025-02-05 14:51:59 +05:30
Roman Azarenko
81b5ade110 self-diagnostics: 1.0.12
- Fix saving model and serial number for report filename

Fixes: b0049df366 ("self-diagnostics: 1.0.10")
2025-02-05 03:24:58 +00:00
Jakob Olsson
c0cfca286e map-controller: 6.2.2.0 2025-02-04 16:51:15 +01:00
Jakob Olsson
584b0b9721 map-agent: 6.3.1.0 2025-02-04 16:48:04 +01:00
Jakob Olsson
d5634eb756 ieee1905: 8.7.0 2025-02-04 16:48:04 +01:00
Vivek Kumar Dutta
38304c4d90 parental-control: Fix segfault with logs 2025-02-04 12:52:11 +05:30
Janusz Dziedzic
b92064f72b ieee1905: add arping dependency 2025-02-03 09:22:30 +00:00
Vivek Kumar Dutta
38814a8f89 sulu: Optimize sulu setup 2025-02-03 10:03:17 +05:30
Vivek Kumar Dutta
9d5ff37aca wifidmd: Optimize SetSSID operate cmd 2025-02-02 14:38:17 +05:30
Vivek Kumar Dutta
68dec1aa1b obuspa: Fix max controller definition 2025-02-02 11:02:13 +05:30
Markus Gothe
f3bbafc15c libethernet: 7.2.117 2025-02-01 14:06:32 +01:00
Janusz Dziedzic
1789bd5afd wifimngr: 17.5.2 2025-01-31 16:27:29 +00:00
arbala
8e5bbbd37f remove use of cat for map-backhaul file 2025-01-31 15:20:38 +00:00
Amin Ben Romdhane
95bd27f079 bbfdm: 1.14.3 2025-01-31 15:09:37 +01:00
Vivek Kumar Dutta
7a9cd965a0 usermngr: 1.3.3 2025-01-31 16:20:30 +05:30
Vivek Kumar Dutta
67673fa604 tr104: package specific vendor extension 2025-01-31 15:42:54 +05:30
Vivek Kumar Dutta
9f54857be0 timemngr: package specific vendor extension 2025-01-31 14:25:27 +05:30
Vivek Kumar Dutta
a733e610b4 qosmngr: package specific vendor extension 2025-01-31 14:04:28 +05:30
Vivek Kumar Dutta
f48ada800e obuspa: package specific vendor extension 2025-01-31 13:11:20 +05:30
Vivek Kumar Dutta
868785688e netmngr: package specific vendor extension 2025-01-31 13:00:22 +05:30
Vivek Kumar Dutta
e9ccbaa772 ethmngr: package specific vendor extension 2025-01-31 12:47:24 +05:30
Janusz Dziedzic
0b6b0e6ca2 wifimngr: 17.5.1 2025-01-30 14:47:15 +00:00
Janusz Dziedzic
47e0ecff71 libwifi: 7.8.9 2025-01-30 14:45:44 +00:00
Reidar Cederqvist
3123202381 SULU: update to version 4.0.4 ready for beta1 2025-01-30 15:27:25 +01:00
Jakob Olsson
9a1861aeb2 map-controller: 6.2.1.0 2025-01-30 15:19:28 +01:00
Jakob Olsson
bba41922cc ieee1905: 8.6.5 2025-01-30 15:18:33 +01:00
Vivek Kumar Dutta
373611b687 mcastmngr: package specific vendor extn 2025-01-30 11:24:45 +00:00
Vivek Kumar Dutta
9576104e83 bridgemngr: package specific vendor extn 2025-01-30 11:24:45 +00:00
Vivek Kumar Dutta
57f14e5e58 parental-control: Support to define vendor extension 2025-01-30 11:24:45 +00:00
Vivek Kumar Dutta
d51a6fe3c6 bbfdm: Support to handler vendor extensions 2025-01-30 11:24:45 +00:00
Jakob Olsson
05b0f91ae0 ieee1905: 8.6.4 2025-01-30 10:37:09 +01:00
Jakob Olsson
aea7fe15e6 map-controller: 6.2.0.0 2025-01-30 10:36:26 +01:00
Jakob Olsson
c6c5e53dc8 map-agent: 6.3.0.0 2025-01-30 10:35:03 +01:00
Vivek Kumar Dutta
03d6f8ab44 icwmp: 9.8.28 2025-01-30 09:59:29 +05:30
Suvendhu Hansa
06ad490dd8 qosmngr: fix unnamed uci section usages 2025-01-30 09:35:33 +05:30
Vivek Kumar Dutta
439e1ac346 wifidmd: Align with mld ubus object names 2025-01-29 19:03:02 +05:30
Vivek Kumar Dutta
d62639e761 wifidmd: Updated dependency list 2025-01-29 13:16:14 +05:30
Janusz Dziedzic
a1569f010d map-agent: airoha simplify mld_prefix 2025-01-28 16:14:31 +00:00
Janusz Dziedzic
a513907df7 libwifi: 7.8.8 2025-01-28 16:14:07 +00:00
Suvendhu Hansa
2e9942589a qosmngr: support percentage ShapingRate 2025-01-28 13:56:17 +00:00
Reidar Cederqvist
6d6962e02e sulu: align with vendor extension update 2025-01-28 11:49:07 +00:00
Janusz Dziedzic
4ded4e8708 map-agent: 6.2.3.13 2025-01-28 11:02:08 +00:00
Janusz Dziedzic
d48a389d86 wifimngr: 17.5.0 2025-01-28 11:02:08 +00:00
Vivek Kumar Dutta
adcd7faafc bbfdm: Rename default Vendor extension prefix to X_IOWRT_EU 2025-01-28 16:11:38 +05:30
Amin Ben Romdhane
2acea2c6dd bbfdm: Introduce a new libbbfdm-api library version 2 2025-01-28 09:16:30 +00:00
Janusz Dziedzic
b8fc40e336 libwifi: 7.8.7 2025-01-28 07:31:26 +00:00
Markus Gothe
86d9d8721b libethernet: econet: Fix ifstats for broadcast and multicast. 2025-01-27 15:05:06 +01:00
Janusz Dziedzic
f031977f41 map-agent: add openssl-util/ebtables deps 2025-01-27 11:40:07 +00:00
Jakob Olsson
87a782f70e map-controller: 6.1.2.21 2025-01-27 10:54:05 +01:00
Vivek Kumar Dutta
f293c57de0 obuspa: Fix unique key search 2025-01-24 19:23:12 +05:30
Markus Gothe
9f354e1294 ebtables-extensions: Fix building of kernel modules.
Needs headers to be copied so we can build all files.
2025-01-24 14:38:19 +01:00
Elena Vengerova
44527f36a8 wifimngr: 17.4.9 2025-01-24 17:15:49 +04:00
Elena Vengerova
0d3f63ccda libwifi: 7.8.6 2025-01-24 16:44:06 +04:00
Marina Maslova
8839edb8f3 mapagent: set mld_prefix to 'mld_bss' for airoha 2025-01-24 16:34:04 +04:00
Marina Maslova
f8a3b236aa map-agent: 6.2.3.12 2025-01-24 16:30:02 +04:00
Erik Karlsson
c55ab35b14 qosmngr: fix ebtables-extensions dependencies
They should not be included on Broadcom. It leads to build failures.
2025-01-24 12:13:39 +00:00
Markus Gothe
b5397361d0 libethernet: econet: Add PON support. 2025-01-24 13:09:20 +01:00
Marina Maslova
15f4bc772c wifimngr: 17.4.8 2025-01-24 15:19:21 +04:00
Filip Matusiak
b97c158e53 ieee1905: 8.6.3
CI: fix run_compile_test dependency issue
map: align return value of tlv_validate_multi() with tlv_validate()
2025-01-24 11:00:30 +01:00
Vivek Kumar Dutta
b727004b4a ebtables-extensions: 2.0.4 2025-01-24 09:09:46 +05:30
Markus Gothe
a81e572f00 ebtables-extensions: Update naming convention.
Use a similiar naming convention as iptables
kernel modules.
2025-01-24 04:30:47 +01:00
Markus Gothe
e1c819724f libethernet: Fix detection of 'ae_wan' WAN-interface. 2025-01-23 14:14:46 +01:00
Vivek Kumar Dutta
e75042bfe5 libqos: Prevent going out of an array 2025-01-23 16:14:23 +05:30
Markus Gothe
da50843b37 mcastmngr: Fix snooping stats. 2025-01-23 09:28:31 +00:00
Suvendhu Hansa
ad43f26119 ethmngr: Config option to expose legacy ethernet object 2025-01-23 14:50:26 +05:30
Vivek Kumar Dutta
b1110c426b periodicstats: 1.5.16 2025-01-23 13:29:12 +05:30
Vivek Kumar Dutta
27e2c1ef7e ieee1905: Select datamodel plugin as default 2025-01-23 10:46:44 +05:30
Janusz Dziedzic
e7a8dd7683 map-agent: allow enable/disable MLO for airoha 2025-01-22 15:45:39 +00:00
Vivek Kumar Dutta
932b345e2b bulkdata: use bbfdm logging 2025-01-22 19:46:04 +05:30
Erik Karlsson
1567b1facb logmngr: make logging more responsive
Flush every second.
2025-01-22 11:45:13 +00:00
Vivek Kumar Dutta
0dfbdd2d02 parental-control: Added loglevel 2025-01-22 17:14:33 +05:30
Reidar Cederqvist
8ba85e2e40 sulu: 4.0.2
- remove unused config options
- add new option to make sulu default WEB UI
2025-01-22 08:07:00 +00:00
Janusz Dziedzic
4e976e89b7 libwifi: 7.8.5 2025-01-22 07:53:47 +00:00
Vivek Kumar Dutta
4203eefe9f ethmngr: Updated log level 2025-01-22 13:02:09 +05:30
Vivek Kumar Dutta
3940dbbd43 ethmngr: support add/del RMONStats objects 2025-01-22 12:52:50 +05:30
Markus Gothe
f84c374a16 mcastmngr: Make sure we don't crash during boot up.
Avoid polluting the syslog with messages regarding
mcastmngr crashing:

procd: Instance mcast::instance1 s in a crash loop 6 crashes, 0 seconds since last crash
2025-01-22 03:04:08 +00:00
Janusz Dziedzic
a116104811 libwifi: 7.8.4 2025-01-21 20:46:03 +00:00
Janusz Dziedzic
8454c2a092 map-agent: 6.2.3.11 2025-01-21 20:05:30 +00:00
Amin Ben Romdhane
e7e6a40d26 wifidmd: 1.0.23 2025-01-21 20:55:31 +01:00
Amin Ben Romdhane
34e6281473 bbfdm: 1.13.6 2025-01-21 20:54:23 +01:00
Markus Gothe
e3c9182bbc bridgemngr: Create centralized ebtables setup.
Create a centralized setup for ebtables.
This is necessary to garantuee the order
of how chains are created.

Right now it provides a 1:1 drop-in
replacement of how things currently work
and no changes are needed in the short term.
2025-01-21 11:38:36 +01:00
Markus Gothe
5cac9516c0 Revert "l2filter: Create centralized ebtables setup."
This reverts commit d67a40b6a0.
2025-01-21 11:15:47 +01:00
Markus Gothe
d67a40b6a0 l2filter: Create centralized ebtables setup.
Create a centralized setup for ebtables.
This is necessary to garantuee the order
of how chains are created.

Right now it provides a 1:1 drop-in
replacement of how things currently work
and no changes are needed in the short term.
2025-01-20 13:54:27 +01:00
Vivek Kumar Dutta
4c0582b1a0 netmngr: Fix IPv6rd object registration 2025-01-20 14:26:19 +05:30
Amin Ben Romdhane
9e7ef97e14 wifidmd: Config option to select DataElements and/or legacy WiFi 2025-01-20 10:09:14 +05:30
Vivek Kumar Dutta
114cbf2cf4 hostmngr: ActiveIPConnections Vendor extension 2025-01-19 21:25:43 +05:30
Vivek Kumar Dutta
c38e706e01 bbfdm: 1.13.5 2025-01-19 21:14:06 +05:30
Vivek Kumar Dutta
ef3ef93a5c netmngr: 1.1.1 2025-01-19 19:42:36 +05:30
Vivek Kumar Dutta
1bb792a893 timemngr: 1.1.5 2025-01-19 19:30:22 +05:30
Vivek Kumar Dutta
8c1e4ef6aa parental-control: 1.0.2 2025-01-17 22:11:22 +05:30
Vivek Kumar Dutta
5cf3c68b96 ethmngr: 3.0.1 2025-01-17 21:46:02 +05:30
Suvendhu Hansa
75a5058d15 sysmngr: Vendor extensions for FileDescriptors and ActiveConnections 2025-01-17 12:25:02 +00:00
Amin Ben Romdhane
930565f528 netmngr: Define a config flag for each Object exposed by libnetmngr 2025-01-17 11:53:59 +01:00
Erik Karlsson
3d3397703f map-agent: hotplug: topology-discovery: fix typo from previous change 2025-01-17 10:52:06 +01:00
Amin Ben Romdhane
fc2b5a2380 bbfdm: Delete OUT_NAME option as it is no longer in use 2025-01-17 10:44:33 +01:00
Janusz Dziedzic
0aa0cb6424 ieee1905: allow to build without TR181 2025-01-17 08:20:11 +00:00
Elena Vengerova
61b74b5bd3 libwifi: 7.8.3 2025-01-16 20:51:52 +04:00
Andreas Gnau
1d8add390d blkpg-part: Add package
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2025-01-16 13:15:00 +01:00
Reidar Cederqvist
797e8cae82 update sulu to latest devel version 2025-01-15 19:05:51 +01:00
Jakob Olsson
083960ee2e map-agent: hotplug: topology-discovery: redirect ubus invokes to dev/null 2025-01-15 12:57:11 +01:00
Vivek Kumar Dutta
3f59dd1c89 libethernet: select required enct_api dependency 2025-01-15 17:22:18 +05:30
Jakob Olsson
823b5936f8 map-controller: 6.1.2.20 2025-01-15 11:23:02 +01:00
Jakob Olsson
368fe2aafa map-controller: 6.1.2.19 2025-01-15 10:19:20 +01:00
Vivek Kumar Dutta
8f1b18e4d4 libethernet: updated airoha depedency 2025-01-14 16:56:57 +00:00
Suvendhu Hansa
f3b6dbfceb ethmngr: unified service datamodel daemon 2025-01-14 16:55:40 +00:00
Jakob Olsson
b5ac400fd6 map-controller: 6.1.2.18 2025-01-14 15:18:42 +01:00
Suvendhu Hansa
ae1189c0d2 logmngr: Fix missing startup logs 2025-01-14 15:43:22 +05:30
Reidar Cederqvist
4e57074351 sulu: update sulu to latest devel
in this commit allplugins are merged into core, and
a new plugin is added for Genexis theme
2025-01-13 15:01:16 +01:00
Janusz Dziedzic
bbd0f972c6 libwifi: 7.8.2 2025-01-13 12:54:59 +00:00
arbala
50ceda4cd4 map-controller: 6.1.2.17 2025-01-10 16:29:06 +01:00
Suvendhu Hansa
0f5f018e99 sysmngr: Added TemperatureStatus DM 2025-01-09 06:28:13 +05:30
Vivek Kumar Dutta
eff826ac39 wifidmd: Remove wifi object from non-wireless devices 2025-01-09 06:17:48 +05:30
Vivek Kumar Dutta
62aed7d759 bbfdm: Updated conflicting API with libeasy 2025-01-09 06:15:47 +05:30
Piotr Kubik
4d72fddff8 iop: feeds_update: Remove script
Script is now stored in top repo.
2025-01-08 12:29:42 +01:00
Janusz Dziedzic
eb18ec1e2b map-controller: 6.1.2.16 2025-01-08 09:31:03 +00:00
Vivek Kumar Dutta
82a5082538 obuspa: Integrate v9.0.4 2025-01-08 09:10:50 +00:00
Andreas Gnau
4ec80e072d questd: Remove
Questd is no longer maintained. Alternative APIs are available to
achieve the same functionality.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2025-01-07 15:16:20 +00:00
Andreas Gnau
c4f4edd39d iop: Remove KConfig symbols
* CONFIG_TARGET_VERSION has not been used for years, remove it.
* CONFIG_TARGET_CUSTOMER is only used by one feed and is defined there as
  well, so the definition here is not needed, remove it.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2025-01-07 16:07:48 +01:00
Janusz Dziedzic
b02342e752 libwifi: 7.8.1 2025-01-07 10:15:10 +00:00
Janusz Dziedzic
562733b291 map-controller: 6.1.2.15 2025-01-03 14:39:14 +00:00
Janusz Dziedzic
9f6d7d44ed map-agent: 6.2.3.10 2025-01-03 14:39:14 +00:00
Janusz Dziedzic
84faa7f55b libwifi: 7.8.0 2025-01-03 11:58:42 +00:00
Vivek Kumar Dutta
b939c6988e sysmngr: 1.0.13 2025-01-02 19:07:36 +05:30
Suvendhu Hansa
9a28469028 hostmngr: Added vendor extensions 2025-01-02 17:30:47 +05:30
Vivek Kumar Dutta
64123c0f62 ethmngr: Support for Interface Stats Reset 2025-01-02 15:11:47 +05:30
Vivek Kumar Dutta
923a3e2f08 firewallmngr: use name option as instance marker 2025-01-02 14:00:11 +05:30
Suvendhu Hansa
c92e073ec5 periodicstats: unified daemon + datamodel 2025-01-02 06:33:46 +00:00
Suvendhu Hansa
6cdabddc23 bulkdata: Fix random crashes 2024-12-27 09:53:53 +00:00
Markus Gothe
a0eab2f7b9 qosmngr: Improve TSID to be unique. 2024-12-27 09:28:33 +01:00
Vivek Kumar Dutta
cb4b5c0c7c sysmngr: Updated fwbank validator to accept partial data 2024-12-26 19:43:47 +05:30
Rahul Thakur
bc4bb6b9ea mcastmngr: fix mld filtering 2024-12-24 16:20:56 +05:30
Vivek Kumar Dutta
c41ed55d5f wifidmd: Fix typo in MeasurementReport parameter 2024-12-23 10:59:29 +05:30
Jakob Olsson
4860a1a5a8 map-controler: 6.1.2.14 2024-12-19 16:51:08 +01:00
Vivek Kumar Dutta
973a0c689a sysmngr: added validator for reset_reason file 2024-12-19 19:16:58 +05:30
Jakob Olsson
89d03dc3b9 decollector: 6.1.0.7 2024-12-17 10:28:24 +01:00
Jakob Olsson
510dedb352 map-agent: 6.2.3.9 2024-12-17 10:27:13 +01:00
Jakob Olsson
caf9074ab8 map-agent: 6.2.3.8 2024-12-16 17:08:04 +01:00
Jakob Olsson
0676d5b990 map-controller: 6.1.2.13 2024-12-16 16:16:29 +01:00
Jakob Olsson
fb0413467b map-controller: 6.1.2.12 2024-12-16 14:22:10 +01:00
Markus Gothe
148aa95651 qosmngr: Fix Airoha issue with token rate. 2024-12-12 20:49:20 +01:00
Markus Gothe
daf54622d8 Update WAN ingress ratelimit with generic method.
Instead of using the MAC to do ratelimting we use
the Frame Engine, this has the the benefit of being
a more universal solution and will work with PON
without the need of implement APIs for using the
MAC to do ingress ratelimiting.

This also works fine when the integrated switch
is used as the wan.
2024-12-12 17:12:40 +00:00
Vivek Kumar Dutta
22aa3ff065 obuspa: updated test controller dependency 2024-12-12 11:39:08 +00:00
Vivek Kumar Dutta
eb06147743 mosquitto-auth-shadow: updated dependency on mosquitto-ssl to avoid ambiguity 2024-12-12 11:15:53 +00:00
Jakob Olsson
aaa8171f06 map-agent: 6.2.3.7 2024-12-12 11:57:11 +01:00
Jakob Olsson
8037020206 map-controller: 6.1.2.11 2024-12-12 10:41:13 +01:00
Jakob Olsson
3ab1e18f7d map-agent: 6.2.3.6 2024-12-11 16:42:01 +01:00
Jakob Olsson
d28738ecbf map-agent: 6.2.3.5 2024-12-11 15:57:23 +01:00
Jakob Olsson
247eea7a77 map-agent: 6.2.3.4 2024-12-11 13:19:11 +01:00
Vivek Kumar Dutta
404bb37ced obuspa: Fix unique key registrations 2024-12-11 15:03:05 +05:30
Vivek Kumar Dutta
722ddf9f88 bbfdm: Update Security object proto to cwmp 2024-12-11 14:59:31 +05:30
Vivek Kumar Dutta
c0b146a3fe logmngr: Updated unique datamodel parameters 2024-12-11 12:33:11 +05:30
Vivek Kumar Dutta
7acc13dd85 wifidmd: Updated unique key parameters 2024-12-11 11:53:06 +05:30
Vivek Kumar Dutta
14449614a2 firewallmngr: Updated unique datamodel parameters 2024-12-11 11:45:56 +05:30
Vivek Kumar Dutta
1e218554de sysmngr: Mark unique datamodel parameters 2024-12-11 11:43:19 +05:30
Vivek Kumar Dutta
05017194b5 dnsmngr: Updated unique key parameters 2024-12-11 11:38:29 +05:30
Vivek Kumar Dutta
6f709c0623 bridgemngr: Updated unique key parameters 2024-12-11 11:35:33 +05:30
Vivek Kumar Dutta
dd4907e86d tr104: Updated default values for CallStatus parameters 2024-12-11 09:58:14 +05:30
Jakob Olsson
b1eb97b7d7 map-controller: 6.1.2.10 2024-12-10 16:36:49 +01:00
Jakob Olsson
d9b86df719 map-agent: 6.2.3.3 2024-12-10 16:23:18 +01:00
Vivek Kumar Dutta
e656deb8f5 obuspa: enable cwmp specific datamodel 2024-12-10 19:49:51 +05:30
Vivek Kumar Dutta
e8f1b2167a icwmp: register xmpp for both proto 2024-12-10 19:38:21 +05:30
Amin Ben Romdhane
cfceae73ff sysmngr: 1.0.9 2024-12-10 13:24:49 +01:00
Rahul Thakur
6c7aa21626 logmngr: fix syslog-ng conf generation 2024-12-10 10:16:26 +00:00
Mohd Husaam Mehdi
52f554b84d qosmgr: add support for wan ingress and egress rate control 2024-12-10 09:51:47 +00:00
Vivek Kumar Dutta
70c823e303 obuspa: Optmize datamodel caching 2024-12-10 12:07:28 +05:30
Filip Matusiak
1f94ad341b map-agent: 6.2.3.2 2024-12-09 17:12:26 +01:00
Vivek Kumar Dutta
e02ad277f7 bbfdm: Fix empty output from microservices without proto 2024-12-09 17:05:51 +05:30
Janusz Dziedzic
a8a5f99769 wifimngr: 17.4.7 2024-12-06 15:18:12 +01:00
Mohd Husaam Mehdi
d161ef2238 qosmngr: updates related to rate control
* separate scheduling logic from rate control logic
* add support for burst_size
2024-12-06 13:46:35 +00:00
Jakob Olsson
64d1873eba map-agent: 6.2.3.1 2024-12-06 14:14:46 +01:00
Vivek Kumar Dutta
29a123446a wifidmd: update MLDUnit changes in mapcontroller/agent 2024-12-06 12:34:30 +00:00
Vivek Kumar Dutta
e7374d6bce icwmp: Register XMPP as cwmp and CWMPManagementServer as usp 2024-12-06 12:34:30 +00:00
Vivek Kumar Dutta
7dd517dba7 obuspa: register core datamodel with cwmp proto 2024-12-06 12:34:30 +00:00
Vivek Kumar Dutta
c7a6bdb4a0 bulkdata: register datamodel as cwmp only 2024-12-06 12:34:30 +00:00
Vivek Kumar Dutta
5e009f97e9 bbfdm: Support proto based filter for micro-services 2024-12-06 12:34:30 +00:00
Amin Ben Romdhane
d2a43566bc sysmngr: 1.0.8 2024-12-06 12:04:50 +01:00
Jakob Olsson
ab2b11e343 map-agent: 6.2.3.0 2024-12-06 10:48:41 +01:00
Amin Ben Romdhane
67db9fcc48 sysmngr: Added support for fwbank ubus object 2024-12-05 15:56:40 +01:00
Vivek Kumar Dutta
db855e4c38 wifidmd: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
b3b7d666b1 usermngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
dda4099874 userinterface: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
6c4f2842b8 usbmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
fcad858660 tr104: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
8bd1e237ef timemngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
1e4af81108 sysmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
6dbd4fbade swmodd: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
cd6a127fb9 sshmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
cb3653ebe9 port-trigger: Install datamodel as firewallmngr plugin 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
765201ded3 ssdpd: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
54f75846ca qosmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
090795699d ponmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
551033461a periodicstats: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
2c3a493457 parental-control: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
e0bf63926a obuspa: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
c6e8454989 netmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
16f1276346 mcastmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
5d223f5909 ieee1905: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
83541d7e03 icwmp: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
76042997ca hostmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
e47abdff8f firewallmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
3eaa20c12e ethmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
7ffb8b398f dslmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
5b449b886c dnsmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
13b00ca74d dhcpmngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
8b9e1a0f94 ddnsmngr: align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
9e3ee55e12 bulkdata: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
6a9eee1af5 bridgemngr: Align with bbfdm 2024-12-05 12:58:35 +00:00
Vivek Kumar Dutta
d9d2fc882f bbfdm: Register micro-services before exposing over ubus 2024-12-05 12:58:35 +00:00
Janusz Dziedzic
7df39bd465 map-agent: wait ap-autoconfig when MLO
Don't generate APs early - just wait
ap-autoconfig.
2024-12-05 12:31:12 +00:00
Janusz Dziedzic
317c1bdff0 libwifi: 7.7.9 2024-12-05 09:47:15 +00:00
Janusz Dziedzic
ac5602443f wifimngr: 17.4.6 2024-12-05 09:33:45 +00:00
Jakob Olsson
9816a42f00 map-agent: 6.2.2.3 2024-12-04 12:27:55 +01:00
Mohd Husaam Mehdi
12f70a7d91 qosmngr: add ingress and egress rate control support for airoha 2024-12-04 13:10:30 +05:30
Vivek Kumar Dutta
f3959d1ffd bulkdata: Fix segfault when server not responding 2024-12-04 12:59:33 +05:30
Suvendhu Hansa
b8c4404ba6 parental-control: 1.0.0 2024-12-03 21:47:33 +05:30
258 changed files with 6077 additions and 2780 deletions

View File

@@ -2,13 +2,9 @@ if PACKAGE_bbfdmd
config BBF_VENDOR_PREFIX
string "Vendor Prefix"
default "X_IOPSYS_EU_"
default "X_IOWRT_EU_"
config BBF_OBFUSCATION_KEY
string "Obfuscation key"
default "371d530c95a17d1ca223a29b7a6cdc97e1135c1e0959b51106cca91a0b148b5e42742d372a359760742803f2a44bd88fca67ccdcfaeed26d02ce3b6049cb1e04"
config BBF_MAX_OBJECT_INSTANCES
int "Maximum number of instances per object"
default 255
endif

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bbfdm
PKG_VERSION:=1.12.26
PKG_VERSION:=1.15.6
USE_LOCAL:=0
ifneq ($(USE_LOCAL),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bbfdm.git
PKG_SOURCE_VERSION:=811f0616c6a861c9b78d5a079a0f79f3eb0b23b2
PKG_SOURCE_VERSION:=38636715adf891bbf64a45ba54a87582c0c7e134
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -19,6 +19,8 @@ endif
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
RSTRIP:=true
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include bbfdm.mk
@@ -68,10 +70,6 @@ define Package/bbfdmd/config
source "$(SOURCE)/Config_bbfdmd.in"
endef
define Package/bbf_configmngr/config
source "$(SOURCE)/bbf_configmngr.in"
endef
define Package/libbbfdm-api/description
Library contains the API(UCI, UBUS, JSON, CLI and Browse) of libbbfdm
endef
@@ -100,12 +98,14 @@ endif
CMAKE_OPTIONS += \
-DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \
-DBBF_MAX_OBJECT_INSTANCES:Integer=$(CONFIG_BBF_MAX_OBJECT_INSTANCES) \
-DBBFDMD_MAX_MSG_LEN:Integer=10485760
-DBBFDMD_MAX_MSG_LEN:Integer=10485760 \
-DCMAKE_BUILD_TYPE:String="Debug" \
define Package/libbbfdm-api/install
$(INSTALL_DIR) $(1)/lib
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/libbbfdm-api.so $(1)/lib/
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/legacy/libbbfdm-api.so $(1)/lib/
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/version-2/libbbfdm-api-v2.so $(1)/lib/
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(CP) $(PKG_BUILD_DIR)/utilities/files/usr/libexec/rpcd/bbf.secure $(1)/usr/libexec/rpcd/bbf.secure
@@ -133,6 +133,7 @@ define Package/bbfdmd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbfdmd/ubus/bbfdmd $(1)/usr/sbin/
$(STRIP) $(1)/usr/sbin/bbfdmd
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/bbfdmd $(1)/etc/init.d/bbfdmd
@@ -153,22 +154,22 @@ define Package/dm-service/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dm-service/dm-service $(1)/usr/sbin/
$(BBFDM_REGISTER_SERVICES) -v ${CONFIG_BBF_VENDOR_PREFIX} ./bbfdm_service.json $(1) core
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/libbbfdm/libcore.so $(1) core
endef
define Package/bbf_configmngr/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/bbfdm/
ifeq ($(CONFIG_BBF_CONFIGMNGR_C_BACKEND),y)
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/bbf_configd $(1)/usr/sbin/
$(INSTALL_BIN) ./files/etc/init.d/bbf_configd $(1)/etc/init.d/bbf_configd
$(INSTALL_DIR) $(1)/usr/share/bbfdm/scripts
$(CP) $(PKG_BUILD_DIR)/utilities/files/usr/share/bbfdm/scripts/bbf_config_notify.sh $(1)/usr/share/bbfdm/scripts/
endif
ifeq ($(CONFIG_BBF_CONFIGMNGR_SCRIPT_BACKEND),y)
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(CP) $(PKG_BUILD_DIR)/utilities/files/usr/libexec/rpcd/bbf.config $(1)/usr/libexec/rpcd/bbf.config
endif
$(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/bbf_configd $(1)/usr/sbin/
$(STRIP) $(1)/usr/sbin/bbf_configd
$(INSTALL_BIN) ./files/etc/init.d/bbf_configd $(1)/etc/init.d/bbf_configd
$(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/files/usr/share/bbfdm/scripts/bbf_config_notify.sh $(1)/usr/share/bbfdm/scripts/
$(INSTALL_DATA) ./files/etc/bbfdm/critical_services.json $(1)/etc/bbfdm/
endef
@@ -182,11 +183,17 @@ define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/include/libbbfdm-api
$(INSTALL_DIR) $(1)/usr/include/libbbfdm-api/legacy
$(INSTALL_DIR) $(1)/usr/include/libbbfdm-api/version-2
$(INSTALL_DIR) $(1)/usr/include/libbbfdm-ubus
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/*.h $(1)/usr/include/libbbfdm-api/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/legacy/*.h $(1)/usr/include/libbbfdm-api/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/legacy/*.h $(1)/usr/include/libbbfdm-api/legacy/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/version-2/*.h $(1)/usr/include/libbbfdm-api/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/version-2/*.h $(1)/usr/include/libbbfdm-api/version-2/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-ubus/bbfdm-ubus.h $(1)/usr/include/libbbfdm-ubus/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/include/*.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/libbbfdm-api.so $(1)/usr/lib
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/legacy/include/*.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/legacy/libbbfdm-api.so $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libbbfdm-api/version-2/libbbfdm-api-v2.so $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libbbfdm-ubus/libbbfdm-ubus.so $(1)/usr/lib
endef

View File

@@ -1,19 +0,0 @@
if PACKAGE_bbf_configmngr
choice
prompt "Select backend daemon for bbf.config"
default BBF_CONFIGMNGR_C_BACKEND
help
Select which backend daemon should be used for ubus bbf.config
config BBF_CONFIGMNGR_SCRIPT_BACKEND
bool "Use shell script backend"
help
Enable this option to use shell script as the backend for bbf.config. This can be useful for quick and easy scripting of configuration tasks.
config BBF_CONFIGMNGR_C_BACKEND
bool "Use C code backend"
help
Enable this option to use a C code implementation as the backend for bbf.config. This option is generally preferred for performance-critical tasks and scenarios requiring more robust and efficient handling.
endchoice
endif

View File

@@ -47,7 +47,6 @@ BBFDM_INSTALL_CORE_PLUGIN:=$(BBFDM_DIR)/tools/bbfdm.sh -p
# Note:
# - There could be only one main plugin file, so its bind to PKG_NAME
# - Micro-service input.json will be auto generated with this call
# - Use -u (optional argument) to overwrite ubus object name
#
# Example:
# BBFDM_INSTALL_MS_DM $(PKG_BUILD_DIR)/libcwmp.so $(1) $(PKG_NAME)
@@ -88,27 +87,5 @@ BBFDM_INSTALL_MS_PLUGIN:=$(BBFDM_DIR)/tools/bbfdm.sh -m -p
#
BBFDM_INSTALL_SCRIPT:=$(BBFDM_DIR)/tools/bbfdm.sh -s
# Deprecated functions errors
define BbfdmInstallPluginInMicroservice
$(warning # BbfdmInstallPluginInMicroservice function is deprecated, use BBFDM_INSTALL_MS_PLUGIN macro #)
$(INSTALL_DIR) $(1)
$(INSTALL_DATA) $(2) $(1)/
endef
define BbfdmInstallMicroServiceInputFile
$(warning # function BbfdmInstallMicroServiceInputFile deprecated, input file auto generated with BBFDM_INSTALL_MS_DM #)
$(INSTALL_DIR) $(1)/etc/bbfdm/micro_services
$(INSTALL_DATA) $(2) $(1)/etc/bbfdm/micro_services/$(PKG_NAME).json
endef
define BbfdmInstallPlugin
$(warning # function BbfdmInstallPlugin deprecated, use BBFDM_INSTALL_CORE_PLUGIN macro #)
$(INSTALL_DIR) $(1)/etc/bbfdm/plugins
$(INSTALL_DATA) $(2) $(1)/etc/bbfdm/plugins/
endef
define BbfdmInstallPluginWithPriority
$(warning # fucntion BbfdmInstallPluginWithPriority deprecated, use BBFDM_INSTALL_CORE_PLUGIN #)
$(INSTALL_DIR) $(1)/etc/bbfdm/plugins
$(INSTALL_DATA) $(3) $(1)/etc/bbfdm/plugins/$(2)_$(shell basename ${3})
endef
BBFDM_REGISTER_SERVICES:=$(BBFDM_DIR)/tools/bbfdm.sh -t

54
bbfdm/bbfdm_service.json Normal file
View File

@@ -0,0 +1,54 @@
{
"daemon": {
"enable": "1",
"service_name": "core",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "LANConfigSecurity"
},
{
"parent_dm": "Device.",
"object": "Schedules"
},
{
"parent_dm": "Device.",
"object": "Security",
"proto": "cwmp"
},
{
"parent_dm": "Device.",
"object": "PacketCaptureDiagnostics"
},
{
"parent_dm": "Device.",
"object": "SelfTestDiagnostics"
},
{
"parent_dm": "Device.",
"object": "Syslog"
},
{
"parent_dm": "Device.",
"object": "{BBF_VENDOR_PREFIX}OpenVPN",
"proto": "usp"
},
{
"parent_dm": "Device.",
"object": "RootDataModelVersion"
},
{
"parent_dm": "Device.",
"object": "Reboot()"
},
{
"parent_dm": "Device.",
"object": "FactoryReset()"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -3,8 +3,12 @@
"firewall",
"network",
"dhcp",
"time",
"wireless",
"time"
"ieee1905",
"mapcontroller",
"mosquitto",
"nginx"
],
"cwmp": [
"firewall",

View File

@@ -1,7 +1,7 @@
config bbfdmd 'bbfdmd'
option enable '1'
option debug '0'
option loglevel '3'
option loglevel '4'
config micro_services 'micro_services'
option enable '1'

View File

@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common
START=80
STOP=10
STOP=07
USE_PROCD=1
PROG=/usr/sbin/bbf_configd

View File

@@ -1,12 +1,12 @@
#!/bin/sh /etc/rc.common
START=60
STOP=8
STOP=05
USE_PROCD=1
PROG=/usr/sbin/dm-service
BBFDM_MICROSERVICE_DIR="/etc/bbfdm/micro_services"
BBFDM_MICROSERVICE_DIR="/etc/bbfdm/services"
. /usr/share/libubox/jshn.sh
@@ -24,7 +24,7 @@ validate_bbfdm_micro_service_section()
_add_microservice()
{
local name path loglevel
local enable enable_core
local enable enable_core unified_daemon
# Check enable from micro-service
path="${1}"
@@ -41,9 +41,14 @@ _add_microservice()
log "datamodel micro-service ${name} not enabled"
return 0
fi
json_get_var unified_daemon unified_daemon 0
if [ "${unified_daemon}" -eq "1" ]; then
return 0
fi
json_select config
json_get_var loglevel loglevel 3
json_get_var loglevel loglevel 4
procd_open_instance "${name}"

View File

@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common
START=97
STOP=10
STOP=06
USE_PROCD=1
PROG=/usr/sbin/bbfdmd
@@ -17,7 +17,7 @@ validate_bbfdm_bbfdmd_section()
uci_validate_section bbfdm bbfdmd "bbfdmd" \
'enable:bool:true' \
'debug:bool:false' \
'loglevel:uinteger:3'
'loglevel:uinteger:4'
}
configure_bbfdmd()

View File

@@ -51,10 +51,6 @@ parse_bbfdm_sysctl_conf_file() {
# Replace the original file with the modified content
mv "$tmpfile" "${bbfdm_sysctl_conf}"
# Apply the changes
uci commit network
sysctl -e -p "${bbfdm_sysctl_conf}" >&-
}
parse_bbfdm_sysctl_conf_file

View File

@@ -2,18 +2,18 @@
BBFDM_BASE_DM_PATH="usr/share/bbfdm"
BBFDM_INPUT_PATH="etc/bbfdm/micro_services"
INPUT_TEMPLATE='{"daemon":{"enable":"1","service_name":"template","config":{"loglevel":"3"}}}'
OUT_NAME=""
INPUT_FILE="0"
MICRO_SERVICE=0
SCRIPT=0
DIAG=0
PLUGIN=0
DEST=""
VENDOR_EXTN=""
TOOLS="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
SRC=""
while getopts ":mpsdu:" opt; do
while getopts ":mpsdtv:" opt; do
case ${opt} in
m)
MICRO_SERVICE=1
@@ -27,8 +27,11 @@ while getopts ":mpsdu:" opt; do
d)
DIAG=1
;;
u)
OUT_NAME="${OPTARG}"
t)
INPUT_FILE=1
;;
v)
VENDOR_EXTN=${OPTARG}
;;
?)
echo "Invalid option: ${OPTARG}"
@@ -89,6 +92,10 @@ bbfdm_install_dm()
minfile=$(mktemp)
jq -c 'del(..|.description?)' ${src} > ${minfile}
if [ -n "${VENDOR_EXTN}" ]; then
sed -i "s/{BBF_VENDOR_PREFIX}/${VENDOR_EXTN}/g" ${minfile}
fi
src=${minfile}
if dpkg -s python3-jsonschema >/dev/null 2>&1; then
echo "Verifying bbfdm Datamodel JSON file"
@@ -108,23 +115,6 @@ bbfdm_install_dm()
fi
}
bbfdm_generate_input()
{
local dest ser
dest_dir=${1}
ser=${2}
dest=${dest_dir}/${ser}.json
if [ -n "${OUT_NAME}" ]; then
echo ${INPUT_TEMPLATE} | jq --arg service "${ser}" --arg OUT "${OUT_NAME}" '.daemon |= (.service_name = $service |.output.name = $OUT)' > ${dest}
else
echo ${INPUT_TEMPLATE} | jq --arg service "${ser}" '.daemon.service_name = $service' > ${dest}
fi
chmod 466 ${dest}
}
if [ -z "$SRC" ] || [ -z "${DEST}" ] ; then
echo "# BBFDM Null value in src[${SRC}], dest[${DEST}]"
exit 1
@@ -141,6 +131,39 @@ if [ "${SCRIPT}" -eq "1" ]; then
exit 0
fi
if [ "${INPUT_FILE}" -eq "1" ]; then
tempfile=""
if [ ! -f "${SRC}" ]; then
echo "# Datamodel Input file ${SRC} not available"
exit 1
fi
if ! cat ${SRC} |jq >/dev/null 2>&1; then
echo "# Invalid datamodel json input file"
exit 1
fi
if [ -z "${DATA}" ]; then
echo "# Package name not provided ...."
exit 1
fi
tempfile=$(mktemp)
cp ${SRC} ${tempfile}
if [ -n "${VENDOR_EXTN}" ]; then
sed -i "s/{BBF_VENDOR_PREFIX}/${VENDOR_EXTN}/g" ${tempfile}
fi
install_dir ${DEST}/etc/bbfdm/services
install_data ${tempfile} ${DEST}/etc/bbfdm/services/${DATA}.json
if [ -f "${tempfile}" ]; then
rm ${tempfile}
fi
exit 0
fi
if [ "${MICRO_SERVICE}" -eq "1" ]; then
if [ -z "${DATA}" ]; then
echo "# service_name[${DATA}] not provided"
@@ -151,24 +174,21 @@ if [ "${MICRO_SERVICE}" -eq "1" ]; then
extn="$(basename ${SRC})"
install_dir ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/${DATA}.${extn##*.}
# main micro-service datamodel plugin, create an input file as well
install_dir ${DEST}/${BBFDM_INPUT_PATH}
bbfdm_generate_input ${DEST}/${BBFDM_INPUT_PATH}/ ${DATA}
else
install_dir ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/${DATA}
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/${DATA}/$(basename ${SRC})
fi
else
if [ "${PLUGIN}" -eq "1" ]; then
echo "# WARNING: BBFDM_INSTALL_CORE_PLUGIN macro will be deprecated soon. Please use BBFDM_INSTALL_MS_PLUGIN macro instead, specifying 'core' as micro-service name #"
priority="${DATA:-0}"
install_dir ${DEST}/${BBFDM_BASE_DM_PATH}/plugins
install_dir ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/core
if [ "${priority}" -gt "0" ]; then
# install with priority if defined
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/plugins/${priority}_$(basename ${SRC})
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/core/${priority}_$(basename ${SRC})
elif [ "${priority}" -eq "0" ]; then
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/plugins/$(basename ${SRC})
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/core/$(basename ${SRC})
else
echo "# Priority should be an unsigned integer"
exit 1

45
blkpg-part/Makefile Normal file
View File

@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2025 IOPSYS Software Solutions AB
include $(TOPDIR)/rules.mk
PKG_NAME:=blkpg-part
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=5a4ec5f53ed904b37fba03f3797fbe2af3077f8d
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/gportay/blkpg-part.git
PKG_MIRROR_HASH:=skip
PKG_MAINTAINER:=Andreas Gnau <andreas.gnau@iopsys.eu>
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
MAKE_INSTALL_FLAGS += PREFIX=/usr
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Disc
TITLE:=User space partition table and disk geometry handling utility
URL:=https://www.portay.io/blkpg-part/
endef
define Package/$(PKG_NAME)/description
blkpg-part creates temporary partitions that are not part of the GPT/MBR.
It makes a partition block device from any consecutive blocks that are
not partitioned. It creates, resizes and deletes partitions on the fly
without writing back the changes to the partition table.
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/blkpg-part $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,7 +1,5 @@
if PACKAGE_bridgemngr
menu "Configuration"
config BRIDGEMNGR_BRIDGE_VLAN
bool "Use bridge-vlan backend"
help
@@ -13,5 +11,7 @@ config BRIDGEMNGR_BRIDGE_VENDOR_EXT
help
Set this option to use bridge BBF vendor extensions.
endmenu
config BRIDGEMNGR_BRIDGE_VENDOR_PREFIX
string "Package specific datamodel Vendor Prefix for TR181 extensions"
default ""
endif

View File

@@ -5,14 +5,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bridgemngr
PKG_VERSION:=1.0.7
PKG_VERSION:=1.0.13
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/bridgemngr
PKG_SOURCE_VERSION:=4f22b4a4270c8d9b94b9de6f5cbe2a1dd86a3027
PKG_SOURCE_VERSION:=99bc3a3a0a2571917eda7085c21952f779fdb471
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -40,18 +40,31 @@ endef
MAKE_PATH:=src
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
ifeq ($(CONFIG_BRIDGEMNGR_BRIDGE_VENDOR_PREFIX),"")
VENDOR_PREFIX = $(CONFIG_BBF_VENDOR_PREFIX)
else
VENDOR_PREFIX = $(CONFIG_BRIDGEMNGR_BRIDGE_VENDOR_PREFIX)
endif
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(VENDOR_PREFIX)\\\"
ifeq ($(CONFIG_BRIDGEMNGR_BRIDGE_VLAN),y)
TARGET_CFLAGS += -DBRIDGE_VLAN_BACKEND
endif
define Package/bridgemngr/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libbridgemngr.so $(1) $(PKG_NAME)
ifeq ($(CONFIG_BRIDGEMNGR_BRIDGE_VENDOR_EXT), y)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/libbridgeext.so $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_PLUGIN) ./files/VLAN_Filtering_Extension.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_PLUGIN) -v ${VENDOR_PREFIX} ./files/VLAN_Filtering_Extension.json $(1) $(PKG_NAME)
endif
$(INSTALL_BIN) ./files/etc/init.d/bridging $(1)/etc/init.d/
$(INSTALL_DATA) ./files/etc/config/bridging $(1)/etc/config/
endef
ifeq ($(LOCAL_DEV),1)

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "bridgemngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "Bridging"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -0,0 +1,33 @@
#L2 filter UCI file
config chain 'qos_output'
option target 'qos_output'
option table 'nat'
option chain 'OUTPUT'
option policy 'RETURN'
config chain 'dscp2pbits'
option target 'dscp2pbits'
option table 'broute'
option chain 'BROUTING'
option policy 'RETURN'
config chain 'qos'
option target 'qos'
option table 'broute'
option chain 'BROUTING'
option policy 'RETURN'
config chain 'prevlanxlate'
option target 'prevlanxlate'
option table 'broute'
option chain 'BROUTING'
option policy 'RETURN'
option append 'false'
config chain 'mcsnooping'
option target 'mcsnooping'
option table 'broute'
option chain 'BROUTING'
option policy 'RETURN'
option append 'false'

View File

@@ -0,0 +1,93 @@
#!/bin/sh /etc/rc.common
# Start after bdmf shell, wanconf, and switch-script but before the network-script
START=20
STOP=10
USE_PROCD=1
. /lib/functions.sh
handle_ebtables_chain() {
local sid="$1"
local table
local chain
local target
local policy
local append
local enabled
local ret
config_get table "$sid" table filter
config_get chain "$sid" chain
config_get policy "$sid" policy RETURN
config_get target "$sid" target
config_get_bool append "$sid" append 1
config_get_bool enabled "$sid" enabled 1
[ "$enabled" = "0" ] && return
[ -z "${chain}" -o -z "${target}" ] && return
if [ "$append" != "0" ]; then
append="-A"
else
append="-I"
fi
ebtables --concurrent -t "$table" -N "$target" -P "$policy" 2> /dev/null
ret=$?
if [ $ret -eq 0 ]; then
ebtables --concurrent -t "$table" ${append} "$chain" -j "$target"
else
ebtables --concurrent -t "$table" -D "$chain" -j "$target"
ebtables --concurrent -t "$table" ${append} "$chain" -j "$target"
fi
}
handle_ebtables_rule() {
local sid="$1"
local table
local chain
local target
local match
local value
local enabled
local ret
config_get table "$sid" table filter
config_get chain "$sid" chain
config_get match "$sid" match
config_get value "$sid" value
config_get target "$sid" target RETURN
config_get_bool append "$sid" append 1
config_get_bool enabled "$sid" enabled 1
[ "$enabled" = "0" ] && return
[ -z "${chain}" -o -z "${target}" ] && return
if [ "$append" != "0" ]; then
append="-A"
else
append="-I"
fi
ebtables --concurrent -t "$table" -D "$chain" ${match} -j "$target" ${value} 2> /dev/null
ebtables --concurrent -t "$table" ${append} "$chain" ${match} -j "$target" ${value}
}
start_service() {
config_load bridging
config_foreach handle_ebtables_chain chain
config_foreach handle_ebtables_rule rule
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger bridging
}

View File

@@ -7,13 +7,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata
PKG_VERSION:=2.1.14
PKG_VERSION:=2.1.19
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bulkdata.git
PKG_SOURCE_VERSION:=93c9e87cb9f8f635cece1473cff6f67cff9ff7c0
PKG_SOURCE_VERSION:=628525b02ae9ccd39f4bc85cf616ed4a102bca48
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -54,6 +54,8 @@ define Package/bulkdata/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
$(INSTALL_DATA) ./files/etc/config/bulkdata $(1)/etc/config/
$(INSTALL_BIN) ./files/etc/init.d/bulkdatad $(1)/etc/init.d/
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
endef
$(eval $(call BuildPackage,bulkdata))

View File

@@ -0,0 +1,17 @@
{
"daemon": {
"enable": "1",
"service_name": "bulkdata",
"unified_daemon": true,
"services": [
{
"parent_dm": "Device.",
"object": "BulkData",
"proto": "cwmp"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -1,6 +1,6 @@
config bulkdata 'bulkdata'
option enable '0'
#Log levels: Error=1, Warning=2, Info=3, Debug=4
option log_level '3'
#Log levels: As per syslog 0-7, default 6=>LOG_INFO
option loglevel '3'

View File

@@ -6,9 +6,20 @@ STOP=10
USE_PROCD=1
PROG="/usr/sbin/bulkdatad"
validate_global_section() {
uci_validate_section bulkdata bulkdata bulkdata \
'enable:bool:1' \
'loglevel:uinteger:3'
}
start_service() {
local enable loglevel
validate_global_section
procd_open_instance "bulkdata"
procd_set_param command "$PROG"
procd_append_param command -l ${loglevel}
procd_set_param respawn
procd_close_instance "bulkdata"
}

View File

@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ddnsmngr
PKG_VERSION:=1.0.9
PKG_VERSION:=1.0.10
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
@@ -71,6 +71,7 @@ ifeq ($(CONFIG_DDNSMNGR_BACKEND_INADYN),y)
$(INSTALL_DATA) $(PKG_BUILD_DIR)/files/inadyn/server/* $(1)/etc/ddnsmngr/servers
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/inadyn/usr/libexec/rpcd/ddnsmngr $(1)/usr/libexec/rpcd/ddnsmngr
endif
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libddnsmngr.so $(1) $(PKG_NAME)
endef

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "ddnsmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "DynamicDNS"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=decollector
PKG_VERSION:=6.1.0.6
PKG_VERSION:=6.2.0.1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=37669ed8365397d65656f11a04f6af8cae57607c
PKG_SOURCE_VERSION:=575ecfff3779aadcea83d890ba975109c0f7d6a3
PKG_SOURCE_URL:=https://dev.iopsys.eu/multi-ap/decollector.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -56,11 +56,16 @@ endif
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc
$(INSTALL_DIR) $(1)/etc/dspg
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/dectmngr $(1)/usr/sbin/
$(STRIP) $(1)/usr/sbin/dectmngr
ifneq ($(CONFIG_TARGET_airoha),)
$(CP) ./firmware/airoha/* $(1)/etc/dspg/
else
$(CP) ./firmware/common/* $(1)/etc/dspg/
endif
$(CP) ./files/etc/* $(1)/etc/
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/dect $(1)/lib/upgrade/keep.d/dect
endef

Binary file not shown.

View File

@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dhcpmngr
PKG_VERSION:=1.0.4
PKG_VERSION:=1.0.5
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
@@ -52,6 +52,7 @@ ifeq ($(CONFIG_DNSMNGR_BACKEND_UNBOUND),y)
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DATA) ./files/etc/uci-defaults/unbound.odhcpd.uci_default $(1)/etc/uci-defaults/16-set-unbound-as-odhcpd-leasetrigger
endif
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libdhcpmngr.so $(1) $(PKG_NAME)
endef

View File

@@ -0,0 +1,20 @@
{
"daemon": {
"enable": "1",
"service_name": "dhcpmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "DHCPv4"
},
{
"parent_dm": "Device.",
"object": "DHCPv6"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -10,7 +10,6 @@ uci -q get dhcp.odhcpd >/dev/null 2>&1 && {
[ -e /usr/lib/unbound/odhcpd.sh ] && [ -e /usr/sbin/unbound ] && {
# then set unbound script as leasetrigger in dhcp UCI
uci -q set dhcp.odhcpd.leasetrigger='/usr/lib/unbound/odhcpd.sh'
uci commit dhcp
}
}
}

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmngr
PKG_VERSION:=1.0.12
PKG_VERSION:=1.0.15
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/dnsmngr.git
PKG_SOURCE_VERSION:=fb49088ddb498980e2c91f03aea10bd502caeca1
PKG_SOURCE_VERSION:=32bd2501fca8a4f45ba13ee0e4762756c60fe721
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -64,6 +64,11 @@ ifeq ($(CONFIG_DNSMNGR_BACKEND_DNSMASQ),y)
endif
define Package/dnsmngr/install
$(INSTALL_DIR) $(1)/etc/umdns
$(INSTALL_DIR) $(1)/etc/umdns/tmp
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/dnsmngr $(1)/lib/upgrade/keep.d/dnsmngr
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libdnsmngr.so $(1) $(PKG_NAME)
$(BBFDM_INSTALL_SCRIPT) -d $(PKG_BUILD_DIR)/scripts/nslookup $(1)
ifeq ($(CONFIG_DNSMNGR_DNS_SD),y)

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "dnsmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "DNS"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -0,0 +1 @@
/etc/umdns/*

View File

@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dslmngr
PKG_VERSION:=1.2.8
PKG_VERSION:=1.2.9
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -78,6 +78,7 @@ ifeq ($(CONFIG_TARGET_brcmbca),y)
endif
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dslmngr $(1)/sbin/
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/libbbfdsl.so $(1) $(PKG_NAME)
endef

View File

@@ -0,0 +1,28 @@
{
"daemon": {
"enable": "1",
"service_name": "dslmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "DSL"
},
{
"parent_dm": "Device.",
"object": "FAST"
},
{
"parent_dm": "Device.",
"object": "ATM"
},
{
"parent_dm": "Device.",
"object": "PTM"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -6,21 +6,21 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ebtables-extensions
PKG_VERSION:=2.0.1
PKG_VERSION:=2.0.5
PKG_LICENSE:=GPL-2.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5ef3a5b057f6b59a4b90bd5ca15a852b0c27f3b3
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/ebtables-extensions.git
PKG_SOURCE_VERSION:=7357622d806833d93d317164dc6673fbf5fd1629
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
include $(INCLUDE_DIR)/package.mk
define KernelPackage/vlantranslation
define KernelPackage/ebt-vlantranslation
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables VLAN translation
FILES:=$(PKG_BUILD_DIR)/src/ebt_vlantranslation.ko
@@ -29,7 +29,7 @@ define KernelPackage/vlantranslation
KCONFIG:=
endef
define KernelPackage/dscp2pbit
define KernelPackage/ebt-dscp2pbit
SUBMENU:=Other modules
TITLE:=Kernel module for DSCP-to-Pbit mapping
DEPENDS+=+kmod-ebtables
@@ -38,7 +38,7 @@ define KernelPackage/dscp2pbit
KCONFIG:=
endef
define KernelPackage/dhcp
define KernelPackage/ebt-dhcp
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables DHCP snooping
FILES:=$(PKG_BUILD_DIR)/src/ebt_dhcp.ko
@@ -47,7 +47,7 @@ define KernelPackage/dhcp
KCONFIG:=
endef
define KernelPackage/dhcpv6
define KernelPackage/ebt-dhcpv6
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables DHCPv6 snooping
FILES:=$(PKG_BUILD_DIR)/src/ebt_dhcpv6.ko
@@ -56,7 +56,7 @@ define KernelPackage/dhcpv6
KCONFIG:=
endef
define KernelPackage/ra
define KernelPackage/ebt-ra
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables NDP/RA snooping
FILES:=$(PKG_BUILD_DIR)/src/ebt_ra.ko
@@ -65,7 +65,7 @@ define KernelPackage/ra
KCONFIG:=
endef
define KernelPackage/dns
define KernelPackage/ebt-dns
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables DNS manipulation
FILES:=$(PKG_BUILD_DIR)/src/ebt_dns.ko
@@ -74,7 +74,7 @@ define KernelPackage/dns
KCONFIG:=
endef
define KernelPackage/pppoe_disc
define KernelPackage/ebt-pppoe_disc
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables PPPoE manipulation
FILES:=$(PKG_BUILD_DIR)/src/ebt_pppoe_disc.ko
@@ -83,7 +83,7 @@ define KernelPackage/pppoe_disc
KCONFIG:=
endef
define KernelPackage/l2pt
define KernelPackage/ebt-l2pt
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables L2CP tunneling
FILES:=$(PKG_BUILD_DIR)/src/ebt_l2pt.ko
@@ -92,7 +92,7 @@ define KernelPackage/l2pt
KCONFIG:=
endef
define KernelPackage/xtarp
define KernelPackage/ebt-xtarp
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables extended ARP matching
FILES:=$(PKG_BUILD_DIR)/src/ebt_xtarp.ko
@@ -101,7 +101,7 @@ define KernelPackage/xtarp
KCONFIG:=
endef
define KernelPackage/xtip
define KernelPackage/ebt-xtip
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables extended IPv4 matching
FILES:=$(PKG_BUILD_DIR)/src/ebt_xtip.ko
@@ -110,7 +110,7 @@ define KernelPackage/xtip
KCONFIG:=
endef
define KernelPackage/xtip6
define KernelPackage/ebt-xtip6
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables extended IPv6 matching
FILES:=$(PKG_BUILD_DIR)/src/ebt_xtip6.ko
@@ -119,53 +119,77 @@ define KernelPackage/xtip6
KCONFIG:=
endef
define KernelPackage/dhcp/description
define KernelPackage/ebt-igmpsnooping
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables IGMP snooping
FILES:=$(PKG_BUILD_DIR)/src/ebt_igmpsnooping.ko
DEPENDS+=+kmod-ebtables
# AUTOLOAD:=$(call AutoLoad,30,ebt_igmpsnooping) - Will be loaded on demand
KCONFIG:=
endef
define KernelPackage/ebt-mldsnooping
SUBMENU:=Other modules
TITLE:=Kernel module for ebtables MLD snooping
FILES:=$(PKG_BUILD_DIR)/src/ebt_mldsnooping.ko
DEPENDS+=+kmod-ebtables
# AUTOLOAD:=$(call AutoLoad,30,ebt_mldsnooping) - Will be loaded on demand
KCONFIG:=
endef
define KernelPackage/ebt-dhcp/description
Kernel module to enable DHCP snooping for ebtables
endef
define KernelPackage/dhcpv6/description
define KernelPackage/ebt-dhcpv6/description
Kernel module to enable DHCPv6 snooping for ebtables
endef
define KernelPackage/ra/description
define KernelPackage/ebt-ra/description
Kernel module to enable NDP/RA snooping for ebtables
endef
define KernelPackage/dns/description
define KernelPackage/ebt-dns/description
Kernel module to enable DNS manipulation for ebtables
endef
define KernelPackage/pppoe_disc/description
define KernelPackage/ebt-pppoe_disc/description
Kernel module to enable PPPoE manipulation for ebtables
endef
define KernelPackage/l2pt/description
define KernelPackage/ebt-l2pt/description
Kernel module to enable L2CP tunneling for ebtables
endef
define KernelPackage/xtarp/description
define KernelPackage/ebt-xtarp/description
Kernel module to enable extended ARP matching for ebtables
endef
define KernelPackage/xtip/description
define KernelPackage/ebt-xtip/description
Kernel module to enable extended IPv4 matching for ebtables
endef
define KernelPackage/xtip6/description
define KernelPackage/ebt-xtip6/description
Kernel module to enable extended IPv6 matching for ebtables
endef
define KernelPackage/vlantranslation/description
define KernelPackage/ebt-vlantranslation/description
Kernel module to enable VLAN translation for ebtables
endef
define KernelPackage/dscp2pbit/description
define KernelPackage/ebt-dscp2pbit/description
Kernel module to enable DSCP-to-Pbit mapping for ebtables
endef
ifeq ($(CONFIG_TARGET_brcmbca),y)
include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
endif
define KernelPackage/ebt-igmpsnooping/description
Kernel module to enable IGMP snooping for ebtables
endef
define KernelPackage/ebt-mldsnooping/description
Kernel module to enable MLD snooping for ebtables
endef
-include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
define Build/Prepare
@@ -187,6 +211,8 @@ endif
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtarp.h $(LINUX_DIR)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtip.h $(LINUX_DIR)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtip6.h $(LINUX_DIR)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_igmpsnooping.h $(LINUX_DIR)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_mldsnooping.h $(LINUX_DIR)/include/uapi/linux/netfilter_bridge/
endef
define Build/InstallDev
@@ -204,9 +230,10 @@ endif
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtarp.h $(1)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtip.h $(1)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_xtip6.h $(1)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_igmpsnooping.h $(1)/include/uapi/linux/netfilter_bridge/
$(CP) $(PKG_BUILD_DIR)/src/ebt_mldsnooping.h $(1)/include/uapi/linux/netfilter_bridge/
endef
KERNEL_MAKE_FLAGS += -I$(LINUX_DIR)/include
ifeq ($(CONFIG_TARGET_airoha),y)
KERNEL_MAKE_FLAGS += PLATFORM="ECONET"
endif
@@ -215,14 +242,16 @@ define Build/Compile
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/src" modules
endef
$(eval $(call KernelPackage,vlantranslation))
$(eval $(call KernelPackage,dscp2pbit))
$(eval $(call KernelPackage,dhcp))
$(eval $(call KernelPackage,dhcpv6))
$(eval $(call KernelPackage,ra))
$(eval $(call KernelPackage,dns))
$(eval $(call KernelPackage,pppoe_disc))
$(eval $(call KernelPackage,l2pt))
$(eval $(call KernelPackage,xtarp))
$(eval $(call KernelPackage,xtip))
$(eval $(call KernelPackage,xtip6))
$(eval $(call KernelPackage,ebt-vlantranslation))
$(eval $(call KernelPackage,ebt-dscp2pbit))
$(eval $(call KernelPackage,ebt-dhcp))
$(eval $(call KernelPackage,ebt-dhcpv6))
$(eval $(call KernelPackage,ebt-ra))
$(eval $(call KernelPackage,ebt-dns))
$(eval $(call KernelPackage,ebt-pppoe_disc))
$(eval $(call KernelPackage,ebt-l2pt))
$(eval $(call KernelPackage,ebt-xtarp))
$(eval $(call KernelPackage,ebt-xtip))
$(eval $(call KernelPackage,ebt-xtip6))
$(eval $(call KernelPackage,ebt-igmpsnooping))
$(eval $(call KernelPackage,ebt-mldsnooping))

View File

@@ -2,8 +2,16 @@ if (PACKAGE_ethmngr)
menu "Configurations"
config TR181_VENDOR_EXTENSIONS_MACVLAN
bool "Use TR181 vendor extension MACVLAN"
config ETHMNGR_MACVLAN_EXTENSION
bool "Enable datamodel MACVLAN vendor extension"
default y
config ETHMNGR_EXPOSE_ETHERNET_OBJECT
bool "Expose ethernet ubus object to fetch and clear interface stats"
default y
config ETHMNGR_VENDOR_PREFIX
string "Package specific datamodel Vendor Prefix for TR181 extensions"
default ""
endmenu
endif

View File

@@ -5,30 +5,30 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ethmngr
PKG_VERSION:=2.1.9
PKG_VERSION:=3.0.5
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/hal/ethmngr.git
PKG_SOURCE_VERSION:=2d35e86cc8dfd7ef4e0d8579f5d314e90faadc90
PKG_SOURCE_VERSION:=01e1c5f6642a8fa79fc445c71558ad02bda40eb5
PKG_MAINTAINER:=Rahul Thakur <rahul.thakur@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include ../bbfdm/bbfdm.mk
include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk
define Package/ethmngr
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Ethernet status and configration utility
DEPENDS:=+(TARGET_brcmbca||TARGET_airoha||TARGET_ipq95xx||TARGET_ipq53xx||TARGET_mediatek):libethernet +libuci +libubox +ubus +libpthread +libnl-genl +libeasy
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
DEPENDS:=+libethernet +libuci +libubox +ubus +libpthread +libnl-genl +libeasy
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service +libblobmsg-json +libjson-c +libc +libubus
endef
define Package/ethmngr/description
@@ -41,39 +41,39 @@ define Package/$(PKG_NAME)/config
source "$(SOURCE)/Config.in"
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ./ethmngr/* $(PKG_BUILD_DIR)/
endef
endif
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE \
-DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
-D_GNU_SOURCE
ifeq ($(CONFIG_TR181_VENDOR_EXTENSIONS_MACVLAN),y)
TARGET_CFLAGS += -DTR181_VENDOR_EXTENSIONS_MACVLAN
ifeq ($(CONFIG_ETHMNGR_VENDOR_PREFIX),"")
VENDOR_PREFIX = $(CONFIG_BBF_VENDOR_PREFIX)
else
VENDOR_PREFIX = $(CONFIG_ETHMNGR_VENDOR_PREFIX)
endif
ifeq ($(CONFIG_TARGET_brcmbca)$(CONFIG_TARGET_airoha)$(CONFIG_TARGET_ipq95xx)$(CONFIG_TARGET_ipq53xx)$(CONFIG_TARGET_mediatek),)
define Build/Compile
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(VENDOR_PREFIX)\\\"
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/ethmngr/* $(PKG_BUILD_DIR)/
endef
endif
ifeq ($(CONFIG_ETHMNGR_MACVLAN_EXTENSION),y)
TARGET_CFLAGS += -DETHMNGR_MACVLAN_EXTENSION
endif
ifeq ($(CONFIG_ETHMNGR_EXPOSE_ETHERNET_OBJECT),y)
TARGET_CFLAGS += -DETHMNGR_EXPOSE_ETHERNET_OBJECT
endif
define Package/ethmngr/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/etc/ethmngr
$(INSTALL_DIR) $(1)/etc/ethmngr/plugins
ifneq ($(CONFIG_TARGET_brcmbca)$(CONFIG_TARGET_airoha)$(CONFIG_TARGET_ipq95xx)$(CONFIG_TARGET_ipq53xx)$(CONFIG_TARGET_mediatek),)
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ethmngr $(1)/usr/sbin/
endif
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/libbbfethernet.so $(1) $(PKG_NAME)
ifeq ($(CONFIG_TR181_VENDOR_EXTENSIONS_MACVLAN),y)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/libbbfethernetmacvlan.so $(1) $(PKG_NAME)
endif
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
endef
$(eval $(call BuildPackage,ethmngr))

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "ethmngr",
"unified_daemon": true,
"services": [
{
"parent_dm": "Device.",
"object": "Ethernet"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -1,28 +1,17 @@
#!/bin/sh /etc/rc.common
START=15
START=80
STOP=90
USE_PROCD=1
PROG=/usr/sbin/ethmngr
. /lib/functions.sh
include /lib/ethernet
start_service() {
if [ -f $PROG ]; then
procd_open_instance
procd_open_instance "ethmngr"
procd_set_param command ${PROG}
procd_append_param command -l 3
procd_set_param respawn
procd_close_instance
procd_close_instance "ethmngr"
fi
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger network
}

View File

@@ -1,20 +0,0 @@
{
"ethport_update": {
"if" : [
{
"event": "network.device"
}
],
"then" : [
{
"cli": "/sbin/hotplug-call ethernet",
"envs": {
"PORT": "&network.device->ifname",
"LINK": "&network.device->link"
},
"timeout": 1
}
]
}
}

View File

@@ -1,2 +0,0 @@
uci -q set ruleng.ethport=rule
uci -q set ruleng.ethport.recipe='/etc/ruleng/ethport.json'

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=firewallmngr
PKG_VERSION:=1.0.6
PKG_VERSION:=1.0.9
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/firewallmngr.git
PKG_SOURCE_VERSION:=2cac05871f7a8d93c144157c5f3f129deecf1a29
PKG_SOURCE_VERSION:=77ad8425b73a3ac63f6160dc217635394ac87907
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -29,7 +29,7 @@ define Package/firewallmngr
CATEGORY:=Network
TITLE:=Package to add Device.Firewall and Device.NAT. data model support.
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +firewall
DEPENDS+=+FIREWALLMNGR_PORT_TRIGGER:kmod-ipt-trigger +FIREWALLMNGR_PORT_TRIGGER:kmod-ip6t-trigger
DEPENDS+=+FIREWALLMNGR_PORT_TRIGGER:iptables-mod-trigger
DEPENDS+=+FIREWALLMNGR_PORT_TRIGGER:iptables-mod-nfqueue
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
endef
@@ -69,6 +69,7 @@ endif
$(INSTALL_BIN) ./files/firewall.service $(1)/etc/
$(INSTALL_DATA) ./files/etc/uci-defaults/97-firewall-service $(1)/etc/uci-defaults/
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libfirewallmngr.so $(1) $(PKG_NAME)
endef

View File

@@ -0,0 +1,20 @@
{
"daemon": {
"enable": "1",
"service_name": "firewallmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "Firewall"
},
{
"parent_dm": "Device.",
"object": "NAT"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -2,71 +2,40 @@
. /lib/functions.sh
log() {
echo "${@}"|logger -t firewall.dnat -p info
}
exec_cmd() {
if ! eval "$*"; then
log "Failed to run [$*]"
fi
}
reorder_dnat_rules() {
nat_chains=$(iptables -t nat -S | grep -E "^-N zone[a-zA-Z0-9_]+prerouting$" | cut -d' ' -f 2)
nat_chains=$(iptables -w -t nat -S | grep -E "^-N zone[a-zA-Z0-9_]+prerouting$" | cut -d' ' -f 2)
for chain in ${nat_chains}; do
# Collect empty remote host & empty dport rules
EMPTY_HOST_PORT=$(iptables -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep -v "\-\-dport" | grep -v "\-s ")
if [ -n "${EMPTY_HOST_PORT}" ]; then
echo "${EMPTY_HOST_PORT}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd | sed 's/-A /-D /g')"
exec_cmd $cmd1
done
fi
EMPTY_HOST_PORT=$(iptables -w -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep -v "\-\-dport" | grep -v "\-s ")
# Collect empty remote host but non empty dport rules
EMPTY_HOST=$(iptables -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep "\-\-dport" | grep -v "\-s ")
if [ -n "${EMPTY_HOST}" ]; then
echo "${EMPTY_HOST}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd | sed 's/-A /-D /g')"
exec_cmd $cmd1
done
fi
EMPTY_HOST=$(iptables -w -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep "\-\-dport" | grep -v "\-s ")
# Collect non empty remote host but empty dport rules
EMPTY_PORT=$(iptables -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep -v "\-\-dport" | grep "\-s ")
if [ -n "${EMPTY_PORT}" ]; then
echo "${EMPTY_PORT}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd | sed 's/-A /-D /g')"
exec_cmd $cmd1
done
fi
EMPTY_PORT=$(iptables -w -t nat -S ${chain} | grep -E "REDIRECT|DNAT" | grep -v "\-\-dport" | grep "\-s ")
# Now add rules as per datamodel precedence shown below
## Non empty remote host, empty dport
## empty remote host, non empty dport
## empty remote host, empty dport
if [ -n "${EMPTY_PORT}" ]; then
echo "${EMPTY_PORT}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd)"
exec_cmd $cmd1
done
fi
# Skip this chain if no matching rules were found
[ -n "${EMPTY_HOST_PORT}" -o -n "${EMPTY_HOST}" -o -n "${EMPTY_PORT}" ] || continue
if [ -n "${EMPTY_HOST}" ]; then
echo "${EMPTY_HOST}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd)"
exec_cmd $cmd1
done
fi
(
echo '*nat'
if [ -n "${EMPTY_HOST_PORT}" ]; then
echo "${EMPTY_HOST_PORT}" | while read cmd; do
cmd1="iptables -t nat $(echo $cmd)"
exec_cmd $cmd1
done
fi
# Delete collected rules
[ -n "${EMPTY_HOST_PORT}" ] && echo "${EMPTY_HOST_PORT}" | sed 's/^-A /-D /'
[ -n "${EMPTY_HOST}" ] && echo "${EMPTY_HOST}" | sed 's/^-A /-D /'
[ -n "${EMPTY_PORT}" ] && echo "${EMPTY_PORT}" | sed 's/^-A /-D /'
# Now add rules as per datamodel precedence shown below
## Non empty remote host, empty dport
## empty remote host, non empty dport
## empty remote host, empty dport
[ -n "${EMPTY_PORT}" ] && echo "${EMPTY_PORT}"
[ -n "${EMPTY_HOST}" ] && echo "${EMPTY_HOST}"
[ -n "${EMPTY_HOST_PORT}" ] && echo "${EMPTY_HOST_PORT}"
echo 'COMMIT'
) | iptables-restore -w -n
done
}

View File

@@ -7,7 +7,7 @@ log() {
}
exec_cmd() {
if ! eval "$*"; then
if ! "$@"; then
log "Failed to run [$*]"
echo "-1"
return 0
@@ -73,7 +73,7 @@ add_iptable_rule() {
fi
if [ -z "${src_prefix}" ]; then
res=$(exec_cmd "iptables ${cmd} -m comment --comment IPtables_service_rule -j ${action}")
res=$(exec_cmd iptables -w ${cmd} -m comment --comment IPtables_service_rule -j "${action}")
else
#Add ipv4 sources if any
src_list=""
@@ -86,7 +86,7 @@ add_iptable_rule() {
if [ -n "$src_list" ]; then
src_list=$(echo "${src_list}" | sed "s/,$//")
res=$(exec_cmd "iptables -s $src_list ${cmd} -m comment --comment IPtables_service_rule -j ${action}")
res=$(exec_cmd iptables -w -s "$src_list" ${cmd} -m comment --comment IPtables_service_rule -j "${action}")
fi
fi
fi
@@ -97,7 +97,7 @@ add_iptable_rule() {
fi
if [ -z "${src_prefix}" ]; then
res=$(exec_cmd "ip6tables ${cmd} -m comment --comment IP6tables_service_rule -j ${action}")
res=$(exec_cmd ip6tables -w ${cmd} -m comment --comment IP6tables_service_rule -j "${action}")
else
#Add ipv6 sources if any
src_list=""
@@ -110,7 +110,7 @@ add_iptable_rule() {
if [ -n "$src_list" ]; then
src_list=$(echo "${src_list}" | sed "s/,$//")
res=$(exec_cmd "ip6tables -s $src_list ${cmd} -m comment --comment IP6tables_service_rule -j ${action}")
res=$(exec_cmd ip6tables -w -s "$src_list" ${cmd} -m comment --comment IP6tables_service_rule -j "${action}")
fi
fi
fi

60
gateway-info/Makefile Normal file
View File

@@ -0,0 +1,60 @@
#
# Copyright (C) 2025 IOPSYS Software Solutions AB
#
# This is free software, licensed under the BSD-3-Clause
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=gateway-info
PKG_VERSION:=1.0.2
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/gateway-info.git
PKG_SOURCE_VERSION:=dd15893a8291e556a8c49ff9e143c763db0379b5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include ../bbfdm/bbfdm.mk
define Package/gateway-info
CATEGORY:=Utilities
TITLE:=GatewayInfo Data Model Support
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +umdns
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service +iputils-arping
endef
define Package/gateway-info/description
Package to add Device.GatewayInfo. data model support.
endef
MAKE_PATH:=src
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) ~/git/gateway-info/* $(PKG_BUILD_DIR)/
endef
endif
define Package/gateway-info/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/etc/udhcpc.user.d
$(INSTALL_DIR) $(1)/etc/bbfdm/services
$(INSTALL_DIR) $(1)/usr/share/bbfdm/micro_services
$(INSTALL_DATA) ./files/etc/config/gateway $(1)/etc/config/gateway
$(INSTALL_BIN) ./files/etc/udhcpc.user.d/udhcpc_gateway_info.user $(1)/etc/udhcpc.user.d/udhcpc_gateway_info.user
$(INSTALL_BIN) ./files/etc/uci-defaults/86-set-gateway-device-info $(1)/etc/uci-defaults/
$(BBFDM_REGISTER_SERVICES) ./files/bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/libgwinfo.so $(1) $(PKG_NAME)
endef
$(eval $(call BuildPackage,gateway-info))

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "gateway-info",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "GatewayInfo"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -0,0 +1,3 @@
config global 'global'
option wan_interface 'wan'
option lan_interface 'lan'

View File

@@ -0,0 +1,283 @@
#!/bin/sh
. /lib/functions.sh
convert_to_hex() {
local val=""
local optval="${1}"
OPTIND=1
while getopts ":" opt "-$optval"
do
temp=$(printf "%02X" "'${OPTARG:-:}")
val="${val}:${temp}"
done
echo "${val}"
}
configure_send_op125() {
local sendopt="${1}"
local intf="${2}"
local uci="${3}"
local hex_oui=""
local hex_serial=""
local hex_class=""
local oui_len=0
local serial_len=0
local class_len=0
if [ "${uci}" = "network" ]; then
local opt125="125:00:00:0D:E9"
else
if [ -z "${sendopt}" ]; then
local opt125="125,00:00:0D:E9"
else
local opt125=":00:00:0D:E9"
fi
fi
config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
fi
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
config_get serial cpe serial_number ""
if [ -z "${serial}" ]; then
serial=$(db -q get device.deviceinfo.SerialNumber)
fi
config_get class cpe product_class ""
if [ -z "${class}" ]; then
class=$(db -q get device.deviceinfo.ProductClass)
fi
oui_len=$(echo -n "${oui}" | wc -m)
serial_len=$(echo -n "${serial}" | wc -m)
class_len=$(echo -n "${class}" | wc -m)
if [ "${oui_len}" -eq 0 ] || [ "${serial_len}" -eq 0 ]; then
return 0
fi
opt125_len=$((oui_len + serial_len + class_len))
if [ "${class_len}" -gt 0 ]; then
opt125_len=$((opt125_len + 6))
else
opt125_len=$((opt125_len + 4))
fi
hex_opt125_len=$(printf "%02X" "${opt125_len}")
opt125="${opt125}:${hex_opt125_len}"
hex_oui=$(convert_to_hex "${oui}")
if [ -z "${hex_oui}" ]; then
return 0
fi
hex_oui_len=$(printf "%02X" "${oui_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:01:${hex_oui_len}${hex_oui}"
else
opt125="${opt125}:04:${hex_oui_len}${hex_oui}"
fi
hex_serial=$(convert_to_hex "${serial}")
if [ -z "${hex_serial}" ]; then
return 0
fi
hex_serial_len=$(printf "%02X" "${serial_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:02:${hex_serial_len}${hex_serial}"
else
opt125="${opt125}:05:${hex_serial_len}${hex_serial}"
fi
if [ "${class_len}" -gt 0 ]; then
hex_class=$(convert_to_hex "${class}")
if [ -z "${hex_class}" ]; then
return 0
fi
hex_class_len=$(printf "%02X" "${class_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:03:${hex_class_len}${hex_class}"
else
opt125="${opt125}:06:${hex_class_len}${hex_class}"
fi
fi
if [ "${uci}" = "network" ]; then
new_send_opt="$sendopt $opt125"
uci -q set network."${intf}".sendopts="$new_send_opt"
else
new_send_opt="$sendopt$opt125"
uci -q add_list dhcp."${intf}".dhcp_option="$new_send_opt"
fi
}
check_for_suboptions() {
# Check if option 4 and 5 present inside enterprise id 3561
data=$(echo "${1}" | sed 's/://g')
len=$(printf "${data}"|wc -c)
rem_len="${len}"
while [ $rem_len -gt 8 ]; do
subopt_present=0
ent_id="${data:0:8}"
ent_id=$(printf "%d\n" "0x$ent_id")
if [ $ent_id -ne 3561 ]; then
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - data_len ))
continue
fi
# read the length of enterprise data
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
len_val=${data:8:2}
opt_len=$(printf "%d\n" "0x$len_val")
if [ $opt_len -eq 0 ]; then
echo ${subopt_present}
return 0
fi
# populate the option data of enterprise id
sub_data_len=$(( opt_len * 2))
# starting 10 means ahead of length field
sub_data=${data:10:"${sub_data_len}"}
# parsing of suboption of option 125
while [ $sub_data_len -gt 0 ]; do
# get the suboption id
sub_opt_id=${sub_data:0:2}
sub_opt_id=$(printf "%d\n" "0x$sub_opt_id")
case "${sub_opt_id}" in
"4") subopt_present=1
;;
"5") subopt_present=1
;;
esac
if [ ${subopt_present} -eq 1 ]; then
break;
fi
# get the length of suboption
sub_opt_len=${sub_data:2:2}
sub_opt_len=$(printf "%d\n" "0x$sub_opt_len")
sub_opt_len=$(( sub_opt_len * 2 ))
# add 2 bytes for sub_opt id and sub_opt len field
sub_opt_end=$(( sub_opt_len + 4 ))
# update the remaining sub option hex string length
sub_data_len=$((sub_data_len - sub_opt_end))
# fetch next sub option hex string
sub_data=${sub_data:${sub_opt_end}:${sub_data_len}}
done
if [ ${subopt_present} -eq 1 ]; then
break;
else
# move ahead data to next enterprise id
rem_len=$(( rem_len - $data_len ))
data=${data:"${data_len}":"${rem_len}"}
fi
done
echo ${subopt_present}
}
enable_dhcp_option125() {
local wan="${1}"
local reqopts="$(uci -q get network."${wan}".reqopts)"
local sendopts="$(uci -q get network."${wan}".sendopts)"
local proto="$(uci -q get network."${wan}".proto)"
local newreqopts=""
local newsendopts=""
local req125_present=0
local send125_present=0
local opt125="125:"
for ropt in $reqopts; do
case $ropt in
125) req125_present=1 ;;
*) ;;
esac
done
for sopt in $sendopts; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=1
break
fi
done
if [ "${proto}" = "dhcp" ]; then
if [ ${req125_present} -eq 0 ]; then
newreqopts="$reqopts 125"
uci -q set network."${wan}".reqopts="$newreqopts"
fi
if [ ${send125_present} -eq 0 ]; then
configure_send_op125 "${sendopts}" "${wan}" "network"
fi
fi
}
enable_dnsmasq_option125() {
local lan="${1}"
local send125_present=0
local opt125="125,"
local proto="$(uci -q get dhcp."${lan}".dhcpv4)"
if [ "${proto}" = "server" ]; then
opt_list="$(uci -q get dhcp."${lan}".dhcp_option)"
base_opt=""
for sopt in $opt_list; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=$(check_for_suboptions "${sopt:4}")
base_opt="${sopt}"
break
fi
done
if [ ${send125_present} -eq 0 ]; then
uci -q del_list dhcp."${lan}".dhcp_option="${base_opt}"
configure_send_op125 "${base_opt}" "${lan}" "dhcp"
fi
fi
}
configure_gateway_device_info() {
wan_intf=""
lan_intf=""
config_load gateway
config_get wan_intf global wan_interface "wan"
config_get lan_intf global lan_interface "lan"
# Set dhcp_option 125 for device info if not already configured
enable_dhcp_option125 "${wan_intf}"
if [ "${wan_intf}" != "${lan_intf}" ]; then
# This is extender no need to configure gateway info
enable_dnsmasq_option125 "${lan_intf}"
fi
}
configure_gateway_device_info

View File

@@ -0,0 +1,362 @@
#!/bin/sh
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
CLASS=""
OUI=""
SERIAL=""
GW_DISCOVERED=0
_json_no_warning=1
get_vivsoi() {
# opt125 environment variable has data in below format
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | enterprise-number1 |
# | |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | data-len1 | |
# +-+-+-+-+-+-+-+-+ option-data1 |
# / /
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----
# | enterprise-number2 | ^
# | | |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
# | data-len2 | | optional
# +-+-+-+-+-+-+-+-+ option-data2 | |
# / / |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
# ~ ... ~ V
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----
# Enterprise Id Len Sub Op SLen Data Sub Op SLen Data Sub Op SLen Data
# +-------------+-----+------+------+----+------+-----+----+-----+------+-----+----+
# | id | n | 1 | n1 | D1 | 2 | n2 | D2 | ... | 6 | n6 | D6 |
# +-------------+-----+------+------+----+------+-----+----+-----+------+-----+----+
local opt125="$1"
local len="$2"
local ent_id
#hex-string 2 character=1 Byte
# length in hex string will be twice of actual Byte length
[ "$len" -gt "8" ] || return
data="${opt125}"
rem_len="${len}"
while [ $rem_len -gt 0 ]; do
ent_id=${data:0:8}
ent_id=$(printf "%d\n" "0x$ent_id")
if [ $ent_id -ne 3561 ]; then
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - $data_len ))
continue
fi
# read the length of enterprise data
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
opt_len=$(printf "%d\n" "0x$len_val")
[ $opt_len -eq 0 ] && return
# populate the option data of enterprise id
sub_data_len=$(( opt_len * 2))
# starting 10 means ahead of length field
sub_data=${data:10:"${sub_data_len}"}
# parsing of suboption of option 125
while [ $sub_data_len -gt 0 ]; do
# get the suboption id
sub_opt_id=${sub_data:0:2}
sub_opt_id=$(printf "%d\n" "0x$sub_opt_id")
# get the length of suboption
sub_opt_len=${sub_data:2:2}
sub_opt_len=$(printf "%d\n" "0x$sub_opt_len")
sub_opt_len=$(( sub_opt_len * 2 ))
# get the value of sub option starting 4 means starting after length
sub_opt_val=${sub_data:4:${sub_opt_len}}
# assign the value found in sub option
case "${sub_opt_id}" in
"4")
OUI=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
GW_DISCOVERED=1
;;
"5")
SERIAL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
GW_DISCOVERED=1
;;
"6")
CLASS=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
GW_DISCOVERED=1
;;
esac
# add 2 bytes for sub_opt id and sub_opt len field
sub_opt_end=$(( sub_opt_len + 4 ))
# update the remaining sub option hex string length
sub_data_len=$((sub_data_len - sub_opt_end))
# fetch next sub option hex string
sub_data=${sub_data:${sub_opt_end}:${sub_data_len}}
done
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - data_len ))
done
}
send_host_query() {
intf="${1}"
resp=1
loop=3
usp_serv_found=0
sent_host=" "
ubus call umdns update
while [ "${loop}" -ne 0 ]; do
sleep 5
json_load "$(ubus call umdns browse)"
json_select discovered_services
if [ "${?}" -ne 0 ]; then
json_cleanup
loop=$(( loop - 1 ))
continue
fi
json_select _usp-agt-mqtt._tcp
if [ "${?}" -ne 0 ]; then
json_cleanup
loop=$(( loop - 1 ))
continue
fi
usp_serv_found=1
break
done
if [ "${usp_serv_found}" -eq 0 ]; then
echo "${resp}"
return 0
fi
json_get_keys keys
for key in $keys; do
json_select $key
json_get_var _host host ""
if [ -z "${_host}" ] || [[ "${sent_host}" =~ " ${_host}" ]]; then
json_select ..
continue
fi
sent_host="${sent_host} ${_host}"
cmd="ubus call umdns query '{\"question\":\"$_host\",\"interface\":\"$intf\"}'"
eval $cmd
resp=0
json_select ..
done
json_cleanup
echo "${resp}"
}
get_usp_agent_id() {
dhcp_ip="${1}"
family="ipv4"
ID=""
if [[ "${dhcp_ip}" =~ ":" ]]; then
family="ipv6"
fi
json_load "$(ubus call umdns browse)"
json_select discovered_services
if [ "${?}" -ne 0 ]; then
json_cleanup
echo ${ID}
return 0
fi
json_select _usp-agt-mqtt._tcp
if [ "${?}" -ne 0 ]; then
json_cleanup
echo ${ID}
return 0
fi
json_get_keys keys
for key in $keys; do
json_select $key
json_select $family
if [ "${?}" -ne 0 ]; then
json_select ..
continue
fi
json_get_keys ips
for ip in $ips; do
json_get_var ip_val $ip
if [ "${ip_val}" != "${dhcp_ip}" ]; then
continue
fi
json_select ..
json_select txt
json_get_keys txts
for _txt in $txts; do
json_get_var text_val $_txt
if [[ "${text_val:0:3}" == "ID=" ]]; then
ID="${text_val:3}"
break
fi
done
break
done
json_select ..
json_select ..
if [ -n "${ID}" ]; then
break
fi
done
json_cleanup
echo ${ID}
}
get_mac_address() {
ip="${1}"
device="${2}"
mac="$(cat /proc/net/arp | grep $ip | awk '{print $4}')"
if [ -z "${mac}" ]; then
arp_resp="$(arping -b -f -c 5 -I $device $ip | grep 'Unicast reply from' | awk '{print $5}')"
if [ -n "${arp_resp}" ]; then
mac=${arp_resp:1:-1}
fi
fi
echo "${mac}"
}
send_unknown_gw_event() {
mac="${1}"
cmd="ubus -t 5 send gateway-info.gateway.unknown '{\"hwaddr\":\"$mac\"}'"
eval $cmd
}
send_cwmp_gw_event() {
oui="${1}"
class="${2}"
serial="${3}"
cmd="ubus -t 5 send gateway-info.gateway.cwmp '{\"oui\":\"$oui\",\"class\":\"$class\",\"serial\":\"$serial\"}'"
eval $cmd
}
send_usp_gw_event() {
endpoint="${1}"
cmd="ubus -t 5 send gateway-info.gateway.usp '{\"endpoint\":\"$endpoint\"}'"
eval $cmd
}
config_load gateway
config_get wan_intf global wan_interface "wan"
if [ "${wan_intf}" == "${INTERFACE}" ]; then
if [ "${1}" == "deconfig" ]; then
rm -rf /var/state/gwinfo
return 0
fi
json_load "$(ifstatus ${INTERFACE})"
json_get_var dev_name device ""
json_select data
json_get_var dhcp_ip dhcpserver ""
json_cleanup
if [ -z "${dhcp_ip}" ] || [ -z "${dev_name}" ]; then
return 0
fi
MAC="$(get_mac_address $dhcp_ip $dev_name)"
mkdir -p /var/state
touch /var/state/gwinfo
sec=$(uci -q -c /var/state get gwinfo.gatewayinfo)
if [ -z "${sec}" ]; then
sec=$(uci -q -c /var/state add gwinfo gatewayinfo)
uci -q -c /var/state rename gwinfo."${sec}"="gatewayinfo"
fi
uci -q -c /var/state set gwinfo.gatewayinfo.hwaddr="$MAC"
uci -q -c /var/state set gwinfo.gatewayinfo.endpoint=""
uci -q -c /var/state set gwinfo.gatewayinfo.class=""
uci -q -c /var/state set gwinfo.gatewayinfo.oui=""
uci -q -c /var/state set gwinfo.gatewayinfo.serial=""
uci -q -c /var/state set gwinfo.gatewayinfo.proto=""
uci -q -c /var/state commit gwinfo
if [ -z "$opt125" ]; then
send_unknown_gw_event "${MAC}"
return 0
fi
len=$(printf "$opt125"|wc -c)
get_vivsoi "$opt125" "$len"
if [ "${GW_DISCOVERED}" -eq 0 ]; then
send_unknown_gw_event "${MAC}"
return 0
fi
uci -q -c /var/state set gwinfo.gatewayinfo.class="$CLASS"
uci -q -c /var/state set gwinfo.gatewayinfo.oui="$OUI"
uci -q -c /var/state set gwinfo.gatewayinfo.serial="$SERIAL"
uci -q -c /var/state set gwinfo.gatewayinfo.proto="CWMP"
uci -q -c /var/state commit gwinfo
# Check for USP parameters
ubus -t 15 wait_for umdns
if [ "${?}" -ne 0 ]; then
send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}"
return 0
fi
resp=$(send_host_query $dev_name)
if [ "${resp}" -ne 0 ]; then
send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}"
return 0
fi
ID="$(get_usp_agent_id $dhcp_ip)"
if [ -z "${ID}" ]; then
send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}"
return 0
fi
uci -q -c /var/state set gwinfo.gatewayinfo.endpoint="$ID"
uci -q -c /var/state set gwinfo.gatewayinfo.proto="USP"
uci -q -c /var/state commit gwinfo
send_usp_gw_event "${ID}"
fi

View File

@@ -18,7 +18,8 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=gryphon-led-kernel-module
PKG_RELEASE:=1
PKG_VERSION:=1.0.0
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
@@ -26,41 +27,18 @@ define KernelPackage/$(PKG_NAME)
SUBMENU:=LED modules
TITLE:=LED driver for Gryphon
FILES:=$(PKG_BUILD_DIR)/$(PKG_NAME).$(LINUX_KMOD_SUFFIX)
KCONFIG:=CONFIG_PACKAGE_kmod-gryphon-led-kernel-module=y
AUTOLOAD:=$(call AutoLoad,60,$(PKG_NAME))
DEPENDS:= +(TARGET_brcmbca):bcm963xx-bsp
PKG_LICENSE:=GPLv2
PKG_LICENSE_URL:=
endef
define KernelPackage/$(PKG_NAME)/description
This package contains the LED driver for Gryphon devices.
endef
EXTRA_KCONFIG:= CONFIG_RGB_LED=m
MODULE_INCLUDE=-I$(PKG_BUILD_DIR)
# support compilation against BCM SDK kernel
include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)/kdevlinks/
$(CP) -s `pwd`/src/* $(PKG_BUILD_DIR)/kdevlinks/
$(CP) src/* $(PKG_BUILD_DIR)
endef
-include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
SUBDIRS="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="-DKERNEL_MODULE $(BUILDFLAGS) -I$(LINUX_DIR)/include -include generated/autoconf.h $(MODULE_INCLUDE)" \
modules
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
endef
$(eval $(call KernelPackage,$(PKG_NAME)))

View File

@@ -28,6 +28,7 @@
#include <linux/gpio/consumer.h>
#include <linux/of.h>
#include <linux/version.h>
#include <linux/string.h>
#include "sk9822.h"
@@ -46,11 +47,6 @@ static ssize_t get_led_color(struct device *dev,
int len;
struct sk9822_leds *sk9822 = dev_get_drvdata(dev);
if (IS_ERR(sk9822)) {
printk(KERN_ERR "Platform get drvdata returned NULL\n");
return -EIO;
}
len = scnprintf(buf, PAGE_SIZE, "%02x%02x%02x\n", sk9822->led_colors[0].r, sk9822->led_colors[0].g, sk9822->led_colors[0].b);
if (len <= 0) {
dev_err(dev, "sk9822: Invalid sprintf len: %d\n", len);
@@ -73,11 +69,6 @@ static ssize_t set_led_color(struct device *dev,
size_t buflen = count;
struct sk9822_leds *sk9822 = dev_get_drvdata(dev);
if (IS_ERR(sk9822)) {
printk(KERN_ERR "Platform get drvdata returned NULL\n");
return -EIO;
}
/* strip newline */
if ((count > 0) && (buf[count-1] == '\n')) {
buflen--;
@@ -111,11 +102,6 @@ static ssize_t get_led_brightness(struct device *dev,
int len;
struct sk9822_leds *sk9822 = dev_get_drvdata(dev);
if (IS_ERR(sk9822)) {
printk(KERN_ERR "Platform get drvdata returned NULL\n");
return -EIO;
}
len = scnprintf(buf, PAGE_SIZE, "%x\n", sk9822->led_brightness);
if (len <= 0) {
dev_err(dev, "sk9822: Invalid sprintf len: %d\n", len);
@@ -138,11 +124,6 @@ static ssize_t set_led_brightness(struct device *dev,
struct sk9822_leds *sk9822 = dev_get_drvdata(dev);
unsigned long val = SK9822_DEFAULT_BRIGHTNESS;
if (IS_ERR(sk9822)) {
printk(KERN_ERR "Platform get drvdata returned NULL\n");
return -EIO;
}
if (kstrtoul(buf, 16, &val)) {
return -EINVAL;
}
@@ -209,49 +190,33 @@ static int canyon_led_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, leds);
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
leds->clock_gpio = gpiod_get_index(&pdev->dev, "led", 0);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
leds->clock_gpio = gpiod_get_index(&pdev->dev, "led", 0, GPIOD_OUT_HIGH);
#else
dev_warn(&pdev->dev, "Kernel version Not supported\n");
exit(1);
#endif
leds->clock_gpio = devm_gpiod_get_index(&pdev->dev, "led", 0, GPIOD_OUT_HIGH);
if (IS_ERR(leds->clock_gpio)) {
dev_err(&pdev->dev, "Failed to acquire clock GPIO %ld\n",
PTR_ERR(leds->clock_gpio));
return PTR_ERR(leds->clock_gpio);
}
gpiod_direction_output(leds->clock_gpio, 1);
if (IS_ERR(leds->clock_gpio)) {
dev_err(&pdev->dev, "Failed to acquire clock GPIO %ld\n",
PTR_ERR(leds->clock_gpio));
return PTR_ERR(leds->clock_gpio);
ret = gpiod_direction_output(leds->clock_gpio, 1);
if (ret) {
dev_err(&pdev->dev, "Failed to set clock GPIO output %d\n", ret);
return ret;
} else {
printk(KERN_INFO "Got clock gpio\n");
gpiod_set_value(leds->clock_gpio, 0);
}
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
leds->data_gpio = gpiod_get_index(&pdev->dev, "led", 1);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
leds->data_gpio = gpiod_get_index(&pdev->dev, "led", 1, GPIOD_OUT_HIGH);
#else
dev_warn(&pdev->dev, "Kernel version Not supported\n");
exit(1);
#endif
leds->data_gpio = devm_gpiod_get_index(&pdev->dev, "led", 1, GPIOD_OUT_HIGH);
if (IS_ERR(leds->data_gpio)) {
dev_err(&pdev->dev, "Failed to acquire data GPIO %ld\n",
PTR_ERR(leds->data_gpio));
return PTR_ERR(leds->data_gpio);
}
gpiod_direction_output(leds->data_gpio, 1);
if (IS_ERR(leds->data_gpio)) {
dev_err(&pdev->dev, "Failed to acquire data GPIO %ld\n",
PTR_ERR(leds->data_gpio));
return PTR_ERR(leds->data_gpio);
ret = gpiod_direction_output(leds->data_gpio, 1);
if (ret) {
dev_err(&pdev->dev, "Failed to set data GPIO output %d\n", ret);
return ret;
} else {
printk(KERN_INFO "Got data gpio\n");
gpiod_set_value(leds->data_gpio, 0);
@@ -264,45 +229,31 @@ static int canyon_led_probe(struct platform_device *pdev)
return ret;
}
#if 0
printk(KERN_INFO "Flash LEDs to verify they work\n");
sk9822_set_color_str(leds, "00FF00");
sk9822_update(leds);
msleep(200);
sk9822_set_color_str(leds, "000000");
sk9822_update(leds);
#endif
printk(KERN_INFO "canyon led successfully probed\n");
return 0;
}
static void canyon_led_off(struct sk9822_leds *leds)
{
leds->led_brightness = 0;
memset(leds->led_colors, 0, sizeof(cRGB) * leds->led_count);
sk9822_update(leds);
}
static int canyon_led_remove(struct platform_device *pdev)
{
struct sk9822_leds *leds;
sysfs_remove_group(&pdev->dev.kobj, &sk9822_dev_attr_group);
leds = platform_get_drvdata(pdev);
if (IS_ERR(leds)) {
printk(KERN_ERR "Platform get drvdata returned NULL\n");
return -1;
}
if (leds->clock_gpio) {
gpiod_put(leds->clock_gpio);
}
if (leds->data_gpio) {
gpiod_put(leds->data_gpio);
}
printk(KERN_NOTICE "Bye, bye\n");
canyon_led_off(platform_get_drvdata(pdev));
return 0;
}
static void canyon_led_shutdown(struct platform_device *pdev)
{
canyon_led_off(platform_get_drvdata(pdev));
}
/**
* platform driver metadata
*/
@@ -315,6 +266,7 @@ static const struct of_device_id canyon_led_of_ids[] = {
static struct platform_driver canyon_led = {
.probe = &canyon_led_probe,
.remove = &canyon_led_remove,
.shutdown = &canyon_led_shutdown,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,

View File

@@ -10,6 +10,15 @@ config HOSTMNGR_PLATFORM_HAS_WIFI
bool "Platform has WiFi"
default y if PACKAGE_libwifi
config HOSTMNGR_DATAMODEL_EXT
bool "Keep vendor specific datamodel parameters"
default n
config HOSTMNGR_VENDOR_PREFIX
depends on HOSTMNGR_DATAMODEL_EXT
string "Vendor Prefix for hostmngr datamodel extension"
default ""
endmenu
endif

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hostmngr
PKG_VERSION:=1.2.11
PKG_VERSION:=1.2.15
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=431b122a051a28a16b430c9dcc83d26f73030f79
PKG_SOURCE_VERSION:=3b50823da3f2904191332634c1e45d46090def1d
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/hostmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
@@ -24,6 +24,7 @@ PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk
define Package/hostmngr
SECTION:=utils
CATEGORY:=Utilities
@@ -54,6 +55,15 @@ ifeq ($(CONFIG_HOSTMNGR_PLATFORM_HAS_WIFI),y)
TARGET_CFLAGS += -DHAS_WIFI
endif
ifeq ($(CONFIG_HOSTMNGR_DATAMODEL_EXT),y)
TARGET_CFLAGS += -DHAS_VENDOR_EXT
ifeq ($(CONFIG_HOSTMNGR_VENDOR_PREFIX),"")
TARGET_CFLAGS += -DCUSTOM_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
else
TARGET_CFLAGS += -DCUSTOM_PREFIX=\\\"$(CONFIG_HOSTMNGR_VENDOR_PREFIX)\\\"
endif
endif
MAKE_PATH:=src
define Package/hostmngr/install
@@ -62,7 +72,14 @@ define Package/hostmngr/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/hostmngr $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/share/hostmngr
$(INSTALL_DATA) ./files/scripts/hosts_acl.sh $(1)/usr/share/hostmngr/
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/src/bbf_plugin/libhostmngr.so $(1) $(PKG_NAME)
ifeq ($(CONFIG_HOSTMNGR_DATAMODEL_EXT),y)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/bbf_plugin/libhostext.so $(1) $(PKG_NAME)
endif
endef
ifeq ($(LOCAL_DEV),1)

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "hostmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "Hosts"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -271,14 +271,14 @@ touch $ACL_FILE
echo "iptables -w -F hosts_forward" >> $ACL_FILE
echo "ip6tables -w -F hosts_forward" >> $ACL_FILE
hosts_ipv4_forward=$(iptables -t filter --list -n | grep hosts_forward)
hosts_ipv4_forward=$(iptables -w -t filter --list -n | grep hosts_forward)
if [ -z "$hosts_ipv4_forward" ]; then
echo "iptables -w -t filter -N hosts_forward" >> $ACL_FILE
ret=$?
[ $ret -eq 0 ] && echo "iptables -w -t filter -I FORWARD -j hosts_forward" >> $ACL_FILE
fi
hosts_ipv6_forward=$(ip6tables -t filter --list -n | grep hosts_forward)
hosts_ipv6_forward=$(ip6tables -w -t filter --list -n | grep hosts_forward)
if [ -z "$hosts_ipv6_forward" ]; then
echo "ip6tables -w -t filter -N hosts_forward" >> $ACL_FILE
ret=$?

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2020-2023 IOPSYS Software Solutions AB
# Copyright (C) 2020-2025 IOPSYS Software Solutions AB
#
# This is free software, licensed under the BSD-3-Clause
# See /LICENSE for more information.
@@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=9.8.24
PKG_VERSION:=9.8.38
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/icwmp.git
PKG_SOURCE_VERSION:=868abeb86c2974b3647c7f66e085808c0f296721
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_VERSION:=1e192605446b420c103a08e8a145be114ebdcabc
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -75,8 +75,8 @@ define Package/icwmp/install
$(INSTALL_BIN) ./files/etc/icwmpd/vendor_log.sh $(1)/etc/icwmpd/vendor_log.sh
$(INSTALL_BIN) ./files/etc/icwmpd/firewall.cwmp $(1)/etc/icwmpd/firewall.cwmp
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/icwmp $(1)/lib/upgrade/keep.d/icwmp
$(INSTALL_BIN) ./files/etc/udhcpc.user.d/udhcpc_icwmp_opt125.user $(1)/etc/udhcpc.user.d/udhcpc_icwmp_opt125.user
$(INSTALL_BIN) ./files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user $(1)/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/libcwmpdm.so $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_PLUGIN) ./files/etc/bbfdm/json/CWMPManagementServer.json $(1) $(PKG_NAME)
endef

25
icwmp/bbfdm_service.json Normal file
View File

@@ -0,0 +1,25 @@
{
"daemon": {
"enable": "1",
"service_name": "icwmp",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "ManagementServer"
},
{
"parent_dm": "Device.",
"object": "CWMPManagementServer",
"proto": "usp"
},
{
"parent_dm": "Device.",
"object": "XMPP"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -13,16 +13,18 @@ config acs 'acs'
#­ possible configs interval :[1000:65535]
option retry_interval_multiplier '2000'
option skip_dhcp_boot_options '0'
option insecure_enable '0'
config cpe 'cpe'
option enable '1'
option default_wan_interface 'wan'
option default_lan_interface 'lan'
#option client_cert_path '/etc/icwmpd/client.pem'
#option client_key_path '/etc/icwmpd/client.key'
option log_to_console 'disable'
option log_to_file 'disable'
# log_severity: INFO (Default)
# log_severity possible configs: EMERG, ALERT, CRITIC ,ERROR, WARNING, NOTICE, INFO, DEBUG
option log_severity 'ERROR'
option log_severity 'WARNING'
option log_file_name '/var/log/icwmpd.log'
option log_max_size '102400'
option userid '' #$OUI-$SER
@@ -42,6 +44,7 @@ config cpe 'cpe'
option disable_gatewayinfo '0'
option fw_upgrade_keep_settings '1'
option clock_sync_timeout '128'
option disable_datatype_check '0'
config lwn 'lwn'
option enable '0'

View File

@@ -73,231 +73,6 @@ enable_dhcp_option43() {
fi
}
convert_to_hex() {
local val=""
local optval="${1}"
OPTIND=1
while getopts ":" opt "-$optval"
do
temp=$(printf "%02X" "'${OPTARG:-:}")
val="${val}:${temp}"
done
echo "${val}"
}
configure_send_op125() {
local sendopt="${1}"
local intf="${2}"
local uci="${3}"
local hex_oui=""
local hex_serial=""
local hex_class=""
local oui_len=0
local serial_len=0
local class_len=0
if [ "${uci}" = "network" ]; then
local opt125="125:00:00:0D:E9"
else
if [ -z "${sendopt}" ]; then
local opt125="125,00:00:0D:E9"
else
local opt125=":00:00:0D:E9"
fi
fi
config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
fi
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
config_get serial cpe serial_number ""
if [ -z "${serial}" ]; then
serial=$(db -q get device.deviceinfo.SerialNumber)
fi
config_get class cpe product_class ""
if [ -z "${class}" ]; then
class=$(db -q get device.deviceinfo.ProductClass)
fi
oui_len=$(echo -n "${oui}" | wc -m)
serial_len=$(echo -n "${serial}" | wc -m)
class_len=$(echo -n "${class}" | wc -m)
if [ "${oui_len}" -eq 0 ] || [ "${serial_len}" -eq 0 ]; then
return 0
fi
opt125_len=$((oui_len + serial_len + class_len))
if [ "${class_len}" -gt 0 ]; then
opt125_len=$((opt125_len + 6))
else
opt125_len=$((opt125_len + 4))
fi
hex_opt125_len=$(printf "%02X" "${opt125_len}")
opt125="${opt125}:${hex_opt125_len}"
hex_oui=$(convert_to_hex "${oui}")
if [ -z "${hex_oui}" ]; then
return 0
fi
hex_oui_len=$(printf "%02X" "${oui_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:01:${hex_oui_len}${hex_oui}"
else
opt125="${opt125}:04:${hex_oui_len}${hex_oui}"
fi
hex_serial=$(convert_to_hex "${serial}")
if [ -z "${hex_serial}" ]; then
return 0
fi
hex_serial_len=$(printf "%02X" "${serial_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:02:${hex_serial_len}${hex_serial}"
else
opt125="${opt125}:05:${hex_serial_len}${hex_serial}"
fi
if [ "${class_len}" -gt 0 ]; then
hex_class=$(convert_to_hex "${class}")
if [ -z "${hex_class}" ]; then
return 0
fi
hex_class_len=$(printf "%02X" "${class_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:03:${hex_class_len}${hex_class}"
else
opt125="${opt125}:06:${hex_class_len}${hex_class}"
fi
fi
if [ "${uci}" = "network" ]; then
new_send_opt="$sendopt $opt125"
uci -q set network."${intf}".sendopts="$new_send_opt"
else
new_send_opt="$sendopt$opt125"
uci -q add_list dhcp."${intf}".dhcp_option="$new_send_opt"
fi
}
check_for_suboptions() {
# Check if option 4 and 5 present inside enterprise id 3561
data=$(echo "${1}" | sed 's/://g')
len=$(printf "${data}"|wc -c)
rem_len="${len}"
while [ $rem_len -gt 8 ]; do
subopt_present=0
ent_id="${data:0:8}"
ent_id=$(printf "%d\n" "0x$ent_id")
if [ $ent_id -ne 3561 ]; then
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - data_len ))
continue
fi
# read the length of enterprise data
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
len_val=${data:8:2}
opt_len=$(printf "%d\n" "0x$len_val")
if [ $opt_len -eq 0 ]; then
echo ${subopt_present}
return 0
fi
# populate the option data of enterprise id
sub_data_len=$(( opt_len * 2))
# starting 10 means ahead of length field
sub_data=${data:10:"${sub_data_len}"}
# parsing of suboption of option 125
while [ $sub_data_len -gt 0 ]; do
# get the suboption id
sub_opt_id=${sub_data:0:2}
sub_opt_id=$(printf "%d\n" "0x$sub_opt_id")
case "${sub_opt_id}" in
"4") subopt_present=1
;;
"5") subopt_present=1
;;
esac
if [ ${subopt_present} -eq 1 ]; then
break;
fi
# get the length of suboption
sub_opt_len=${sub_data:2:2}
sub_opt_len=$(printf "%d\n" "0x$sub_opt_len")
sub_opt_len=$(( sub_opt_len * 2 ))
# add 2 bytes for sub_opt id and sub_opt len field
sub_opt_end=$(( sub_opt_len + 4 ))
# update the remaining sub option hex string length
sub_data_len=$((sub_data_len - sub_opt_end))
# fetch next sub option hex string
sub_data=${sub_data:${sub_opt_end}:${sub_data_len}}
done
if [ ${subopt_present} -eq 1 ]; then
break;
else
# move ahead data to next enterprise id
rem_len=$(( rem_len - $data_len ))
data=${data:"${data_len}":"${rem_len}"}
fi
done
echo ${subopt_present}
}
enable_dnsmasq_option125() {
local lan="${1}"
local send125_present=0
local opt125="125,"
local proto="$(uci -q get dhcp."${lan}".dhcpv4)"
if [ "${proto}" = "server" ]; then
opt_list="$(uci -q get dhcp."${lan}".dhcp_option)"
base_opt=""
for sopt in $opt_list; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=$(check_for_suboptions "${sopt:4}")
base_opt="${sopt}"
break
fi
done
if [ ${send125_present} -eq 0 ]; then
uci -q del_list dhcp."${lan}".dhcp_option="${base_opt}"
configure_send_op125 "${base_opt}" "${lan}" "dhcp"
ubus call uci commit '{"config":"dhcp"}'
fi
fi
}
set_vendor_id() {
local wan="${1}"
local proto="$(uci -q get network."${wan}".proto)"
@@ -314,51 +89,6 @@ set_vendor_id() {
fi
}
enable_dhcp_option125() {
local wan="${1}"
local reqopts="$(uci -q get network."${wan}".reqopts)"
local sendopts="$(uci -q get network."${wan}".sendopts)"
local proto="$(uci -q get network."${wan}".proto)"
local newreqopts=""
local newsendopts=""
local req125_present=0
local send125_present=0
local network_uci_update=0
local opt125="125:"
for ropt in $reqopts; do
case $ropt in
125) req125_present=1 ;;
*) ;;
esac
done
for sopt in $sendopts; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=1
break
fi
done
if [ "${proto}" = "dhcp" ]; then
if [ ${req125_present} -eq 0 ]; then
newreqopts="$reqopts 125"
uci -q set network."${wan}".reqopts="$newreqopts"
network_uci_update=1
fi
if [ ${send125_present} -eq 0 ]; then
configure_send_op125 "${sendopts}" "${wan}" "network"
network_uci_update=1
fi
fi
if [ ${network_uci_update} -eq 1 ]; then
uci commit network
ubus call network reload
fi
}
wait_for_resolvfile() {
local time=$1
local tm=1
@@ -481,13 +211,10 @@ validate_defaults() {
}
boot() {
local dhcp_discovery wan_interface skip_dhcp_boot_options disable_gatewayinfo
local dhcp_discovery wan_interface skip_dhcp_boot_options
config_load cwmp
config_get wan_interface cpe default_wan_interface "wan"
config_get disable_gatewayinfo cpe disable_gatewayinfo "0"
config_get dhcp_discovery acs dhcp_discovery "0"
config_get dhcp_discovery acs dhcp_discovery "0"
config_get skip_dhcp_boot_options acs skip_dhcp_boot_options "0"
@@ -500,15 +227,6 @@ boot() {
fi
fi
config_get lan_interface cpe default_lan_interface ""
if [ -n "${lan_interface}" ]; then
if [ "${disable_gatewayinfo}" -ne 1 ]; then
# Set dhcp_option 125 if not already configured
enable_dhcp_option125 "${wan_interface}"
enable_dnsmasq_option125 "${lan_interface}"
fi
fi
config_get ssl_capath acs ssl_capath
if [ -n "${ssl_capath}" ]; then
@@ -545,7 +263,14 @@ start_service() {
stop_service()
{
local switch_bank
copy_cwmp_varstate_files_to_etc
switch_bank=$(uci -q -c /var/state/ get icwmp.cpe.switch_bank)
if [ -n "$switch_bank" ] && [ "$switch_bank" = "1" ]; then
[ -x /etc/sysmngr/fwbank ] && /etc/sysmngr/fwbank call copy_config
fi
}
reload_service() {

View File

@@ -1,139 +0,0 @@
#!/bin/sh
. /lib/functions.sh
CLASS=""
OUI=""
SERIAL=""
get_vivsoi() {
# opt125 environment variable has data in below format
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | enterprise-number1 |
# | |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | data-len1 | |
# +-+-+-+-+-+-+-+-+ option-data1 |
# / /
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----
# | enterprise-number2 | ^
# | | |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
# | data-len2 | | optional
# +-+-+-+-+-+-+-+-+ option-data2 | |
# / / |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
# ~ ... ~ V
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----
# Enterprise Id Len Sub Op SLen Data Sub Op SLen Data Sub Op SLen Data
# +-------------+-----+------+------+----+------+-----+----+-----+------+-----+----+
# | id | n | 1 | n1 | D1 | 2 | n2 | D2 | ... | 6 | n6 | D6 |
# +-------------+-----+------+------+----+------+-----+----+-----+------+-----+----+
local opt125="$1"
local len="$2"
local ent_id
#hex-string 2 character=1 Byte
# length in hex string will be twice of actual Byte length
[ "$len" -gt "8" ] || return
data="${opt125}"
rem_len="${len}"
while [ $rem_len -gt 0 ]; do
ent_id=${data:0:8}
ent_id=$(printf "%d\n" "0x$ent_id")
if [ $ent_id -ne 3561 ]; then
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - $data_len ))
continue
fi
# read the length of enterprise data
len_val=${data:8:2}
data_len=$(printf "%d\n" "0x$len_val")
# add 4 byte for ent_id and 1 byte for len
data_len=$(( data_len * 2 + 10 ))
opt_len=$(printf "%d\n" "0x$len_val")
[ $opt_len -eq 0 ] && return
# populate the option data of enterprise id
sub_data_len=$(( opt_len * 2))
# starting 10 means ahead of length field
sub_data=${data:10:"${sub_data_len}"}
# parsing of suboption of option 125
while [ $sub_data_len -gt 0 ]; do
# get the suboption id
sub_opt_id=${sub_data:0:2}
sub_opt_id=$(printf "%d\n" "0x$sub_opt_id")
# get the length of suboption
sub_opt_len=${sub_data:2:2}
sub_opt_len=$(printf "%d\n" "0x$sub_opt_len")
sub_opt_len=$(( sub_opt_len * 2 ))
# get the value of sub option starting 4 means starting after length
sub_opt_val=${sub_data:4:${sub_opt_len}}
# assign the value found in sub option
case "${sub_opt_id}" in
"4") OUI=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
;;
"5") SERIAL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
;;
"6") CLASS=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '')
;;
esac
# add 2 bytes for sub_opt id and sub_opt len field
sub_opt_end=$(( sub_opt_len + 4 ))
# update the remaining sub option hex string length
sub_data_len=$((sub_data_len - sub_opt_end))
# fetch next sub option hex string
sub_data=${sub_data:${sub_opt_end}:${sub_data_len}}
done
# move ahead data to next enterprise id
data=${data:"${data_len}":"${rem_len}"}
rem_len=$(( rem_len - data_len ))
done
}
config_load cwmp
config_get_bool enable_cwmp cpe enable 1
config_get wan_intf cpe default_wan_interface "wan"
if [ "$enable_cwmp" = "0" ]; then
return 0
fi
if [ "${wan_intf}" == "${INTERFACE}" ]; then
if [ -n "$opt125" ]; then
len=$(printf "$opt125"|wc -c)
get_vivsoi "$opt125" "$len"
fi
mkdir -p /var/state
touch /var/state/icwmp
sec=$(uci -q -c /var/state get icwmp.gatewayinfo)
if [ -z "${sec}" ]; then
sec=$(uci -q -c /var/state add icwmp gatewayinfo)
uci -q -c /var/state rename icwmp."${sec}"="gatewayinfo"
fi
uci -q -c /var/state set icwmp.gatewayinfo.class="$CLASS"
uci -q -c /var/state set icwmp.gatewayinfo.oui="$OUI"
uci -q -c /var/state set icwmp.gatewayinfo.serial="$SERIAL"
uci -q -c /var/state commit icwmp
fi

View File

@@ -23,6 +23,7 @@ config IEEE1905_CMDU_FRAGMENT_TLV_BOUNDARY
config IEEE1905_BUILD_TR181_PLUGIN
bool "Build TR-181 mapping module (responsible for Device.IEEE1905.)"
default y
endmenu

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=8.6.1
PKG_VERSION:=8.7.3
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5f7e6e30cbda36e431ecb7150d7494bce0c26f6f
PKG_SOURCE_VERSION:=f3f4dbaac6b2ff6cfd38852e8625625d24996a53
PKG_SOURCE_URL:=https://dev.iopsys.eu/multi-ap/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
@@ -22,8 +22,10 @@ PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk
ifeq ($(CONFIG_IEEE1905_BUILD_TR181_PLUGIN),y)
include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk
endif
define Package/ieee1905/Default
SECTION:=utils
@@ -39,7 +41,8 @@ define Package/libieee1905
$(call Package/ieee1905/Default)
TITLE:=libieee1905.so (library for CMDU and TLV handling)
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +libwifiutils
+libjson-c +libblobmsg-json +libwifiutils \
+iputils-arping
endef
define Package/ieee1905
@@ -48,8 +51,10 @@ define Package/ieee1905
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ubus +libpthread \
+libieee1905 +IEEE1905_PLATFORM_HAS_WIFI:libwifi \
+libwifiutils
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
+libwifiutils +iputils-arping
DEPENDS+=+IEEE1905_BUILD_TR181_PLUGIN:libbbfdm-api \
+IEEE1905_BUILD_TR181_PLUGIN:libbbfdm-ubus \
+IEEE1905_BUILD_TR181_PLUGIN:dm-service
endef
include $(wildcard plugins/*.mk)
@@ -97,7 +102,10 @@ TARGET_CFLAGS += -DEXTENSION_ALLOWED
endif
TARGET_CFLAGS += -DHAS_UBUS
ifeq ($(CONFIG_IEEE1905_BUILD_TR181_PLUGIN),y)
TARGET_CFLAGS += -DBUILD_TR181_PLUGIN
endif
MAKE_FLAGS += \
extmod_subdirs="$(patsubst %,extensions/%,$(plugins))"
@@ -111,7 +119,10 @@ define Package/ieee1905/install
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ieee1905d $(1)/usr/sbin/
ifeq ($(CONFIG_IEEE1905_BUILD_TR181_PLUGIN),y)
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/tr181/ieee1905dm.so $(1) $(PKG_NAME)
endif
endef
define Package/libieee1905/install

View File

@@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "ieee1905",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "IEEE1905"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -18,5 +18,3 @@ mac=$(uci -q get ieee1905.ieee1905.macaddress)
[ "$mac" != "" ] && exit 0
uci set ieee1905.ieee1905.macaddress="$LMAC"
uci commit ieee1905

View File

@@ -1,7 +0,0 @@
config TARGET_VERSION
string
prompt "Software Version"
config TARGET_CUSTOMER
string
prompt "Customer ID"

View File

@@ -24,10 +24,6 @@ define Package/iop/description
This package contains iopsysWrt SDK utilities
endef
define Package/iop/config
source "$(SOURCE)/Config.in"
endef
define Build/Compile
true
endef

View File

@@ -1,9 +0,0 @@
#!/bin/bash
function feeds_update {
# always return true
exit 0
}
register_command "feeds_update" "Compatibility function only"

View File

@@ -24,7 +24,7 @@ define KernelPackage/ipt-trigger
SUBMENU:=Other modules
TITLE:=Kernel module for iptables port trigger
FILES:=$(PKG_BUILD_DIR)/src/ipv4/ipt_TRIGGER.ko
DEPENDS+=+kmod-nf-nat +xtables-legacy
DEPENDS+=+kmod-nf-nat +kmod-ipt-core
AUTOLOAD:=$(call AutoLoad,30,ipt_TRIGGER,1)
KCONFIG:=
endef
@@ -32,7 +32,7 @@ endef
define KernelPackage/ip6t-trigger
SUBMENU:=Other modules
TITLE:=Kernel module for ip6tables port trigger
DEPENDS+=+kmod-nf-nat +xtables-legacy
DEPENDS+=+kmod-nf-nat +kmod-ipt-core
FILES:=$(PKG_BUILD_DIR)/src/ipv6/ip6t_TRIGGER.ko
AUTOLOAD:=$(call AutoLoad,30,ip6t_TRIGGER,1)
KCONFIG:=
@@ -46,9 +46,7 @@ define KernelPackage/ip6t-trigger/description
Kernel module to enable port trigger for ip6tables
endef
ifeq ($(CONFIG_TARGET_brcmbca),y)
include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
endif
-include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
@@ -67,8 +65,6 @@ define Build/InstallDev
$(CP) $(PKG_BUILD_DIR)/include/ipt_TRIGGER.h $(1)/include/linux/netfilter_ipv4/
endef
KERNEL_MAKE_FLAGS += -I$(LINUX_DIR)/include
define Build/Compile
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/src/ipv4/" modules
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/src/ipv6/" modules

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libethernet
PKG_VERSION:=7.2.111
PKG_VERSION:=7.2.117
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=6e7216e657dfb59e869e393ef58e6b4593c16fc7
PKG_SOURCE_VERSION:=e917cdcfa0beb15a452f204521bea3d3571190b3
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libethernet.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
@@ -66,7 +66,8 @@ define Package/libethernet
SUBMENU:=IOPSYS HAL libs
MENU:=1
TITLE:= Ethernet library (libethernet)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_airoha:ecnt_api +TARGET_brcmbca:bcm963xx-bsp
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_brcmbca:bcm963xx-bsp
DEPENDS+=+TARGET_airoha:ecnt_api +TARGET_airoha:kmod-npu +MODULE_DEFAULT_xpon_bsp:xpon_bsp
endef
define Package/libethernet/description
@@ -83,7 +84,7 @@ endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ./libethernet/* $(PKG_BUILD_DIR)/
$(CP) -rf ~/git/libethernet/* $(PKG_BUILD_DIR)/
endef
endif

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libqos
PKG_VERSION:=7.2.108
PKG_VERSION:=7.2.109
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=6a72e35e1a662e2f707e4901679676a9c09b3bc2
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libqos.git
PKG_SOURCE_VERSION:=4948d372c3d7e43a0ba9aee517dbb83b94bba3dc
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
@@ -78,7 +78,7 @@ endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ./libqos/* $(PKG_BUILD_DIR)/
$(CP) -rf ~/git/libqos/* $(PKG_BUILD_DIR)/
endef
endif

View File

@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libvoice-airoha
PKG_RELEASE:=1
PKG_VERSION:=1.0.12
PKG_VERSION:=1.1.2
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE
@@ -17,7 +17,7 @@ LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
PKG_SOURCE_VERSION:=68f0b4f3edecea9b8f05e72b6bbf3952d3946b7c
PKG_SOURCE_VERSION:=1ded9a4bb0f2f8a5f3989799b5500e328e086c99
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -0,0 +1,16 @@
#!/bin/sh
hasVoice=$(db -q get hw.board.hasVoice)
[ "$hasVoice" = "1" ] || exit 0
SLIC=`cat /proc/device-tree/airoha-voice/slic-type`
[ "${SLIC#pef}" != "${SLIC}" ] || exit 0
echo Configure TxGain and RxGain for MXL SLIC $SLIC
ports=$(db -q get hw.board.VoicePorts)
for p in $(seq 0 $((ports-1))); do
uci set asterisk.extension${p}.txgain='10'
uci set asterisk.extension${p}.rxgain='-15'
done

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libwifi
PKG_VERSION:=7.7.8
PKG_VERSION:=7.10.6
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b12d933e1cdd3b84eefbb45b0ecf2d1927f5d5dc
PKG_SOURCE_VERSION:=2b76a71eb99f41523ad86592e7efefa0a3682bba
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libwifi.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
@@ -41,31 +41,30 @@ else ifeq ($(CONFIG_TARGET_armvirt),y)
TARGET_CFLAGS +=-DIOPSYS_TEST
else ifeq ($(CONFIG_TARGET_airoha),y)
TARGET_PLATFORM=ECONET
TARGET_WIFI_TYPE=MEDIATEK MAC80211
TARGET_WIFI_TYPE=MEDIATEK
TARGET_CFLAGS +=-DIOPSYS_ECONET
ifeq ($(CONFIG_TARGET_airoha_an7581),y)
TARGET_CFLAGS +=-DCONFIG_MTK
endif
else ifeq ($(CONFIG_TARGET_ipq95xx),y)
TARGET_PLATFORM=IPQ95XX
TARGET_WIFI_TYPE=QUALCOMM MAC80211
TARGET_WIFI_TYPE=QUALCOMM
TARGET_CFLAGS +=-DIPQ95XX
else ifeq ($(CONFIG_TARGET_ipq53xx),y)
TARGET_PLATFORM=IPQ53XX
TARGET_WIFI_TYPE=QUALCOMM MAC80211
TARGET_WIFI_TYPE=QUALCOMM
TARGET_CFLAGS +=-DIPQ53XX
else
$(info Unexpected CONFIG_TARGET, use default MAC80211)
TARGET_PLATFORM=MAC80211
TARGET_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIOPSYS_MAC80211
endif
ifneq ($(CONFIG_PACKAGE_kmod-mt7915e),)
ifneq ($(CONFIG_PACKAGE_kmod-mt7915e_en7523),)
TARGET_CFLAGS=-DMT7915_VENDOR_EXT
endif
PKG_BUILD_DEPENDS:=PACKAGE_kmod-mt7915e:mt76
PKG_BUILD_DEPENDS:=PACKAGE_kmod-mt7915e_en7523:mt76_en7523
ifneq ($(CONFIG_PACKAGE_libwifi),)
TARGET_CFLAGS +=-DHAS_WIFI

38
linux-pam/Makefile Normal file
View File

@@ -0,0 +1,38 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=linux-pam
PKG_VERSION:=1.7.0
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/linux-pam/linux-pam.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MIRROR_HASH:=skip
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/meson.mk
define Package/linux-pam
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Linux PAM Module
DEPENDS:=+libpam
endef
MESON_ARGS += \
-Dprefix=/usr \
-Ddefault_library=shared \
-Ddocs=disabled \
-Deconf=disabled \
-Dselinux=disabled \
-Dnis=disabled \
-Dexamples=false \
-Dxtests=false
define Package/linux-pam/install
$(INSTALL_DIR) $(1)/usr/lib/security
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/pam_faillock.uci_default $(1)/etc/uci-defaults/99-add_pam_faillock
endef
$(eval $(call BuildPackage,linux-pam))

View File

@@ -0,0 +1,43 @@
#!/bin/sh
create_faillock_files()
{
# also create files needed by pam_faillock
touch /var/log/faillock
chmod 700 /var/log/faillock
touch /var/log/btmp
chmod 700 /var/log/btmp
}
update_pam_common_auth()
{
local file="/etc/pam.d/common-auth"
local deny=6
local unlock_time=300
# update pam_unix.so line
sed -i -E 's|^.*pam_unix\.so.*|auth\t sufficient\tpam_unix.so nullok_secure|' "$file"
# Insert pam_faillock lines before and after pam_unix.so
sed -i -E "/pam_unix.so nullok_secure/i auth required pam_faillock.so preauth deny=$deny even_deny_root unlock_time=$unlock_time" "$file"
sed -i -E "/pam_unix.so nullok_secure/a auth [default=die] pam_faillock.so authfail audit deny=$deny even_deny_root unlock_time=$unlock_time" "$file"
}
update_pam_common_account()
{
# update account file
sed -i "/pam_unix.so/ i account required pam_faillock.so" /etc/pam.d/common-account
}
if [ -f "/usr/lib/security/pam_faillock.so" ]; then
update_pam_common_auth
update_pam_common_account
create_faillock_files
fi
if [ -f /etc/config/sshd ]; then
uci -q set sshd.@sshd[0].UsePAM=1
uci commit sshd
fi
exit 0

View File

@@ -5,12 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=logmngr
PKG_VERSION:=1.0.6
PKG_VERSION:=1.0.9
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/system/logmngr.git
PKG_SOURCE_VERSION:=37f9eef6ad92ab4835893c6c8ee65338917071b6
PKG_SOURCE_VERSION:=e2ffe2b9e7722ce19dff7db6e47e62a305dc568b
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -43,7 +44,7 @@ endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ./logmngr/* $(PKG_BUILD_DIR)/
$(CP) -rf ~/git/logmngr/* $(PKG_BUILD_DIR)/
endef
endif
@@ -64,7 +65,7 @@ endif
ifeq ($(CONFIG_LOGMNGR_BACKEND_SYSLOG_NG),y)
$(INSTALL_DATA) ./files/lib/logmngr/syslog-ng.sh $(1)/lib/logmngr/
endif
$(BBFDM_INSTALL_CORE_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbfsyslog.so $(1)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbfsyslog.so $(1) core
ifeq ($(CONFIG_LOGMNGR_LOGROTATE),y)
$(INSTALL_BIN) ./files/11-logmngr_logrotate_config_generate $(1)/etc/uci-defaults/
$(INSTALL_DATA) ./files/lib/logmngr/logrotate.sh $(1)/lib/logmngr/

View File

@@ -25,4 +25,3 @@ uci set logmngr.lr1=log_remote
uci set logmngr.lr1.enable=0
uci set logmngr.lr1.action="ac1"
uci set logmngr.lr1.port="514"
uci commit logmngr

View File

@@ -10,5 +10,4 @@ if [ -s "/etc/config/logmngr" ]; then
uci set logmngr.lro1.file_name="/var/log/messages"
uci set logmngr.lro1.file_count=1
uci set logmngr.lro1.max_file_size=1000000
uci commit logmngr
fi

View File

@@ -16,7 +16,7 @@ create_service_section() {
# the service section of the fluent-bit.conf file has hardcoded values,
# no need to lookup any uci section to configure this section
echo "[SERVICE]" >> ${TMP_CONF_FILE}
echo " flush 3" >> ${TMP_CONF_FILE}
echo " flush 1" >> ${TMP_CONF_FILE}
echo " daemon off" >> ${TMP_CONF_FILE}
echo " log_level info" >> ${TMP_CONF_FILE}
echo " parsers_file /etc/fluent-bit/parsers.conf" >> ${TMP_CONF_FILE}

View File

@@ -15,7 +15,14 @@ create_config_file() {
create_option_section() {
# the option section of the syslog-ng.conf file has hardcoded values,
# no need to lookup any uci section to configure this section
echo -e "@version: 4.4" >> ${TMP_CONF_FILE}
local syslog_version=$(syslog-ng -V | grep -i "Installer-Version" | awk -F': ' '{print $2}' | cut -d '.' -f1,2)
if [ -n "$syslog_version" ]; then
echo -e "@version: $syslog_version" >> ${TMP_CONF_FILE}
else
echo -e "@version: 4.7" >> ${TMP_CONF_FILE}
fi
echo -e '@include "scl.conf"' >> ${TMP_CONF_FILE}
echo -e "options {" >> ${TMP_CONF_FILE}
echo -e "\tchain_hostnames(no);" >> ${TMP_CONF_FILE}
@@ -37,7 +44,8 @@ create_input_section() {
# on any uci value
echo -e "source $tag {" >> ${TMP_CONF_FILE}
echo -e "\tinternal();" >> ${TMP_CONF_FILE}
echo -e "\tunix-dgram("/dev/log");" >> ${TMP_CONF_FILE}
echo -e "\tunix-dgram(\"/dev/log\");" >> ${TMP_CONF_FILE}
echo -e "\tfile(\"/proc/kmsg\" program_override(\"kernel\"));" >> ${TMP_CONF_FILE}
echo "};" >> ${TMP_CONF_FILE}
}
@@ -315,11 +323,10 @@ handle_action_section() {
}
apply_config_file() {
echo -e '@include "/etc/syslog-ng.d/"' >> ${TMP_CONF_FILE}
cp ${TMP_CONF_FILE} ${CONF_FILE}
}
PROG=/usr/sbin/syslog-ng-ctl
logmngr_init() {
create_config_file
@@ -339,7 +346,9 @@ logmngr_init() {
logrotate_init
fi
procd_open_instance logmngr
procd_set_param command $PROG reload
procd_close_instance
if procd_running 'syslog-ng'; then
/etc/init.d/syslog-ng reload
else
/etc/init.d/syslog-ng start
fi
}

View File

@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common
START=12
STOP=89
USE_PROCD=1
. /lib/functions.sh

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=6.2.2.2
PKG_VERSION:=6.3.3.6
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=8554576cc8a68b89faba1b13a7be0386325da26a
PKG_SOURCE_VERSION:=0d084ae70917e109c9e929464b170521e0547c3c
PKG_MAINTAINER:=Jakob Olsson <jakob.olsson@iopsys.eu>
PKG_LICENSE:=BSD-3-Clause
@@ -28,7 +28,9 @@ define Package/map-agent
CATEGORY:=Utilities
TITLE:=WiFi multi-AP Agent (EasyMesh R2)
DEPENDS:=+libwifi +libuci +libubox +ubus +libeasy +libieee1905 +ieee1905 \
+ieee1905-map-plugin +ip-bridge +AGENT_USE_LIBDPP:libdpp
+ieee1905-map-plugin +ip-bridge +AGENT_USE_LIBDPP:libdpp \
+uuidgen +openssl-util +!TARGET_brcmbca:ebtables-legacy \
+!TARGET_brcmbca:ebtables-legacy-utils
endef
ifeq ($(CONFIG_AGENT_USE_LIBDPP),y)

View File

@@ -63,7 +63,7 @@ else
[ $dhcp -eq 1 ] || exit 0
else
[ -f $map_bh_file ] || exit 0
cur_bh="$(cat $map_bh_file | jsonfilter -e @.ifname)"
cur_bh="$(jsonfilter -e @.ifname < "$map_bh_file" 2>/dev/null)" || exit 0
[ "$cur_bh" = "$PORT" ] || exit 0
fi
########################################################

View File

@@ -15,13 +15,13 @@ rc="$?"
issue_discovery() {
local iface="$1"
res=$(ubus -t5 call ieee1905 buildcmdu "{\"type\":0, \"ifname\":\"${iface}\"}")
res=$(ubus -t5 call ieee1905 buildcmdu "{\"type\":0, \"ifname\":\"${iface}\"}") > /dev/null 2>&1
json_load "$res" > /dev/null 2>&1
json_get_var data data
[ "$data" == "" ] && return
ubus call ieee1905 cmdu "{\"dst\":\"01:80:c2:00:00:13\", \"type\":0, \"data\":\"${data}\"}"
ubus call ieee1905 cmdu "{\"dst\":\"01:80:c2:00:00:13\", \"type\":0, \"data\":\"${data}\"}" > /dev/null 2>&1
}
process_vlans() {

View File

@@ -73,6 +73,7 @@ generate_multiap_config() {
ifname="wlan${devidx}_0"
ifname_bh="wlan${devidx}_1"
else
uci set mapagent.agent.mld_prefix="bss"
ifname_sta=""
case "$band" in
2g)
@@ -98,6 +99,11 @@ generate_multiap_config() {
if [ "${network_mode}" == "extender" ]; then
ifname="${ifname_sta}"
fi
[ "$disable_mlo" == "1" ] || {
uci set wireless.$dev.mlo="1"
uci set wireless.$dev.mlo_capable="1"
}
fi
uci set wireless.$dev.channels="$channels"

View File

@@ -10,6 +10,11 @@ config CONTROLLER_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config CONTROLLER_PROVISION_DISABLED_AP
depends on CONTROLLER_EASYMESH_VENDOR_EXT
bool "Enable vendor extension that provisions disabled APs to agents"
default n
config CONTROLLER_EASYMESH_VENDOR_EXT_OUI_DEFAULT
hex "Vendor OUI default"
default 0xB456FA

View File

@@ -1,14 +1,15 @@
#
# Copyright (C) 2020-2023 IOPSYS Software Solutions AB
# Copyright (C) 2020-2024 IOPSYS Software Solutions AB
# Copyright (C) 2025 Genexis AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller
PKG_VERSION:=6.1.2.9
PKG_VERSION:=6.3.0.2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=94b30d021b13e9488f9c76e7ceece48c9a567321
PKG_MAINTAINER:=Jakob Olsson <jakob.olsson@iopsys.eu>
PKG_SOURCE_VERSION:=1498bb5d84fa7134b0fca3a038daf6d8e72cdc04
PKG_MAINTAINER:=Jakob Olsson <jakob.olsson@genexis.eu>
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -26,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/map-controller
SECTION:=utils
CATEGORY:=Utilities
TITLE:=WiFi Multi-AP Controller (EasyMesh R2)
TITLE:=WiFi Multi-AP Controller (supporting EasyMesh R6)
DEPENDS:=+libuci +libubox +ubus +libeasy +libwifiutils +libieee1905 +ieee1905 +ieee1905-map-plugin \
+CONTROLLER_USE_LIBDPP:libdpp
endef
@@ -61,6 +62,9 @@ endif
ifeq ($(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=$(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT_OUI)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT
ifeq ($(CONFIG_CONTROLLER_PROVISION_DISABLED_AP),y)
TARGET_CFLAGS += -DPROVISION_DISABLED_AP
endif
endif
ifeq ($(CONFIG_CONTROLLER_PROPAGATE_PROBE_REQ),y)

View File

@@ -9,27 +9,22 @@ config controller 'controller'
option primary_vid '1'
option primary_pcp '0'
option allow_bgdfs '0'
option stale_sta_timeout '30d'
option channel_plan '0'
option de_collect_interval '60'
config sta_steering
option steer_module 'rcpi'
option enabled '1'
option enable_sta_steer '0'
option enable_sta_steer '1'
option enable_bsta_steer '0'
option use_bcn_metrics '0'
option use_usta_metrics '0'
option bandsteer '0'
option diffsnr '8'
option rcpi_threshold_2g '70'
option rcpi_threshold_5g '86'
option rcpi_threshold_6g '86'
option report_rcpi_threshold_2g '80'
option report_rcpi_threshold_5g '96'
option report_rcpi_threshold_6g '96'
option steer_retry_int '30'
option steer_int '180'
option steer_disable_int '600'
option plugins_enabled '1'
option plugins_policy 'any'
list plugins 'rcpi'
###################
# Default AP sections credentials will by updated

View File

@@ -23,6 +23,7 @@ validate_controller_section() {
'initial_channel_scan:bool:true' \
'resend_num:uinteger:0' \
'allow_bgdfs:range(0,2629744)' \
'stale_sta_timeout:string' \
'channel_plan:range(0,2629744)' \
'enable_ts:bool:false'
@@ -171,7 +172,7 @@ start_service() {
create_dir
procd_open_instance
procd_set_param command "/usr/sbin/mapcontroller" "-d"
procd_set_param command "/usr/sbin/mapcontroller" "-d" "-o" "/tmp/mapcontroller.log" "-f"
if [ -f /etc/config/mapagent ]; then
local local_ctrl=0

View File

@@ -1,26 +0,0 @@
if (PACKAGE_map-topology)
menu "Configurations"
config TOPOLOGYD_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI_DEFAULT
hex "Vendor OUI default"
default 0xB456FA
config TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI
hex "Vendor OUI in 0xAABBCC format"
default TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI_DEFAULT
help
Extra features not covered by the base EasyMesh specification can be
enabled through TOPOLOGYD_EASYMESH_VENDOR_EXT. Please provide the Vendor's OUI
through which such features would be exposed.
config TOPOLOGYD_HOST_WAN_STATS
bool "Enable wan statistics collection per hosts"
default y
endmenu
endif

View File

@@ -1,71 +0,0 @@
#
# Copyright (C) 2020-22 IOPSYS Software Solutions AB
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=2.5.2.1
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=914f1ead2e65c1e24ed2d8786aa883730db2208f
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/multi-ap/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=ieee1905
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/map-topology
CATEGORY:=Utilities
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
+libavahi-nodbus-support +libnetfilter-conntrack +libnfnetlink +libmnl
TITLE:=Utility to build topology of a multi-AP network
endef
define Package/map-topology/config
source "$(SOURCE)/Config.in"
endef
TARGET_CFLAGS += \
-Wno-error=deprecated-declarations \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-I$(STAGING_DIR)/usr/include/libnetfilter_conntrack \
-D_GNU_SOURCE
define Package/map-topology/description
Constructs network topology and show it as json structure over UBUS
endef
MAKE_PATH:=src
ifeq ($(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=$(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI)
endif
ifeq ($(CONFIG_TOPOLOGYD_HOST_WAN_STATS),y)
TARGET_CFLAGS += -DHOST_WAN_STATS
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/map-topology/* $(PKG_BUILD_DIR)/
endef
endif
define Package/map-topology/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/topologyd $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,map-topology))

View File

@@ -1,7 +0,0 @@
config topology 'topology'
option enabled '1'
option depth '8'
option interval '60'
option maxlog '32'
option profile '4'

View File

@@ -1,93 +0,0 @@
#!/bin/sh /etc/rc.common
START=97
STOP=21
USE_PROCD=1
IS_CFG_VALID=1
validate_topology_config() {
uci_validate_section topology topology "topology" \
'enabled:bool:true' \
'depth:range(0,16)' \
'interval:range(0,65535)' \
'maxlog:range(0,128)' \
[ "$?" -ne 0 ] && {
logger -s -t "topology" "Validation of topology UCI file failed"
return 1
}
return 0
}
validate_global_section() {
uci_validate_section hosts global "global" \
'ageing_timer:uinteger' \
'reboot_persistent:bool'
[ "$?" -ne 0 ] && {
logger -s -t "hosts" "Validation of global section failed"
IS_CFG_VALID=0
return 1
}
return 0
}
validate_host_section() {
local section="$1"
uci_validate_section hosts $section "${1}" \
'macaddr:macaddr' \
'interface_type:or("wifi","eth")' \
'active:bool' \
'active_last_change:string'
[ "$?" -ne 0 ] && {
logger -s -t "hosts" "Validation of host section $section failed"
IS_CFG_VALID=0
return 1
}
return 0
}
validate_hosts_config() {
IS_CFG_VALID=1
validate_global_section &&
config_foreach validate_host_section host
[ "$IS_CFG_VALID" -ne 1 ] && {
logger -s -t "topology" "Validation of hosts UCI file failed"
return 1
}
return 0
}
start_service() {
config_load "topology"
validate_topology_config || return 1;
config_load "hosts"
validate_hosts_config || return 1;
if [ -f "/proc/sys/net/netfilter/nf_conntrack_timestamp" ]; then
echo 1 >/proc/sys/net/netfilter/nf_conntrack_timestamp
fi
procd_open_instance
procd_set_param command "/usr/sbin/topologyd"
procd_set_param respawn
# procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
service_triggers()
{
procd_add_reload_trigger "network"
}
reload_service() {
procd_send_signal "topologyd"
}

5
mcastmngr/Config.in Normal file
View File

@@ -0,0 +1,5 @@
if PACKAGE_mcastmngr
config MCASTMNGR_VENDOR_PREFIX
string "Package specific datamodel Vendor Prefix for TR181 extensions"
default ""
endif

View File

@@ -6,14 +6,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mcastmngr
PKG_VERSION:=1.2.7
PKG_VERSION:=1.2.11
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/hal/mcastmngr.git
PKG_SOURCE_VERSION:=275d7e5448333e53f8bc980344b39f7f577d4664
PKG_SOURCE_VERSION:=17d73b8f1947823a0d32ed589a240a2642904fe1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -29,21 +29,33 @@ MAKE_PATH:=bbf_plugin
define Package/mcastmngr
CATEGORY:=Utilities
TITLE:=Multicast Proxy/Snooping Manager
DEPENDS:=+!TARGET_brcmbca:mcproxy +libuci +libubox +libubus +libblobmsg-json
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json
DEPENDS+=+!TARGET_brcmbca:mcproxy +!TARGET_brcmbca:sipcalc
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service +!TARGET_brcmbca:kmod-ebt-igmpsnooping +!TARGET_brcmbca:kmod-ebt-mldsnooping
DEPENDS+=+!TARGET_brcmbca:ebtables-legacy +bridgemngr
endef
define Package/mcastmngr/description
Configures IGMP and MLD snooping and proxy
endef
define Package/$(PKG_NAME)/config
source "$(SOURCE)/Config.in"
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/mcastmngr/* $(PKG_BUILD_DIR)/
endef
endif
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
ifeq ($(CONFIG_MCASTMNGR_VENDOR_PREFIX),"")
VENDOR_PREFIX = $(CONFIG_BBF_VENDOR_PREFIX)
else
VENDOR_PREFIX = $(CONFIG_MCASTMNGR_VENDOR_PREFIX)
endif
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(VENDOR_PREFIX)\\\"
define Package/mcastmngr/install
$(CP) ./files/common/* $(1)/
@@ -52,6 +64,7 @@ ifneq ($(CONFIG_TARGET_brcmbca),)
else
$(CP) ./files/linux/* $(1)/
endif
$(BBFDM_REGISTER_SERVICES) -v ${VENDOR_PREFIX} ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) $(PKG_BUILD_DIR)/bbf_plugin/libmcast_bbf.so $(1) $(PKG_NAME)
endef

View File

@@ -0,0 +1,20 @@
{
"daemon": {
"enable": "1",
"service_name": "mcastmngr",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "{BBF_VENDOR_PREFIX}IGMP"
},
{
"parent_dm": "Device.",
"object": "{BBF_VENDOR_PREFIX}MLD"
}
],
"config": {
"loglevel": "3"
}
}
}

View File

@@ -251,3 +251,7 @@ configure_mcast() {
configure_mcpd
}
validate_params() {
return 0
}

Some files were not shown because too many files have changed in this diff Show More